自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

心之所向,身之所往

专注于多媒体技术(H264、HEVC、流媒体、ffmpeg、DirectShow、DXVA、MediaFundation)

原创 Hook参考源码

HOOK可以参考以下三个源码: mHook, minHook, Detours

2015-05-03 07:54:39 805 0

转载 x264_scan8 的理解

原文:http://blog.csdn.net/hevc_cjl/article/details/8273533 先上代码及注释 [cpp] view plaincopy #define X264_SCAN8_SIZE (6*8) //!   #de...

2015-04-06 08:51:45 805 0

原创 I 帧和 IDR 帧的区别

I 帧和 IDR 帧的区别:     IDR 帧属于 I 帧。解码器收到 IDR frame  时,将所有的参考帧队列丢弃 (用x264_reference_reset 函数实现——在 encoder.c 文件中) 。这点是所有 I 帧共有的特性,但是收到 IDR 帧时,解码器另外需要做的工作...

2015-04-04 09:21:05 8880 2

转载 X264如何阅读数

最近我也开始看 X264 的代码了,于是想到把我读代码的过程记录下来,因为总有很多新手问如何读代码,我这个帖子就是专为这些人写的。至于会读代码的人就完全没有必要看了。下面当然是以 X264 为例了。JM 以及其他代码的学习方法和技巧都是完全一样的。我所用的版本是在帖子 在VS2008下编译最新版的...

2015-04-03 21:05:17 1363 0

转载 Windows下编译x264

早期的版本有vc可以直接编译的, 现在的没有vc版本了; 如果希望在windows上学习x264,可以直接找到vc版本; 这里例举一下,网上的两个版本方法: 一:《VS2010编译x264(20091006)》 如果你仅仅需要使用x264的话你可以到这下载:http://x...

2015-04-01 23:14:13 1614 0

转载 Win8+VS2012(32位)下编译x265

相信很多朋友都尝试过编译x265,本人之前总是一头雾水,根据其x265官网的介绍尝试了好几种办法,一直没有搞定,还装了很多东西,什么yasm、Intel编译器和Cmake之类的,后来发现我把问题想得太复杂了,现介绍我在VS2012平台下编译x265的方法。 前期准备工作: 1、x265...

2015-03-31 07:58:13 1309 0

转载 SSE指令集入门

Intel公司的单指令多数据流式扩展(SSE,Streaming SIMD Extensions)技术能够有效增强CPU浮点运算的能力。Visual Studio .NET 2003提供了对SSE指令集的编程支持,从而允许用户在C++代码中不用编写汇编代码就可直接使用SSE指令的功能。MSDN中有...

2015-03-27 21:46:33 20371 0

转载 编写高效代码(8) 程序、数据访问符合Cache的时间、空间局部性

Cache正是利用了程序、数据访问时的时间局部性和空间局部性,为了使Cache的访问效率最高,程序和数据的组织,也应该要符合这两个特性。最典型的例子就是二维数组的访问,下面就是一个二维数组: 二维数组         如果a[i][j]在Cache中,那么a[i][j+1]就很可能也在Ca...

2015-03-27 21:11:50 1455 0

转载 编写高效代码(7) 优化内存访问——别让包袱拖垮了你

从理论上看,每条运算指令的执行时间都很短,大多数指令一个Cycle就能完成,很多时候还能一个Cycle执行多条指令,可是实际上,执行指令只是处理器要做的很少一部分工作,处理器还要从存储器中取指令,从存储器中将数据导入到寄存器中,等算完后,再将结果存入到存储器中。         处理器运算的速度...

2015-03-27 21:11:27 1174 0

转载 编写高效代码(6) 数据对齐访问

在32位处理器中,一个int型变量占4个byte,假设这个变量i在内存中占据2、3、4、5这4个byte的位置,如下图所示。   数据非对齐存储         内核在访问这个数据时,会先将从0开始的4个byte读入到寄存器A中,再将从4开始的4个byte读入到寄存器B中,再将有效的数据拼成...

2015-03-27 21:11:19 659 0

