h264之多视点mvc编码及解码过程(JMVC平台举例)

        h264标准参考平台JMVC是针对MVC标准的,JMVC支持多视点编码、合流、多视点解码操作。可以利用JMVC生成h264 mvc码流和解码。

        JMVC的下载地址是:jvet / JMVC · GitLabH.264/AVC multi-view coding (MVC) extension JMVC reference softwareicon-default.png?t=O83Ahttps://vcgit.hhi.fraunhofer.de/jvet/jmvc        windows平台上JMVC用visual studio生成可执行程序。MVC编、解码过程中主要用到如下三个可执行文件,主要作用如下:

H264AVCEncoderLibTestStatic.exe 是编码MVC码流的可执行程序

MVCBitStreamAssemblerStatic.exe 是合并MVC各视点码流的工具

H264AVCDecoderLibTestStatic.exe 是解码合并后的码流,解码出各个视点的yuv。

        下载好的JMVC源代码中带有各个标准测试序列所需要的配置文件。目录是:

xxx/jmvc/JMVC/H264Extension/data

一、执行编码步骤

        因为手头上只有ballroom、exit、vassar这三个序列。这三个序列都是8视点场景。以ballroom序列为例,用该目录下的ballroom_qp32.cfg配置文件,来执行编码任务。

        跑编码任务时,ballroom_qp32.cfg文件需要根据本地电脑的测试序列所在路径修改三处地方:

InputFile   D:\\seq\\ballroom.yuv 
OutputFile .\qp32\output
ReconFile  .\qp32\recon

        解释一下InputFile后面的输入文件路径怎么设置。官方ballroom序列有8个视点,每个视点文件命名方式是ballroom_x.yuv。“x”代表视点编号,值为0~7。这里InputFile后边的文件名是ballroom.yuv。在JMVC编码器内部,会根据输入的视点总数,将ballroom.yuv,依次更改文件名为ballroom_0.yuv ~ ballroom_7.yuv,来从磁盘中读取文件。

        ballroom_qp32.cfg文件更改好后,就可以依次对各个视点的yuv序列进行编码。编码命令如下:

.\H264AVCEncoderLibTestStatic.exe -vf ../JMVC/H264Extension/data/ballroom_qp32.cfg 0
.\H264AVCEncoderLibTestStatic.exe -vf ../JMVC/H264Extension/data/ballroom_qp32.cfg 2
.\H264AVCEncoderLibTestStatic.exe -vf ../JMVC/H264Extension/data/ballroom_qp32.cfg 1
.\H264AVCEncoderLibTestStatic.exe -vf ../JMVC/H264Extension/data/ballroom_qp32.cfg 4
.\H264AVCEncoderLibTestStatic.exe -vf ../JMVC/H264Extension/data/ballroom_qp32.cfg 3
.\H264AVCEncoderLibTestStatic.exe -vf ../JMVC/H264Extension/data/ballroom_qp32.cfg 6
.\H264AVCEncoderLibTestStatic.exe -vf ../JMVC/H264Extension/data/ballroom_qp32.cfg 5
.\H264AVCEncoderLibTestStatic.exe -vf ../JMVC/H264Extension/data/ballroom_qp32.cfg 7

        对各个视点yuv的编码次序要按照ballroom_qp32.cfg配置文件,指定的视点参考关系来进行编码。这里使用配置文件默认的参考关系。

ViewOrder               0-2-1-4-3-6-5-7   # (Order in which view_ids are coded)

二、执行视点码流合并步骤

        利用MVCBitStreamAssemblerStatic.exe来将上述8个视点的码流进行合并,使用xxx/jmvc/JMVC/H264Extension/data目录下的assembler.cfg配置文件。需要修改配置文件如下:

OutputFile              ./qp32/ballroom.264
NumberOfViews           8
InputFile0              ./qp32/output_0.264 
InputFile1              ./qp32/output_2.264 
InputFile2              ./qp32/output_1.264 
InputFile3              ./qp32/output_4.264 
InputFile4              ./qp32/output_3.264 
InputFile5              ./qp32/output_6.264 
InputFile6              ./qp32/output_5.264 
InputFile7              ./qp32/output_7.264 

        修改完配置文件后,执行如下命令:

