摘要:
Atlas 推理系列产品(Ascend 310P处理器)上,单个Device上的通道号不能超出最大的通道号范围。用户在使用VPC功能或VDEC功能(内部会使用VPC功能)时,都会占用VPC通道号,为防止VPC功能与VDEC功能的通道号冲突, 用户在使用VPC功能时,通道号的取值范围为[0,255]; 阅读全文
摘要:
本文采用的截取方式不对视频进行解码,直接在AVPacket级对视频进行截取。 1. 代码 #include <string> #include <stdio.h> extern "C" { #include "libavformat/avformat.h" #include "libavcodec/ 阅读全文
摘要:
1. 解码器报报CUDA_ERROR_NO_DEVICE 驱动问题,确保驱动与CUDA版本兼容。CUDA是区分操作系统的。 阅读全文
摘要:
1. aclrtSetDevice 使用不当导致内存泄露问题 对于Atlas 推理系列产品(Ascend 310P处理器),调用本接口会隐式创建默认Context,在标准形态下,该默认Context中包含2个Stream,1个默认Stream和1个执行内部同步的Stream。 参考网页:API参考- 阅读全文
摘要:
需要的资源 模型 训练模型时用的500~1000张图片 模型这里用的是onnx模型。 预处理 本文参考的例子是TensorRT的sampleSSD项目。 预处理需要将前述500张图片转成生成校准文件时需要的数据读取形式。 首先满足预处理代码中的convert命令,安装imagemagick apt- 阅读全文
摘要:
结构体指定初始化应该是C和C++都有的一个语法。这个语法在ffmpeg中被大量使用。 1. 应用场景 比如ffmpeg中 AVInputFormat ff_mov_demuxer = { .name = "mov,mp4,m4a,3gp,3g2,mj2", .long_name = NULL_IF_ 阅读全文
摘要:
1. 支持性 进行转码前,需要确认所用显卡是否支持源格式的解码和目标格式的编码。 英伟达显卡编解码的格式支持性查看网址: Video Encode and Decode GPU Support Matrix 2. ffmpeg转码命令: ./ffmpeg -vsync 0 -hwaccel cuvi 阅读全文
摘要:
C++11标准库 chrono 中包含了获取系统当前时间的工具。 直接基于 chrono 获取,一般获取ms级的时间戳 #include <chrono> long long get_cur_time(){ // 获取操作系统当前时间点(精确到微秒) chrono::time_point<chron 阅读全文
摘要:
安装驱动后,我们可以用 nvidia-smi 命令来获取显卡信息。 nvidia-smi 的一个比较好的博客 nvidia-smi详解 nvidia-smi Tue Sep 27 11:08:37 2022 + + | NVIDIA-SMI 515.65.01 Driver Version: 515 阅读全文
摘要:
nvjpeg是英伟达提供的一个可以将显存中的数据直接压缩成jpg图片的sdk,包含在cuda套件中。 官方接口文档 https://docs.nvidia.com/cuda/nvjpeg/index.html#nvjpeg-encode-image 一个写得挺好的博客 nvJPEG压缩图像, 本文代 阅读全文
摘要:
ffmpeg的nvdec解码结果数据格式为 AV_PIX_FMT_CUDA,实际使用中后续接算法需要转为RGB。算法跑在显卡上,解码也在显卡上,所以转换也定为直接在显卡上进行。 关于ffmpeg的nvdec解码的网上博客写的比较多,个人参考的一个比较好的 https://blog.csdn.net/ 阅读全文
摘要:
整理浏览器标签 看到之前收藏的一个 do{ } while(0) 使用的好处,今天再看感觉这样用依然很妙。 使用 do{ } while(0) 主要目的其实是为了利用循环里面可以break ,很优雅的实现跳过一些代码的执行 示例: do{ 语句1; 语句2; if(条件){ 语句3; break; 阅读全文
摘要:
之前安装的goland老是在单步调试的时候卡死,听人说新版的已经解决了这个问题,于是想着更新一把,然后就遇上了这么糟心的问题。 先是在删除的时候,没有选择清楚原版本的一些东西,感觉这些有可能有影响。但是不确定,因为我也没有重复实验。 直接从启动闪退开始说。 先说我新安装的版本是goland-2021 阅读全文
摘要:
tushare 是一个开源的金融数据库 注册地址 https://tushare.pro/register?reg=285215 这里分享部分数据的sql结构文件,文件放到了gitee上: https://gitee.com/betterwgo/db_tushare.git 目前包含以下数据的sql 阅读全文
摘要:
部署Eureka的时候出现一个很莫名其妙的问题,自定义端口后会一直报下面这个错误,但是用默认的8761端口又没有问题 2021-12-07 15:59:45.057 ERROR 20599 [get_localhost-9] c.n.e.cluster.ReplicationTaskProcesso 阅读全文
摘要:
本文参考此博客: Docker快速搭建openvpn带web管理 使用docker-compose快速搭建openvpn,项目基于https://github.com/PengtaoNing/openvpn-web-ui 第一步, 安装docker-compose和docker,启动docker y 阅读全文
摘要:
数据库索引创建的原则: (1)选择唯一性索引:唯一性索引一般基于Hash算法实现,可以快速、唯一地定位某条数据 (2)为经常需要分组、排序和联合的字段建立索引 (3)为常作为查询条件的字段建立索引 (4)限制索引的数量:索引越多,数据更新表越慢,因为在数据更新时会不断计算和添加索引 (5)尽量使用数 阅读全文
摘要:
享元模式 通过对象的复用来减少对象创建的次数和数量,以减少系统内存的使用和降低系统的负载。在系统需要一个对象时,享元模式首先在系统中查找并尝试重用现有的对象,如果未找到匹配的对象,则创建新对象并将其缓存在系统中以便下次使用。 (1)定义Memory public class Memory{ priv 阅读全文
摘要:
解释器模式给定一种语言,并定义该语言的语法表示,然后设计一个解析器来解释语言的语法,这种模式长用于SQL解析、符号处理引擎等。 正则表达式解释器: (1)定义Expression public interface Expression { public void interpret(Context 阅读全文
摘要:
中介者模式 对象和对象直接不直接交互,而是通过一个中介者来实现对象之间的交互。使原有对象之间的关系变得松散,且可以通过定义不同的中介者来改变他们之间的交互。 (1)定义房东 public class Landlord{ private final static Log logger = LogFac 阅读全文
摘要:
访问者模式将数据和对数据的操作分离开来,使其在不改变数据结构的前提下动态添加作用于这些元素上的操作。它将数据结构的定义和数据操作的定义分离开来,符合“单一职责”原则。访问者模式通过定义不同的访问者实现对数据的不同操作,因此在需要给数据添加新的操作时只需为其定义一个新的访问者即可。 适用于数据结构稳定 阅读全文
摘要:
备忘录模式 将当前对象的内部状态保存到备忘录中,以便在需要时能将改对象的状态恢复到原先保存的状态。 (1)定义备忘录 public class Memento{ private String value; public Memento(String value){ this.value = valu 阅读全文
摘要:
命令模式将命令调用者与命令执行者解耦,有效降低系统的耦合度。同时,由于命令调用者和命令执行者进行了解耦,所以增加和删除命令变得非常方便。 (1)定义Command接口 public interface Command{ public void exe(String command); } (2)定义 阅读全文
摘要:
责任链模式是一种非常有趣的模式。 责任链模式用于避免请求发送者与多个请求处理者耦合在一起,让所有请求的处理者持有下一格对象的引用,从而将请求串联成一条链,在有请求发生时,可将请求沿着这条链传递,直到遇到该对象的处理器。 (1)定义处理接口 public interface Handler{ void 阅读全文
摘要:
迭代器模式提供了顺序访问集合对象中的各种元素,而不暴露该对象的内部结构的方法。 (1)定义集合 public interface Collection{ public Iterator iterator(); public Object get(int i); public boolean add( 阅读全文
摘要:
又叫发布-订阅者模式,或者模型-视图模式。 在被观察者的状态发生变化时,系统基于事件驱动理论将其状态通知到订阅其状态的观察者对象中,以完成状态的修改和事件传播。 (1)定义抽象主题 public abstract class Subject{ protected List<Observer> obs 阅读全文
摘要:
模板方法模式定义了一个算法框架,并通过继承的方式将算法的实现延迟到子类中,使得子类可以在不改变算法框架及流程的前提下重新定义改算法在某些环节的实现。 (1)定义模板类 public abstract class AbstractTemplate{ private final static Log l 阅读全文
摘要:
状态模式指给对象定义不同的状态,并为不同的状态定义不通的行为,在对象的状态发生变换时自动切换状态行为。 状态模式把受环境改变的对象行为包装在不同的对象里,用于让一个对象在其内部状态改变时,行为也随之改变。 (1)定义抽象状态 public abstract class AbstractState{ 阅读全文
摘要:
策略模式为同一个行为定义了不同的策略,并为每种策略都实现了不同的方法。在用户使用时,系统根据不同的策略自动切换不同的方法来实现策略的改变。同一个策略下的不同方法是对同一功能的不同实现,因此在使用时可以相互替换而不影响用户的使用。 (1)定义策略模式接口 public interface Travel 阅读全文
摘要:
桥接模式通过将抽象与实现解耦,使二者可以根据需求独立变化。 桥接模式主要用于解决在需求多变的情况下使用继承造成类爆炸的问题。 (1)定义接口 public interface Driver{ void executeSQL(); } (2)定义接口实现类 public class MysqlDriv 阅读全文
摘要:
外观模式将多个子系统及其之间的复杂关系和调用流程封装到一个统一的接口或类中以对外提供服务。 示例: (1)定义子系统 public class DashBoard{ private final static Log logger = LogFactory.getLog(this.getClass() 阅读全文
摘要:
代理模式指为对象提供一种通过代理的方式来访问并控制该对象行为的方法。在客户端不适合或者不能够直接引用一个对象时,可以通过该对象的代理对象来实现对该对象的访问。 (1)定义原类 public interface Company{ void findWorker(String title); } pub 阅读全文
摘要:
装饰者模式指在无须改变原有类及类的关系的情况下,动态扩展一个类的功能。它通过装饰者来包裹真实的对象,并动态地向对象添加或者撤销功能。 (1)定义Sourceable接口 public interface Sourceable{ public void createComputer(); } (2)定 阅读全文
摘要:
适配器模式适合用来解决不同系统之间的对接问题。 适配器模式通过定义一个适配器类作为两个不兼容的接口之间的桥梁,将一个类的接口转换成用户期望的另一个接口,使得两个或多个原本不兼容的接口可以基于适配器类一起工作。 1. 类适配器模式 在不改变原有接口或类结构的情况下扩展类的功能以适配不同的接口时,可以使 阅读全文
摘要:
组合模式又叫部分整体模式(个人觉得叫部分整体模式更直观)。是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。 文字说的啥我也没懂,看示例代码吧,代码比较容易懂: (1)定义TreeNode 阅读全文
摘要:
原型模式以当前对象为原型(蓝本)来创建另一个新的对象,而无需知道创建的细节。 · 浅复制: 对象的基本数据类型的变量值会被重新复制和创建,而引用数据类型仍指向原对象的引用。也就是说,浅复制不复制对象的引用类型数据。 · 深复制:不论是基本数据类型还是引用数据类型,都会被重新复制和创建 (1)浅复制 阅读全文
摘要:
建造者模式主要解决软件系统中复杂对象的创建问题,比如有些复杂对象的创建需要通过各部分的子对象用一定的算法构成,在需求变化时这些复杂对象将面临很大的改变,这十分不利于系统的稳定。但是,使用建造者模式能将他们各部分的算法包装起来,在需求变化后只需调整各个算法的组合方式和顺序,能极大提高系统的稳定性。建造 阅读全文
摘要:
单例模式是保证系统实例唯一性的重要手段。单例模式首先通过将类的实例化方法私有化来防止程序通过其他方式创建该类的实例,然后通过提供一个全局唯一获取该类实例的方法帮助用户获取类的实例。 单例模式的设计保证了一个类在整个系统中同一时刻只有一个实例存在,主要被用于一个全局类的对象在多个地方使用并且对象的状态 阅读全文
摘要:
工厂模式针对单个维度进行分类,抽象工厂模式针对多个维度进行分类。 示例 (1)第1类产品接口及实现类的定义 public interface Phone{ String call(); } public class PhoneApple implements Phone{ @Override pub 阅读全文
摘要:
工厂模式,个人理解主要是用来管理复杂对象的创建的 示例: 具体实现: (1)接口定义 public interface Phone{ String brand(); } (2)实现类 public class Iphone implements Phone{ @Override public Str 阅读全文