Y4M视频文件格式

什么是Y4M

以YUV4Mpeg格式创建的视频文件;这个视频文件存储了一组未压缩的YCbCr图像,这些图像逐帧组成视频;在压缩成MPEG-2或Matroska等更流行的视频格式之前,用作原始的彩色视频格式

Y4M文件是一个纯文本格式的header开始,header有0或多个参数,每个参数以0x20分隔,在所有参数最后以0x0A结束,后面就是YUV原始数据。header后面是任意数量帧数据。每帧数据以固定字符串FRAME开始,我们以这个Y4M文件来一窥究竟。

  • Y4M header中的各参数都以空格(ASCII码为0x20)分隔:
    在这里插入图片描述

YUV4MPEG2 W384 H288 F25:1 Ip A0:0, 这段话的意思是:
YUV4MPEG2: 签名,这是固定的,在文件的最前面
Y4M文件以一段明文开始,前10字符是YUV4MPEG2+0x20,0x20表示空格字符。紧随其后的是各种视频参数信息,各参数都以空格0x20分隔,写完各种参数后跟一个0x0A(0x0A表示换行字符)来表示Y4M文件头的结束。之后就是FRAME+0x0A+YUVDATE,每个YUV原始数据之前是都会有这样一个固定头部,紧随其后就是按照YCbCr存储的原始YUV数据。

现在我们看年Y4M文件头中的参数信息,这里参数信息特点是用一个字母表示参数类型,后面跟具体的值:

  1. 帧宽:W,如W384
  2. 帧高:H,如H288
  3. 帧率:F,如F25:1 ,25/1,即每秒25帧
  4. 隔行扫描interlacing:I,如
    Ip 表示逐行扫描
    It 表示顶场优先地隔行扫描
    Ib表示底场优先地隔行扫描
    Im:混合模式
  5. 像素的宽高比pixel aspect ratio:A,如
    A0:0 表示未知
    A1:1表示正方形像素
    A4:3表示NTSC-SVCD,480x480拉伸到4:3显示
    A4:5表示NTSC-DVD,720x480压缩到4:3显示
    A32:27表示NTSC-DVD,720x480拉伸到16:9显示
  6. 色彩空间Color space:C,如
    C420jpeg = 4:2:0
    C420paldv = 4:2:0
    C420 = 4:2:0
    C422 = 4:2:2
    C444 = 4:4:4
  7. 注释信息:X,会被YUV4MPEG2解析器忽略。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/282800.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【经典LeetCode算法题目专栏分类】【第2期】组合与排列问题系列

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 组合总和1 class So…

linux笔记--VSCode利用交换机跳转服务器

目录 1--前言 2--VSCode设置 3--ssh连接 1--前言 博主学校的服务器有两个,其中一个服务器(14)可以通过挂内网VPN来进行连接,但另一个服务器(15)即使挂了VPN也不能连接,只能通过内网进行连接。…

Java入门学习笔记一

一、Java语言环境搭建 1、JAVA语言的跨平台原理 1.1、什么是跨平台性? 跨平台就是说,同一个软件可以在不同的操作系统(例如:Windows、Linux、mad)上执行,而不需要对软件做任务处理。即通过Java语言编写的…

Ansible-playbook编译.yml脚本

1、playbook是什么? 在Ansible中,Playbook是用于配置、部署和管理被控节点的剧本。它由一个或多个play(角色)组成,每个play可以包含多个task(台词,动作)。使用Ansible的Playbook&am…

轻量封装WebGPU渲染系统示例<52>- Json数据描述材质、纹理等3D渲染场景信息

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/material/src/voxgpu/sample/DataDrivenScene3.ts 当前示例运行效果: ​​​​​​​ Json数据: {"renderer": {"mtplEnabled": true,"camera": {"eye&quo…

再怎么“顽固”的应用程序,也很难经得住以下的卸载方法

卸载程序是我们经常尝试的事情。这可能是因为我们不再需要程序,该程序可能会导致问题等。有时,如果你试图卸载某个程序,你会收到一个错误,但卸载没有发生。在这种情况下,你可以选择强制卸载。在本教程中,我将向你展示如何在Windows 10/11计算机上强制卸载程序。 ​控制面…

人工智能中的对比学习:算法原理与应用探索

导言 对比学习作为人工智能领域中的一种重要学习范式,在模型训练和应用中展现出独特的优势。然而,随着应用范围的扩大,对比学习也面临一些挑战。本文将深入探讨对比学习的算法原理、应用场景以及其在人工智能中的前景,并提出一些可…

浏览器的事件循环机制(Event loop)

事件循环 浏览器的进程模型 何为进程? 程序运行需要有它自己专属的内存空间,可以把这块内存空间简单的理解为进程 每个应用至少有一个进程,进程之间相互独立,即使要通信,也需要双方同意。 何为线程? …

芝麻杂草目标检测数据集VOC+YOLO格式近1300张

芝麻,芝麻科芝麻属的一年生草本植物,茎中空或具白色髓部;叶子为卵形;花朵单生或少数同生于腋下,呈白色;芝麻蒴果基部钝圆,顶部有尖,中间有棱;芝麻的种子通常呈扁平椭圆形…

k8s实操

问题一 开通了vpc 但是仍然无法ping 通 需要安全组放行icmp 问题二 实际安装过程中每个节点需要提前安装 conntrack socat 更新apt apt-get update安装需要的 apt install -y conntrack && apt install -y socat一定要先删除失败的 出现这个问题有可能是没有删除…

软件设计师——数据结构(二)

📑前言 本文主要是【数据结构】——软件设计师——数据结构的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 &#x1f304…

[AutoSar]基础部分 RTE 介绍

目录 关键词平台说明一、什么是RTE二、RTE的主要功能 关键词 嵌入式、C语言、autosar、EcuM、wakeup、flex 平台说明 项目ValueOSautosar OSautosar厂商vector芯片厂商TI编程语言C,C编译器HighTec (GCC) 一、什么是RTE RTE(Run-Time Environment&…