世界杯与视频压缩(3)

原创 2006年06月17日 12:43:00

由于XVID采用VFW是可安装型驱动程序,因此它是核心态工作的动态连接库。每个可安装型驱动程序需要输出DriverProc函数。这个函数接收来自操作系统的各种设备驱动消息,根据设备驱动消息不同,对设备执行不同的操作或向应用程序提供需要的信息。系统发送给DriverProc函数的主要消息如下:

DRV_CLOSE       当驱动程序实例被关闭时,发送此消息。

DRV_OPEN        打开VFW驱动程序。

 

下面就是跟压缩和解压有关的消息:

ICM_ABOUT

ICM_COMPRESS

ICM_COMPRESS_BEGIN

ICM_COMPRESS_END

ICM_COMPRESS_FRAMES_INFO

ICM_COMPRESS_GET_FORMAT

ICM_COMPRESS_GET_SIZE

ICM_COMPRESS_QUERY

ICM_CONFIGURE

ICM_DECOMPRESS

ICM_DECOMPRESS_BEGIN

ICM_DECOMPRESS_END

ICM_DECOMPRESS_GET_FORMAT

ICM_DECOMPRESS_GET_PALETTE

ICM_DECOMPRESS_QUERY

ICM_DECOMPRESS_SET_PALETTE

ICM_DECOMPRESSEX

ICM_DECOMPRESSEX_BEGIN

ICM_DECOMPRESSEX_END

ICM_DECOMPRESSEX_QUERY

 

ICM_GET

ICM_GETBUFFERSWANTED

ICM_GETDEFAULTKEYFRAMERATE

ICM_GETDEFAULTQUALITY

ICM_GETINFO

ICM_GETQUALITY

ICM_GETSTATE

ICM_SET_STATUS_PROC

ICM_SETQUALITY

ICM_SETSTATE

 

VFW处理程序,就是实现这些消息的响应,然后调用XVID的接口。

VFW里的流程是这样的:

开始接收到DRV_OPEN消息,创建XVIDCODEC的对象,然后就接收到与输入要压缩数据的格式、大小等等消息,还有输出的格式、大小。

接着下来就会收到压缩开始消息ICM_COMPRESS_BEGIN,在这个消息里需要调用XVID压缩相关的函数,进行压缩初始化工作。

然后不断地接收到ICM_COMPRESS消息,每帧数据都发送这条消息过来,然后就调用XVID的压缩函数进行压缩每帧数据。

最后,没有数据压缩,就会发送ICM_COMPRESS_END消息,这时就需要删除所有创建对象,并调用XVID的函数来清除XVID使用的对象。

当用电视卡录下世界杯的AVI文件时,就可以通过调用VFW的驱动程序来压缩数据了。一般每秒钟都有25帧,每秒钟的视频就需要发送25ICM_COMPRESS消息。

VFW驱动程序里,还有一部份内容是读取和保存XVID的配置参数。可以根据用户设置参数保存起来,方便用户,不用每次都需要配置一次参数。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

视频压缩标准发展历史(一)

视频压缩标准发展历史 数字视频技术广泛应用于通信、计算机、广播电视等领域,带来了会议电视、可视电话及数字电视、媒体存储等一系列应用,促使了许多视频编码标准的产生。ITU-T与ISO/IEC是制定视频...

视频压缩的基本原理

视频压缩的基本原理 6.1.1 视频信号压缩的可能性 视频数据中存在着大量的冗余, 即图像的各像素数据之间存在极强的相关性。 利用这些相关性, 一部分像素的数据可以由另一部分像素的数据推导出来, ...

IOS视频压缩

最近在做视频上传的时候遇到了个问题,就是当上传自己录制的视频的时候尺寸过大,尤其是录制720p视频的时候尺寸更是不可想象,但是从iPad Library或者相册里面选择视频的时候系统会做一个压缩,不知...

基于DM642的mpeg-2视频压缩编码之硬件结构

片内外设: (1)外部存储器接口(EMIF) (2)增强直接存储器存取控制器(EDMA) (3)以太网媒体接入控制器(EMAC)/管理数据输入/输出(MDIO)模块 (4)视频端口/VCXO内...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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