Windows11编译VTM源码生成Visual Studio 工程

news2024/12/23 18:13:55

VTM介绍

VTM作为H266/VVC标准的官方参考软件,一直用作H266/VVC标准的研究和迭代。关于H2666/VVC标准的介绍、代码、提案、文档等,可以参考H266/VVC编码标准介绍。
官方代码地址: https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM(最新)
git 镜像地址: https://github.com/yanceyxin/VVCSoftware_VTM (非最新)

H266/VVC标准化历程:

时间事件
2015年10月VCEG和MPEG再次组建联合视频探索小组JVET,开发JEM参考平台
2015年10月-2017年7月针对SDR,多个提案,JEM 7个版本不断演进
2016年10月-2017年10月支持AR和VR,研究了360度全景编码技术,简历360Lib参考软件平台
2017年10月共同发布新一代视频编码标准的技术征求书,应用到4K、16K,甚至HDR、360度全景视频、屏幕内容编码
2018年4月32家单位提交23份提案,最佳性能比H265的参考软件HM提升40%以上的编码效率,JVET将下一代标准命名VVC,建立第一版VV测试模型VTM-1.0
2018年-2020年7月JVET召开10次会议讨论6000多份技术提案,VTM性能得到大幅度提升
2019年7月JVET发布委员会草案CD,确定VVC的主体编码框架和编码工具
2019年10月JVET发布了国际标准草案DIS,标准进入关键阶段
2020年7月1日19次JVET会议确定VVC第一版本,ITU-T命名为H266,ISO/IEC批准VVC成为FDIS,H266/VVC标准正式形成

目前中国的公司参与制定标准越来越多,在国际视频标准化的舞台上扮演着越来越重要的角色。
在这里插入图片描述

编译过程

源码下载:

git clone git@github.com:yanceyxin/VVCSoftware_VTM.git

用VScode打开源码:
打开README,里面有关于编译相关的说明。可以看懂编译依赖cmake工具链。
在这里插入图片描述
cmake安装:
安装cmake有两种方法,一种直接官方下载安装,另外一种利用PowerShell命令行安装。

官网下载:
在这里插入图片描述
PowerShell命令行:winget install cmake

安装完cmake之后,在PowerShell里输入cmake命令,出现如下截图,则表示安装成功。
在这里插入图片描述
在VTM源码目录新建build文件:
安装README中编译说明,先新建build目录,方便后期放置编译生成文件。

mkdir build 

camke生成sln文件:
通过cmake生成sln命令,即可在build目录里生成sln文件。

命令:

 cmake -G "Visual Studio 17 2022" -S ./ -B ./build

出现如下截图,表示生成成功。
在这里插入图片描述
至此,在build目录里已经出现NextSoftware.sln文件,用Visual Studio 2022打开进行编译。
在这里插入图片描述
Visual Studio 2022编译VTM:
点击“生成(B)” ---- “生成解决方案(B)”,之后等待一段时间。
在这里插入图片描述
输出窗口出现生成:16 成功, 0 失败, 0 最新, 1 已跳过,则表示VTM编译成功。
在这里插入图片描述
查看编译生成文件:可执行程序和库文件。
可执行程序: 在\bin\vs17\msvc-19.38\x86_64\debug目录下生成几个可执行程序和对应的pdb。
在这里插入图片描述
库文件: 在\lib\vs17\msvc-19.38\x86_64\debug目录下生成几个lib库文件和对应的pdb文件。
在这里插入图片描述
至此,VTM就完成了生成Visual Studio 工程,可以进行下一步的源码学习和调试分析。

参考

  1. H266/VVC编码标准介绍
  2. https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM

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

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

相关文章

人工智能对网络安全的影响

技术的快速发展带来了不断增长的威胁环境,网络犯罪分子和恶意行为者利用我们互联世界中的漏洞。在这个数字时代,数据泄露和网络攻击呈上升趋势,仅靠传统的安全措施已经不够了。人工智能 (AI) 的进步彻底改变了网络安全…

JVM启动流程(JDK8)

