自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

影音视频技术

yuv420.com

  • 博客(137)
  • 资源 (10)
  • 收藏
  • 关注

原创 编译glew-1.12.0

动态库直接编译静态库,需要修改头文件glew.h 添加定义#define GLEW_STATIC否则编译成功,但是链接会出现问题:unresolved external symbol __imp__glewInit@0

2015-08-27 12:33:01 438

转载 熵编码基础概念

熵编码即编码过程中按熵原理不丢失任何信息的编码。信息熵为信源的平均信息量(不确定性的度量)。常见的熵编码有:香农(Shannon)编码、哈夫曼(Huffman)编码和算术编码(arithmetic coding)。在视频编码中,熵编码把一系列用来表示视频序列的元素符号转变为一个用来传输或是存储的压缩码流。输入的符号可能包括量化后的变换系数,运动向量,头信息(宏块头,图象头,序列的头等)以及附加

2015-08-26 14:01:22 2315

原创 GOOGLE校招的笔试题解析

据说是GOOGLE校招的笔试题:用二进制来编码字符串“abcdabaa”,需要能够根据编码,解码回原来的字符串,最少需要多长的二进制字符串?A.12 B.14 C.18 D.24答案 B解法:根据信息论求取该信息熵为:            a:出现概率:4/8,b:出现概率:2/8,c出现概率:1/8,d出现概率1/8            信息熵为:

2015-08-24 15:38:42 772

转载 C++虚拟继承与普通继承的区别

前面一篇文章,说明了在C++ 虚继承对基类构造函数调用顺序的影响。经过仔细推敲,发现没有彻底说清楚虚继承与普通继承之间的关系。所以用下面的文字再说明一下。首先,重复一下虚拟继承与普通继承的区别有:假设derived 继承自base类,那么derived与base是一种“is a”的关系,即derived类是base类,而反之错误;假设derived 虚继承自base类,那么

2015-08-24 15:03:54 1348

转载 各大型网站的架构分析

1. PlentyOfFish 网站架构学习http://www.dbanotes.net/arch/plentyoffish_arch.html采取 Windows 技术路线的 Web 2.0 站点并不多,除了 MySpace ,另外就是这个 PlentyOfFish。这个站点提供 “Online Dating” 服务。一个令人津津乐道的、惊人的数据是这个只有一个人(创建人Marku

2015-08-24 13:20:56 877

转载 C++对象内存布局

#类中的元素0. 成员变量   1. 成员函数   2. 静态成员变量   3. 静态成员函数   4. 虚函数   5. 纯虚函数#影响对象大小的因素0. 成员变量     1. 虚函数表指针(_vftptr)   2. 虚基类表指针(_vbtptr)   3. 内存对齐_vftptr、_vbtptr的初始化由对象的构造函数, 赋值运算符自动完成;对象生命

2015-08-24 13:17:25 425

转载 程序编译过程概述

编译过程主要分为4个过程  1) 编译预处理  预编译程序完成的工作,可以说成是对源程序的“替换”工作。经过这个过程,生成一个没有宏定义、没有条件编译指令、没有特殊符号的输出文件。宏定义命令;例如#define条件编译指令;例如#ifdef头文件包含指令;例如#include特殊符号;例如__LINE__,__FILE__预处理模块;例如#pragma2) 编译、优化阶段:

2015-08-24 12:46:37 518

转载 音频后处理基本概念

ES: Echo Suppresion EES: Enhanced Echo SuppresionAEC: Acoustic Echo Cancellation 声学回声消除。在一般的VOIP软件或视频会议系统中,假设我们只有A和B两个人在通话,首先,A的声音传给B,B然后用喇叭放出来,而这时B的MIC呢则会采集到喇叭放出来的声音,然后传回给A,如果这个传输的过程中时延足够大,A就会听

2015-08-24 12:45:02 3182

转载 c++程序的内存布局

