自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (4)
  • 收藏
  • 关注

原创 再出发

B站罗翔老师说过一个故事: 我有一个学生,曾经跟我联系,记得这个学生,这个学生当时高考的时候就是这么被骗的,后来在一个学校待了四年,他一直认为他已经上完车补完票了,因为住在学校宿舍也有学生证,也有饭卡一切都有;最后研也考上了,司法考试也考上了,最后没法领司法考试的证,因为学籍是假的,研究生也白考了。没学籍,如果你是这个学生你怎么办?他后来又花了一年半的时间重新考自考,一年半的时间考完自考,再次考法考,又考上了,又考研还考上了,所以这个学生让我感动,就是很多时候你改变不了你所处的情景,说绝大多数..

2021-01-07 22:47:06 290 2

原创 (九)单例模式的几种实现方式

参考链接:https://www.runoob.com/design-pattern/singleton-pattern.html一、懒汉式(线程不安全)懒汉的意思就是我不生成实例,到使用时才生成第一个实例。实现简单,但因为取唯一实例时未加锁,因此不支持多线程。public clsaa Singleton{ private static Singleton instanc...

2019-10-16 23:09:37 247

原创 (八)单例模式

一、概念一个类在程序中仅有单个对象存在,不会存在多个这个类的对象。保证一个类仅有一个实例,并提供一个访问它的全局访问点。主要解决一个全局使用的类频繁地创建与销毁。需要自己创建自己的实例并提供给其他类使用,构造函数写为私有。二、例子单例模式中保存了唯一的自己这个类的静态实例,并将构造函数设为私有,对外提供了静态的getInstance函数。public class Sing...

2019-10-13 23:56:30 134

原创 (七)观察者模式

一、概念观察者模式描述对象之间一对多的关系,当一个对象发生变化时,所有的依赖它的对象(观察者对象)都会得到通知并自动更新。二、例子如上所示,观察者模式需要有三个类:一个Subject,即发布者,其中保存订阅者的列表和订阅内容,其中有添加观察者函数attach,和设置与获取状态函数setState和getState,以及通知函数notifyAllObservers;Observer接...

2019-10-13 23:38:17 124

原创 (六)装饰者模式

一、概念装饰者模式就是对现有类的功能进行扩展,相比继承更加灵活一些。二、例子 图中ShapeDecorator为装饰者抽象类,里面有成员shape(也可以写到RedShapeDecorator中,图中在ShapeDecorator和RedShapeDecorator中仅有一处存在shape即可,图中两处均有,个人觉得有误)、接口的函数draw、以及构造函数来对...

2019-10-11 23:55:47 109

原创 (五)适配器模式

一、概念顾名思意,是用来对两个不同的接口进行适配的一种设计模式,将一个接口转换成需要的另一个接口。一般用于现有类的接口不满足需求的情况下,通过适配器继承或依赖已有对象实现想要的目标接口,解决现有运行项目的问题。二、基本实现如上图,在原有的基础上,要想在接口A、B之间进行转换,那么适配器只需要继承接口A,并引入变量类B,在实现的接口A函数中调用B的接口进行操作即可。看了几个其他的适配...

2019-10-09 22:20:26 88

原创 (四)抽象工厂模式

一、概念抽象工厂模式就是能够生成工厂类的模式。类似于在工厂模式上再加一层封装,负责生成各种各样的工厂,可以视为建厂子的模式。二、抽象工厂的使用当一个工厂模式中生产的类有多重组合方式,例如工厂生产水果茶,A厂产乌龙蜜桃茶,B厂产铁观音樱桃茶,因此在抽象工厂类(作为父类)中写入茶+水果的组合,至于具体的哪种茶和哪种水果则交给由抽象工厂派生出来的A厂(子类)和B厂(子类)去搞定。下面一段...

2019-10-08 22:40:35 136

原创 (三)工厂模式

