我的开源项目工作进展(2)

一、 本周主要工作与解决的问题

     1.本周确定好实现后处理增强后,就没怎么看H264了,视频旋转、镜像等。在我看来,就是图像处理的内容。所以主要看了获取RGB图像的单个点的数据,了解RGB图像在内存的储存方式及单像素点的读取方式;

    2.了解图像旋转原理说明,视频旋转一般只旋转90度或者180度,所以说相对来说比较简单。可以推导出公式。

    3.RGB图像旋转90度编程完成,并且测试成功,主要实现旋转90度(顺时针与逆时针);不过,我是在Windows 7 VS2010下编写与测试的;测试的方法是打开笔记本摄像头,得到一帧图像,旋转此帧,保存此帧图像。然后看图像,能够完成功能。



二、同时存在的问题:
1.项目中的后处理增强数据格式我看有YUV/RGB/等,是否需要一一给它们编写后处理函数,还是统一转化成RGB格式呢,然后只给RGB格式编写函数?
老师回复:在图像处理中 通常用YUV数据。 其他格式可以转YUV,这个已经做好了。另外YUV颜色空间中根据不同的采样模式又分成420, 422, 444 等。每种模式下像素的布局还以不同,比如 420下有I420/YV12/NV12等,在我们的驱动里,主要处理的NV12格式,其他格式可以转成nv12或者把nv12转成其他格式。
 2.我编写的旋转代码输入是unsigned char指针所指的一帧图像,但是项目中我都找不到有关unsigned char指针所指的一帧图像。项目中哪个是定义的一帧图像的指针呢?i965_post_processing_context还是其它哪个呢?
老师回复:你这是CPU来完成旋转,我们要做的是GPU加速。在驱动里是用在GPU EU 上跑的代码来完成的。

3.i965_post_process.c genxxx_vebox_vpp.c 等 实现各平台上的前/后处理,这些就是我要在其它添加的后处理增强的地方呢?
老师回复:是的

4.现在我是视频处理的思路有,但是找不到项目中一帧图像的入口,一帧图像在我的理解来看是unsigeed char 指针所指的一片连续内存区域,不知在项目中是如何呢?
老师回复:我们这里处理的是一个surface或image, 和你想象的差不多。

5.项目中有些.c和.h应该和后处理增强没多大联系(比如编码),我应该主要看哪几个文件呢?文件实在有点儿多,中途加入,看起来实在困难。
老师回复:用代码来完成的后处理都在i965_post_process.c
i965_proc_picture-->i965_post_processing_internal 然后根据不同的平台选取
相应的处理程序。
还有一点,你要把libva和libva-intel-driver都切换到staging 分支, 关于
rotation的接口在staging分支上。

6.我现在的方法呢,就是每个后处理增强函数都先在VS2010中编写测试成功完成后(用我图像旋转90度那个测试方法),然后再移值进去项目中,主要都是用C写。老师是否有什么好方法推荐呢?
 老师回复:我们要用GPU的指令来做这个事情,目前能用的只有汇编,驱动负责设置参数,配
置流水线,真正完成事情是用GPU shader, 你可以参考
src/shader/post_processing 或 src/shader/render下的文件和相应的Makefile.

另外驱动里的rendering(i965_render.c 和 i965_output_dri.c)部分其实已经支
持rotation. 把这部分移植或重用到post_processing里也是一种可以考虑的方
案,难点在于rendering和post_processing
用了两种不同的GPU的流水线,目前可能对你有一定的难度。

三、下一步安排:
 
     1.看项目的代码,学习图像处理
     2.编程图像处理算法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值