XVid实践(一)

原创 2004年11月03日 09:07:00

学习XVid的实践过程(一)  (原创)  作者: winne
     
笔者先从XVID网站的下载到版本为1.0.2的代码。解压以后可以看到有以下几个目录
build
debian
doc
dshow
examples
src
vfw
依次对应相应的开发。其中src目录下的文件是core。如果使用VC编译项目的话,进入build/win32目录下,打开Xvidcore.dsp即可。
在dshow目录下是一个Decoder Filter,你可以通过它编译出一个基于CVideoTransformFilter的Filter。
在vfw目录下,你可以采用vfw的编程方式。
在doc目录下,Install是DOS文件格式,你可以通过阅读这个文章,知道如何获取最新的xvid的代码,如果编译xvidcore等。
另外你如果想编译成功的话可能需要下载nasm.exe程序.
编译分为Ia32和Ia64两部分.
目录结构如下:
  decoder.c /
 encoder.c /
 xvid.c /
 bitstream/bitstream.c /                ---对字节流操作的代码
 bitstream/mbcoding.c /               ---对VLC和VOP字节操作
 bitdustream/cbp.c /
 dct/fdct.c /                                 ---DCT变换
 dct/idct.c /                                 ---DCT逆变换
 dct/simple_idct.c /    
 image/colorspace.c /                  ---颜色空间变化
 image/image.c /
 image/interpolate8x8.c /             ---8*8/16*16低通的转换
 image/font.c /                             ---字符处理部分
 image/postprocessing.c /            ---图像处理部分
 image/qpel.c /
 image/reduced.c /
 motion/estimation_bvop.c /        ---B帧vop预测部分
 motion/estimation_common.c /   ---模版搜索
 motion/estimation_gmc.c /
 motion/estimation_pvop.c /        ---P帧VOP预测部分
 motion/estimation_rd_based.c /
 motion/gmc.c /     
 motion/motion_comp.c /            ---运动补偿
 motion/vop_type_decision.c /    ---VOP类型描述
 motion/sad.c /
 prediction/mbprediction.c /        ---mpeg 宏块预测
 plugins/plugin_single.c /             ---流控操作
 plugins/plugin_2pass1.c /
 plugins/plugin_2pass2.c /
 plugins/plugin_lumimasking.c /
 plugins/plugin_dump.c /
 plugins/plugin_psnr.c /
 quant/quant_h263.c /               ---h263 的量化
 quant/quant_matrix.c /             ---量化参数
 quant/quant_mpeg.c /
 utils/emms.c /
 utils/mbtransquant.c / 
 utils/mem_align.c /                   ---内存对齐操作
 utils/mem_transfer.c /              ---内存转换
 utils/timer.c

SRC_IA32 = /
 bitstream/x86_asm/cbp_3dne.asm /              ---优化字节流操作
 bitstream/x86_asm/cbp_mmx.asm /
 bitstream/x86_asm/cbp_sse2.asm /
 dct/x86_asm/fdct_mmx_ffmpeg.asm /          ---用MMX优化ffmpeg
 dct/x86_asm/fdct_mmx_skal.asm /
 dct/x86_asm/fdct_sse2_skal.asm /
 dct/x86_asm/idct_3dne.asm /
 dct/x86_asm/idct_mmx.asm /
 dct/x86_asm/idct_sse2_dmitry.asm /
 dct/x86_asm/simple_idct_mmx.asm /
 image/x86_asm/colorspace_rgb_mmx.asm /  ---rgb/yuv的转换
 image/x86_asm/colorspace_yuv_mmx.asm /
 image/x86_asm/colorspace_yuyv_mmx.asm /
 image/x86_asm/interpolate8x8_3dn.asm /
 image/x86_asm/interpolate8x8_3dne.asm /
 image/x86_asm/interpolate8x8_mmx.asm /
 image/x86_asm/interpolate8x8_xmm.asm /
 image/x86_asm/reduced_mmx.asm /
 image/x86_asm/qpel_mmx.asm /
 motion/x86_asm/sad_xmm.asm /
 motion/x86_asm/sad_sse2.asm /
 motion/x86_asm/sad_mmx.asm /
 motion/x86_asm/sad_3dne.asm /
 motion/x86_asm/sad_3dn.asm /
 quant/x86_asm/quantize_h263_mmx.asm /      ---针对Intel和AMD优化H263的量化参数
 quant/x86_asm/quantize_h263_3dne.asm /
 quant/x86_asm/quantize_mpeg_xmm.asm /
 quant/x86_asm/quantize_mpeg_mmx.asm /
 utils/x86_asm/mem_transfer_mmx.asm /          ---针对Intel和AMD优化内存转换
 utils/x86_asm/mem_transfer_3dne.asm /
 utils/x86_asm/interlacing_mmx.asm /
 utils/x86_asm/cpuid.asm

