- 博客(340)
- 资源 (26)
- 收藏
- 关注
原创 关于视频技术发展趋势的一些理解
视频行业近几年经历了飞速的发展,一些新的视频用语和应用逐步进入我们的生活中,例如VR,短视频,视频云,智能视频等。这些炫酷的词语可能让你眼花缭乱,不知所云。 本文试图从一个较高层次对视频的未来进行总结和分析,主要目的是抛砖引玉,并增进对视频系统技术发展趋势的理解。 视频技术的发展主要是随着“互联网+”和人工智能AI等新技术的发展而不断往前推进,它与云计算和...
2018-03-18 15:52:54 7819
转载 AMD ROCm 平台简介
最近,AMD 发布 MIOpen。至此,AMD 始于15年的打造 GPU 计算生态的 Boltzmann Initiative,有了阶段性的成果。下面本文从深度学习计算的视角来审视一下 AMD 推出的 ROCm 生态。当然, ROCm 是一个完整的 GPGPU 生态,这里的讨论大体也适用于其他应用领域。 1. OverviewROCm 的目标是建立可替代 CUDA 的生态(图1),并在源码级别...
2018-02-26 20:00:49 9882 1
原创 数字视频编解码基础
1. 绪论人类社会的三大支柱是物质、能量和信息。具体而言,农业现代化的基础是物质,工业现代化的支柱是能量,而信息化的支柱是信息。90 年代以来,随着Internet和移动通信的迅猛发展,视频信息和多媒体信息在Internet 网络和移动网络中的处理和传输成为了当前我国信息化中的热点技术,数字视频技术在通信和广播领域获得了日益广泛的应用。视频信息具有直观性、确切性、高效性、广泛
2015-03-07 12:35:01 4086
原创 Using valgrind to detect memory errors使用valgrind检测内存错误
原创作品,转载请注明出处1 OverviewThis document makes a investigation on issue of resource leaks and how to detect them using valgrind.1.1 Document OrganizationAfter a brief introduction of the conce
2014-12-24 16:53:01 3148
原创 "select一直返回0"的问题解决和总结
场景:一个简单的TCP 服务器我在linux平台下,创建一个TCP套接字,绑定到49156端口,向UPNP SERVER发一个subscribe订阅请求,超时时间设置为5minutes.然后开启一个Thread_Main主接收线程。该线程完成以下工作:(1)调用select监听是否有数据可读,设置4s的超时;(2)如果select返回值正常(>0),则调用accept,接收客户
2013-12-24 16:45:30 31958 7
原创 gSOAP C++移植和开发总结
1.cannot open file "custom/duration.h" for reading:解决办法:把gsoap2.8.15/gsoap/custom目录拷贝到当前工作目录2.stdsoap2.cpp:8888: undefined reference to `namespaces解决办法make file:CFLAGS := -g -O2 -Wall -W
2013-10-21 22:49:56 12535 2
原创 从总体上把握Linux内存管理
1.建立内存碎片的概念 内存碎片分为:内部碎片和外部碎片 1.1 内部碎片 内部碎片就是已经被分配出去(能明确指出属于哪个进程)却不能被利用的内存空间; 内部碎片是处于区域内部或页面内部的存储块。占有这些区域或页面的进程并不使用这个块。而在进程占有这块存储存储块时,系统无法利用它。直到进程释放它,或进程结束时,系统才有可能利用这个存储块。
2013-04-07 15:00:24 1777
原创 快速上手Gobject
What is G-object?—很多人被灌输了这样一种概念:要写面向对象程序,那么就需要学习一种面向对象编程语言,例如C++、Java、C#等等,而C语言是用来编写结构化程序的。—事实上,面向对象只是一种编程思想,不是一种编程语言。换句话说,面向对象是一种游戏规则,它不是游戏。—Gobject,亦称Glib对象系统,是一个程序库,它可以帮助我们使用C语言编写面向对象程序;它提供了一
2012-07-24 10:12:52 28558 13
原创 深入浅出gstreamer开发
Gstreamer解决什么问题?—上层接口和应用方式的相对稳定与底层接口、平台环境的多样化。例如:codec不同种类不同实现,音视频处理不同,硬件输入、输出、采集播放不同,芯片不同,操作系统不同。—通用组件不灵活与需求的多变。色彩空间转换、缩放、编解码等组件功能是单一的。通过对这些组件进行组合,就可以满足多变的需求。要想拥有模块性、可移植性和通用的功能,通常是以极高的复杂性为代价。—计
2012-07-24 09:48:37 15445 12
原创 相见恨晚之gstreamer核心源码走读typefind原理和对象关系浅析(三) .
mark>待完善 Smith先生版权所有, 如需转载,请注明出处:本博客链接http://blog.csdn.net/acs713/article/details/7742976
2012-07-17 17:26:55 5481 2
原创 B-树学习笔记
B-tree(多路搜索树,并不是二叉的)是一种常见的数据结构。使用B-tree结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度。按照翻译,B 通常认为是Balance的简称.这个数据结构一般用于数据库的索引,综合效率较高。 B-tree中
2011-10-17 10:28:04 16549 4
原创 学习笔记:RTP/RTCP的音视频同步原理总结
参考文章::https://blog.csdn.net/lincaig/article/details/81209895https://www.cnblogs.com/x_wukong/p/5876645.htmlhttps://blog.csdn.net/wxl1986622/article/details/52758022?utm_medium=distribute.pc_relevan...
2020-05-04 21:40:32 3589
原创 人工智能学习笔记--理解深度学习中的前向传播和反向传播算法
一个典型的神经元模型可以用下图表示:一个典型的全连接前向神经网络如下图所示:设激活函数为f,权重矩阵为W,偏置项为b,输入为A,最终输出为Y,则Y = f(WA+b),计算输出Y这个过程就是前向传播的过程。对于一个还没有训练好的神经网络而言,各个神经元之间的参数都是随机值,即初始化时赋的值,前向传播过程是神经网络的输入输出过程,即网络是如何根据A的值得到输出的Y值...
2019-12-18 16:46:09 1638
转载 H.264多参考帧管理
原文地址:http://blog.csdn.net/sunshine1314/article/details/575598【outline】一、相关变量含义二、解码流程(突出参考图像管理部分)三、参考图像的标记四、参考图像的初始化五、参考图像的重排序一、相关变量含义DPB(Decoded Picture Buffer): 保存所有的重建图像,ListX[i]: ...
2019-11-05 11:27:08 1650
转载 H264 中的参考帧列表
H264中允许从多至15个帧里面选择1帧或者2帧出来作为参考进行预测,所以必须引入一个列表来管理这些参考图像,对与P slice而言,对应 list0,对于 B slice 而言,还需要多一个 list1,因为 B slice 是进行的两次预测!(一个前向一个后向/两个前向/两个后向)参考帧分为 long term / short term 两种,即所谓的长期参考帧和短期参考帧。其中长期参...
2019-11-05 11:15:35 2373
原创 Gstreamer被ffmpeg或其他媒体框架淘汰了吗?
目前,很大部分音视频编解码应用开发都是基于ffmpeg框架。ffmpeg API简单 上手快,也迅速成为了国内视频相关开发者的首选开源库。而gstreamer由于其复杂难懂,学习成本高,似乎在国内使用的人越来越少. 于是乎, 有人认为 熟悉ffmpeg API就可以在音视频流媒体开发畅通无阻了。 个人认为,不是这样。如果你只想写一个简单的音视频应用,那么也许ff...
2019-06-10 23:01:01 19417 7
原创 OPENCV3.4.0安装及开发环境搭建
参考了:https://www.cnblogs.com/wycBlog/p/7217498.html全部实际操作一遍。1.使用wget下载opencv3.4.0源码sudo wget https://github.com/Itseez/opencv/archive/3.4.0.zip2.解压ZIP源码文件sudo apt-get install unzipsudo unzi...
2018-07-27 13:59:06 3317 1
转载 深度学习入门必须理解这25个概念
https://blog.csdn.net/pangjiuzala/article/details/72630166 神经网络基础1)神经元(Neuron)——就像形成我们大脑基本元素的神经元一样,神经元形成神经网络的基本结构。想象一下,当我们得到新信息时我们该怎么做。当我们获取信息时,我们一般会处理它,然后生成一个输出。类似地,在神经网络的情况下,神经元接收输入,处理...
2018-03-24 16:01:17 1400
转载 AI、机器学习、深度学习几个概念傻傻分不清?一张图让你搞明白!
随着人们对人工智能领域的不断探索和实践,越来越多的概念涌入了我们的生活,本文将对其中最重要的三个概念:人工智能、机器学习和深度学习进行解析,帮你搞清楚它们之间的关系以及这些技术发挥的重要作用。 这三个概念到底是什么关系?人工智能、机器学习、深度学习,这三个概念非常相似,也常常为媒体所混用。但其实它们并不难区分,诞生于不同的科技水平和时代背景下,三个概念的依次包含关系,反映出了人类在人工智能领域...
2018-03-24 07:14:25 8189
转载 传统安防正在悄然改变 智能视频云呈燎原之势
[导读]传统安防的概念升级成为以视频为核心的物联信息管理体系,这也给安防产业链条的各个环节带来前所未有的机会。据预测,未来几年内“智能视频分析、云、联网”都将在不同程度塑造和改变未来的监控市场。 随着基础通信技术的发展和基础建设的不断完善,“互联网+”和AI等推进下,各行各业的边界越来越模糊,传统安防的概念升级成为以视频为核心的物联信息管理体系,这也给安防产业链条的各个环节带来前所未有的机会。...
2018-03-20 10:17:21 757
转载 深入理解构造和析构函数
深入理解构造和析构函数 一、 概述构造函数和析构函数是当你刚接触C++的时候就会碰到的两个概念,也是C++语法中较难掌握的两个概念。但是它们又是学习C++必须掌握的,可以说没有理解构造和析构函数,你的C++就还没有入门。本文拟对构造函数、析构函数进行系统的介绍,使得那些对这两个概念有初步认识的人能有更进一步的理解。 二、 构造函数做什么?构造函数从无到有创建对象。 构造函数...
2018-03-18 19:14:08 3023
转载 Linux内核中分配4M以上大内存的方法
在Linux内核中, kmalloc能够分配的最大连续内存为2的(MAX_ORDER-1)次方个page(参见alloc_pages函数, "if (unlikely(order >= MAX_ORDER)) return NULL;"), page的大小一般是4K bytes, MAX_ORDER缺省定义为11, 所以如果不修改内核, kmalloc能够分配的最大...
2018-03-14 17:15:44 3745
转载 基本3D变换之World Transform, View Transform and Projection Transform
作者:i_dovelemon来源:CSDN日期:2014 / 9 / 28主题:World Transform, View Transform , Projection Transform引言 在3D图形学中,基本几何变换是一个非常重要的操作。可以说,整个3D图形能够有效的显示,就是由于几个非常重要的基础3D变换贡献的。在前面的文章中,向大家承诺了,要详细的讲解在3D图...
2018-03-12 13:22:13 870
转载 线性判别分析Linear Discriminant Analysis (LDA)
原文链接 : http://www.dataivy.cn/blog/%E7%BA%BF%E6%80%A7%E5%88%A4%E5%88%AB%E5%88%86%E6%9E%90linear-discriminant-analysis_lda/判别分析(Discriminant Analysis)是一种分类方法,它通过一个已知类别的“训练样本”来建立判别准则,并通过预测变量来为未知类别的数据进行...
2018-03-07 14:41:28 2868 1
转载 AMD Launches ‘Boltzmann Initiative’ to Dramatically Reduce Barriers to GPU Computing on AMD FirePro™
New Tools Target an Unprecedented 28 Teraflops of Processing at Less Than a Kilowatt by 2016 AUSTIN, Texas 11/16/2015 ContentMain1Building on its strategic investments in heterogene...
2018-02-26 20:02:14 364
转载 Understanding 3D Projections(理解3D投影)
投影概述为了在显示器上显示场景中的三维物体,需要把三维物体投影到二维观察平面上。这种从三维图形到二维图形的变换称为投影变换(Projections)。投影的更抽象和精确点的数学定义是:将n维空间中定义的点变换到小于n维空间中的变换具体点可以这么理解, 投影变换完成的是如何将三维模型显示到二维视口上,这是一个三维到二维的过程。你可以将投影变换看作是调整照相机的焦距,它模拟了为照相机选
2017-12-29 16:50:06 1347
原创 Linux Proc文件系统详解
Linux Proc文件系统详解Proc文件系统是一个伪文件系统,做为一个特殊接口来访问内核,常常挂载在/proc下,里面的大多数文件时只读的,但是我们仍然可以设置其中一些变量来改变内核设置。通过Man5 proc 来进行查阅proc文件系统的详细信息。我们可以用cat more grep等linux命令来进行查看proc文件系统的内容I)进程相关
2017-12-24 22:03:15 5368
原创 科普之Linux应用程序与内核程序交互的几种方式。
我们知道,对于一个应用程序即一个操作系统进程来说,它既有内核空间(与其他进程共享),也有用户空间(进程私有私有)。不管是内核空间还是用户空间,它们都处于虚拟地址空间。想了解更多,请参考我之前的博文:深入浅出Linux内核内存管理基础 第一节(http://blog.csdn.net/acs713/article/details/42836335)。 本文的目的不在于探
2017-12-24 20:31:56 5256
原创 科普系列之Linux内核中断
可以认为,Linux操作系统内核的主要职责在于配合中央处理器CPU管理外部硬件设备(简称外设),如硬盘,键盘,鼠标啊等等。为了达到管理的成效,kernel务必与各个外设进行沟通。沟通方式无外乎两种:轮询和中断。 所谓轮询, 就是KERNEL不断地去查询外设的状态。这个不现实。因为如果是通过kernel发出请求并不断轮询的话,CPU比外设的运行速度快很多,CPU在KERNEL死等那段时
2017-12-24 00:46:58 344
转载 [业余学习]整形数反转
class Solution {public: int reverse(int x) { long long rest = 0; while(x) { rest = rest*10 + x%10; x /= 10; } return (restINT_MAX) ? 0
2017-08-06 22:39:57 392
原创 【业余练手系列】First Unique Character in a String
Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.Examples: s = "leetcode"return 0.s = "loveleetcode",return 2.Note:
2017-08-06 16:38:35 403
转载 vi下以16进制来查看二进制文件
在vi的命令状态下 ::%!xxd ——将当前文本转换为16进制格式。:%!od ——将当前文本转换为16进制格式。:%!xxd -c 12——将当前文本转换为16进制格式,并每行显示12个字节。:%!xxd -r ——将当前文件转换回文本格式。 xxd工具:xxd creates a hex dump of a given file or standard i
2017-04-20 18:00:09 2294
转载 [总结]C语言二维数组作为函数的参数
前言:今天在实现装配线调度程序时候,用到了二维数组,并将其作为函数的参数。在写程序的时候,遇到一些问题,即二维数组做函数的参数应该如何正确表示。我写程序的错误如下程序所示: 1 #include 2 void print(int *a[3]) 3 { 4 printf("%d\n",a[0][0]); 5 } 6 7 int main() 8 { 9
2017-04-17 15:39:24 1751 1
转载 C语言实现矩阵相乘
问题描述:编写程序,可以实现m*n矩阵和n*p矩阵相乘。m,n,p均小于10,矩阵元素为整数。分析:首先我们可以根据题意写出函数头。可以定为void MatrixMutiply(int m,int n,int p,long lMatrix1[MAX][MAX],long lMatrix2[MAX][MAX],long lMatrixResult[MAX][MAX]),其中lMa
2017-04-17 15:30:13 10084
原创 使用libjpeg进行编码之二:对I420YUV实现编码
#include #include #include #include #include #include using namespace std; extern "C" {#include #include #include } #define WIDTH 320#define HEIGHT 240#define QUALITY 80#de
2017-04-13 11:16:03 2495 1
转载 C语言far关键字作用
far即为远地址,16位模式下(如80x86系列)内存是分段寻址的; (一个段就是 2^16,即64k)指定void far fun1();的话,是说函数fun1的入口点在其它段中,调用时将用到段地址; 如果指定为near的话,入口点将在本段之内,调用时值使用段内的偏移地址。 32位中采用线性的平坦寻址方式,这一概念已被抛弃了,内存中地址统一为32位宽,大体 说
2017-04-13 10:43:56 5354
原创 运行时错误:Error: free(): invalid next size (fast)
经查,这通常发生在C/C++混合编程时候调用的内存分配、释放接口不配对时。即malloc分配的内存,却用了delete或者new出来的对象,却用了free.只要确保:malloc/free new/delete配对,该问题就消失了。
2017-04-13 10:36:42 19625
深入浅出gSOAP C++移植和开发
2013-11-18
SQLite技术内幕:Inside Symbian SQL.pdf
2011-10-18
Linux/unix shell-scriptting编程经典PPT
2011-05-01
嵌入式Linux应用程序开发详解(完整版)
2011-04-04
GNU/Linux Application Programming(英文版)
2011-04-04
Linux_Posix多线程编程原理与实践(中文版)
2011-04-04
IP+Telephony(关于SIP和H323的经典英文书籍)
2010-08-26
Object-Oriented+Programming+And+The+Objective-C+Language.pdf
2010-03-31
ubuntu系统管理教程
2009-05-14
Teach Yourself C in 21 Days
2009-05-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人