原创 s5pv210中MFC的帧内存格式(转)

2016-4-26 10:50 1938 38 44 分类: MCU/ 嵌入式

  最近调了一下TQ210的mfc硬件h264编码功能,编码是成功了,但出来的视频却是花的。这个问题困扰了我很久,网上关于这方面的资料也很少,没办法只能查看s5pv210的芯片手册,功夫不负有心人,终于让我找到了原因,主要是s5pv210中MFC的帧内存格式不同造成的。

  1.YV12和NV12

  首先让我们了解一下s5pv210中MFC编码需要的视频格式,YV12和NV12都属于YUV420格式,每个像素占12位,其中Y占8位,每4个像素占8位的U和8位的V,平均一下就是每个像素的U和V各占2位,结构如下图所示,圈表示UV,叉表示Y。

  

 

  YV12和NV12是YUV420的具体格式类型,YV12是比较常用的格式,Y分量在前面,后面是V分量,最后是U分量,具体如下图所示。

  

 

  虽然YV12比较常用,但在s5pv210中用的却是NV12格式,这两种格式唯一的区别就是后面UV分量的排列上,在NV12中UV分量是分别穿插排列的,先U后V,如下图所示。

  

 

  一般我们用摄像头采集到的YUV420都是YV12格式的,要想把它输入到MFC里就必须转换为NV12格式,否则编码出来的视频颜色会出问题。

  2.linear和tile

  这是MFC中图像存储的内存格式,这是造成编码花屏的主要原因。linear mode线性模式,也就是一般的内存格式,在上面NV12的格式图中从左到右,从上到下,依次写入MFC的内存空间。而tile mode就不一样了,喂给MFC的数据是以块的形式写入的,比如一张QCIF(176x144)的Y分量,以64x32的大小分为20块,再按一定顺序写入内存空间,具体如下图。

  

 

  图片的宽度为176,所以上图右边一部分的数据用不到,留空即可。UV分量也是按章这个顺序,因为尺寸小一倍,会被分为12块。MFC使用哪种模式取决于ENC_MAP_FOR_CUR(0xF170_C51C)寄存器。

  使用正确的视频格式和帧内存格式后,花屏问题终于解决了,再次庆祝一下。

  文章来源:http://wuyuans.com/2013/04/s5pv210-frame-memory

  供货情况:

  天嵌科技提供专业嵌入式板卡和行业解决方案。如有需要,可以联系天嵌科技的销售人员。

  销售电话:020-38219416 38373101

  技术支持:020-38219416转807 820

  网址:http://www.embedsky.com

  官方淘客:https://embedsky.taobao.com/

文章评论6条评论)

登录后参与讨论

用户164119 2016-5-5 17:57

终于找到这方面资料了,最近也在调这个功能。终于调通了,谢谢楼主。

用户3402791 2016-4-29 17:34

TQ210的竟能做工业现场采集的方案都可以,之前选型还担心的要命。现在终于可以松口气了,领导也很满意。价格不高,功能强大!

用户1871543 2016-4-29 12:10

感谢楼主的资料分享,不错,学习了

用户3731705 2016-4-29 10:59

详细!实用性强,可能

用户1871598 2016-4-28 16:51

谢谢楼主分享!已学些~

用户1871547 2016-4-26 14:40

看贴必回
相关推荐阅读
用户1476573 2016-06-27 15:48
TQ210 WINCE 大分辨率不启动的问题
   有客户在TQ210  WINCE系统下遇到大分辨率无法启动的问题,现解决方法如下:   修改了WINCE600\PLATFORM\COMMON\SRC\SOC\S5PV210_SEC_V...
用户1476573 2016-06-12 11:56
天嵌年中狂欢,只打折不打烊
    天嵌年中狂欢,一不做,二不休,终极抄底价,将打折进行到底,机会不是天天有,该出手时就出手!   活动时间     2016年6月13日至17日 ...
用户1476573 2016-05-27 11:02
Cortex-A9嵌入式开发板电池可充电解决方案
  有客户反应E9卡片电脑的rtc久了电池没电不能保存时间,咨询解决方案。E9卡片电脑在设计之初就考虑到客户产品化后可能遇到的这个问题,预留了可充电电池更换的硬件接口。   具体解决方法如下:...
用户1476573 2016-05-20 10:04
TQ210添加永不休眠选项
    很多朋友在使用TQ210做项目的时候都需要屏幕保持长亮,本文介绍如何修改TQ210 android源码,使系统可以永不休眠,代码如下:   1、添加英文选项   修改package...
我要评论
6
38
关闭 站长推荐上一条 /2 下一条