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

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

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.lryc.cn/news/265245.html

相关文章:

  • [数据结构进阶 C++] 二叉搜索树(BinarySearchTree)的模拟实现
  • PostGIS学习教程十四:更多的空间连接
  • 【爬虫软件】孔夫子二手书采集
  • P8736 [蓝桥杯 2020 国 B] 游园安排
  • 初识Docker-什么是docker
  • maven的pom.xml设置本地仓库
  • Qt获取屏幕DPI缩放比
  • Spring MVC控制层框架
  • vmware安装银河麒麟V10高级服务器操作系统
  • 掌握Jenknis基础概念
  • AWS 知识二:AWS同一个VPC下的ubuntu实例通过ldapsearch命令查询目录用户信息
  • Ubuntu 常用命令之 fdisk 命令用法介绍
  • 论文中公式怎么降重 papergpt
  • 27. 过滤器
  • 做一个wiki页面是体验HTML语义的好方法
  • 金融CRM有用吗?金融行业CRM有哪些功能
  • @XmlAccessorType+@XmlElement完美解决Java类到XML映射问题
  • 软件渗透测试有哪些测试流程?权威安全测试报告的重要性
  • 安防视频融合云平台/智慧监控平台EasyCVR如何添加验证码调用接口?
  • 浏览器输入一个url,它的解析过程
  • 第29节: Vue3 列表渲染
  • CloudPulse:一款针对AWS云环境的SSL证书搜索与分析引擎
  • 【网络安全】学习Web安全必须知道的一本书
  • 千帆 AppBuilder 初体验,不仅解决解决了我筛选简历的痛苦,更是让提效10倍!
  • Ubuntu 常用命令之 cal 命令用法介绍
  • 项目中webpack优化配置(1)
  • 【Qt之Quick模块】5. QML基本类型及示例用法
  • MySQL运维实战(1.2)安装部署:使用二进制安装部署
  • ChatGPT一周年:开源语言大模型的冲击
  • C++ Qt开发:Charts绘图组件概述