对任何一个普通C++程序来讲,它都会涉及到5种不同的数据段。常用的几个数据段种包含有“程序代码段”、“程序数据段”、“程序堆栈段”等。不错,这几种数据段都在其中,但除了以上几种数据段之外,进程还另外包含两种数据段。下面我们来简单归纳一下进程对应的内存空间中所包含的5种不同的数据区。代码段:代码段是用来存放可执行文件的操作指令,也就是说是它是可执行程序在内存种的镜像。代码段需要防

2015-08-24 12:41:44 358

转载 求两个整数的平均值

求两个整数的平均值这个问题相信大家都想过,大家肯定会很快的写出以下的算法:01public static int mean(int a, int b){02    return (a + b) / 2;03}04

2015-08-24 12:34:53 1553

转载 数据结构之-堆

堆常用来实现优先队列,在这种队列中,待删除的元素为优先级最高(最低)的那个。在任何时候,任意优先元素都是可以插入到队列中去的,是计算机科学中一类特殊的数据结构的统称一、堆的定义最大(最小)堆是一棵每一个节点的键值都不小于(大于)其孩子(如果存在)的键值的树。大顶堆是一棵完全二叉树,同时也是一棵最大树。小顶堆是一棵完全完全二叉树,同时也是一棵最小树。注意:堆中任一

2015-08-24 11:44:12 378

转载 AAC格式分析之ADTS-(Audio Data Transport Stream) & LATM

1.ADTS是个啥ADTS全称是(Audio Data Transport Stream),是AAC的一种十分常见的传输格式。记得第一次做demux的时候,把AAC音频的ES流从FLV封装格式中抽出来送给硬件解码器时,不能播;保存到本地用pc的播放器播时,我靠也不能播。当时崩溃了,后来通过查找资料才知道。一般的AAC解码器都需要把AAC的ES流打包成ADTS的格式,一般是在AAC

2015-08-24 11:37:49 1753

转载 理解傅里叶分析

作 者:韩 昊知 乎:Heinrich微 博:@花生油工人知乎专栏:与时间无关的故事谨以此文献给大连海事大学的吴楠老师,柳晓鸣老师,王新年老师以及张晶泊老师。转载的同学请保留上面这句话,谢谢。如果还能保留文章来源就更感激不尽了。——更新于2014.6.6,想直接看更新的同学可以直接跳到第四章————我保证这篇文章和你以前看过的所有文章都不同,

2015-08-24 11:35:05 372

转载 MPEG-2 TS码流分析