转载 编写高效代码(5) 尽量减少分支

我们在介绍处理器时,已经知道了,现在的处理器都是流水线结构,if和switch等语句会带来跳转,而跳转会打乱流水线的正常执行,影响程序的执行效率。          下面这段代码,把奇数赋一个值,把偶数赋一个值,可以用这种方式实现:  [cpp] view plaincopyprint?...

2015-03-27 21:10:22 625 0

转载 编写高效代码(4) 在精度允许的条件下,将浮点数定点化

浮点指令要比定点指令慢很多,功耗也大很多,在精度要求不那么高的情况下,就可以将浮点数定点化,用定点指令来代替浮点指令,一个典型的例子就是alpha混合。         《反恐精英》是很多人非常喜欢的游戏,在下面的游戏截图中,一个人扔了个烟雾弹,画面呈现出半透明的烟雾效果,随着时间的推移,烟雾逐...

2015-03-27 21:10:02 1387 0

转载 编写高效代码(3) 减少处理器不擅长的操作——不要逼我做我不喜欢的事情

尺有所短,寸有所长,每种处理器都有自己擅长与不擅长的操作。         在与处理器配套发布的指令集手册中,都会描述每个指令的执行周期,单周期指令是处理器最喜欢的,不仅执行时间短,而且利于流水线执行。加、减、逻辑运算等,常常是单周期指令,乘、除、分支指令、浮点指令、内存存取操作等,常常需要...

2015-03-27 21:09:33 692 0

转载 编写高效代码(2) 空间换时间——我们总是在走,却忘了停留

时间和空间的关系,是霍金这种智商的人要研究的东西,我们只需要知道,在编程时,空间是可以换时间的,时间也是可以换空间的。          李开复在他的自传《世界因你不同》中描述了他小时候在美国学校里的一个故事,老师出了道题:“谁知道1/7等于多少?”小开复马上大声回答:“0.142857”,...

2015-03-27 21:08:28 714 0

转载 编写高效代码(1) 减少函数调用——不要老打断我

函数是结构化程序设计的产物,它使代码更加模块化,耦合性更低,重用性更高。不过,函数调用会带来额外的开销,除了引起跳转外,还会产生额外的指令。         人都有这样的经验,做一件事情时,如果被人打断,重新再回来做这件事情,就需要一段恢复时间,如果老是被打断,那事情就没法做了。函数调用也是...

2015-03-27 21:07:48 754 0

转载 H.264中的P-Skip宏块和BSkip宏块简介

先说PSkip宏块,再说BSkip宏块.        P-Skip宏块是一种特殊的P宏块,在H.264中非常常见,那么P-Skip宏块特殊在什么地方呢?下面会慢慢道来.          对于一般的P宏块而言,像素残差和运动矢量残差都会写入码流,从编码端传到解码端,但是P-Sk...

2015-03-22 21:46:24 939 0

转载 结合avi视频文件头十六进制码分析AVI格式

这段时间要搞视频合成方面的东西,因此打算先弄明白avi视频的格式,介绍这方面内容的东西google一下一大堆,可是很悲剧,现在的人基本上都喜欢copy,内容基本来源于同一篇,对我没什么实质性的帮助。本来是希望通过看看一些avi合成的源码来分析avi的结构的,可是windows下的程序基本是调用di...

2015-03-14 22:24:41 2025 0

转载 MP4文件格式解析

目前MP4的概念被炒得很火,也很乱。最开始MP4指的是音频(MP3的升级版),即MPEG-2 AAC标准。随后MP4概念被转移到视频上,对应的是MPEG-4标准。而现在我们流行的叫法,多半是指能播放MPEG-4标准编码格式视频的播放器。但是这篇文章介绍的内容跟上面这些都无关,我们要讨论的是MP4文...

2015-03-14 21:36:04 24746 1

转载 MP4文件格式的解析,以及MP4文件的分割算法

