自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 资源 (22)
  • 收藏
  • 关注

原创 cutree 算法

x265 x264 cutree lookahead

2023-09-19 11:13:08 400

原创 x265码控分析

x265码控分析

2023-05-06 21:15:16 795

原创 Kaldi WFST最小化算法

WFST最小化算法最小化算法主要是在保证DFA识别的语言不变的条件下,将DFA中等价状态合并,减少状态数、转移边数,简化DFA结构,从而减少存储空间和运算时间。比较有名的最小化算法有Moore,Hopcroft以及Brzozowski等,本章主要针对Hopcroft算法进行优化。WFST Hopcroft最小化算法原理Hopcroft算法在初始阶段将所有状态划分为终结状态和非终结状态两个等价类,然后不断地根据分割集合对等价类进行分割,将状态集合划分为既不重叠又不为空的状态子集,直到所有等价类都无法继.

2020-07-08 09:40:25 1160

原创 Kaldi WFST确定化算法

WFST确定化算法因为NFA的状态转移不确定,不适合直接做语音识别,在算法实现时往往需要回溯,所以一般使用确定化算法将NFA转换为DFA。确定化算法主要是为了去除空边以及合并具有相同输入的公共边,最终使每个状态对某一个具体的输入,只有一个确定的输出,且每个状态没有空转移,如此可以极大的提升搜索的效率。Kaldi中采用的确定化算法叫“子集构造法”,该算法原本是为了处理FSA的确定化,然而,Kaldi将该算法的思想应用到了WFST上。OpenFST中确定化过程采用了两个独立又相关的算法:空边去除算法和确定.

2020-07-08 09:33:39 1300

原创 FFmpeg HEVC 环路滤波Bug分析一

和以往的视频编码标准类似,HEVC仍采用基于块的混合编码框架,一些失真效应仍然存在,如方块效应、振铃效应、颜色偏差以及图像模糊等等。为了解决这些问题,HEVC中采用了环路滤波技术,它其实是一种用于解码端的后处理滤波技术,主要包括去块滤波(Deblocking Filter,DBF)和样点自适应补偿(Sample Adaptive Offset,SAO)。DBF的作用与H.264类似,主要是去除方块...

2018-07-15 12:53:56 808

原创 快速浮点数exp算法

现在的深度神经网络中,经常会使用到sigmoid函数或者softmax函数,而这些函数中都使用了浮点数的幂指数函数(ex)。常规的数学函数库ex的精度高,但是速度慢,本文将介绍一种通过操作计算机中IEEE754标准浮点数的表示方法,在精度损失很小的条件下大幅提升计算性能的算法。1. IEEE浮点数表示1.1. 双精度浮点数表示64位的双精度浮点数中符号为1位,阶码域为11位,尾数域为5

2017-11-05 17:04:34 11414 1

原创 JPEG解码原理详解

1.  JPEGJPEG是众多常见的图像编码格式之一,主要分为无损压缩和有损压缩,无损压缩利用空域相关性进行预测,主要用于医学、卫星遥感等领域;有损压缩主要通过DCT变换,然后进行量化来压缩数据。本文将以一个简单的16×8灰度图像作为例子,简单讲述JPEG图像解码的主要过程。1.1.JPEG图片结构       图1(a)所示的图片是一个简单的16×8的JPEG灰度图片,是由图1(b)

2017-09-03 10:31:51 16938 1

原创 JPEG标准DCT优化实现

1.  JPEG DCTJPEG是众多常见的图像编码格式之一,主要分为无损压缩和有损压缩,无损压缩主要利用空域相关性进行预测,主要用于医学、卫星遥感等领域;而有损压缩主要通过DCT变换,然后进行量化来压缩数据。与现有的H264和H265视频编码标准中的整数DCT变换不同,JPEG中的DCT是浮点变换。为了加快DCT运算速度,libjpeg使用了三种DCT算法:分别是浮点DCT变换、整数化的DC

2017-08-27 15:25:11 3524 2

原创 FFmpeg H264/H265边界填充二--videodsp.asm

在前面已经详细的分析了边界填充算法的C语言优化实现,在C语言的实现中主要是用memcpy来实现,为了提高效率FFmpeg利用了mmx、xmm和ymm等寄存器进行指令集优化。FFmpeg中和边界填充相关的优化主要在 “videodsp.asm”中实现,在下面的源代码中已经详细的分析了边界填充汇编优化代码的实现。;******************************************

2017-05-13 10:37:10 1142

原创 FFmpeg H264/H265边界填充一