仅仅列举了一部分的代码树, 以上这部分的代码是重要的. 这时候你可以打开libxvidcore项目进行阅读了.

关于H264,X264,DivX,Xvid的小知识 fr net

关于H264,X264,DivX,Xvid的小知识 HDTV的概念 HDTV即High-Definition TV ,高清晰数字电视。这个概念其实可以非常简单地表达出来。所谓“数字”,是相...
  • misiter
  • misiter
  • 2012年10月30日 10:23
  • 9378

详解Xvid编码格式

XviD简介  XviD是当宿世界上最常用的视频编码解码器(codec),而且是第一个真正开放源代码的,经由过程GPL协   议发布。在良多次的codec斗劲中,XviD的默示令人诧异的好,总体来...
  • Eagleest
  • Eagleest
  • 2012年06月28日 15:27
  • 4841

mpeg4标准包含{xvid\divx,h264\avc}

“MPEG-4由一系列的子标准组成,被称为部..... ............................ 第二部(ISO/IEC 14496-2):视讯:定义了一个对各种视觉信息(包括视讯,静...
  • wishfly
  • wishfly
  • 2016年07月10日 14:00
  • 1610

xvid的安装

在完成xvidcore的编译之后,下一步需要编译Dshow和vfw两个工程生成xvidvfw1.Xvid DirectShow filter 编译dshow工程,会提示streams.h(定义stre...
  • xlliu0226
  • xlliu0226
  • 2008年02月27日 13:21
  • 3644

Ubuntu 14.04 安装xvid编码器

下载安装包xvid官网:http://www.xvid.org/ 下载安装包。将源码解压到home目录下:#tar zxvf xvidcore-1.3.1.tar.gz进入解压后的目录,可以看到一个b...
  • zx3517288
  • zx3517288
  • 2016年06月13日 16:41
  • 775

xvid编码器的弹出窗口解决方法

方法1:编译源码的时候解决: 当然这是最好的方式: 编译dshow(工程)文件。 修改config.c的reg_ints中display_status默认值定义为0,再重新编译生成ax文件。注册后...
  • chinabinlang
  • chinabinlang
  • 2012年11月29日 09:40
  • 824

AVI视频格式的Dvix和Xvid两种不同编码的区别

2002年,TDX2002的规则中,除了允许使用旧有的DivX3.11编码之外,新加入了第二种核准使用的编码??也就是本文标题中的XivD编码。作为每年在网上放出数千部最新影片的网上高品质影音组织,他...
  • LOVE000520
  • LOVE000520
  • 2016年06月14日 11:48
  • 709

vim+python+OpenCV学习八 : 调用摄像头

#_*_coding=utf-8_*_ import cv2 import numpy as np cap = cv2.VideoCapture(0) fourcc = cv2.cv.CV_FOU...
  • shawncheer
  • shawncheer
  • 2016年11月29日 19:11
  • 848

隐藏 XviD Status的窗口

用Xvid进行AVI编码时总是弹出一个XviD Status的窗口。 解决办法:在开始里运行regedit.exe打开注册表找到下面的选项 HKEY_CURRENT_USER\Softwa...
  • preston2006
  • preston2006
  • 2013年03月20日 17:02
  • 651

xvid编解码器安装

编译xvid后需要安装xvid, 先编译dshow工程(解码),再编译vfw工程(编码);xvidcore.dll重复,vfw覆盖dshow。 将两个dshow和vfw生成的文件合并放到syste...
  • wishfly
  • wishfly
  • 2015年12月04日 18:18
  • 657
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:XVid实践(一)
举报原因:
原因补充:

(最多只允许输入30个字)