用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
zhizhu666的公告
公告: 欢迎进入蜘蛛&&H.264的学习乐园! 本人目前致力于H.264的学习! 希望结识各位朋友! QQ:16454010 zhizhu777@163.com
文章分类
H.264视频编解码技术
视频乐园
JM模型学习
我的生活
存档

原创  对蓝风车的运动估计算法代码的个人理解 收藏

对蓝风车的运动估计算法代码的个人理解


最近在看蓝风车的运动估计算法程序的一些注释与理解:现贴在这里希望对大家能有所帮助,当然有理解不当的地方还请各位指正!
(上传文字有限对程序的注释防在附件里)
注意几点注意我这个x 表示列,y 表示行)(XX代表高度,YY代表宽度)
1. 这个地方图象的存放地点和图象的尺寸 (图象固定使用一种16*16的宏块没有子宏块的划分.参考帧只有一个.)
#define XX 288#define YY 352(我的图象是这样的采用foreman.yuv和foremanrec.yuv命名)(若自己不清楚可以用YUV播放器看一下!)重构图象在编码的时候将配置文件写好.比如(关于怎样修改配置参数请参照本人的关于配置参数设定的一个帖子<<JM测试模型参数的设定>>)

http://bbs.chinavideo.org/viewthread.php?tid=2053&page=1&extra=#pid5847(主要是在DEBUG里设置为-d myencoder.cfg,在config.hDEFINE里设置为myencoder.cfg)
InputFile             = "E:\\foreman.yuv"   # Input sequence  (先将YUV文件放至E:\\foreman.yuv)
FramesToBeEncoded     = 8      # Number of frames to be coded
SourceWidth           = 352    # Frame width
SourceHeight          = 288   # Frame height
ReconFile             = "E:\\foremanrec.yuv"

2.////宏定义函数由于C语言宏定义只有一行故使用"\"表示转入下一行
#define PATTERN_SEARCH(pattern,num,flag) \do\.......hile ( (mv.dx!=mvx || mv.dy!=mvy) && flag==1 ); 类似还有#define CHECK_ONE_PIXEL(i,j) \
////a,b,c的中值
2.        int x264_median( int a, int b, int c=0 )///用于求MVA,MVB,MVC,MVD等的运动矢量的中值
3.        uint32 sad=0xffffff;//有符号为0  用于初始化//????为何取有符号数原因?//       MV mv={0,0};上一帧当前位置的运动矢量
4.///获取常用的预测运动矢量列表本人做了一些改动:
///   D B  C  ////E为当前宏块
A  E   
       if(x>0){pre_mv[1]=frame_info.mv[x-1][y];sad[1]=frame_info.sad[x-1][y];//存放A  MVA}
  5.   #undef PATTERN_SEARCH!!!!!!!!!!!!!!!!!宏定义函数结束
void main()//添加一些输出信息可能对大家理解起来教方便些..for( i=0;i<X;i++)
printf("%d\t\t\t%d\t\t\t%d\n",frame_info.frame_pot,frame_info.frame_sad,frame_info.frame_sse);}

       printf("last time display :\nframe\tcost\t峰值信噪比psnrsad/see\n") printf("%d\t\t%.2f\t\t%.2f/%.2f\n",k,(float)frame_info.frame_pot/X/Y,10*log10(XX*YY*255*255.0/frame_info.frame_sad),10*log10(XX*YY*255*255.0/frame_info.frame_sse));
       6.对程序的注释和理解请参考附件..
       7.错误之处请批评指正..

 具体程序请在视频乐园本人的文章有下载地址!

发表于 @ 2007年05月12日 21:48:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:关于JM测试模型参数的设定的简单方法: | 新一篇:关于CAVLC相关码表在JM程序实现的理解

  • 发表评论
  • 评论内容:
  •  
Copyright © zhizhu666
Powered by CSDN Blog