MVCBitStreamAssembler.exe -vf  assembler.cfg

         执行完上述命令后,目录./qp32下ballroom.264就是最终的8个视点的MVC码流文件。

三、解码MVC码流

使用H264AVCDecoderLibTestStatic.exe,不需要使用配置文件。执行如下命令就能解码出来各个视点的yuv。使用的码流文件是上一步骤合并出来的码流文件ballroom.h264

执行如下命令,设置各个视点通用的解码yuv名称dec_recon.yuv,视点数目是8个。

H264AVCDecoderLibTestStatic.exe ./qp32/ballroom.h264 ./qp32/dec_recon.yuv 8

执行完上述命令后,就会生成dec_recon_0.yuv ~ dec_recon_7.yuv,共8个yuv文件。

四、其他

  • 如果只想看MVC码流长啥样,本人已经将编码出来的码流文件上传到csdn。可以从https://download.csdn.net/download/Wu_qz/90232596下载

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

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

相关文章

Web前端ui框架

文章目录 Element简介 Ant Design vue简介关键特点: iview简介 Element 官网:https://element.eleme.cn/#/zh-CN/component/installation添加链接描述 简介 Elementui 一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库 Ant Design …

快手一面-面经

1. RPC和Http的区别? RPC(Remote Procedure Call,远程过程调用)和 HTTP(HyperText Transfer Protocol,超文本传输协议)是两种不同的通信机制,它们有不同的用途、工作原理和应用场景…

Linux之ARM(MX6U)裸机篇----9.GPIO中断实验

一,6ULL启动文件,包含中断偏移设置 /* ZERO-I.MX6UL/I.MX6ULL开发板启动文件,完成C环境初始化,C环境初始化完成以后跳转到C代码。*/.global _start /* 全局标号 */ _start:ldr pc, Reset_Handler /* 复位中断 */ ldr …

Flask返回浏览器无乱码方法

# -*- coding: utf-8 -*- from flask import Flask, request, jsonify, Response import os import json import re from datetime import datetime import logging import sys import crawling_web_knowledgeapp Flask(__name__)app.json.ensure_ascii False # 解决中文乱码…

【论文+源码】基于Spring和Spring MVC的汉服文化宣传网站

为了实现一个基于Spring和Spring MVC的汉服文化宣传网站,我们需要创建一个简单的Web应用程序来展示汉服文化和相关信息。这个系统将包括以下几个部分: 数据库表设计:定义文章、用户和评论的相关表。实体类:表示数据库中的数据。DAO层接口及MyBatis映射文件:用于与数据库交…

牛客网刷题 ——C语言初阶(2分支和循环-for)——打印菱形

1. 题目描述 用C语言在屏幕上输出以下图案: 2. 思路 我是先上手,先把上半部分打印出来,然后慢慢再来分析,下面这是我先把整个上半部分打印出来,因为空格不方便看是几个,这里先用&代替空格了 然后这里…

Maven 详细配置:Maven settings 配置文件的详细说明

Maven settings 配置文件是 Maven 环境的重要组成部分,它用于定义用户特定的配置信息和全局设置,例如本地仓库路径、远程仓库镜像、代理服务器以及认证信息等。settings 文件分为全局配置文件(settings.xml)和用户配置文件&#x…

[python3]xlrd不支持Excel xlsx文件类型

https://xlrd.readthedocs.io/en/latest/ xlrd is a library for reading data and formatting information from Excel files in the historical .xls format. 解决办法:指定支持的版本1.2.0,pip3 install xlrd1.20 pip3 install xlrd1.2.0 Looking …

STM32学习之MPU6050芯片 及 软件I2C读写MPU6050实验

MPU6050是一个6轴姿态传感器,可测量芯片自身X、Y、Z轴的加速度、角速度参数,可以通过这些数据融合,可进一步得到姿态角(或者叫做欧拉角),常应用于平衡车、飞行器等需要检测自身姿态的场景 一个IMU&#xf…

