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.mzph.cn/news/235523.shtml

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

相关文章

Flink系列之:JDBC SQL 连接器

Flink系列之:JDBC SQL 连接器 一、JDBC SQL 连接器二、依赖三、创建 JDBC 表四、连接器参数五、键处理六、分区扫描七、Lookup Cache八、幂等写入九、JDBC Catalog十、JDBC Catalog 的使用十一、JDBC Catalog for PostgreSQL十二、JDBC Catalog for MySQL十三、数据…

【GoLang】哪些大公司正在使用Go语言

你见过哪些令你膛目结舌的代码技巧? 文章目录 你见过哪些令你膛目结舌的代码技巧?前言:哪些大公司正在使用Go语言谷歌(Google):脸书(Facebook):亚马逊(Amazon…

字符串函数内存函数(从零到一)【C语言】

长度不受限制的字符串函数:strcpy,strcat,strcmp 长度受限制的字符串函数:strncpy,strncat,strncmp strlen strlen函数是库函数中我们最常使用的函数,它可以求出字符串的长度(不包含‘\0’) 使用方法 通过前面对strlen函数的模拟实现我们知…

2019QWB growpjs

第一次知道原来各种map也是申请的一段连续的内存空间来存储,所以必要的时候可以通过固定偏移来从一种map获取到另一种map。但是要注意这里的获取的时候要保证对象不被释放。 这也是做的第一道涉及优化器的题目,收货很多 class Memory{constructor(){th…

服务器直接配置免密登录

要实现CentOS 7.6上的Docker容器中的Jenkins免密登录到CentOS 6.5服务器(前提是ssh版本都要7以上),你需要在Jenkins容器内生成SSH密钥,并将公钥添加到CentOS 6.5服务器上。以下是详细步骤: 1. 在Jenkins容器中生成SSH…

npm run build Last few GCs

npm run build Last few GCs 这是由于webpack执行时造成的内存溢出。 <--- Last few GCs --->[3906:0x3ce6a70] 165833 ms: Mark-sweep 1374.0 (1425.0) -> 1373.7 (1425.5) MB, 789.1 / 0.0 ms (average mu 0.108, current mu 0.007) allocation failure scaven…

深度学习模型压缩方法:剪枝方法分类介绍

本文将介绍深度学习模型压缩方法中的剪枝,内容从剪枝简介、剪枝步骤、结构化剪枝与非结构化剪枝、静态剪枝与动态剪枝、硬剪枝与软剪枝等五个部分展开。 一、剪枝简介 在介绍剪枝之前,首先介绍过参数化这个概念,过参数化主要是指在训练阶段,在数学上需要进行大量的微分求解…

二维码智慧门牌管理系统:实现数据通信安全

文章目录 前言一、传输隧道加密技术二、传输数据加密技术三、数据接入鉴权技术 前言 随着信息技术的蓬勃发展&#xff0c;智慧门牌管理系统已成为现代商业和家庭重要的一部分。然而&#xff0c;系统普及的同时也带来了数据通信安全的突出问题。为了解决这一挑战&#xff0c;二…

Netty Review - StringEncoder字符串编码器和StringDecoder 解码器的使用与源码解读

文章目录 概念概述StringEncoderStringDecoder Code源码分析StringEncoderStringDecoder 小结 概念 概述 Netty是一个高性能的网络应用程序框架&#xff0c;它提供了丰富的功能&#xff0c;包括编解码器&#xff0c;这些编解码器用于在网络中发送和接收数据时进行数据的编码和…

SOME/IP SubscriberEventGroup

1 SOME/IP SubscriberEventGroup SubscriberEventGroup是SOME/IP中的一种服务发现和注册的消息类型,它用于让服务使用者订阅服务提供者的事件组。 事件组是一种将服务的方法和字段分组的方式,它可以让服务使用者只接收感兴趣的数据,而不是所有的数据。 SubscriberEventGrou…

nodejs+vue+微信小程序+python+PHP柚子校园影院系统-计算机毕业设计推荐

柚子校园影院综合网络空间开发设计要求。目的是将系统传统管理方式转换为在网上管理&#xff0c;完成信息管理的方便快捷、安全性高、交易规范做了保障&#xff0c;目标明确。柚子校园影院可以将功能划分为管理员功能和用户功能。  而开发本系统&#xff0c;又能够提高系统整体…

在 Windows 搭建 SVN 服务

近公司给配了台新电脑&#xff0c;配置挺主流的&#xff0c;但是不舍得抛弃自己的旧电脑&#xff08;原配嘛&#xff0c;这叫贪新不舍旧&#xff09;&#xff0c;于是打算在新电脑上只作开发环境&#xff0c;然后旧电脑作为版本库&#xff0c;这样保存版本的时候可以直接上传到…

es、MySQL 深度分页问题

文章目录 es 深度分页MySQL 深度分页 es 深度分页 es 深度分页问题&#xff0c;有点忘记了&#xff0c;这里记录一下 当索引库中有10w条数据&#xff0c;比如是商品数据&#xff1b;用户就是要查在1w到后10条数据&#xff0c;怎么查询。 es查询是从各个分片中取出前1w到后10条数…

【Mysql basic commands/query: how to update the message/record data of each row】

mysql common commands I) desc, insert and update I) desc, insert and update desc describe, insert into subject values(null,“Geometry Politics”, 99); mysql> select * from subject; ------------------------------------------------- | subject_id | subj…

LeetCode 19 删除链表的倒数第 N 个结点

题目描述 删除链表的倒数第 N 个结点 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5]示例 2&#xff1a; 输入&#xff1a;head [1], n 1…

列举mfc140u.dll丢失的解决方法,常见的mfc140u.dll问题

在使用电脑的过程中&#xff0c;有时会遇到mfc140u.dll文件丢失的问题&#xff0c;导致一些应用程序无法正常启动。本文将介绍mfc140u.dll丢失的常见原因&#xff0c;并提供相应的解决办法。同时&#xff0c;还会列举一些与mfc140u.dll丢失相关的常见问题和解答。 第一部分&…

Mybatis Mapper XML文件-查询(select)

MyBatis真正的力量在于映射语句&#xff08;Mapped Statements&#xff09;。这是魔力发生的地方。尽管拥有强大的功能&#xff0c;Mapper XML文件相对来说比较简单。如果将其与等效的JDBC代码进行比较&#xff0c;您会立即看到代码减少了95%。MyBatis专注于SQL的编写&#xff…

SVN客户端部署-win7操作系统

SVN客户端官网&#xff1a;https://tortoisesvn.net/downloads.zh.html 按照操作系统选择&#xff0c;我的是64位&#xff0c;双击运行 下一步&#xff08;next&#xff09; 下一步 点击x处&#xff0c;总共4个选项&#xff0c;修改安装路径 will be installed on local hard …

Linux id命令教程:如何有效地获取用户和组信息(附案例详解和注意事项)

Linux id命令介绍 id命令是Linux中的一个内置命令&#xff0c;用于显示特定用户或当前用户的用户和组信息。这个命令可以帮助你找到用户ID (UID)&#xff0c;组ID (GID)&#xff0c;以及用户所属的所有组。 Linux id命令适用的Linux版本 id命令在所有主流的Linux发行版中都是…

PHP函数里面写JQ CSS HTML的写法案例

/*** description: 返回顶部* param {*}* return {*}*/public function gotop() {global $_L, $COMCFG;$plugin $COMCFG[plugin][gotop] ?: [];$plugin array_merge(["right" > 30,"bottom" > 80,"color" > "rgba(255, 25…