- 博客(117)
- 资源 (21)
- 收藏
- 关注
翻译 x264运动估计的1/2像素和1/4像素搜索
static uint8_t *get_ref( uint8_t *src[4], int i_src_stride, uint8_t *dst, int * i_dst_stride,
2011-08-29 13:23:48 7638 2
原创 x264运动估计宏块cost值的计算
一、 x264运动估计中宏块的位移cost计算:/* lambda = pow(2,qp/6-2) */const byte x264_lambda_tab[52] = { 1, 1, 1, 1, 1, 1, 1, 1, /* 0-7 */ 1,
2011-08-19 13:28:08 1627 1
转载 Xvid编码
xvid有两种编码方式:single pass和twopass single pass模式编码简单,速度也快,但最终效果不如twopass。 twopass就是视频压制需要经过两次编码,分别为twopass-1st pass(简称1pass)和twopass-2nd pass(简称2pass) 1pass时,编码器会用最高质量编码采集可供第2次运算参考的画面信息,而在2 pass时。编码器会根据第
2011-06-26 00:00:00 1485 1
转载 在vs2008中编写dll如何生成lib文件
1 在Visual C++ 里面选择Win32,新建一个Win32 Project工程,名称为mydll2 在Application Settings窗口,Application type中选择 DLL; additional options中选择Empty project。点击完成3 新建mydll.cpp和mydll.h两个文件4 在mydll.h里面添加代码:extern "C" _dec
2011-06-20 18:00:00 1357
转载 align指令
align指令可以用于设置各种内置类型、自定义类型如struct、union或class的的对齐方式。指令格式为: __declspec(align( # )) ,#是对齐值,取值为2的1次方至2的8192次方。在声明自定义类型或内置变量时,如果指定了对齐值,则对应变量的起始地址必须是该值的整数倍。除此外,它还会影响结构体的大小。总结公式为:sizeof(structure) =
2011-06-17 14:02:00 1920
转载 x264_scan8
x264_scan8分析? 看到有好几次,有朋友问到x264_scan8这个表格储存的是什么资料。开始的时候,的确让人费解,越看越糊涂。在很多地方都直接或者间接通过这个表格来保存资料。比如:h->mb.cache.intra4x4_pred_mode[x264_scan8[0] - 8] = h->mb.intra4x4_pred_mode[i_top
2011-06-15 17:54:00 1142
转载 X264的x264_scan8变量
对于x264中的x264_scan8结构不是很理解,看到了一个很好的介绍文章,转载如下,从其中可以看到在x264中用到的一些结构的内部数据排序,如Intra4*4_pred_mode_cache[],Non_zero_count_cache[48]等,也就理解了x264_scan8的用途,是作为一个数据的映射表而存在,见下面的内容 int8_t intra4x4_pred_mode_cac
2011-06-15 17:47:00 1854
转载 H.264参考帧管理
H264中允许从多至15个帧里面选择1帧或者2帧出来作为参考进行预测,所以必须引入一个列表来管理这些参考图像,对 与P slice而言,对应 list0,对于 B slice 而言,还需要多一个 list1,因为 B slice 是进行的两次预测!(一个前向一个后向/两个前向/两个后向) 参考帧分为 long term / short term 两种,即所谓的长期参考帧和短期参考帧。其中长
2011-06-09 16:24:00 2071
转载 avi文件格式详解
AVI是音频视频交错(Audio Video Interleaved)的英文缩写,它是Microsoft公司开发的一种符合RIFF文件规范的数字音频与视频文件格式,原先用于Microsoft Video for Windows (简称VFW)环境,现在已被Windows 95/98、OS/2等多数操作系统直接支持。AVI格式允许视频和音频交错在一起同步播放,支持256色和RLE压缩,但AVI文件并
2011-06-06 18:13:00 1475
转载 x264_param_t
<br />typedef struct x264_param_t<br />{<br /> /* CPU 标志位 */<br /> unsigned int cpu;<br /> int i_threads; /* 并行编码多帧 */<br /> int b_deterministic; /*是否允许非确定性时线程优化*/<br /> int i_sync_lookahead; /* 线程超前缓冲 */<br /><
2011-05-26 10:26:00 994
转载 x264_mb_predict_mv_16x16
x264_mb_predict_mv_16x16<br />由于色度块帧间预测使用的是相应亮度块的运动矢量,所以视频解码中只需要对亮度块的运动矢量进行预测。一个亮度块E和它相邻亮度8×8块A、B、C和D之间的空间位置如图1所示。E的大小可以是16×16、16×8、8×16或8×8。A、B、D都是与E的左上角样本紧邻的块,C是与E的右上角样本紧邻的块。<br />图1中,A、B、C、D的原始运动矢量分别为mvA、mvB、mvC、mvD,对应的BlockDistance分别为BlockDistanceA、Blo
2011-05-25 14:23:00 1132
转载 关于TS流的解析
<br />TS即是"Transport Stream"的缩写。他是分包发送的,每一个包长为188字节。在TS流里可以填入很多类型的数据,如视频、音频、自定义信息等。他的包的结构为,包头为4个字节,负载为184个字节(这184个字节不一定都是有效数据,有一些可能为填充数据)。工作形式:<br />因为在TS流里可以填入很多种东西,所以有必要有一种机制来确定怎么来标识这些数据。制定TS流标准的机构就规定了一些数据结构来定义。比如: PSI(Program Specific Information)表,所以解析
2011-05-10 16:14:00 664
转载 BMP图片的文件结构
<br />BMP文件的数据在磁盘上是按以下顺序存储的:<br />[位图文件头TBitmapFileHeader][位图信息头TBitmapInfo][图象数据BGRA]<br />每段的具体内容如下:<br />TBitmapFileHeader= packed record<br /> bfType: Word; //占2位,文件标识‘BM’<br /> bfSize: DWORD; //占4位,用字节表示的整个文件的大小<br />
2011-05-05 16:22:00 663
转载 C/C++读写文件小结
C/C++读写文件小结<br />因为工作需要,最近到处摘抄C/C++关于读写文件的例子,这里留个小结,以备后用。<br />读文件的流程是大致是如此的:<br />建立一个操作文件的指针 *fd => 用某种方式(读/写/读写/追加等等)打开文件 => 对文件做相应的操作。<br />示例文件名为readtxt.txt,同程序置于相同目录下。文件内容为:<br />hello,world<br />my name is rf0007 <br /> 纯C的读文本文件<br />定义一个文件指针<br />F
2011-05-03 13:36:00 851
转载 CUDA编程——纹理
<br />【IT168 文档】(一)纹理属性<br />(二)纹理拾取函数<br />(三)拾取纹理内存与读取全局或常量内存相比的优点<br />(一)纹理属性<br /> 纹理可以在线性内存或是CUDA数组(纹理内存)的任何区域。所以纹理拾取也就对存在与线性内存或CUDA数组中的纹理读取数据。<br /> 共用运行组件(既可以运行在host又可以运行在设备)中给出了纹理类型texture。纹理拾取的第一个参数就是纹理参考,纹理参考定义要拾取哪部分纹理内存,它必须通过宿主运行时(只运行在宿主上)函数绑
2011-04-28 12:29:00 1032
转载 windows下正确配置CUDA 4.0环境并在Visual Studio 2008中新建工程
<br />CUDA 4.0 已经发布了RC版本,处于网友与新人的要求,我讲解下如何配置环境与工程的问题。要完整的使用CUDA 4.0功能与开发工具,建议使用windows 7 64bit或者windows 2008 R2 64bit系统。我的电脑是win7。<br />首先登陆到NVIDIA的开发者页面下载最新的驱动、toolkit、SDK与新增的tools SDK安装文件。<br /> <br />首先安装驱动<br /> <br />需要注意的是在安装过程中建议勾选"Perform a clean i
2011-04-27 22:28:00 968
转载 GPU优化方法
<br />CUDA优化的最终目的是:在最短的时间内,在允许的误差范围内完成给定的计算任务。在这里,“最短的时间”是指整个程序运行的时间,更侧重于计算的吞吐量,而不是单个数据的延迟。在开始考虑使用GPU和CPU协同计算之前,应该先粗略的评估使用CUDA是否能达到预想的效果,包括以下几个方面:CUDA优化的最终目的是:在最短的时间内,在允许的误差范围内完成给定的计算任务。在这里,“最短的时间”是指整个程序运行的时间,更侧重于计算 的吞吐量,而不是单个数据的延迟。在开始考虑使用GPU和CPU协同计算之前,应
2011-04-26 22:29:00 1510
转载 求模 求余
<br />无意中看到CSDN中的一个帖子,有人回帖说“求模就是求余”!!!心中生疑,看到一篇文章对此有详细的描述,转过来.================<br />mod表示求模或求余!求余和求模是不一样的,两个应该根据公式来算就不会混掉:<br />① 求余:取整除后的余数。例如:<br />10 MOD 4=2; -17 MOD 4=-1; -3 MOD 4=-3; 4 MOD (-3)=1; -4 MOD 3=-1<br />如果有a MOD b是异号,那么得出的结果符号与a相同;当然了,
2011-04-26 22:02:00 1222
转载 快速开发 CUDA windows 程序
<br />书接上回《CUDA windows 开发》 [url]http://blog.csdn.net/OpenHero/archive/2008/04/10/2278164.aspx[/url] 已经写到建立一个简单的CDUA程序,但是上面需要设置的参数还是很多,这样对于初学者来说增加了难度。在这里作者开发了一个针对VS2005的CUDA wizard 《CUDA VS2005 Wizard》[url]http://blog.csdn.net/OpenHero/archive/2008/04/18/2
2011-04-26 19:44:00 675
原创 读取BMP文件
<br />HANDLE hand = CreateFile("C://1.bmp", GENERIC_READ, 0, 0, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL, NULL);<br /> if (hand != INVALID_HANDLE_VALUE)<br /> {<br /> DWORD dSize;<br /> BITMAPFILEHEADER bfh;<br /> memset( &bfh, 0, sizeof( bfh ) );<br /> Rea
2011-01-07 12:21:00 549
转载 Cbitmap与HBITMAP和其它的类似问题
<br />首先看一下下面的表格,左边的是MFC提供的类,右边则是句柄,注意,这些句柄是一些结构体,跟类和对象并不相干<br />MFC对象<br />WINDOWS 句柄<br />CBitmap<br />HBITMAP<br />CPen<br />HPEN<br />CBrush<br />HBRUSH<br />CFont<br />HFONT<br />CPalette<br />HPALETTE<br />CRgn<br />HRGN<br />CDC<br />HDC<br />右边的为WI
2010-11-10 11:17:00 975
转载 Xvid学习
<br />xvid有两种编码方式:single pass和twopass <br />single pass模式编码简单,速度也快,但最终效果不如twopass。 <br />twopass就是视频压制需要经过两次编码,分别为twopass-1st pass(简称1pass)和twopass-2nd pass(简称2pass) <br />1pass时,编码器会用最高质量编码采集可供第2次运算参考的画面信息,而在2 pass时。编码器会根据第一次压缩获得的信息和用户指定的文件大小,自动分配比特率,使需要高
2010-11-06 00:27:00 601
转载 VC里面的main()函数
<br />通过main()函数的参数给程序增加一些处理信息,可以使程序和用户实现更多交互式的通讯. 如果你的程序需要命令行参数编译的话,那么源程序的主函数main()就需要带参数—也就是所谓的命令行参数。带有参数的main()函数头格式为: <br /><br />void main(int argc, char * argv[]) 或void main(int argc, char ** argv) <br /><br />其实,argc和argv也可以写成其他的合法标识符(identifier)来表示
2010-11-02 20:39:00 1940
转载 xvid源代码以及文件结构
文件结构:builddebiandocdshowexamplessrcvfw依次对应相应的开发。其中src目录下的文件是core。如果使用VC编译项目的话,进入build/win32目录下,打开Xvidcore.dsp即可。在dshow目录下是一个Decoder Filter,你可以通过它编译出一个基于CVideoTransformFilter的Filter。在vfw目录下,你可以采用vfw的编程方式。在doc目录下,Install是DOS文件格式,你可以通过
2010-11-02 20:02:00 820
转载 用Visual C++ 6.0编译xvid
0.xvid简介Xvid(旧称为XviD)是一个开放源代码的MPEG-4视频编解码器,它是基于OpenDivX而编写的。Xvid的主要竞争对手是DivX。但Xvid是开放源代码的,而DivX则只有免费(不是自由)的版本和商用版本。详见百度百科:http://baike.baidu.com/view/30246.htm?fr=ala0_1 1.下载xvid源码官方网站:http://www.xvid.org/目前最新版本是Xvid 1.2.2 stable release(今天:2010年4月24日) 2.编
2010-10-31 02:27:00 893
原创 YUV420、YUV422、RGB24,在项目中测试可用
//平面YUV422转平面RGB24static void YUV422p_to_RGB24(unsigned char *yuv422[3], unsigned char *rgb24, int width, int height){ int R,G,B,Y,U,V; int x,y; int nWidth = width>>1; //色度信号宽度 for (y=0;y { for (x=0;x { Y = *(yuv422[0] + y*width + x); U = *(yuv422[1]
2010-10-27 18:08:00 2986
转载 xvid的学习[转]
<br />xvid有两种编码方式:single pass和twopass <br />single pass模式编码简单,速度也快,但最终效果不如twopass。 <br />twopass就是视频压制需要经过两次编码,分别为twopass-1st pass(简称1pass)和twopass-2nd pass(简称2pass) <br />1pass<br />时,编码器会用最高质量编码采集可供第2次运算参考的画面信息,而在2 pass时。编码器会根据第一次压缩获得的信息和用户指定的文件大小,自动分配比<
2010-10-26 20:01:00 958
转载 WinExec,ShellExecute ,CreateProcess
三个SDK函数: WinExec,ShellExecute ,CreateProcess可以实现调用其他程序的要求,其中以WinExec最为简单,ShellExecute比WinExec灵活一些,CreateProcess最为复杂。 WinExec 两个参数,前一个指定路径,后一个指定显示方式。 ShellExecute 可以指定工作目录,并且还可以寻找文件的关联直接打开不用加载与文件关联的应用程序,ShellExecute还可以打开网页,启动相应的邮件关联发送邮件等等。 Cr
2010-10-26 11:27:00 604
转载 关于OnOK()、OnCancel()、OnClose()、OnDestroy() 模式对话框
<br />总结OnOK()、OnCancel()、OnClose()、OnDestroy()之间的区别(转) <br />2009年09月22日 下午 08:33 <br />第一,OnOK()和OnCancel()是CDialog基类的成员函数,而OnClose()和OnDestroy()是CWnd基类的成员函数,即WM消息响应函数。从应用程序结构的角度,拿对话框来说,红色的X对应的是CWnd,而处于对话框中的“确定”、“取消”按钮则对应了CDialog。 <br />第二,OnClose()和OnDe
2010-10-24 16:30:00 870
转载 YUV主要的采样格式
YUV主要的采样格式主要的采样格式有YCbCr 4:2:0、YCbCr 4:2:2、YCbCr 4:1:1和 YCbCr 4:4:4。其中YCbCr 4:2:0 比较常用,其含义为:每个点保存一个 8bit 的亮度值(也就是Y值), 每 2x2 个点保存一个 Cr 和Cb 值, 图像在肉眼中的感觉不会起太大的变化。所以, 原来用 RGB(R,G,B 都是 8bit unsigned) 模型, 4 个点需要 8x3=24 bites(如下图第一个图). 而现在仅需要 8+(8/4)+(8/4)=12bites
2010-10-19 15:36:00 585
转载 YUV信号格式
<br /> 因为我是做摄像头的,主要就是针对YUV422格式的信号。<br />YUV信号有很多种,一般YUV420和YUV422用的比较多,而对Cmos sensor来说,大多都是YUV422.<br /> YUV422格式,又分为很多小类,按照U、V的排列可以有YUYV,YVYU,UYVY,VYUY四种,其中,YUYVY一般又称作yuv2格式。<br /> 而这四种YUV422格式,每种又可以分为2小类,按Y和UV的排列可以有打包格式和平面格式。例如,一个640×480×2的
2010-10-19 09:52:00 704
转载 YUV420和YUV422的格式转换 - 源码未调试
YUV420和YUV422的格式转换 <br />2008-03-10 19:16:38<br />1 /* <br />2 * Linux VeeJay <br />3 * <br />4 * Copyright(C)2002-2004 Niels Elburg <br />5 * <br />6 * This program is free software; you can redistribute it and/or <br />7 * modify it under the ter
2010-10-19 09:36:00 2959
转载 xvid源码在Visual C++ 6.0下成功编译的方法(转)
<br />编译参考xvid源代码中的doc/INSTALL文件,针对其中遇到的问题:<br />下载NASM<br />http://sourceforge.net/projects/nasm (Win32版本)<br />解压缩后得到nasmw.exe, ndisasmw.exe,将nasmw.exe改为nasm.exe后将这两个文件拷到Microsoft Visual Studio/VC98/Bin下。<br />编译有可能出现以下错误: error C2520: conversion from u
2010-08-29 02:52:00 1496
原创 C++模版技术
C++模版技术一函数模版<br />直接在源文件中定义如下函数:<br />template<class T><br />T MaxTry(T a, T b)<br />{<br /> return a>b?a:b;<br />}; //结尾可写分号,也可可不写<br />下面调用MaxTry函数:<br />void CTemplate_TestDlg::OnButton1() <br />{<br /> CString str = MaxTry("dahai","xiao
2010-08-22 14:53:00 465
原创 C++STL容器
<br />序列式容器(随机存储)<br />vector:<br />(1)vector<int> vec1;<br /> vec1.push_back(1);<br /> vec1.push_back(2);<br /> vec1.push_back(3); //尾部插入元素<br /> int n = vec1[0]; // vector和deque可以这样读取元素<br />(2)vector<int> vec2(10,8);//10个8<br />(3)i
2010-08-22 14:53:00 549
原创 VC6.0中对MySQL数据库的操作
VC6.0中对MySQL数据库的操作<br />1.在mysql目录下找到名字为libmySQL.dll和libmySQL.lib 的文件拷贝到当前工程目录下,并在“工程->设置->连接”中链接libmysql.lib。 <br />2.将mysql/include里面的头文件拷贝到当前工程目录下(可不用include)。<br />3.#include <winsock.h><br />#include "mysql.h" <br />4.程序代码:<br />void CMySQLDlg::Search
2010-08-22 14:52:00 1054
原创 C++I/O技术
C++I/O技术1标准输入输出:cout, cin, cerr,clog以及对应于4个字节处理的流对象wcout,wcin,werr,wclog。<br />#include <iostream><br />using namespace std;<br />cout<<“输出/n”;<br />int i;<br />cin >>i; //输入<br />2文件输入输出:<br />#include <fstream.h><br />#include <iostream.h><br />using nam
2010-08-22 14:52:00 534
转载 建立/访问/删除非法的目录/文件夹名称
建立/访问/删除非法的目录/文件夹名称1、不可显示 ASCII 字符<br />记得在目录名中加入 alt+255 alt+160 等不可显示的 ASCII 字符,在 Windows 9X 中就可能不能打开了。<br />2、UNICODE 字符<br />在 Windows XP 中新建文件夹,编辑目录名,右键,插入 Unicode 控制符,随便选一个,看看~~显示长度为0的文件夹建好了。(如果再把文件夹图标改成透明………嘿嘿)<br />3、加点<br />建立:在 CMD 里输入:MD D:/test
2010-08-22 14:51:00 726
原创 SQL
SQL:<br />insert into person(name,city,age) values('J','nihaoshang',30)<br />truncate table newTable //清空表<br />delete from newTable //清空表<br />delete from person where city='y angyuan' //删除表person中字段city为y angyuan的记录<br />drop table newTable //删除表<br />c
2010-08-22 14:51:00 430
C++面向对象程序设计
2010-04-18
SQL语句详细介绍 下
2010-04-18
SQL语句详细介绍 上
2010-04-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人