在H264和H265编解码标准中,运动补偿的参考像素可越过参考图像的边界。图像边界之外的参考像素是不存在的,标准使用边界处的像素来填充处于边界之外的像素值。1.  标准填充标准对填充的算法做了如下的描述,如图1所示的两个图,分别描述了H264和H265亮度分量的标准填充算法(H265色度和亮度分量的填充算法是一致的,但是由于H264色度运动补偿和亮度补偿算法不一致,所以H264色度的填充方

2017-05-07 16:57:58 2584

原创 FFmpeg x86汇编优化一--x86inc.asm分析

在我的印象中,有几个版本的FFmpeg中有Intrinsic优化的指令集代码。可能是由于纯汇编的性能和灵活性,随着版本的迭代,现在优化代码已经逐渐替换成了纯汇编代码。FFmpeg中的纯汇编代码使用了nasm汇编语法格式,且使用了x264工程中的两个汇编源文件“x86inc.asm”和“x86util.asm”。其中“x86inc.asm”中对寄存器、堆栈和函数调用等做了一个跨平台的约定。本文将主要

2017-04-22 13:26:20 6418 2

原创 FFmpeg解码库裁剪和调试三--Android Studio调试FFmpeg

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源项目。FFmpeg是在Linux平台下开发,而Android是现在非常火爆的移动平台,由于Android平台与Linux的亲缘关系,所以将FFmpeg源代码移植到Android平台比前面讲述过的VS平台调试方法相比自然是简单许多。       本章主要介绍提取FFmpeg中的H264代码并在Android Studio中

2017-03-13 22:13:50 3100 1

原创 FFmpeg解码库裁剪和调试二--Eclipse调试FFmpeg

1.  FFmpeg和Cygwin介绍FFMPEG是目前功能比较强大的开源数字媒体处理项目之一。 由于该项目是使用Make作为项目的编译构建工具,因此,如果要想将FFmpeg源代码不加修改地移植到VisualStudio上进行编译和调试,以我目前有限的知识来说是不太可能的。在上一篇文章中,我简单介绍了利用MinGW编译出解码库供VisualStudio使用的方法,更进一步地演示了一种从FF

2017-02-20 21:57:36 1570

原创 FFmpeg解码库裁剪和调试一--Visual Studio调试FFmpeg

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源项目。FFmpeg是在Linux等平台下开发,如果想在Windows平台下调试,主要有两种方法:第一使用Cygwin+Eclipse的方式模拟Linux环境进行调试;第二种方法是提取FFmpeg中对应的解码库在Visual Studio 2013及以上的VS中IDE中调试,之所以要在VS2013及其以上的IDE中调试主要从V

2017-02-19 22:32:29 1733

原创 VLC一--零阶指数哥伦布码解码原理和实现

指数哥伦布编码属于变长编码,其基本原理是用短码字表示出现频率较高的信息,用长码字表示出现频率较低的信息。      1.1.  指数哥伦布编解码原理指数哥伦布编码也是变长编码的一种,指数哥伦布编码也是由前缀和后缀组成。K阶指数哥伦布码的组成如图1(a)所示:分为m个前缀0,一个比特1和m+k个后缀。解析时首先从比特流当前位置开始寻找第一个非零比特,并将找到的0比特个数记为m,第一个非零比特

2016-12-18 09:51:59 4761

原创 VLC二--H264/AVC中CAVLC的FFmpeg实现

static int decode_residual(const H264Context *h, H264SliceContext *sl, GetBitContext *gb, int16_t *block, int n, const uint8_t *scantable, const uint32_t *qmul, int max_coeff){ static const int c

2016-12-04 16:31:32 2563 4

原创 CABAC基础四-CABAC熵解码算法FFmpeg实现

1.  CABAC熵解码算法FFmpeg实现本章主要讲解FFmpeg中对CABAC熵解码算法的实现和优化思路。由于算术编码算术在H264和H265中没有发生变化,所以FFmpeg中H265的熵解码仍然采用了H264中的实现方式,所以,在H265的CABAC部分,仍然可以看到有的数组的定义中带有H264的名字,如ff_h264_lps_range和ff_h264_mlps_state等等。1

2016-11-06 13:37:41 5290 5

原创 CABAC 基础三-M Coder

1.  CABAC上下文模型1.1.  MCoder如第二章所述,算术编码一般采用区间递归分隔的方法来进行。在CABAC的二值化算术编码中,区间使用区间的左端点L和区间的长度R两个变量来表示。则:RLPS = pLPS* R                     (8)其中,pLPS表示LPS符号出现的概率,RLPS表示LPS符号对应的区间,与此相反MPS符号对应的区间大小为:

2016-10-07 21:51:46 3856 6

原创 CABAC 基础二-算术编码

1.  算术编码与变长编码不同,算术编码的本质是为整个输入序列分配一个码字,而不是给每个字符分别指定码字,因此平均意义上可以为单个字符分配码长小于1的码字。算术编码用到两个基本的参数:符号的概率和它的编码间隔。信源符号的概率决定压缩编码的效率,也决定编码过程中信源符号的间隔,而这些间隔包含在L到H之间。编码过程中的间隔决定了符号压缩后的输出。给定事件序列的算术编码步骤如下:1.

2016-09-03 23:18:04 8861 2

原创 CABAC基础一-二值化

1.  二值化在HEVC中主要包括截断莱斯编码(Truncated Rice),指数哥伦布编码(Exp-Golomb)和定长编码。 1.1.  TRTR二值化需要输入三个参数:synVal表示将要进行TR二值化的值,cRiceParam表示莱斯参数,cMax表示门限值。TR二值化的结果由两部分组成:前缀prefixVal是一元码,后缀suffixVal是定长码,后缀长度为cRice

2016-08-28 17:28:12 3986

转载 Fermat-Torricelli-Viviani问题

物理方法解决数学问题(四):Fermat-Torricelli问题    据说,17世纪时,大数学家Fermat曾向意大利的物理学家和数学家Torricelli提出过这样一个问题:在已知锐角三角形ABC内求一点P,使得PA+PB+PC最小。Torricelli证明了,这个点是存在的,且∠APB=∠BPC=∠CPA=120°。他还指出,若分别以AB、BC、AC为边向外作等边三角形ABC'、B

2015-03-14 14:28:31 1612

原创 有限自动机字符串匹配_KMP算法计算状态转换表

#include #include #include using namespace std;int * compute_prefix_function(string str)//计算字符串的前缀函数{ int m=str.length(); int q=-1; int *prefix_table=new int[m]; prefix_table[0]=q; for(int

2014-06-23 21:20:17 1641

原创 rabin-karp二维字符数组匹配

#include #include #include using namespace std;void two_d_rabin_karp_matcher(char **T,int n1,int n2,char **P,int m1,int m2,int d,int q)//二维模式匹配{ int *pattern=new int[m2]; int *text=new int[n2]

2014-06-20 16:36:49 2035

原创 算法导论32.1-4-带间隔符的pattern匹配字符串

#include #include #include #include using namespace std;//算法导论第三版32.1-4void string_matcher(string &strSrc,vectorvecStr,int index,int pos,vector &vec_result)//查找所有出现的匹配模式{ int depth=vecStr.size

2014-06-17 16:27:38 1682

原创 邻接矩阵计算节点对最短路径

#include #include using namespace std;void extend_shortest_paths(int **matrix,int **W,int **result,int n)//计算最短路径{ for(int i=0;i<n;++i){ for(int j=0;j<n;++j){ int min=numeric_limits::max();

2014-05-29 12:03:47 3660

原创 算法导论_不相交集合

#include #include using namespace std;//不相交集合森林typedef struct disjoint_set_forest_node{ int value;//结点值 disjoint_set_forest_node *parent;//父亲结点 int rank;//结点的秩}disjoint_set_forest_node,*pDisjo

2014-05-03 11:23:05 1286

原创 斐波那契堆抽取最小值_关键字减值_删除

#include #include #include #include using namespace std;typedef struct fib_heap_node{//斐波那契堆结点 int key;//结点值 int degree;//结点度 fib_heap_node *parent;//结点的父结点 fib_heap_node *left;//结点的左兄弟,循环双链表

2014-04-27 10:21:42 2259

原创 B树的插入和删除

#include #include using namespace std;#define BTree_T 2#define BTree_N ((2*BTree_T)-1)//BTree_T 表示B树的度,BTree_N表示B树的最大关键字个数typedef struct BTree{ int keyNum;//保存关键字的个数 int key[BTree_N];//存储关键字

2014-04-19 21:00:24 1776

原创 最小平均完成时间调度问题_最小化完成时间

#include #include #include using namespace std;typedef struct list{ int id; int left_time; list *next;}list,*plist;typedef struct queue{ list *front; list *tail;}queue,*pqueue;void ini

2014-04-12 16:34:01 6081

原创 哈夫曼编码

#include #include #include using namespace std;typedef struct min_heap{//最小堆 int value; min_heap *left,*right;//左右结点}min_heap,*pmin_heap;typedef struct list{//双向链表实现栈 int value; list *next

2014-04-10 09:38:58 1193

原创 分数背包问题

#include#include #include#include using namespace std;int partition(double *ration,int *v,int *w,int low,int high)//快速排序子程序{ double pivot=ration[high]; int k=low-1; double tmp; int tmp2; f

2014-04-08 13:22:09 1163

原创 活动选择问题变形_值之和最大的兼容活动子集

#include#include #includeusing namespace std;void dynamic_max_value_activity_selector(int *s,int *f,int *val,int **c,int **act,int n)//动态规划-自底向上{ for(int i=0;i<n;++i){ c[i][i]=0;//如果只有一个元素,则两

2014-04-06 13:40:24 1879

原创 按照主关键字和次关键字排序

#include#includeusing namespace std;void quick_sort(int *s,int *f,int low,int high)//快速排序,安装活动的开始时间升序排序{ while (low<high){ int pivot=s[high]; int k=low-1; int tmp; for(int i=low;i<high;+

2014-04-05 14:11:43 4180

原创 最少教室问题与区间图着色问题类似

#include#include #includeusing namespace std;typedef struct list{ int tag;//教室编号 int time;//活动的结束时间 list *next;//下一个活动}list ,*plist;void minimum_lecture_hall(plist &busing,plist &free,int *

2014-04-05 14:00:10 1024

原创 活动选择问题

#include#include using namespace std;void recursive_activity_selector(int *s,int *f,int l,int h)//递归贪心算法{ int m=l+1; while (m<=h && s[m]<f[l]){ ++m; } if(m<h){ cout<<m<<"\t"; recursive_

2014-04-04 10:33:06 700

原创 强连通分量

#include #include #include using namespace std;typedef struct Link_graphic{//邻接表 int value; Link_graphic *next;}Link_graphic,*pLink_graphic;typedef struct Queue{//队列 Link_graphic *front,*ta

2014-03-31 11:01:00 661

原创 图的拓扑排序—递归—迭代

#include #include #include using namespace std;typedef struct Link_graphic{//邻接表 int value; Link_graphic *next;}Link_graphic,*pLink_graphic;typedef struct Queue{//队列 Link_graphic *front,*ta

2014-03-27 10:39:06 1123

原创 整齐打印

#include #include #include #include #include #include #include using namespace std;const static int M = 80;void print_neatly(vector&vec,int **extras,int **lc,int *c,int *p,int n)//整齐打印{ fo

2014-03-18 09:06:26 939

原创 双调欧几里得旅行商问题

#include #include #include using namespace std;typedef struct point{ int x,y;}point,*ppoint;void quick_sort_partition(ppoint *pp,int low,int high)//快速排序{ while (low<high){ ppoint pKey=pp[

2014-03-17 13:29:45 1019

原创 最长回文子序列

#include #include using namespace std;void longest_palindrome(char *s,int **p,int length){ for(int i=0;i<length-1;++i){//初始化数组相关信息 p[i][i]=1; int j=i+1; if(s[i]==s[j]){ p[i][j]=2; }el

2014-03-15 14:54:35 861

Speech Recognition Algorithms Using Weighted Finite-State Transducers

Speech Recognition Algorithms Using Weighted Finite-State Transducers

2018-06-24

FFmpegH264 多线程 优化

提取FFmpeg中H264解码库的代码,支持多线程和MMX、SSE和AVX等优化。

2017-04-16

ffmpegH264Android

主要介绍提取FFmpeg中的H264代码并在Android Studio中编译和调试的详细步骤

2017-03-13

FFmpegH264(多线程)

该工程提取了FFmpeg工程中H264解码库相关的代码,并借鉴OpenHEVC的组织方式利用CMake脚本即可编译成VS工程。

2017-02-20

H264中CAVLC的FFmpeg实现

FFmpeg针对CAVLC做了大量的优化,主要体现在码表的构建和查找上。本文将从CAVLC码表的构建、查找和CAVLC残差解码三部分对CAVLC熵解码算法进行分析。

2016-12-04

H264/AVC中CAVLC的FFmpeg实现

FFmpeg针对CAVLC做了大量的优化,主要体现在码表的构建和查找上。本文将从CAVLC码表的构建、查找和CAVLC残差解码三部分对CAVLC熵解码算法进行分析。

2016-12-04

FFmpeg H264

从FFmpeg中提取出来的H264解码代码,使用CMake和VS2013就可以进行调试,有利于学习H264解码标准。

2016-10-17

VisualGDB调试Android JNI和Linux项目

VisualGDB调试Android JNI和Linux项目。详细的介绍了如何使用Visual GDB调试Android JNI项目和Linux项目。由于某些原因,图中部分内容被抹掉。敬请见谅。

2016-05-08

libde265解码器源代码

libde265,开源视频解码器。用C++编写,已经生成VS2012工程,可以方便的进行调试。

2015-10-07

YUVviewer-HEVC

2002年,Ye-Kui Wang (wyk@ieee.org)和 Juan-Juan Jiang (juanjuan_j@hotmail.com)写了一个YUVviewer小软件,后经国内264相关论坛社区版主进行改进,有了后面的YUVPlayer1.3等优秀软件的产生。但是,没有找到它们 的源代码,不能在他们基础上进行相关工作,甚是遗憾。所以,自己看了一个原版的YUVviewer代码,发现,YUVviewer的源代码写得很糟糕,当然这没有贬低原作者的意思,毕竟有了他们的开创性工作,才能有后来的工作。YUVviewer的源代码,无论是从面向对象的思想或者软件本身的设计和软件的编码来说,都是一般般的。所以,经过我2天的努力,我已经从面向对象思想和有利于软件的可扩展性方面做了一点儿工作,对源代码中的某些地方进行了改进,现将原代码进行公布,方便各位同仁在此基础上进行扩展。

2013-05-25

新一代视频压缩编码标准H.264

新一代视频压缩编码标准H.264。非常清晰的一本PDF,非扫描版,里面主要介绍了与三维音视频压缩编码标准有关的知识,非常值得一看。

2012-06-05

基于OPENCV的超声图像增强

基于OPENCV的超声图像增强 项目中用了基本的OPENCV 函数 实现了 超声图像的增强 OPENCV 是 计算机视觉领域一个 不错的 开发工具 项目中用提出了一个新的方法来处理数字图像 同时也对比了直方图均衡化 和数学形态学方法的 的处理结果 此项目 中代码的组织结构 也 可以 好好研究一下 同时 对 初学OPENCV 的人来说也是一个 很好的 学习项目 项目的开发环境是 基于 ECLIPSE + LINUX 的 当然 熟悉的人可以 直接 转化到 WINDOWS 下 祝好

2012-05-17

编译原理 词法分析 。。。。。。。。。。。

编译原理 词法分析编译原理 词法分析编译原理 词法分析编译原理 词法分析编译原理 词法分析编译原理 词法分析编译原理 词法分析编译原理 词法分析编译原理 词法分析编译原理 词法分析编译原理 词法分析编译原理 词法分析编译原理 词法分析编译原理 词法分析编译原理 词法分析编译原理 词法分析

2011-06-08

emacs 教程初步

初步介绍了emacs的基本知识。。。但是,还要好好钻研。。。

2010-09-10

j2me 模拟试题 复习纲要

j2me 模拟试题 、比较详细的列出了复习纲要。。。

2010-06-30

Linux内核情景分析.pdf 非扫描版

Linux内核情景分析.pdf 非扫描版 对学习linux内核,了解linux内核,熟悉linux系统有很好的帮助。。。。

2010-05-11

都市行 公交查询 j2me

都市行 公交查询 j2me 此软件属于免费软件,故在此不要各位的资源分。。。此软件要在线去获取注册号。。。不过各位放心,现在官方的注册号也是免费的。。。此外,此软件,经过模糊处理,如果,各位想反编译成功,估计要一点周折。。。

2010-05-08

设计模式解决软件的可扩展可复用问题

设计模式。。。。设计模式在编程用能够比较好的解决软件的可扩展,可复用问题。。。

2010-05-08

JavaWEB_PPT.rar

JavaWEB_PPT.rar 里面是 ppt,就当是一片文章,,,读读可以。。。

2010-05-08

深入浅出Android--Google手持设备应用程序设计.pdf

深入浅出Android--Google手持设备应用程序设计.pdf...里面的BMI比较简单,比较全面。。。不错。。。。

2010-05-08

多任务下的数据结构与算法.pdf

多任务下的数据结构与算法.pdf////////////////////////////////

2010-05-08

NeHe+OpenGL中文教程.CHM

NeHe+OpenGL中文教程.CHM ,教程内容是翻译过来的。。。不过还是挺好的。。。

2010-05-08

空空如也

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

TA关注的人

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