当前位置: 首页 > news >正文

Android YUV存储方式

排名


性能:YUV444 > YUV422 > YUV420 > YUV411

  1. YUV444:YUV444 提供最高质量的色彩准确性和图像细节,但需要更多的存储空间和传输带宽。适用于对图像质量要求很高的应用,如专业视频编辑或高端图像处理。
  2. YUV422:YUV422 在性能和存储/传输开销之间取得了平衡。相对于YUV444,它降低了色彩准确性和图像细节,但提供了较小的存储需求。适用于大多数广播和视频领域的应用。
  3. YUV420:YUV420 是最常用的 YUV 格式,通过更进一步的压缩(降低采样率),在牺牲一定图像质量的情况下,大幅减少存储空间和传输带宽。适用于大多数常见的视频应用,包括流媒体和视频通话。
  4. YUV411:YUV411 是最低分辨率的 YUV 格式,通过更大幅度的压缩(更低的采样率)来减少存储空间和传输需求。图像质量牺牲较大,适用于一些低分辨率或存储受限的应用。

实用性:YUV420 > YUV422 > YUV444 > YUV411

  1. YUV420:由于 YUV420 是目前最常用的 YUV 格式,它的广泛支持与兼容性使其成为大多数应用的首选格式。
  2. YUV422:YUV422 在广播和视频领域得到广泛采用,并在许多专业和消费设备中得到支持。
  3. YUV444:YUV444 在专业视频编辑和高端图像处理中被广泛使用,但可能不太常见于一般消费者产品。
  4. YUV411:YUV411 的应用相对较少,适用于特定的低分辨率或存储受限的场景。

兼容性:YUV420 > YUV422 > YUV444 > YUV411

  1. YUV420:YUV420 是最常用的 YUV 格式,几乎所有广播、视频和图像处理设备都支持。它是各种视频编解码器和播放器的标准格式,也被广泛支持于各种平台和操作系统,包括桌面电脑、移动设备和流媒体服务。
  2. YUV422:YUV422 在广播和视频领域得到广泛采用,并在许多专业和消费设备中得到支持。它在大多数现代平台和操作系统上都有良好的兼容性,但相对于 YUV420,一些较旧或较低成本的设备可能不完全支持。
  3. YUV444:YUV444 在专业视频编辑和高端图像处理中被使用,但其广泛兼容性可能受到限制。一些消费者级设备可能不支持 YUV444 格式,特别是在较旧的设备或某些平台上。
  4. YUV411:YUV411 的应用较少,兼容性相对较低。使用 YUV411 格式可能需要特定的设备或平台支持,而一些常见的播放器和编解码器可能不支持此格式。

注:Y表示亮度信息,U和V分别表示蓝色和红色(色度)

YUV411

优点:

  • 存储需求较小:通过将U和V分量的分辨率降低一半,YUV411能够有效地减小颜色信息的存储需求,从而节省存储空间。
  • 兼容性好:YUV411是一种较为流行的色彩编码格式,在许多多媒体应用中广泛使用,因此具有较好的兼容性。

缺点:

  • 色度细节损失:由于U和V分量的分辨率被降低了一半,YUV411在色度信息的表示上存在一定程度的损失,从而导致色度细节的损失。
  • 不适用于细节丰富的图像:由于色度细节的损失,YUV411不适用于细节丰富的图像,例如对于颜色变化较为复杂和细腻的图像,使用YUV411可能会导致颜色失真或细节模糊。

Planar 存储方式:
亮度分量Y1, Y2, Y3, Y4分别对应每个像素的亮度样本。色度分量U1, U2, U3, U4和V1, V2, V3, V4分别对应每个像素的色度样本。每四个相邻的像素共用一个色度U样本和一个色度V样本,这种存储方式提供了更高的色度分量的分辨率,但同时也要占用更多的存储空间。

| Y1 | Y2 | Y3 | Y4 |
|----|----|----|----|
|    |    |    |    |
|    |    |    |    |
|    |    |    |    |
|    |    |    |    |
| U1 |    | U2 |    |
|----|----|----|----|
|    |    |    |    |
|    |    |    |    |
|    |    |    |    |
|    |    |    |    |
| V1 |    | V2 |    |
|----|----|----|----|

Semi-Planar 存储方式:
每四个相邻的像素共用一个色度U样本和一个色度V样本,并且每个像素都有一个亮度Y样本。其中,Y1、Y2、Y3、Y4分别代表四个亮度样本,U1、U2、U3、U4分别代表相应的U样本,V1、V2、V3、V4分别代表相应的V样本。