我用AI学Android Jetpack Compose之开篇

最近突发奇想,想学一下Jetpack Compose,打算用Ai学,学最新的技术应该要到官网学,不过Compose已经出来一段时间了,Ai肯定学过了,用Ai来学,应该问题不大,学习过程记录下来,…

前路漫漫,曙光在望 !

起始 从20年大一开始写作至今,转眼五年时光已经过去了,最开始在CSDN这个平台写博客也只是因为一次机缘巧合情况下得知写博客可以获取奖赏,所以那个时期开始疯狂在CSDN发文记录自己编程学习过程,但是至今也未从写作中获利一分哈…

【WPF】 数据绑定机制之INotifyPropertyChanged

INotifyPropertyChanged 是 WPF 中的一个接口,用于实现 数据绑定 中的 属性更改通知。它的主要作用是,当对象的某个属性值发生更改时,通知绑定到该属性的 UI 控件更新其显示内容。 以下是有关 INotifyPropertyChanged 的详细信息和实现方法&…

Netron可视化深度学习的模型框架,大大降低了大模型的学习门槛

深度学习是机器学习的一个子领域,灵感来源于人脑的神经网络。深度学习通过多层神经网络自动提取数据中的高级特征,能够处理复杂和大量的数据,尤其在图像、语音、自然语言处理等任务中表现出色。常见的深度学习模型: 卷积神经网络…

C++ 复习总结记录四

C 复习总结记录四 主要内容 1、构造函数其它要点 2、static 成员 3、友元 4、内部类 5、匿名对象 6、拷贝对象时编译器的优化 一 构造函数其它要点 1.1 构造函数体赋值 创建对象时,编译器调用构造函数,给对象中各个成员变量一个合适初始值 cl…

Robot---奇思妙想轮足机器人

1 背景 传统机器人有足式、轮式、履带式三种移动方式,每种移动方式都有各自的优缺点。轮式机器人依靠车轮在地面上移动,能源利用率高、移动速度快,但是仅以轮子与地面接触,缺乏越障能力和对复杂地形的适应能力,尤其面对…

设计模式——泛型单例类

游戏中很多管理类都需要写成单例类&#xff0c;每次重复把管理类设置为单例类很繁琐&#xff0c; 这里直接写一个泛型单例类作为模板父类&#xff0c;方便其他需要写成单例类的类直接继承设置为单例类&#xff1b; using UnityEngine;public class Singleton<T> : Mono…

用JAVA编写一个简单的小游戏

用Java语言编写一个简单的小游戏。这里是一个非常基础的猜数字小游戏的代码示例。在这个游戏中&#xff0c;程序会随机选择一个1到100之间的整数&#xff0c;玩家需要猜测这个数字是什么。每次猜测后&#xff0c;程序会告诉玩家他们猜的数字是太高了、太低了还是正确。 impor…

加速科技荣获“浙江省企业研究院”认定

近日&#xff0c;浙江省经济和信息化厅公布“2024年认定&#xff08;备案&#xff09;省级企业研发机构名单”。经过多轮严格评审和公示&#xff0c;加速科技荣获“省企业研究院”认定。这是加速科技继获国家级专精特新“小巨人”企业认定荣誉后的又一里程碑。 “浙江省企业研究…

MySQL使用navicat新增触发器

找到要新增触发器的表&#xff0c;然后点击设计&#xff0c;找到触发器标签。 根据实际需要&#xff0c;填写相关内容&#xff0c;操作完毕&#xff0c;点击保存按钮。 在右侧的预览界面&#xff0c;可以看到新生成的触发器脚本

性能测试05|JMeter:分布式、报告、并发数计算、性能监控

目录 一、JMeter分布式 1、应用场景 2、原理 3、分布式相关注意事项 4、分布式配置与运行 二、JMeter报告 1、聚合报告 2、HTML报告 三、并发用户数&#xff08;线程数&#xff09;计算 四、JMeter下载第三方插件 五、性能监控 1、Concurrency Thread Group 线程组…