JVM启动流程(JDK8) JVM的启动入口是位于jdk/src/share/bin/java.c的JLI_Launch函数,其定义如下: int JLI_Launch(int argc, char ** argv, /* main argc, argc */int jargc, const char** jargv, /* java args */int appclassc, const char** appclass…

React-Native环境搭建(IOS)

系列文章目录 React-Native环境搭建(IOS) 目录 系列文章目录前言一、IOS环境搭建前置说明二、环境搭建步骤1.Homebrew安装2.安装Xcode3.Node4.watchman5.CocoaPods 三、项目启动1.初始化项目2.项目启动 总结 前言 React-Native开发环境的搭建&#xff…

Educational Codeforces Round 160 (Rated for Div. 2) A~C

目录 A. Rating Increase 题目分析: B. Swap and Delete 题目分析: C. Game with Multiset 题目分析: A. Rating Increase 题目分析: 因为首部不为零,故我们从第二个字符开始遍历,如果遇到第一个不为‘0’的字符&#xff0…

Jupyter Notebook修改默认工作目录

1、参考修改Jupyter Notebook的默认工作目录_jupyter文件路径-CSDN博客修改配置文件 2.在上述博客内容的基础上,这里不是删除【%USERPROFILE%】而是把这个地方替换为所要设置的工作目录路径, 3.【起始位置】也可以更改为所要设置的工作目录路径&#x…

Unity中的导航系统

NavMesh(导航网格)是3D游戏世界中用于实现动态物体自动寻路的一种技术,将游戏中复杂的结构组织关系简化为带有一定信息的网格,在这些网格的基础上通过一系列的计算来实现自动寻路。导航时,只需要给导航物体挂载导航组建,导航物体便…

树莓派,opencv,Picamera2利用舵机云台追踪特定颜色对象(PID控制)

一、需要准备的硬件 Raspiberry 4b两个SG90 180度舵机(注意舵机的角度,最好是180度且带限位的,切勿选360度舵机)二自由度舵机云台(如下图)Raspiberry CSI 摄像头 组装后的效果: 二、项目目标…

uni-app ucharts中饼图与圆环图区别

项目情况: uni-app的用于移动端H5项目,包使用uni_modules目录存放。 图表引用ucharts中的echarts配置的组件方式 区别1 饼图与圆环图在echarts使用的配置都是pie类型。但是配置raduis使用: radius: [40%, 70%] 区别2 组件type指明&#xf…

nodejs连接mongodb报错SyntaxError: Unexpected token .

nodejs连接mongodb报错SyntaxError: Unexpected token 如下图 经过排查,原因是npm默认安装的mongodb插件是最新版6.3.0 ,而mongodb数据库版本是4.0.0 ,两者版本不同导致nodejs报错。 解决方法是npm卸载新版本的mongodb插件,再安…

安卓加载项目gradle下载慢

更换镜像源 distributionUrlhttps://mirrors.cloud.tencent.com/gradle//gradle-5.6.4-all.zip

个人财务工具、密钥管理平台、在线会计软件、稍后阅读方案 | 开源专题 No.51

gethomepage/homepage Stars: 10.1k License: GPL-3.0 这个项目是一个现代化、完全静态的、快速且安全的应用程序仪表盘,具有超过 100 种服务和多语言翻译的集成。 快速:网站在构建时以静态方式生成,加载时间飞快。安全:所有对后…

万德高科携手航天科技AIRIOT打造智慧能碳管理平台, 助力碳达峰碳中和

“十四五”时期,我国生态文明建设进入了以降碳为重点战略方向、推动减污降碳协同增效、促进经济社会发展全面绿色转型、实现生态环境质量改善由量变到质变的关键时期。“实施数字化赋能行动”,聚焦能源管理、节能降碳、低碳能力等典型场景,推…

RAG实战案例:如何基于 LangChain 实现智能检索生成系统

在人工智能领域,如何有效结合大型语言模型(LLM)的常识性知识与特定的专有数据,一直是业界探索的热点。微调(Fine-tuning)与检索增强生成(Retrieval-Augmented Generation,简称RAG&am…

5 分钟内搭建一个免费问答机器人:Milvus + LangChain

搭建一个好用、便宜又准确的问答机器人需要多长时间? 答案是 5 分钟。只需借助开源的 RAG 技术栈、LangChain 以及好用的向量数据库 Milvus。必须要强调的是,该问答机器人的成本很低,因为我们在召回、评估和开发迭代的过程中不需要调用大语言…

[SWPUCTF 2021 新生赛]Do_you_know_http已

打开环境 它说用WLLM浏览器打开,使用BP抓包,发送到重发器 修改User-Agent 下一步,访问a.php 这儿他说添加一个本地地址,它给了一个183.224.40.160,我用了发现没用,然后重新添加一个地址:X-Forwa…

3. 行为模式 - 迭代器模式

亦称: Iterator 意图 迭代器模式是一种行为设计模式, 让你能在不暴露集合底层表现形式 (列表、 栈和树等) 的情况下遍历集合中所有的元素。 问题 集合是编程中最常使用的数据类型之一。 尽管如此, 集合只是一组对象的…

将qt程序注册成服务

将qt程序注册成服务 1、qt服务模块管理下载 qt-solutions 2、QtService项目 2.1、将qtservice拷贝到项目代码路径 2.2、实现服务管理 PS&#xff1a;响应服务的启停 CustomService.h #include <QCoreApplication> #include "qtservice.h"class CustomSer…

React网页转换为pdf并下载|使用jspdf html2canvas

checkout 分支后突然报错&#xff0c;提示&#xff1a; Cant resolve jspdf in ... Cant resolve html2canvas in ... 解决方法很简单&#xff0c;重新 yarn install 就好了&#xff0c;至于为什么&#xff0c;我暂时也不知道&#xff0c;总之解决了。 思路来源&#xff1a; 先…

opencv静态链接error LNK2019

opencv 3.1.0 静态库&#xff0c;包括以下文件 只链接opencv_world310d.lib&#xff0c;报错 opencv_world310d.lib(matrix.obj) : error LNK2019: 无法解析的外部符号 _ippicvsFlip_16u_I8&#xff0c;该符号在函数 "enum IppStatus (__stdcall*__cdecl cv::getFlipFu…

安全狗云原生安全-云甲·云原生容器安全管理系统

随着云计算的快速发展&#xff0c;容器技术逐渐成为主流。然而&#xff0c;随着容器的普及&#xff0c;安全问题也日益突出。为了解决这一问题&#xff0c;安全狗推出了云原生容器安全管理系统——云甲。 云甲是安全狗云原生安全的重要组成部分&#xff0c;它采用了先进的云原生…