| Y1 | Y2 | Y3 | Y4 |
|----|----|----|----|
| U1 | U2 | U3 | U4 |
|----|----|----|----|
| V1 | V2 | V3 | V4 |

YUV420:

优点:

  • YUV420是最常见和广泛支持的色彩编码格式。它在视频压缩和传输中被广泛采用,因此在各种设备和平台上具有很好的兼容性。
  • YUV420通过对亮度和色度分量进行适度的子采样,实现了较高的压缩比。相比于YUV444格式,它可以有效地减少存储和传输所需的数据量。
  • 子采样的方式有助于保持图像的主要细节和视觉感知。虽然色度分量的分辨率相对较低,但人眼对色彩细节的感知度较低,因此对于大多数应用场景来说,图像的质量仍然足够好。

缺点:

  • YUV420相对于YUV444来说,在色彩保真度方面有一定损失。由于色度分量的子采样,部分色彩细节可能会丢失或降低。
  • 在一些对色彩准确度要求较高的应用中,如专业图像处理、电影制作等领域,YUV420可能不够理想,因为它在细节和颜色还原方面的表现较弱。
  • YUV420格式在进行图像编辑和处理时可能需要更多的计算和处理步骤,因为需要对亮度和色度分量进行插值和恢复以达到源图像的准确还原。

Planar 存储方式:
每个像素都有一个亮度Y样本。相邻的四个像素共享一个色度U和一个色度V样本,即U1和V1为第一个四个像素的色度样本,U2和V2为第二个四个像素的色度样本。在上述例图中,Y1到Y4代表亮度样本,U1到U4代表色度U样本,V1到V4代表色度V样本。这种存储方式通过对亮度和色度进行适度子采样,实现了较好的图像质量,并在大多数情况下仍能保持良好的压缩比。Planar存储方式能够提供更精确的色彩还原能力,但相应地需要更多的存储空间和较低的编码解码效率。

| Y1 | Y2 | Y3 | Y4 |
|----|----|----|----|
| U1 | U2 | U3 | U4 |
|----|----|----|----|
| V1 | V2 | V3 | V4 |

Semi-Planar 存储方式:
每个像素都有一个亮度Y样本。相邻4个像素共享一个色度U和一个色度V样本。Y1到Y4代表亮度样本,U1、V1、U2、V2依次代表色度U和V样本。这种存储方式通过对亮度和色度进行适度子采样,实现了较高的压缩比,并在大多数情况下仍能保持良好的图像质量。Semi-Planar存储方式相较于Planar存储方式,在U和V分量的存储上进行了合并,以便提高编码和解码的效率。

| Y1 | Y2 | Y3 | Y4 |
|----|----|----|----|
| U1 | V1 | U2 | V2 |
|----|----|----|----|

YUV422:

  • 优点:相比于 YUV444,YUV422 通过减少 U 和 V 分量的采样率,可以在减少存储和传输开销的同时,保持较高的图像质量和色彩准确性。
  • 缺点:相对于 YUV444,YUV422 的图像质量和色彩准确性稍有损失,因为 U 和 V 分量的采样率降低了一半。
  • 起源时间:YUV422 是在早期的彩色视频系统中引入的,以平衡存储和传输开销与图像质量之间的权衡。

Planar 存储方式:
在YUV422的Planar存储方式中,每个像素都有一个亮度Y样本,并且每四个相邻的像素共用一个色度U样本和一个色度V样本。

| Y1 | Y2 | Y3 | Y4 |
|----|----|----|----|
| U1 | U2 | U3 | U4 |
|----|----|----|----|
| V1 | V2 | V3 | V4 |

Semi-Planar 存储方式:

亮度信息Y存储在连续的像素中,而色度信息U和V交替存储在一组像素中,每两个相邻像素共用一个色度样本。

| Y1 | U1 | Y2 | V1 |
|----|----|----|----|
| Y3 | U2 | Y4 | V2 |
|----|----|----|----|
| Y5 | U3 | Y6 | V3 |
|----|----|----|----|
| Y7 | U4 | Y8 | V4 |

YUV444

  • 优点:YUV411 是一种低分辨率的 YUV 格式,通过更大幅度的 U 和 V 分量的采样率降低,可以进一步减少存储和传输开销。
  • 缺点:相对于其他 YUV 格式,YUV411 提供的图像质量和色彩准确性较低,因为 U 和 V 分量的采样率大幅降低。
  • 起源时间:YUV411 是在早期的摄像机和视频存储系统中引入的,并在某些低分辨率和存储受限的应用中使用。

