平台:exynos4412 (ibox)
Kernel:odroid linux-3.8.13.29
OS: ubuntu14.04-armhf
tool:eclipse-armhf
参考三星源码:public-apps-00d0905
4412 eclipse工程截图
流程:
uvc获取640x480YUYV数据---->memcpy(因为uvc不能使用dma连续物理内存,所以无法直接入队进入fimc)--->FIMC(YUYV转NV12M)--->入队方式直接进入MFC---->MFC---->H264/H263/ MPEG1/2/4--->写入文件
编码视频为原始h264 data, 可以通过mp4v2转化成mp4视频文件,或者 直接通过gnome mplayer播放,也可以尝试其他播放器
编码640x480 h264 fps 20时,cpu使用率
Tasks: 155 total, 2 running, 153 sleeping, 0 stopped, 0 zombie
%Cpu(s): 12.5 us, 5.9 sy, 0.0 ni, 76.3 id, 0.0 wa, 0.0 hi, 5.4 si, 0.0 st
KiB Mem: 1029212 total, 815784 used, 213428 free, 14032 buffers
KiB Swap: 0 total, 0 used, 0 free. 422128 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1992 odroid 20 0 815772 163172 23732 S 35.3 15.9 1:49.02 java
1040 root 20 0 83028 42332 22792 S 25.5 4.1 2:24.59 Xorg
3495 odroid 20 0 35968 10036 9964 R 14.7 1.0 0:01.73 mfctest
753 avahi 20 0 3740 2264 1068 S 2.9 0.2 4:31.55 avahi-daemon
编码1920x1080 h264 fps20时,cpu使用率
Tasks: 155 total, 1 running, 154 sleeping, 0 stopped, 0 zombie
%Cpu(s): 12.3 us, 9.5 sy, 0.0 ni, 71.3 id, 1.3 wa, 0.0 hi, 5.6 si, 0.0 st
KiB Mem: 1029212 total, 901360 used, 127852 free, 7908 buffers
KiB Swap: 0 total, 0 used, 0 free. 462140 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3533 odroid 20 0 77696 10036 9964 D 33.4 1.0 0:06.40 mfctest
1992 odroid 20 0 817128 164240 23760 S 30.5 16.0 2:07.85 java
1040 root 20 0 82916 42352 22820 S 27.5 4.1 2:36.45 Xorg
59 root 20 0 0 0 0 D 2.9 0.0 0:09.89 mmcqd/0
1296 odroid 20 0 275576 11616 8532 S 2.9 1.1 1:41.22 indicator-multi
753 avahi 20 0 3740 2264 1068 S 2.0 0.2 4:35.56 avahi-daemon
1079 root 20 0 0 0 0 S 2.0 0.0 0:00.44 flush-179:0
1192 odroid 20 0 49048 5100 2800 S 2.0 0.5 0:18.01 ibus-daemon
3528 root 20 0 5824 1232 848 R 1.0 0.1 0:00.49 top
解码没有修改,直接使用原代码,把原始数据直接解码输出到lcd,扩展到整个屏幕
解码输出到1920x1080显示时,cpu使用率
Tasks: 155 total, 2 running, 153 sleeping, 0 stopped, 0 zombie
%Cpu(s): 15.8 us, 14.1 sy, 0.0 ni, 66.8 id, 0.0 wa, 0.0 hi, 3.4 si, 0.0 st
KiB Mem: 1029212 total, 859364 used, 169848 free, 19132 buffers
KiB Swap: 0 total, 0 used, 0 free. 485832 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1040 root 20 0 83028 42332 22792 R 67.5 4.1 1:58.24 Xorg
3441 odroid 20 0 133412 11240 11128 S 45.0 1.1 0:02.50 v4l2_decode
2749 odroid 20 0 286724 12732 9432 S 22.5 1.2 0:22.79 lxterminal
1192 odroid 20 0 49048 5092 2800 S 6.8 0.5 0:13.88 ibus-daemon
1296 odroid 20 0 275576 11616 8532 S 2.9 1.1 1:36.81 indicator-multi
共享文件
编码:
http://download.csdn.net/detail/liujia2100/8568845
解码:
http://download.csdn.net/detail/liujia2100/8568891
可以测试使用的平台 s5pv210 exynos4412等mfc5.1版本.
目前由于mfc5.1硬件限制, mfc输入格式只能是NV12M, 所以如果输入图像数据是其他格式,必须通过转换,这里通过fimc将usb摄像头YUYV数据转换成NV12M再传给MFC.
在exynos5 系列处理器中,MFC已经可以支持其他格式文件直接输入,所以不需要fimc,效率会增加。