一、TS流概述ES流(Elementary Stream,基本流):数字电视各组成部分编码后所形成的直接表示基本元素内容的流,包含视频、音频或数据的连续码流。PES流(Paketized Elementary Stream,打包基本码流):是将基本的码流ES流根据需要分成长度不等的数据包,并加上包头就形成了打包的基本码流PES流。PS (Program Stream,节目流

2015-08-24 11:08:39 906

转载 Directshow 的前世今生,兼谈Media Foundation

近来在研究Media Foundation,查了一下资料竟然发现这个被微软官方钦定的Direct Show的继承人既然已经推出有10年的时间了。这不由让人好奇,自推出以来就被人诟病的Direct Show为什么还能在这10年的时间里居然还地位稳固呢? 好了,这一期先不探讨Diret Show地位稳固的原因了,先简单回顾一下Direct Show的发展历史,至于它是否会被MF替换,什么时候会被替

2015-08-24 10:54:02 2108 1

转载 OpenCV利用GPU解码高清视频

问题描述:项目中,需要对高清监控视频分析处理,经测试,其解码过程所占CPU资源较多,导致整个系统处理效率不高,解码成为系统的瓶颈。解决思路:利用GPU解码高清视频,降低解码所占用CPU资源,加速解码过程。一、OpenCV中的硬解码OpenCV2.4.6中,已实现利用GPU进行读取视频,由cv::gpu::VideoReader_GPU完成,其示例程序如下:[cp

2015-08-24 10:34:12 9851 1

转载 什么是回归分析

【编者按】回归分析是建模和分析数据的重要工具。本文解释了回归分析的内涵及其优势,重点总结了应该掌握的线性回归、逻辑回归、多项式回归、逐步回归、岭回归、套索回归、ElasticNet回归等七种最常用的回归技术及其关键要素,最后介绍了选择正确的回归模型的关键因素。什么是回归分析?回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。这种技术通常用于预测分析,

2015-08-24 10:31:04 1232

转载 OpenCV和Cuda结合编程

一、利用OpenCV中提供的GPU模块  目前,OpenCV中已提供了许多GPU函数,直接使用OpenCV提供的GPU模块,可以完成大部分图像处理的加速操作。  基本使用方法,请参考:http://www.cnblogs.com/dwdxdy/p/3244508.html  该方法的优点是使用简单,利用GpuMat管理CPU与GPU之间的数据传输,而且不需要关注内核函数调用参数的设置,

2015-08-24 10:28:26 842

转载 OpenCV中GPU模块使用

CUDA基本使用方法在介绍OpenCV中GPU模块使用之前,先回顾下CUDA的一般使用方法,其基本步骤如下:1.主机代码执行;2.传输数据到GPU;3.确定grid,block大小;4.调用内核函数,GPU运行程序;5.传输结果到CPU;6.继续主机代码执行。下图是两个向量相加的简单示例程序和处理流图。注意的问题:cu,cpp文件的组织内核函数和其wrapper函数置于

2015-08-24 10:25:35 5135

转载 DXVA硬件加速解码

一、DXVA介绍DXVA是微软公司专门定制的视频加速规范,是一种接口规范。DXVA规范制定硬件加速解码可分四级:VLD,控制BitStream;IDCT,反余弦变换;Mocomp,运动补偿,Pixel Prediction;PostProc,显示后处理。其中,VLD加速等级最高,所以其包含IDCT、MoCoopm和PostProc;IDCT加速次之,包含MoCoopm和PostProc;最

2015-08-24 10:22:34 9173

转载 OpenCV中利用GPU硬编码

一、OpenCV中的硬编码OpenCV2.4.6中,已实现利用GPU进行写视频,编码过程由cv::gpu::VideoWriter_GPU完成,其示例程序如下。int main(int argc, const char* argv[]) {     if (argc != 2)     {         std::cerr "Usage : video_writer "       

2015-08-24 10:18:18 4099

原创 如何实现视频的快进快退功能(整理)

最近在研究视频的播放的快进快退功能,先把相关的调研结果整理一下,做个记录。裸的H264码流,如果实现快进快退必须基于 I 帧才能实现:在播放前对整个码流进行统计,总共有多少帧,所有的 I 帧在什么位置。在播放的时候,再根据用户快进或快退的位置判断相邻最近的 I 帧在什么位置,然后从那一个 I 帧开始解码播放。H.264 要准确确定 I 帧比较麻烦。一个相对有效的方法是:对 slice

2015-08-24 10:11:08 22381

转载 流媒体开发之--直播实现

1、流媒体开发之--直播实现2、流媒体开发之-直播自定义列表3、流媒体开发之-服务器图片的加载4、流媒体开发之-直播自定义分类5、流媒体开发之-获取直播节目预告-16、流媒体开发之-直播界面切换电视台频道     网上大多数直播软件都会提供一个功能就是自定义,这个由于版本问题,而为了让用户看到自己想看的频道,可以让用户自己添加找到的源,然后进

2015-08-21 18:42:03 5681

转载 B树、B-树、B+树、B*树

B树       即二叉搜索树:       1.所有非叶子结点至多拥有两个儿子(Left和Right);       2.所有结点存储一个关键字;       3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;       如:              B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,

2015-08-20 12:51:00 599

转载 NAT穿越-TCP打洞

TCP打洞在处于NAT之后的两台主机之间建立p2p TCP连接比建立相应的UDP要稍微复杂,但在协议层次,TCP打洞非常类似与UDP打洞。然而TCP协议本身比较复杂,因此支持的NAT比较少。然而,在NAT支持TCP打洞的情况下,TCP打洞像UPD打洞那样快并且可靠。穿透“行为良好”的NAT的TCP p2p连接事实上比UDP连接更健壮,因为,TCP协议的状态机给路径上的NAT提供了一种决定特

2015-08-20 12:42:43 2682

转载 数据结构——堆

简介本文简要介绍数据结构 堆 的概念并提供了实现源码: CHeapTree类。CHeapTree类的实现是基于一个自动增长的数组。 什么是堆堆是一种特殊的二叉完全树。堆的一个主要特点是它以一定的偏序(a partial order)来保存所有节点[译者注:此处的偏序是指不完全的排序,堆只需要满足父节点大于两个子节点,而子节点之间没有要求]。作为一颗完全树,一层中的节点是从左到右填满

2015-08-20 10:47:47 434

转载 epoll两种触发方式

LT(level triggered)是缺省的工作方式,并且同时支持block和no-block socket.在这种做法中,内核告诉你一个文件描述符是否就绪了,然后你可以对这个就绪的fd进行IO操作。如果你不作任何操作,内核还是会继续通知你的,直至变为未就绪状态,所以,这种模式编程出错误可能性要小一点。传统的select/poll都是这种模型的代表。  ET (edge-triggere

2015-08-20 10:22:58 552

转载 Webkit中HTML5 Video的实现分析-HTMLMediaElement & MediaPlayer

以下为针对Webkit中HTML5 Video实现原理的分析和学习总结。至于其中的UML图档,可以到下面的github链接中下载。首先预览一下Webkit中和Video相关的主要的类的层次结构:其中主要的类为HTMLMediaElement, MediaPlayer以及RenderVideo(左下角).HTMLMediaElement代表了DOM结点,其继承关系

2015-08-20 10:07:47 3050

转载 如何获取播放H264原始数据文件的宽高信息(from SPS PPS)

有这样一种需求,给你一个h264原始数据文件,让你直接播放出来,如何实现?思路是这样的,H264原始数据格式都是 0x00000001后面跟0x67 0x68 0x65 0x41这样的数据,解码需要一个完整的NAL数据单元,我们需要将每个0x00000001以及下一个0x00000001之前的数据读出来,交给解码器解码。读文件我就不啰嗦了,本文主要讲解如何从SPS获取视频长宽,SPS即0x

2015-08-19 16:18:49 3596 5

转载 静态类

静态类成员包括静态数据成员和静态函数成员两部分。 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时,静态数据成员还具有以下特点: 1.静态数据成员的定义。 静态数据成员实际上是类域中的全局变量。所以,静态数据成员的

2015-08-19 16:11:30 396

原创 2015年8月份浏览器使用比例

2015年8月份浏览器统计结果:数据来源:http://marketshare.hitslink.com/browser-market-share.aspx?qprid=0&qpcustomd=0&qpsp=178&qpnp=1&qptimeframe=M

2015-08-19 16:04:43 583

转载 CPU的Cache

一. CacheCache一般来说,需要关心以下几个方面1)Cache hierarchyCache的层次,一般有L1, L2, L3 (L是level的意思)的cache。通常来说L1,L2是集成  在CPU里面的(可以称之为On-chip cache),而L3是放在CPU外面(可以称之为Off-chip cache)。当然这个不是绝对的,不同CPU的做法可能会不太一样。

2015-08-19 13:56:45 511

转载 C++之动态绑定和静态绑定

为了支持c++的多态性,才用了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误,需要理解四个名词:1、对象的静态类型:对象在声明时采用的类型。是在编译期确定的。2、对象的动态类型:目前所指对象的类型。是在运行期决定的。对象的动态类型可以更改,但是静态类型无法更改。关于对象的静态类型和动态类型,看一个示例:[C++] view

2015-08-19 13:29:26 402

转载 C++缓冲区的知识

下面介绍缓冲区的知识。一、什么是缓冲区缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区。缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区。二、为什么要引入缓冲区我们为什么要引入缓冲区呢?比如我们从磁盘里取信息,我们先把读出的数

2015-08-19 13:25:47 615

转载 关于空类大小问题的总结

1、为何空类的大小不是0呢?为了确保两个不同对象的地址不同,必须如此。类的实例化是在内存中分配一块地址,每个实例在内存中都有独一无二的二地址。同样,空类也会实例化,所以编译器会给空类隐含的添加一个字节,这样空类实例化后就有独一无二的地址了。所以,空类的sizeof为1,而不是0.2、请看下面的类:class A{ virtual void f(){} };class B:pub

2015-08-19 13:22:01 655

转载 2015上半年手机GPU排行榜

回望目前智能手机处理器的发展,重点似乎更多的是放在CPU上,无论是主频还是核心数量,都不断得到提升。然而,对喜欢游戏的用户来说,GPU更是显得尤为重要。手机芯片GPU模块类似电脑显卡,一个优秀的GPU会为你玩游戏带来非凡的体验,尤其在玩大型3D游戏时,GPU的优劣直接影响了整个游戏体验。在如今越来越追求大屏及高清2K、甚至4K屏的时代,GPU承载的压力也越来越大。排行榜数据从哪来?

2015-08-19 13:16:19 629

转载 移动GPU压缩纹理的使用方法

介绍了各种移动设备所使用的GPU,以及各个GPU所支持的压缩纹理的格式和使用方法。1. 移动GPU大全目前移动市场的GPU主要有四大厂商系列:1)Imagination Technologies的PowerVR SGX系列    代表型号:PowerVR SGX 535、PowerVR SGX 540、PowerVR SGX 543MP、PowerVR SGX 55

2015-08-19 13:10:26 554

转载 敏捷开发之Scrum基础

什么是敏捷开发?敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。怎么理解呢?首先,我们要理解它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去一步一步完成项目的开发;而这种开发方式的主要驱动核心是人;它采用的是迭代式开发; 为什么说是以人为核心?我们大部分人都学过瀑布开发模型,它是

2015-08-19 13:07:23 401

转载 Android之UI

UI界面,对于每个应用而言,是它与用户进行交互的门脸。好的门脸,不只是是要亮丽可人,最好还能秀色可餐过目不忘,甚至还应该有涵养有气质,彬彬有理温柔耐心。  对于开发者来说,锻造这样的面容,不但需要高超的技艺,也需要有称手的工具和对得起党的料子。俗话说,朽木不可雕也,芙蓉不是一日炼成的,不是什么平台都能叫特能书。有套好用的UI框架,对于开发者而言,真有如沙漠中的甘露,而要是撞见了杯具的UI套

2015-08-19 13:03:38 307

转载 摄像机工作原理

1、持续对焦和触摸对焦的工作原理;答:首先要了解一下对焦的工作原理。AF工作原理:就是通过微距移动镜头,sensor采集图像并传送给ISP处理,ISP把当前frame的对比度值(FV)记录下来并保存为A1,同时按照固定的step把镜头移动到下个位置。下个frame时,sensor又采集图像并传送给ISP处理,ISP把当前frame的对比度值(FV)记录下来并保存为A2。通过A1

2015-08-19 13:01:13 6397

SMPTEMot.Imag.J-2014--1-60.pdf

bt709 bt2020,SMPTEMot.Imag.J-2014--1-60.pdf

2020-04-10

H264 primer - A layman’s guide - by KUSH AMERASINGHE

H264 primer - A layman’s guide - by KUSH AMERASINGHE, introduction of H264

2015-08-12

directshow filter 工具

directshow filter完整的包含 了多个标准directshow filter,同时包含directshow filter的查看工具

2015-04-09

x264.dll需要的动态库pthreadGC2.dll下载

x264编译通过后,调用x264的接口进行软编码时需要该动态库(pthreadGC2.dll)才能运行。

2011-07-28

动态库导出静态库工具(dll2lib.exe)

该工具能够快速根据windows 动态库文件(*.dll)导出为静态库(*.lib)方便用户使用,特别是在x264编码器编译出来dll动态库后,需要相应的导出库时非常有用,分享给大家。

2011-07-28

MFC经典问答》配套代码.rar

《MFC经典问答》配套代码.rar

2008-06-13

仿Winamp界面多媒体播放器

仿照winmap多媒体播放器VC源码

2008-03-03

俄罗斯方块程序源码

VC编写的俄罗斯方块程序,源代码!

2007-06-25

空空如也

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

TA关注的人

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