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

两种格式数据介绍——bin 、 yuv文件

一、场景存储

  • 通常指的是用于存储摄像头或传感器原始采集数据的文件格式,尤其是在自动驾驶、机器人、安防、工业视觉等需要记录真实世界场景的应用中。
格式存储内容用途场景特点
.binLiDAR点云、毫米波雷达数据、IMU、GPS、原始传感器帧自动驾驶仿真、SLAM建图、数据回灌结构自定义、紧凑高效、需配合元数据使用
.yuv摄像头原始图像帧(如YUV420、NV12)视频录制、图像算法调试、回放测试无压缩/轻压缩、保留原始像素信息、兼容编解码器

举个例子:自动驾驶场景数据录制

一个典型的自动驾驶数据包(如ROS bag、Apollo record、NVIDIA DriveWorks log)中,可能会包含:

front_camera.yuv:前置摄像头原始图像帧(1920×1080,YUV420)
lidar_points.bin:每帧LiDAR点云(如每点12字节:x,y,z,intensity)
imu_data.bin:IMU传感器数据(时间戳、加速度、角速度)
gps_data.bin:GPS定位信息(经纬度、速度、航向)

这些文件通常按时间戳命名,用于后续离线仿真、算法训练、场景回放或问题复现。

1.📁 bin 格式数据

  • bin 是英文 binary(二进制)的缩写,通常表示二进制文件。
  • 特点:
    • 文件内容是以二进制形式存储的,不是人类可读的文本。不包含文件头或格式信息,具体含义取决于生成它的程序或上下文。常用于存储原始数据(如传感器数据、固件、图像、音频、程序代码等)。
    • 举例:
      image.bin 可能是一张未经压缩的原始图像数据。
      firmware.bin 可能是某个设备的固件文件。
      data.bin 可能是一组传感器采集的原始数值。
  • 注意事项:
    由于 .bin 文件本身没有标准格式,你必须知道它的来源和结构(比如每个字节代表什么)才能正确解析。

2.🎨 yuv 格式数据

  • YUV 是一种颜色编码系统,常用于视频和图像处理领域。
  • 组成:
    Y(Luma):亮度分量,表示图像的明暗信息。
    U/V(Chroma):色度分量,表示颜色信息。
  • 特点:
    与RGB不同:RGB每个像素都有红绿蓝三个值,而YUV将亮度与色度分离,更适合压缩。
    常用于视频编解码:如MPEG、H.264、摄像头输出等。
    有多种采样格式(如YUV420、YUV422、YUV444),影响数据排列方式和压缩率。
  • 举例:
    一个 1920x1080 的 YUV420 图像,数据大小为:
    复制
    Y = 1920 * 1080 字节
    U = 960 * 540 字节(宽和高都是Y的一半)
    V = 960 * 540 字节
    总大小 ≈ 1920 * 1080 * 1.5 字节
  • 用途:
    摄像头原始输出(如Android Camera2 API的YUV_420_888格式)。
    视频解码器的输出帧。
    图像处理算法(如人脸识别、滤镜)的中间格式。

3.总结

特性bin格式yuv格式
本质通用二进制文件特定的图像/视频颜色编码格式
是否可读不可直接读,需上下文可用专用工具查看(如YUV播放器)
用途存储任意原始数据存储图像/视频的像素数据
是否有标准无统一标准,取决于上下文有明确的YUV标准(如BT.601/709)

二、存储数据方式

1.bin

  • 要理解“bin 是怎么存数据的”,必须先弄清 谁写的、写给谁、每个字节代表什么。
  • 举例10帧视频图像

   (1)前提

图像分辨率每像素字节每帧字节
灰度图640 × 4801 B (uint8)307 200 B
深度图640 × 4802 B (uint16)614 400 B

单帧总大小 = 307 200 + 614 400 = 921 600 B
10 帧总大小 = 921 600 × 10 = 9 216 000 B
(2)文件布局

[0:31]   文件头 32 B
[32:]    帧0灰度 + 帧0深度帧1灰度 + 帧1深度...帧9灰度 + 帧9深度

   (3)文件头结构(32 B)

偏移字段类型
0magicuint320x20240506
4versionuint321
8widthuint32640
12heightuint32480
16frame_countuint3210
20gray_bytesuint32307 200
24depth_bytesuint32614 400
28reserveduint320
  • 通过 32 字节文件头描述元数据,后面 连续拼接 每帧“灰度(uint8)+ 深度(uint16)”裸数据,就能用一个 .bin 文件无损、紧凑地保存 10 帧双图视频。

2.YUV

(1)选型:YUV420 (I420 / YV12)

分辨率来源在 YUV420 中的排布
RGB640×4803×8 bit先转 Y、U、V,再按 I420 顺序存放
  • I420 布局
    Y 平面:640×480 = 307 200 B
    U 平面:320×240 = 76 800 B
    V 平面:320×240 = 76 800 B
    单帧大小 = 460 800 B
    10 帧总大小 = 4 608 000 B

(2) RGB → YUV420 转换公式(BT.601)

Y =  0.299  R + 0.587  G + 0.114  B
U = -0.169  R - 0.331  G + 0.500  B + 128
V =  0.500  R - 0.419  G - 0.081  B + 128
http://www.dtcms.com/a/318731.html

相关文章:

  • 【C语言】文件操作全解析
  • 【感知机】感知机(perceptron)模型与几何解释
  • 第14届蓝桥杯Scratch_选拔赛_初级及中级(STEMA)真题2022年12月18日
  • 深度学习之pytorch安装与tensor(张量)
  • 美式期权定价模型之Barone-Adesi-Whaley定价模型
  • Linux 防火墙(firewalld)详解与配置
  • 第14届蓝桥杯Scratch选拔赛初级及中级(STEMA)真题2022年10月30日
  • Linux中firewalld(防火墙)配置与管理指南
  • 【golang】基于redis zset实现并行流量控制(计数锁)
  • InfluxDB 集群部署与高可用方案(一)
  • C基础 15_day
  • 从代码学习LLM - llama3 PyTorch版
  • css优化、提升性能方法都有哪些?
  • Nacos机制
  • 【图像处理基石】什么是数字高程模型?如何使用数字高程模型?
  • 进阶向:AI聊天机器人(NLP+DeepSeek API)
  • 双馈和永磁风机构网型跟网型联合一次调频并入同步机电网,参与系统一次调频,虚拟惯量下垂,虚拟同步机VSG控制matlab/simulink
  • 202506 电子学会青少年等级考试机器人六级实际操作真题
  • PCB工艺-四层板制作流程(简单了解下)
  • 小实验--继电器定时开闭
  • TrustZone技术详解————这篇是AI写的包括图
  • 贝叶斯算法中的参数调优
  • RK3568下用 Qt Charts 实现曲线数据展示
  • python---getsizeof和asizeof的区别
  • 17.Linux :selinux
  • LMS/NLMS最小均值算法:双麦克风降噪
  • CentOS8.5安装19c单机告警及处理
  • 碳纳米管的原子精度制造——展望
  • 福彩双色球第2025090期篮球号码分析
  • docker启动出现Error response from daemon: Container的问题【已解决】