Planar 存储方式:
每四个相邻的像素共用一个色度(UV)样本,并且每个像素都有一个独立的亮度(Y)样本。亮度分量Y、色度分量U和色度分量V被分别存储在不同的平面上,每个平面中具有相同的分辨率,且每个像素的对应分量均位于相同的位置。

| Y1 | Y2 | Y3 | Y4 |
|----|----|----|----|
| U1 | U2 | U3 | U4 |
|----|----|----|----|
| V1 | V2 | V3 | V4 |

Semi-Planar 存储方式:
亮度分量 Y1, Y2, Y3, Y4 分别对应每个像素的亮度样本。色度分量 U1, V1, U2, V2 交替存储在同一平面上,每个像素的色度分量 U 和 V 共享一个样本。这种存储方式节省了存储空间,但在处理色度分量 U 和 V 时需要进行额外的解析步骤。

| Y1 | Y2 | Y3 | Y4 |
|----|----|----|----|
| U1 | V1 | U2 | V2 |

RGB转YUV的算法

相关文章:

Android YUV存储方式

排名 性能:YUV444 > YUV422 > YUV420 > YUV411 YUV444:YUV444 提供最高质量的色彩准确性和图像细节,但需要更多的存储空间和传输带宽。适用于对图像质量要求很高的应用,如专业视频编辑或高端图像处理。YUV422&#xff1…...

SSM家具个性定制管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 SSM 家具个性定制管理系统是一套完善的信息系统,结合springMVC框架完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用…...

来自Microsoft Teams的摄像头背景图片

原文件在👆,下面是预览图 如果你安装了Microsoft Teams也可以搜索MSTeams,就在MSTeams/Backgrounds...

飞书如何接入ChatGPT-打造个人智能问答助手实现无障碍交流

目录 前言 环境列表 1.飞书设置 2.克隆feishu-chatgpt项目 3.配置config.yaml文件 4.运行feishu-chatgpt项目 5.安装cpolar内网穿透 6.固定公网地址 7.机器人权限配置 8.创建版本 9.创建测试企业 10. 机器人测试 总结 前言 在飞书中创建chatGPT机器人并且对话&am…...

Proteus仿真--基于1602LCD的秒表设计

本文介绍基于1602LCD的秒表设计(完整仿真源文件及代码见文末链接) 仿真图如下 本设计中80C51单片机作为主控,用1602LCD作为显示模块,共有2个按键,K1按键用于秒表计时启停控制,K2用于清零显示内容 仿真运…...

香港站群服务器中1C/2C/4C/8C 的概念及区别

​  在选择香港站群服务器时,经常会看到1C、2C、4C和8C等不同的IP段。这些IP段代表了不同的子网掩码长度,也反映了服务器的IP地址数量和丰富性。 让我们来了解一下什么是IP段。IP段是指一组连续的IP地址,其中每个地址的前三个数字相同&…...

搭建SRS视频服务器

去官方网站下载FFmpeg6.1 https://ffmpeg.org/download.html拷贝到CentOS7.9中的/opt目录下,解压并重命名 tar -xvf ffmpeg-6.1.tar.xz 解压后编译安装 ./configure make make install从github下载SRS4.0release 解压后 如果ffmpeg的路径不在/usr/local/bin/ffmpe…...

【C++初阶】STL详解(八)List的模拟实现

本专栏内容为:C学习专栏,分为初阶和进阶两部分。 通过本专栏的深入学习,你可以了解并掌握C。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:C 🚚代码仓库:小小unicorn的代码仓库&…...

Day02嵌入式---按键控灯

一、简单介绍 按键控制灯开关是一种常见的嵌入式系统示例项目,它通常用于演示嵌入式系统的基本控制能力。该项目由一个或多个LED和一个按键组成。通过按下按键,可以控制LED的开关状态,从而实现灯的亮灭控制。 二、查看功能手册 2.1 查看硬件…...

Centos设置nginx开机自启动设置

Centos设置nginx开机自启动设置 要设置CentOS中的Nginx开机自启动,可以按照以下步骤进行操作: 首先,登录到CentOS服务器上,并以root用户或具有sudo权限的用户身份执行以下命令来安装Nginx(如果尚未安装)&a…...

拼接合并yuv序列转成mp4

ffmpeg需要用支持libx264的版本,如果需要,可以从这个网站下载编译支持libx264\x265的ffmpeg https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-6.1-essentials_build.7z #-*- coding:utf-8-*- import osif __name__ "__main__":# 1 输入…...