国庆期间去东北参加了朋友的婚礼,时光飞逝呀,人生漫长又短暂,要给自己找点有乐趣的事情去做。以下实践来自实验楼,链接:https://www.shiyanlou.com/courses/100/learning/?id=865,什么是工厂模式?工厂一般指生产特定产品的平台,那么类似的,工厂模式可以将其类比为一个工厂,指生产特定类型的对象的一种模式。工厂模式封装了创建对象的细节,使用者只使...

2019-10-07 22:18:55 85

原创 (二)设计模式分类

实验楼设计模式的课程链接(不是广告,这个免费的):https://www.shiyanlou.com/courses/100目前这些先有个概念,毕竟后面才能理解。三类设计模式:创建型模式,用于创建对象,一是将系统使用的具体类封装起来,二是隐藏这些具体类的实例创建和结合的方式。共 5 种:工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,主要处理类和对象的组合,...

2019-09-29 22:28:54 75

原创 (一)初识设计模式

利用闲时间整理一下设计模式,目标设定最迟两个月(2019年11月30日)完成吧,目前大计划还没有^-^。本周先入个门。原则:1.开放封闭原则对扩展开放,对修改封闭。当有新功能时,在原有基础上对代码进行扩展,而不是修改原有代码,保证软件的稳定性。尤其是抽象的类和接口是不允许修改的,因此在设计之初就要考虑好如何去抽象。2.里氏代换原则子类对象可以代替任何基类对象出现的地方,反之...

2019-09-29 21:56:08 98

原创 字符串整数

#include <stdio.h>main(){char a[20];char b[20];char c[20];int a_len;int b_len;int i;printf ("please input string a: ");scanf ("%s", a);printf ("please input string b: ");scanf ("%s",...

2019-08-20 19:37:37 115

原创 2.tutorial的第一个demo

自己配置工程配置了好久还是出现各种问题,最后用雷神配置好的工程上跑代码。基于tutorial的第一个简单demo在雷神配置好的ffmpeg+SDL工程上顺利通过,因为tutorial上的demo使用的API有许多已经被删除或修改了,所以需要对照新的API稍作一些修改,一下是tutorial的第一个小程序代码:#include &lt;stdio.h&gt;#define __STDC_CON...

2018-07-09 14:59:18 117

原创 VVC参考软件的下载安装

备忘,原文链接:https://blog.csdn.net/JRRRJ/article/details/80797064

2018-07-04 21:16:50 4872

原创 leetcode:三数之和

Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.Note:The solution set must not contain ...

2018-07-04 11:21:27 198

原创 《剑指offer》65:滑动窗口的最大值

题目:给定一个数组和滑动窗日的大小,请找出所有滑动窗口里的最大值。如果输入数组{2,3,4,2,6,2,5,1}及滑动窗印的大小3,那么存在6个滑动窗口,它们的最大值分别为{4,4,6,6,6,5}。第一想法是按窗口滑动,每次对比窗口内的数字大小,选出最大值,但很明显,这里存在着很多次重复的大小对比操作,将那些重复的操作想办法剪去即可。#include&lt;iostream&gt;#inclu...

2018-07-03 21:27:00 161

原创 《effective c++》第一遍简记

1.将c++视为一个语言组 次语言 (1)c (2)Object-Oriented C++ (3)Template C++ (4)STL c++高效编程守则视状况而变化,取决于你使用c++的哪一部分2.尽量以const,enum,inline替换#define #define定义的记号在编译器处理源码之前就被预处理器移走了,可能并未进入symbol table 例   #define ASPECT...

2018-06-28 14:50:58 178

原创 六月底的flag,生活要有仪式感

    最早的时候觉得自己要往Linux操作系统方向发展,那会看驱动代码,看内核源代码,一直没有东西做,自己买了个S3C64100的学习板耍着玩,Linux操作系统相关看了两个月,没有入手的东西,老板给交待让看HEVC,便转去了HEVC,顺道学了c++。最后在四月底决定以后以c和c++吃饭,但具体方向做什么都没定,5月份至今看了很多有趣的闲书,像象棋C实现等,马上也要找工作了,随心看书做东西的日子...

