当前位置: 首页 > 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…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

如何应对敏捷转型中的团队阻力

应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中&#xff0c;明确沟通敏捷转型目的尤为关键&#xff0c;团队成员只有清晰理解转型背后的原因和利益&#xff0c;才能降低对变化的…...

Canal环境搭建并实现和ES数据同步

作者&#xff1a;田超凡 日期&#xff1a;2025年6月7日 Canal安装&#xff0c;启动端口11111、8082&#xff1a; 安装canal-deployer服务端&#xff1a; https://github.com/alibaba/canal/releases/1.1.7/canal.deployer-1.1.7.tar.gz cd /opt/homebrew/etc mkdir canal…...

Android Framework预装traceroute执行文件到system/bin下

文章目录 Android SDK中寻找traceroute代码内置traceroute到SDK中traceroute参数说明-I 参数&#xff08;使用 ICMP Echo 请求&#xff09;-T 参数&#xff08;使用 TCP SYN 包&#xff09; 相关文章 Android SDK中寻找traceroute代码 设备使用的是Android 11&#xff0c;在/s…...