随笔分类 -  video

video related, such as ffmpeg, iso13818, H.264
视频分辨率cif格式(zz)
摘要:CIF是常用的标准化图像格式(Common Intermediate Format)。在H.323协议簇中,规定了视频采集设备的标准采集分辨率。CIF = 352×288像素   CIF格式具有如下特性:   (1) 电视图像的空间分辨率为家用录像系统(Video Home System,VHS)的分辨率,即352×288。   (2) 使用非隔行扫描(non-inte... 阅读全文

posted @ 2010-02-21 15:27 vincenzo.lai 阅读(1250) 评论(0) 推荐(0)

峰值信噪比
摘要:客观测量图像质量的方法是峰值信噪比(PSNR),是基于原图像和有损图像的均方误差(MSE)和(2^n-1)^2(即图像可能的最大信号值的平方)的相对值:PSNR(dB) = 10log10 ((2^n - 1) ^ 2 / MSE)PSNR的局限性在于需要有”无损“的源图像作为比较,然而这并不是任何情况下都可以得到的。一般情况下,对于一副给定的图像或者图像序列,高的PSNR... 阅读全文

posted @ 2010-02-18 16:16 vincenzo.lai 阅读(3000) 评论(0) 推荐(0)

颜色空间
摘要:在数字图像和视频表示中最常用的颜色空间包括:RGB和YCrCb(亮度,红色差,蓝色差)RGB就是红绿蓝,无需多讲。而YCrCb通过如下而来:Y是亮度分量,即一个彩色图像的黑白版本。Y是RGB分量的加权平均值:Y = kr * R + kg * G + kb * B其中k是加权因子。颜色信息表示色差分量,每个色差分量为RGB与亮度Y之间的差:Cr = R- YCb = B - YCg = G - Y... 阅读全文

posted @ 2010-02-18 15:47 vincenzo.lai 阅读(274) 评论(0) 推荐(0)

过扫描以及显示接口(ZZ)
摘要:什么是点对点显示 点对点显示是指液晶屏上显示的每一个像素点都与被显示图像的像素点对应(严格说是与播放设备的输出点对应)。点对点显示的首要条件是被显示图像的分辨率 (显卡输出分辨率)要与液晶屏的物理分辨率相同,才有可能点与点对应显示,才能全保真的再现播放设备输出的原始图像。我们平时使用电脑时,只要显卡输出分 辨率与液晶显示器分辨率相同,显卡生成的每一个像素点都会显示在液晶显示器对应的点上,这就是点对... 阅读全文

posted @ 2009-10-23 11:53 vincenzo.lai 阅读(1837) 评论(0) 推荐(0)

ffmpeg的mpeg2编码I帧代码解读(四)
摘要:下面解释一个block的编码以及编码码表 1.首先编码的是DC系数,在函数encode_dc里面进行。由于DC系数的码表有两个,分别针对Y帧和(Cr,Cb)帧。编码的时候,编码的是非负的系数,但是原始的DC系数有正有负,因此需要做一个映射。这一个映射,在encode_dc里面,首先就用 if(((unsigned) (diff+255)) >= 511) 分成了两部分,表示正负数的映射。而... 阅读全文

posted @ 2009-09-16 17:37 vincenzo.lai 阅读(2889) 评论(3) 推荐(1)

ffmpeg的mpeg2编码I帧代码解读(三)
摘要:1.完整的初始化过程,函数调用关系如下: encode_init MPV_encode_init:里面要根据不同的Codec_ID来配置一些数据 MPV_common_init:基本的结构体的初始化,在此之前,高度宽度等变量已经设置好了 dsputil_init:初始化了fdct,而MPV_encode_init紧接着,执行前面提到的dct_quantize的初始化。 然而,这个时候量化表并没有初... 阅读全文

posted @ 2009-09-14 15:32 vincenzo.lai 阅读(2500) 评论(0) 推荐(0)

ffmpeg的mpeg2编码I帧代码解读(续)
摘要:1.MpegEncContext这个struct类型,一定要吃透,虽然代码是用C写得,但是写得很C++,这个MpegEncContext其实可以看做一个C++的类,里面定义了很多指针,这些指针指又指向了一些strcut,而这个struct其实相当于C++的成员函数,成员函数的初始化,一般是在XX_init函数里面初始化的。这一点,可以在后面的叙述中体现出来。2.再说一下编码的过程,encode_m... 阅读全文

posted @ 2009-09-10 16:40 vincenzo.lai 阅读(2760) 评论(3) 推荐(0)

ffmpeg扫描码表初始化的地方
摘要:这些码表初始化在函数dsuptil.c/ff_init_scantable里面包括两种扫描方式:zig-zag和alternate-verticle 阅读全文

posted @ 2009-09-10 09:45 vincenzo.lai 阅读(501) 评论(0) 推荐(0)

mpeg2解码过程,标准解读part2
摘要:(三)反扫描 扫描包括两种方式,有图像头扩展中的alternate_scan决定,具体如下图所示,其中alternate_scan为的时候就是zig-zag扫描。 (四)反量化 反量化的总体步骤如下所示: QF为反扫描之后的数据,F为反量化之后的数据,F会传递给IDCT。 编码的过程中,在DCT之后的数据,如果直接拿来编码,数据的位宽比较宽。对编码来讲,可以损失一部分精度,而得到更大的压缩率... 阅读全文

posted @ 2009-09-04 16:35 vincenzo.lai 阅读(1314) 评论(0) 推荐(0)

mpeg2解码过程,标准解读part1
摘要:(零)总体框图: (一)高层语法结构 重构场图将成对相伴而形成重构帧。 如果progressive_sequence==1,则重构帧将以帧周期为时间间隔从解码过程输出。 如果progressive_sequence==0,则重构帧将被分成一个重构场的序列,在解码过程输出端以有规律的长周期为时间间隔而出现。如果一个帧图的repeat_frist_field==1,则这个帧的第一场将在第二场后被... 阅读全文

posted @ 2009-09-04 16:33 vincenzo.lai 阅读(2467) 评论(0) 推荐(0)

ffmpeg的mpeg2编码I帧代码解读
摘要:首先说一下编码的函数层次:MPV_encode_picture—encode_thread———encode_mb_hq————encode_mb(编码一个宏块)——————encode_mb_internal(编码I帧宏块,在这个... 阅读全文

posted @ 2009-09-02 18:11 vincenzo.lai 阅读(2313) 评论(1) 推荐(0)

导航