2018-06-27 16:18:31 215 1

原创 《剑指offer》66:矩阵中的路径

题目:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵任意一格开始,每一步可以在矩阵中向上下左右移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如在下面的3*4矩阵中包含一条字符串‘`bcced',的路径(路径中的字母用斜体表示)。但矩阵中不包含字符串“abcd”的路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,...

2018-06-27 15:55:10 123

原创 《剑指offer》67.机器人的运动范围

题目:地上有个m行n列的方格。一个机器人从坐标(0,0)的格子开始移动,它每一次可以向左、右、上、下移动一格,但不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7=18.但它不能进入方格(35,38),因为3+5+3+8=19.请问该机器人能够达到多少格子?思路:实现代码:#include &lt;iostream&gt;vo...

2018-05-16 10:44:43 158

原创 分享一个视频剪切程序及源代码

最近在测试视频序列,因为编码一段视频时间太长了,就随手写了个简单的视频剪切程序用来剪指定的几帧,方便测试,代码很简单现把它分享一下,如果用MFC做个图形界面会更好。    不能选0积分,就选了1积分,下载链接:https://download.csdn.net/download/m0_37579288/10394440...

2018-05-05 17:24:23 5765 1

原创 POJ 做过的算法题汇总

看了一下poj笔记记录第一道题的时间,最早的一道题距今有5个月了,当时还在看Linux下的驱动,只是抱着有趣的心态,接触了下poj。在前几天把剑指offer看完之后,打算将算法题归类,按各种类别来自己完成。目前发现一个leetcode面试题平台,打算从poj转向leetcode,并把数据结构算法做个详细的总结。下面是以前的poj题总结,也有贴网上看的别人的实现代码。1.poj1182食物链Desc...

2018-04-26 18:38:57 850

原创 算法题小结

20. 表示数值的字符串**程序写的很好有固定的模板,先是【正负号】【数字】【.】【数字】【e】【正负号】【数字】,其中正负号可以省略。程序思路,输入字符串判断正负号判断数字如果有点,判断后面是否是数字(.前后可以没有数字)如果是e,判断是否有数字(e前后必须跟数字)21. 调整数组顺序使奇数位于偶数前面**程序号快速排序,两个指针,一前一后,查到就交换,也可以用我总结的排序方法里的快速排序实现。...

2018-04-08 19:52:27 131

原创 二进制中1的个数

位运算    题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如,把9表示成二进制是1001,有2位是1因此,如果输入9,则该函数输出2。  分析:tips:负数在移位后仍为负数,最高位为1,1移位后,最高位的符号位仍为1。数字右移,判断第一位为1的个数,直到数变为零,类似于十进制转二进制的数学算法,但不适用于负数。修改为,把1左移,每次判断一位,直到1变成0。代码如下:int...

2018-04-03 18:38:59 119

原创 剪绳子

声明:题目和程序来自《剑指offer》,注释和分析为自己所写备忘,侵删。动态规划题目:给你一根长度为n的绳子,请把绳子剪成m段(m、n都是整数,n&gt;1并且m&gt;1),每段绳子的长度记为k[0],k[1],…,k[m]。请问k[0] x k[1] x… x k[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2, 3, 3的三段,此时得到的最大乘积是18。分析:动...

2018-04-03 16:41:25 288

原创 机器人的运动范围

声明:题目、程序来自《剑指offer》,注释、分析为自己写下备忘,侵删递归(回溯)        题目:地上有一个m行n列的方格。一个机器人从坐标((0, 0)的格子开始移动,它每次可以向左、右、上、下移动一格,但不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格(35; 37)}因为3十5+3+7=18。但它不进入方格(35, 38),因为3+5+3+8=19}...

2018-04-03 14:26:40 148

原创 矩阵中的路径

  声明:题目、程序来自《剑指offer》,注释、分析为自己备忘,侵删 题目:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在一下面的3x4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用下划线标出)。但矩阵中不包含字...

2018-04-03 11:05:48 236

原创 旋转数组的最小数

声明:题目、程序来自《剑指offer》,注释、分析为自己所写备忘,侵删打算把剑指offer上的题整理一下,发上来备忘。题目描述:        把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组{3, 4, 5, 1, 2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。        分析:数组中存储的是...

2018-04-03 09:25:03 104

原创 排序算法小结

    1.冒泡排序: 这个大家都比较熟悉,实现也简单。但它的复杂度为O(n*n),看情况使用。 常见实现(以从小到大为例): for(int i = starti; i &lt;=limiti; i++) for(int j = startj; j &lt;=limitj; j++){ if(data[i] &gt; data[j]) int temp = data[j]; ...

2018-03-30 11:50:43 131

翻译 熵编码

熵编码部分看的:http://blog.csdn.net/nb_vol_1/article/details/71374859,因博主禁止转载,请点链接去看原博主文章,写的很清晰明了,学习后整理内容如下,方便以后查看。熵编码:消息发生的概率越小,携带的信息量就越大。确定的消息没有信息量,因为你已经知道要发生什么了。信息量定义:由以上性质可知,序列中依赖性越强,不确定性就越弱。二进制编码:变长编码给大...

2018-03-14 11:59:13 1826

原创 去方块滤波

推荐NB_vol关于量化部分的解析,代码思路非常清晰:http://blog.csdn.net/nb_vol_1/article/details/51191935自己又梳理了一遍,如下:环路后处理--去方块滤波: 环路后处理包括去方块滤波和样点自适应补偿。去方块滤波主要消除方块效应,SAO则是消除振铃效应。HEVC中,图形中各个块的量化变换独立进行,另外,运动补偿预测中,相邻开的预测值来自于不同图...

2018-03-03 15:13:35 1513

原创 量化代码解析

量化部分推荐博主:futl 的http://blog.csdn.net/ftlisdcr/article/details/52992867量化:残差信号经离散变换后往往具有很大的动态范围,因此,变换系数进行量化可以有效地减少信号取值空间,进而获得更好的压缩效果。也是视频编码产生失真的根本原因。量化器分标量量化器(Scalar Quantizer)和矢量量化器(Vector Quantizer),H...

2018-03-02 09:33:16 2889 3

原创 纠正一些之前的错误

推荐两个HEVC文章比较好的博主:NB_vol http://blog.csdn.net/nb_vol_1岳麓吹雪:http://blog.csdn.net/lin453701006/article/category/6449548在帧间预测时留下的一些疑问。1. 运动估计过程中的最初MV因为在Merge模式中没有MVD,不需要计算真正的MV,因此运动估计用的是AMVP给出的候选MV。MV类中是两...

2018-03-02 09:19:10 281

原创 帧间预测--运动估计代码分析

(转载请注明出处)HM10.0给出了两种预测算法:全搜索和TZSearch。其中TZSearch算法步骤入下:①由AMVP确定搜索起点即若干候选MV,选一个RDCost最小的作为起点。②以菱形模板或正方形模板进行搜索。③若上一步得到的最优步长为1,则再补充搜索最近的两个点。   若步长不是1,不用再搜索了。   若步长太长(大于某阈值),则以最优点为中心做全搜索。

2018-02-07 14:45:20 2381 1

原创 帧间预测--时域伸缩MV函数分析

感谢前辈HEVC_CJL,附上前辈专栏:http://blog.csdn.net/HEVC_CJL这个函数在Merge模式下的getInterMergeCandidates中和AMVP模式下的fillMvpCand都被调用了,主要用来获取时域候选列表需要的MV,xGetColMVP调用xGetDistScaleFactor()完成比例伸缩部分,结合前面的理论部分和代码注释,理解起来没什么困难。

2018-02-06 18:55:06 593

转载 HEVC中打印CU划分

转载,原文地址:http://blog.csdn.net/minbiao880224/article/details/17685935,结合我的第一篇HM编码的使用,自己完全可以理解他的MATLAB代码和打印思路,作者原文中给了5张,其实有多少帧最后会出来多少个CU划分图。相比于H.264,HEVC中特别采用了Coding Unit(CU)的概念。为了查看编码过程中, LCU的最终划分,因

2018-02-06 18:37:12 1469 1

原创 帧间预测-候选列表建立代码解析

(转载请注明出处)候选列表的建立包括两部分,一个是Merge模式,一个是AMVP模式,因为这部分代码中涉及到了较多其他模块的参数,对新手读起来可能不容易理解,我尽力把我作为一个新手的理解过程表述出来,当然代码我看了好几遍才看懂,没办法,经验是个很重要的东西,没人带路,不走几遍哪来的经验。先熟悉一下代码结构:定位代码:atrl+F查找encmain.cpp里的入口,从外到里的调用

2018-02-05 16:36:33 738

原创 帧间预测--AMVP模式理论部分

上一篇提到的merge模式下直接使用MVP作为MV,AMVP模式多了一个MVD的计算,当然并不仅仅是这点,下面看AMVP实现的理论流程,我尽力还原我学习的思维历程。参考西电杨老师的书《H.265/HEVC原理、标准与实现》,学习HEVC的手头备一本很方便。AMVP(Advanced Motion Vector Prediction)高级运动向量预测,类似merge,先建立候选列表,建立列表

2018-02-03 12:05:26 1747 3

原创 帧间预测--merge模式理论部分

作者:66在开始帧间预测代码分析之前,先把理论部分再理一遍。这部分涉及到的知识点较之前多些,相关的资料与代码不容易找出匹配的部分,造成作为新手的我阅读源代码反复好几次才搞清楚(还没体验过上手就明了的感觉)。我把理论部分修改尽力趋同于后面对代码的解析。相关的名词:ME(运动估计)、MC(运动补偿)、MV(运动向量,其实就是运动距离加方向,代码中用Dir表示方向,MV表示距离)、SAD(绝

2018-02-03 10:05:11 2906 1

原创 SAO代码解析补充(二)

作者:661. 理论部分--快速率失真计算方法:在后面的代码中用到了,在此说明一下方便后面的理解:率失真(J) = 像素误差(D)+语法编码代价(λR),R是编码所需bit,λ是系数。其中像素误差可以有MSE(最小均方误差)、MAD(最小平均绝对误差)等。这里用的MSE,即原始像素与重构像素的差值平方和。以org代表原始像素,rec代表重构像素,offset为补偿值,则有:

2018-01-30 12:26:24 1613

原创 SAO样点自适应补偿技术实现代码详解(一)

作者:66惯例推荐前辈的专栏: http://blog.csdn.net/HEVC_CJL/article/category/1283611/3量化后重构的图像边缘部分会产生波纹现象,对肉眼观察到的客观图像质量影响很大,称为振铃效应。SAO主要是采用补偿技术,将图像边缘部分进行像素值补偿,提高图像的主客观质量。HEVC主要做的工作就是去除图像中多余的信息,主要是一帧中像素相同的块(

2018-01-29 20:03:10 2301

视频剪切程序

最近在测试视频序列,因为编码一段视频时间太长了,就随手写了个简单的视频剪切程序用来剪指定的几帧,方便测试,代码很简单现把它分享一下,如果用MFC做个图形界面会更好。

2018-05-05

GTK+开发Linux图形用户手册

完全基于C的Linux平台图形界面开发软件GDK和GTK+的手册,手册为中文版本,配合手册之前在Ubuntu16.04上进行过小界面程序开发,非常nice,可以自己拿去研究研究。

2018-03-30

HM代码解释文档

HM代码对应的文档, 为JCTVC-J1003_d7,对HM软件中各个类的结构、各个函数的实现作了详尽的解释,注,全英文

2018-03-30

yuv格式播放器

极为实用的YUV格式播放器,能播放各种格式视频且可一帧一帧查看,另有各种功能自己去发现吧。

2018-01-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除