mp4应该算是一种比较复杂的媒体格式了,起源于QuickTime。以前研究的时候就花了一番的功夫,尤其是如何把它完美的融入到视频点播应用中,更是费尽了心思,主要问题是处理mp4文件庞大的“媒体头”。当然,流媒体点播也可以采用flv格式来做,flv也可以封装H.264视频数据的,不过Adobe却不推...

2015-03-14 21:28:10 1376 0

转载 FLV封装格式分析器

===================================================== 视音频编解码学习工程系列文章列表: 视音频编解码学习工程:H.264分析器 视音频编解码学习工程:AAC格式分析器 视音频编解码学习工程:FLV封装格式分析器 视音...

2015-03-14 20:47:38 1698 0

转载 Media Foundation学习笔记(七)Media Foundation的架构 Source Reader

Source Reader提供了除了使用Media Session和Pipeline处理媒体数据之外的一种可选的方法。 Source Reader的典型应用就是从文件、网络流和视音频抓取设备等获取Media Sample。Source Reader内部使用一个Media Source对象,S...

2015-03-14 20:26:35 4386 1

转载 Media Foundation学习笔记(八)编程练习:一个通用视频文件播放器

我将有关Media Foundation的函数调用封装到一个类CSpsPlayer中了,CSpsPlayer类的使用方法如下: 1)CSpsPlayer* pPlayer = new CSpsPlayer(hWndPlay); 2)pPlayer->OpenFile(...

2015-03-14 20:26:15 4042 0

转载 Media Foundation学习笔记(六)Media Foundation的架构 Media Session

Media Session是管理数据流的对象。   接口:IMFMediaSession。   创建对象:MFCreateMediaSession、MFCreatePMPMediaSession(创建支持受保护内容的MedisSession,PMP全称是Protected ...

2015-03-14 20:22:27 1787 0

转载 Media Foundation学习笔记(五)Media Foundation的架构 Pipeline

Pipeline层是直接产生和处理媒体数据的层,它由“Media Sources”、“MFTs”和“Media Sinks”组成。大多数应用程序不需要直接调用Pipeline层对象的方法,而只需要使用如“Media Session”、“Source Reader”和“SinkWriter”这些上层...

2015-03-14 20:21:14 4369 1

转载 Media Foundation学习笔记(四)Media Foundation的架构 Platform API

Media Foundation Platform API   初始化 HRESULT hr = MFStartup(MF_VERSION); 注意:如果应用程序编译时使用的和系统上Media Foundation的dll不匹配的头文件,MFStartup会返回MF_E_B...

2015-03-14 20:20:43 2696 0

转载 Media Foundation学习笔记(三)Media Foundation的架构 基本对象类型

基本对象类型     Attributes   一个Attribute就是一个“键”-“值”对,其中“键”是一个GUID,“值”是一个PROPVARIANT。在Media Foundation中,Attributes被广泛地用于配置对象、描述媒体格式、查询对象属性和其...

2015-03-14 20:19:23 3765 0

转载 Media Foundation学习笔记(一)重要概念

学习Media Foundation之前需要理解以下几个重要概念。 (一)流 定义:一个使用一致类型的媒体数据序列。例如:视频、音频、文本、脚本命令、静止图片等。 通常一个媒体文件包含一个或者多个流。   (二)压缩   目的:通过移除冗余数据来减小数据流...

2015-03-14 20:19:00 2619 0

转载 Media Foundation学习笔记(二)Media Foundation的架构 概览

概览 下面的图表展示了Media Foundation架构的一个上层视图:    如上所示,Media Foundation提供了2种编程模型:   第一种,Media Pipeline模式。 如图表左边部分所示,使用一个端到端Pipeline,类似DShow中...

2015-03-14 20:18:09 4156 1

转载 简单实例 - 使用Media Session来播放文件

/* * blackboy   psyc209@163.com * QQ群: 135202158 * 转载请注明作者及出处 */ 参考MSDN官方的页面:http://msdn.microsoft.com/en-us/library/ms703190(v=vs.85)...

2015-03-14 20:17:29 3683 0

转载 DirectShow 的重要接口

DirectShow 的重要接口   DirectShow采用了COM标准,所以很多重要的功能都是通过COM接口来完成。下面就列举一些重要的DirectShow的接口。   (1) IGraphBuilder接口   用于构造Filter Graph的接口,建立和管理一系列的Fi...

2015-03-08 22:16:49 1544 1

转载 x264阅读记录-3

14. x264_macroblock_encode函数-1 这个函数主要根据已经选定的模式来对宏块残差进行编码。 (1)如果是P_SKIP模式,那么调用x264_macroblock_encode_pskip函数 在x264_macroblock_encode_pskip中先对...

2015-03-01 16:58:38 643 0

转载 x264阅读记录-2

x264阅读记录-2 7. x264_encoder_encode函数-1 查看该函数代码(Encoder.c文件)可以发现,该函数中注释很详细,对编码的整个步骤展示的也相对比较清晰。 在查看具体的代码之前,我们需要了解牵扯到x264帧管理过程中的三个数组: x264_fr...

2015-03-01 16:58:01 750 0

转载 x264阅读记录-1

x264阅读记录-1 x264阅读记录-1   采用x264版本是x264-snapshot-20060316-2245。 1. main函数 x264的main函数位于x264.c中,下面是main函数调用情况: (1)_setmode函数和_fileno函数 这两个函...

2015-03-01 16:56:54 845 0

转载 x264源代码分析-转

相关说明: 1.     使用版本:  x264-cvs-2004-05-11 2.     这次的分析基本上已经将代码中最难理解的部分做了阐释,对代码的主线也做了剖析,如果这个主线理解了,就容易设置几个区间,进行分工阅读,将各个区间击破了. 3.     需要学习的知识: ...

2015-02-27 21:24:28 713 0

转载 自己动手写RTP服务器——用RTP协议传输TS流

上一篇文章我们介绍了关于RTP协议的知识,那么我们现在就自己写一个简单的传输TS流媒体的RTP服务器吧。 预备知识 关于TS流的格式:TS流封装的具体格式请参考文档ISO/IEC 13818-1。这里我们只需要了解一些简单的信息就好。首先TS流是有许多的TS Packet组成的,每个T...

2015-02-27 21:22:11 1375 0

转载 自己动手写RTP服务器——关于RTP协议

2014-02-24 14:11 270人阅读 评论(0) 收藏 举报 目录(?)[+] 本文会带领着你一步步动手实现一个简单的RTP传输服务器,旨在了解RTP流媒体传输协议以及一些关于多媒体编解码的知识。 关于RTP协议的必备知识 要动手实现一个协议,当然...

2015-02-27 21:21:08 1389 0

转载 x264码率控制总结3——码率控制参数详解

x264码率控制参数详解   -q, --qp           Force constant QP (0-51, 0=lossless) 默认:无 说明:三种可选的码率控制方法(bitrate, CQP,CRF)之一。设置x264使用固定QP模式。设定的QP将被作为P帧的量化参数,I...

2015-02-25 23:07:11 17587 0

转载 X264码率控制总结2——x264码率控制方法概述

X264码率控制方法概述 x264/doc/ratecontrol.txt A qualitative overview of x264's ratecontrol methods By Loren Merritt 历史笔记: 本文件是过时的,但相当一部分叙述仍然是准确的,...

2015-02-25 23:05:09 4068 0

转载 X264码率控制总结1——ABR,CQP,CRF

1.  X264显式支持的一趟码率控制方法有:ABR, CQP, CRF. 缺省方法是CRF。这三种方式的优先级是ABR > CQP > CRF. [cpp] view plaincopyif ( bitrate )                rc_method = ABR;  e...

2015-02-25 23:04:33 31940 0

转载 x264参数介绍(一、帧类型和码率控制)

【 翻译 】x264参数介绍(一、帧类型和码率控制) 2010年10月2日 评论 发表评论 翻译自:http://mewiki.project357.com/wiki/X264_Settings,水平有限,勿吝指教。 第二部分:http://blog.yikuyiku.com/...

2015-02-25 23:04:15 6292 0

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