技术
strikedragon
这个作者很懒,什么都没留下…
展开
-
SAD SATD的区别及应用
Q:什么是SAD,SAE,SATD,SSD,SSE,MAD,MAE,MSD,MSE?A:SAD(Sum of Absolute Difference)=SAE(Sum of Absolute Error)即绝对误差和SATD(Sum of Absolute Transformed Difference)即hadamard变换后再绝对值求和SSD(Sum of Squared Difference)=SSE(Sum of Squared Error)即差值的平方和MAD(Mean Absolu原创 2020-07-20 11:15:55 · 1127 阅读 · 0 评论 -
ffmeg 截取视频帧
按帧数截取从头截取 (前30帧)ffmpeg -s 1920x1080 -i input.yuv -c:v rawvideo -filter:v select="gt(n\, -1)" -vframes 30 out30.yuvffmpeg -s 1920x1080 -i input.yuv -c:v rawvideo -filter:v select="between(n\, 0\, 29)" out30.yuvffmpeg -r 1 -ss 0 -i input.yuv -vcodec.转载 2020-07-16 19:12:19 · 612 阅读 · 0 评论 -
Python Flask Web 框架入门
https://blog.csdn.net/sinat_38682860/article/details/82354342转载 2020-06-16 15:51:31 · 145 阅读 · 0 评论 -
VIM 快捷键总结
1. 撤销:u 恢复撤销:Ctrl + r2.跳转到行尾 $,跳转到行首 0原创 2018-11-07 14:20:47 · 102 阅读 · 0 评论 -
Hierarchical B-Frames or B-Pyramid 检测
http://www.ramugedia.com/hierarchical-b-frames-or-b-pyramidHierarchical B-Frames or B-PyramidWhat’s Hierarchical B-Frame Mode or B-pyramid (notice that in my opinion B-pyramid is a bad term)?...转载 2018-11-15 10:43:16 · 725 阅读 · 0 评论 -
多线程加锁打印文件
1.添加头文件 #include <mutex> 2.对IO加锁static std::mutex io_mutex;std::lock_guard<std::mutex> lk(io_mutex);3.打印文件 FILE *fp = fopen("test", "a"); std::fprintf(fp,"xx",xx );fclose(fp...原创 2018-11-23 15:22:16 · 406 阅读 · 0 评论 -
Linux下安装Perl模块(含CPAN方法)
对于Linux中的Perl模块,由两种安装方式:手动和自动。对于大多数根红苗正来自CPAN的模块,我们都可以通过自动安装的方式进行安装,方便易掌握。安装CPANRHEL,CentOS等发行版: $ sudo yum -y install perl-CPANUbuntu,Debian等发行版: $ sudo apt-get install perl-modules使用CPAN安装模...转载 2018-12-04 12:27:19 · 7044 阅读 · 0 评论 -
x265码率控制算法
1. 常用码率控制算法A. CQP 恒定QP编码常用于新增编码工具验证和快速算法验证。开启CQP模式l --losslessl --qp INB. CRF恒定码率系数保持视频恒定质量l CRFl CRF + VBV开启CRF--crf IN(qp)开启CRF + VBV--vbv-bufsize IN ...转载 2018-12-08 18:12:19 · 1285 阅读 · 0 评论 -
C++ auto 用法
一、静态类型,动态类型和类型推导 在编程语言分类中,C/C++C常常被认为是静态类型的语言。而有的编程语言则号称是“动态类型”的,比如python。通常情况下,“静”和“动”的区别是非常直观的。我们看看下面这段简单的python代码: name=‘world\n’ print 'hello, ' %name 这段代码中python中的一个hello...转载 2018-12-12 20:28:23 · 6179 阅读 · 0 评论 -
边缘检测算法
边缘是图像中像素值发生剧烈变化而不连续的结果,它存在于目标与背景、目标与目标、区域与区域之间。边缘检测是图像基于边界分割的第一步。由图像灰度的特点,可将边缘类型分为阶梯状边缘(处于图像两个具有不同灰度值的相邻区域之间)、脉冲状边缘(它主要对应细条状灰度值突变区域,可以看做两个背景阶梯状的边缘构成)、屋顶状边缘(它的边缘上升、下降都比较平缓,可以看作是将脉冲状边缘拉伸而得到的)。不同图像灰度不同...原创 2019-01-08 10:09:21 · 9893 阅读 · 0 评论 -
x264中的码率控制算法
1. 码率控制的选择策略:�率失真优化模型RDO: rate-distortion optimization率失真优化限定码率值Rc,选择合适的编码模式,使得失真D最小。编码模式包括量化步长、宏块模式选择、帧内/帧间预测模式选择等。码率控制的RDO模型的目标是确定每帧或每个宏块合适的量化步长。1.1 Lagrangian RDOH.264标准使用了一种基于Lagrangia...转载 2019-01-21 14:05:57 · 869 阅读 · 0 评论 -
数据处理使用对数的原因
1.对数函数图像2.平时在一些数据处理中,经常会把原始数据取对数后进一步处理。之所以这样做是基于对数函数在其定义域内是单调增函数,取对数后不会改变数据的相对关系,取对数作用主要有:(1)缩小数据的绝对数值,方便计算。例如,每个数据项的值都很大,许多这样的值进行计算可能对超过常用数据类型的取值范围,这时取对数,就把数值缩小了。(2)取对数后,可以将乘法计算转换称加法计算。某些...原创 2019-05-11 12:22:56 · 6918 阅读 · 0 评论 -
正态分布,锐利分布,莱斯分布 matlab拟合源码
如果你得到一堆数,你想知道它们的大致分布,该怎么办呢?kedensity命令可以帮助你解决这个问题。命令如下:[f,xi]=ksdensity(x)plot(xi,f)其中,f是估计的密度值,而xi是一个辅助参数,用来决定画出图形的取值区间,简言之,xi大致涵盖了x的取值区间。看过图形之后,开始对分布有大概的直观印象,然后可以用比如normfit命令来获得相关的参数估值。mat...转载 2018-10-24 19:49:12 · 5948 阅读 · 1 评论 -
Android NDK APP_STL gnustl_shared is no longer supported 报错处理
错误原因:APP_STL gnustl_shared 不再被ndk支持。由于 Android OS 放弃GCC转向了 Clang 编译器, 所以 NDK 将移除GCC, 所以建议用Clang编译你的程序。修改 Applicaiton.mk 中的相关配置1. APP_STL := gnustl_static 改为 APP_STL := c++_static;2.删除NDK_TOOLC...原创 2018-10-16 16:11:54 · 24952 阅读 · 5 评论 -
Android:ABI和CPU关系
转载请标明出处:http://blog.csdn.net/xx326664162/article/details/51167849 文章出自:薛瑄的博客你也可以查看我的其他同类文章,也会让你有一定的收货!关于ABI的知识,我整理这两篇博客,相信会对你有帮助:ABI和CPU关系的疑难杂症 Android的.so文件、ABI和CPU的关系在这里非常感激腾讯bugly的“Bugly-A...转载 2018-10-16 15:57:32 · 140 阅读 · 0 评论 -
ISP图像质量调节(转)
ISP(Image Signal Processor),即图像处理,主要作用是对前端图像传感器输出的信号做后期处理,主要功能有线性纠正、噪声去除、坏点去除、内插、白平衡、自动曝光控制等,依赖于ISP才能在不同的光学条件下都能较好的还原现场细节,ISP技术在很大程度上决定了摄像机的成像质量。它分为独立与集成两种形式。 一般情况下,配备独立ISP的手机,在图像处理方面有更大的优势...转载 2018-05-29 08:53:38 · 6562 阅读 · 0 评论 -
VS2015无法使用编辑并继续 解决方案
解决方法如下:请在非调试下更改:1、检查是否打开了编辑并继续功能:工具-选项-调试-编辑并继续-启用“编辑并继续”,这里要注意,VS2012和VS2013是默认关闭的,需要我们自己打开:启用本机“编辑并继续”;2、这时如果还是没法使用该功能时,需要打开增量链接:项目属性-配置属性-链接器-常规-启用增量链接:是(/INCREMENTAL);3、接着,需要修改调试信息格式:项目属性-...原创 2018-08-18 15:16:47 · 8177 阅读 · 0 评论 -
C/C++函数指针使用总结
一 函数指针介绍 函数指针指向某种特定类型,函数的类型由其参数及返回类型共同决定,与函数名无关。举例如下:int add(int nLeft,int nRight);//函数定义 该函数类型为int(int,int),要想声明一个指向该类函数的指针,只需用指针替换函数名即可:int (*pf)(int,int);//未初始化 则pf可指向int(int,int)类型的函...转载 2018-09-13 11:38:59 · 108 阅读 · 0 评论 -
C++的四种强制类型转换
C++ 同时提供了四种新的强制转型形式(通常称为新风格的或 C++ 风格的强制转型): const_cast(expression) dynamic_cast(expression) reinterpret_cast(expression) static_cast(expression) 每一种适用于特定的目的: ·dynamic_cast 主要用于执行“安...转载 2018-09-13 14:32:57 · 113 阅读 · 0 评论 -
C++简单线程池实现
线程池,简单来说就是有一堆已经创建好的线程(最大数目一定),初始时他们都处于空闲状态,当有新的任务进来,从线程池中取出一个空闲的线程处理任务,然后当任务处理完成之后,该线程被重新放回到线程池中,供其他的任务使用,当线程池中的线程都在处理任务时,就没有空闲线程供使用,此时,若有新的任务产生,只能等待线程池中有线程结束任务空闲才能执行,下面是线程池的工作原理图:我们为什么要使用线程池呢?简...转载 2018-09-20 12:00:33 · 668 阅读 · 0 评论 -
操作系统PV操作
三态模型进程通常分为就绪、运行和阻塞三种工作状态。三种状态在某些条件下可以转换,具体转换关系如下: 进程三个状态之间的转换是通过PV操作和信号量来控制的,其中信号量起到了很重要的作用。 信号量信号量是最早出现的用来解决进程同步与互斥问题的机制。信号量(Saphore)由一个值和一个指针组成,指针指向等待该信号量的进程,信号量的值表示相应资源的使用情况。...转载 2018-09-20 18:05:01 · 23942 阅读 · 4 评论 -
NUMA CPU架构介绍
NUMA把一台计算机分成多个节点(node),每个节点内部拥有多个CPU,节点内部使用共有的内存控制器,节点之间是通过互联模块进行连接和信息交互。因此节点的所有内存对于本节点所有的CPU都是等同的,对于其他节点中的所有CPU都不同。因此每个CPU可以访问整个系统内存,但是访问本地节点的内存速度最快(不经过互联模块),访问非本地节点的内存速度较慢(需要经过互联模块),即CPU访问内存的速度与节点的...转载 2018-09-20 18:18:35 · 1716 阅读 · 0 评论 -
PVS-Studio C/C++/C++11 静态代码分析工具
静态代码分析仪是一种检测代码缺陷、分析对比商业代码的工具,它分析源代码和它生成的目标文件,但并不实际运行源代码。应用于对安全性、稳定性要求很高的领域,比如航天、国防、工业控制、金融等就需要严格的代码分析工具。PVS-Studio 能发现代码中一些潜在问题,或者针对某些潜在问题给出警告。 PVS-Studio 说明:PVS - Studio 是一款静态分析软件,用于诊...原创 2018-10-12 19:36:18 · 858 阅读 · 0 评论 -
Android NDK开发之从环境搭建到Demo级十步流
写在正文之前:几个月没有更新博客,感觉有点生疏了,所以说不能断,一断人就懒。其实这几个月也并不是什么事也没有做,俺可是时刻想着今年的任务呢,10本书,30篇博文...,这几个月间断性的也是在学习中,学H5,学设计模式,以及NDK JNI开发等等。学习JNI主要是因为公司有一些COCOS游戏需要添加计费点,而又没有真正的游戏开发人员,这个重任就落到我身上了,然后就是各种虐,一虐到底,苦不...转载 2018-10-13 15:58:11 · 99 阅读 · 0 评论 -
C++构造函数详解及显示调用构造函数
c++类的构造函数详解 一、 构造函数是干什么的class Counter{public: // 类Counter的构造函数 // 特点:以类名作为函数名,无返回类型 Counter() { ...转载 2018-10-08 10:55:11 · 23310 阅读 · 0 评论 -
用VS统计整个工程的代码行数
1.ctrl + shift + f;2.查找选项选择正则表达式;3.查找内容:^b*[^:b#/]+.*$ ;查找结果:原创 2018-09-30 10:55:50 · 620 阅读 · 0 评论 -
DMA工作原理
DMA方式的工作原理:一个设备接口试图通过总线直接向另一个设备发送数据(一般是大批量的数据),它会先向CPU发送DMA请求信号。外设通过DMA的一种专门接口电路――DMA控制器(DMAC),向CPU提出接管总线控制权的总线请求,CPU收到该信号后,在当前的总线周期结束后,会按DMA信号的优先级和提出DMA请求的先后顺序响应DMA信号。CPU对某个设备接口响应DMA请求时,会让出总线控制权。于是在D...转载 2018-05-11 11:36:25 · 6763 阅读 · 0 评论