ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:34.83KB ,
资源ID:6102961      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-6102961.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(整像素运动估计的C语言代码,可用于FPGA验证.docx)为本站会员(s36f12)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

整像素运动估计的C语言代码,可用于FPGA验证.docx

1、#include #include #include #include #include #pragma warning( disable : 4996 ) #define SEEK_SET 0 #define BEG 0 /从第几帧开始#define I_FRAME 2 /读取帧#define PIC_W 176 /图像宽度#define PIC_H 144 /图像高度#define PIC_P “F:sequenceyuvforeman_qcif.yuv“/图像路径#define MB_W PIC_W / 16#define MB_H PIC_H / 16#define SAD_MAX 6

2、5536/最大sad值#define MAX(a, b) ( (a)(b) ? (a) : (b) ) /取a、b中值较大的#define MIN(a, b) ( (a)pici.plane0 = NULL;h-fp = fopen(PIC_P, “rb“);if (!h-fp)return NULL;h-pix_width = PIC_W; /像素宽h-pix_height = PIC_H; /像素高h-mb_width = h-pix_width/16; /宏块宽h-mb_height = h-pix_height/16; /宏块高return h;/预测宏块之前,初始化mvs中的sad值

3、void init_sad()int i;/初始化sad值for (i = 0; i picicnt.frame = icnt;/为存储像素分配存储空间h-picicnt.plane0 = (uint8_t*)malloc(h-pix_width * h-pix_height * 3 / 2 * sizeof(uint8_t);if (!h-picicnt.plane0) /若分配失败,返回-1 /Y分量return -1;h-picicnt.plane1 = h-picicnt.plane0 + h-pix_width * h-pix_height; /U分量h-picicnt.plane2

4、 = h-picicnt.plane1 + h-pix_width * h-pix_height / 4; /V分量/找到一帧的开头if( fseek( h-fp, (uint64_t)(icnt+BEG) * h-pix_width * h-pix_height * 3 / 2, SEEK_SET ) )return -1; /分别读取Y、U、V三个分量至内存if( fread( h-picicnt.plane0, 1, h-pix_width * h-pix_height, h-fp ) picicnt.plane1, 1, h-pix_width * h-pix_height / 4,

5、h-fp ) picicnt.plane2, 1, h-pix_width * h-pix_height / 4, h-fp ) mb_width - 1;int mby_max = h-mb_height - 1;for (mb_y = 0; mb_y pix_width;uint8_t *ref_pix;uint8_t *ref_mb, *cur_mb;/找到搜索区域sr_x0 = MAX(0, mx - 1); /搜索范围x坐标的最小值按宏块计sr_x1 = MIN(h-mb_width - 1, mx + 1); /搜索范围x坐标的最大值按宏块计sr_y0 = MAX(0, my -

6、1); /搜索范围y坐标的最小值按宏块计sr_y1 = MIN(h-mb_height - 1, my + 1);/搜索范围y坐标的最大值按宏块计/搜索范围按像素计pix_x = (sr_x1 - sr_x0) * 16;pix_y = (sr_y1 - sr_y0) * 16;adjust_range(/搜索区域左上顶点相对于中心点的位移shift_x = (mx - sr_x0) * 16;shift_y = (my - sr_y0) * 16;/找到搜索区域起始像素点ref_pix = h-pic0.plane0 + mx * 16 + my * 16 * stride- shift_x

7、 - shift_y * stride;/当前待编码宏块的起始像素位置cur_mb = h-pic1.plane0 + mx * 16 + my * 16 * stride;/按全搜索算法搜索for (i = 0; i = 0; -j)for (k = i; k = 0 partition = P_8x8;s0 = mvs4.sad + mvs5.sad;if (s = s0)s = s0;partition = P_8x16;s0 = mvs6.sad + mvs7.sad;if (s = s0)s = s0;partition = P_16x8;s0 = mvs8.sad;if (s = s0)s = s0;partition = P_16x16;/释放内存void free_yuv(yuv_t *h)int i;for (i = 0; i pici.plane0)free(h-pici.plane0);free(h);

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报