访谈 破风之人毛京波,选择难而正确的路

“无论是在燃油时代还是电动时代,我们所做的一切,只为回归纯粹的驾驶乐趣。”履新路特斯中国总裁整整一年的毛京波,从不放过任何一个展示路特斯品牌驾驭精神的机会。 11月17日,广州车展开幕首日,位于5.2馆的路特斯“冠…...

java实现一个简单的监听器

在 Java 中,我们可以通过实现监听器(Listener)模式来处理事件和回调。监听器模式是一种常见的设计模式,用于实现对象间的松耦合通信。本文将介绍如何在 Java 中实现一个简单的监听器。 步骤 以下是实现一个监听器的基本步骤&…...

用HALCON标定助手对相机进行标定

任务要求: 已知相机镜头焦距f为8mm,相机单个CCD像素在水平和竖直两个方向上的尺寸均为3.75微米,相机为普通透光镜头和面阵相机,对相机进行标定,测量相机的内外参数。 操作步骤: 1. 在HALCON中运行gen_ca…...

5 个适用于 Windows 的顶级免费数据恢复软件

对于计算机来说,最重要的是用户数据。除了您的数据之外,有关计算机的其他所有内容都是可替换的。这三个是数据丢失的最常见原因: 文件/文件夹删除丢失分区分区损坏 文件/文件夹删除 文件/文件夹删除是最常见的数据丢失类型。大多数时候&am…...

MySQL 批量插入记录报 Error 1390 (HY000)

文章目录 1.背景2.问题3.分批插入4.一次最多能插入多少条记录?5.什么是 Prepared Statement?参考文献 1.背景 Golang 后台服务使用 GORM 实现与 MySQL 的交互,在实现一个通过 Excel 导入数据的接口时,使用 Save 方法一次性插入大…...

线程池(用于处理Runnable任务或Callable任务)

一&#xff0c;线程池 二&#xff0c; 如何创建线程池 案例&#xff1a; //1,通过ThreadPoolExecuter创建一个线程池对象ExecutorService pool new ThreadPoolExecutor(3,5,8,TimeUnit.SECONDS,new LinkedBlockingQueue<>(4),Executors.defaultThreadFactory(),new Thr…...

MATLAB在信号系统中的应用

1.产生一个幅度为1, 基频为2Hz&#xff0c;占空比为50%的周期方波.要求画出图形。 在MATLAB中&#xff0c;函数square(w0*t, DUTY)产生基本频率为w0 (周期T2*pi/w0)、占空比DUTY (τ/T)*100的周期矩形波&#xff08;方波&#xff09;&#xff0c;默认情况下占空比DUTY50。占空…...

Jenkins与Docker的自动化CI/CD流水线实践

Pipeline 有诸多优点&#xff0c;例如&#xff1a; 项目发布可视化&#xff0c;明确阶段&#xff0c;方便处理问题 一个Jenkins File文件管理整个项目生命周期 Jenkins File可以放到项目代码中版本管理 Jenkins管理界面 操作实例&#xff1a;Pipeline的简单使用 这里是比较…...

企业数字化转型的作用是什么?_光点科技

在当今快速变化的商业环境中&#xff0c;数字化转型已成为企业发展的重要策略。企业数字化转型指的是利用数字技术改造传统业务模式和管理方式&#xff0c;以提升效率、增强竞争力和创造新的增长机会。 提升运营效率&#xff1a;数字化转型通过引入自动化工具和智能系统&#x…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理

在城市的某个角落&#xff0c;一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延&#xff0c;滚滚浓烟弥漫开来&#xff0c;周围群众的生命财产安全受到严重威胁。就在这千钧一发之际&#xff0c;消防救援队伍迅速行动&#xff0c;而豪越科技消防一体化安全管控平台构建的消防“…...

在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南

在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南 背景介绍完整操作步骤1. 创建Docker容器环境2. 验证GUI显示功能3. 安装ROS Noetic4. 配置环境变量5. 创建ROS节点(小球运动模拟)6. 配置RVIZ默认视图7. 创建启动脚本8. 运行可视化系统效果展示与交互技术解析ROS节点通…...

起重机起升机构的安全装置有哪些?

起重机起升机构的安全装置是保障吊装作业安全的关键部件&#xff0c;主要用于防止超载、失控、断绳等危险情况。以下是常见的安全装置及其功能和原理&#xff1a; 一、超载保护装置&#xff08;核心安全装置&#xff09; 1. 起重量限制器 功能&#xff1a;实时监测起升载荷&a…...