※基金项目:2014年江苏省大学生实践创新项目(201413112015Y)。
0引言
体积如名片大小的树莓派是基于ARM 控制器和Linux 系统的单板机电脑,它具有计算机主机的所有功能和接口,如USB,RJ45,SD-IO,HDMI 及GPIO 接口等,广泛支持基于Linux 的发行版和Windows 10的操作系统[1]。树莓派体积小巧,具有可扩展性强,社区广泛等优势,它是研究物联网,智能机器人等领域的良好的、天然的原型开发平台。树莓派自2012年首版在英国发布至今,深受全球计算机爱好者的热烈研究,来自全球的计算机软硬件爱好者们基于树莓派开发了众多的创新功能,如机器人飞行器,家庭自动化,天气预报站,超级电脑,有声书籍播放器等等[2]。
随着高清视频资源的日益丰富和用户对高清视频播放需求的越来越多,高清视频终端播放器的设计和开发面临着越来越多的需求和挑战,如:更小巧便携、更强的处理能力等。本文基于B 型树莓派,搭建了基于其上的软件移植开发环境,利用其强大的GPU 视频处理能力,开发移植了H264高清视频解码模块,成功实现了基于其上的720P 和1080P 高清视频播放器。
本文共分为三个部分:第一部分高清播放器系统分析与设计,介绍了树莓派的软硬件开发环境及其演进,及基于树莓派的高清视频播放器系统架构及设计;第二部分详叙了本系统高清音视频解码模块在树莓派环境中的移植;最后总结了本系统的性能测试数据。
1高清播放器系统设计
1.1
树莓派硬件开发环境及演进
2012年英国树莓派基金会宣布树莓派平板电脑正式发布,第一代树莓派分为A 型和B 型两款,二者硬件配置略有不同,主要体现在B 型有512MB 内存而A 型有512MB 内存。2015年2月,树莓派基金会宣布推出二代树莓派卡片电脑B 型,在硬件配置上又进一步升级,比如CPU 由700MHz 的单核心升级到900MHz 的四核心,内存由512MB 升级到1GB 以及支持更多的外设扩展接口等。1.2树莓派软件开发环境及演进
第一代树莓派基于Linux 系统,典型的如Raspbian,ARCH Linux ARM 等。随着树莓派社区的壮大,树莓派已被越来越多的操作系统支持。据2015年2月报告显示,Windows 10和Android 平台已证实支持树莓派,其它典型的如FreeBSD,WebOS,Debian Linux 等操作系统均已支持树莓派。完整的支持树莓派的操作系统列表参见[3]。
树莓派基于ARM 系列CPU 系统,应用软件可移植环境强,GNU/Linux 工具链已经较好的支持树莓派系统软件开发移植。成熟的支持树莓派开发的编程语言有:C 及C++,Python,Java,Golang 等语言。典型的集成开发环境有KDevelop,Bluej IDE,Eclipse 及Visual Studio 等。
基于树莓派的高清视频播放器软件开发环境如下:1)操作系统:Raspbian OS
2)编译及调试器:GCC,G++及GDB
3)集成开发环境:Eclipse IDE for C /C++1.3树莓派高清视频播放器系统设计
基于树莓派的高清视频播放器系统主要设计为三个模块:高清音视频数据输入模块,音视频数据解码模块及音视频输出渲染模块。系统架构逻辑模块设计如图1所示。
音视频数据输入模块(I)-典型的音视频数据支持H264编码视频
数据及FAAC 编码音频数据,数据封装格式支持mp4及MPEG Transport Stream (TS)格式[4];数据源读取可支持本地MP4封装格式,及支持从网络端读取TS 封装格式;输入模块(I)与OMXPlayer 播放器模块(P)间采用生产者-消费者模型,设计并发队列Queue(Q)作为二者之间数据通信模型;视频解码模块(V)与音频解码模块(A)为消费者。功能上数据输入模块解封装音视频数据包,并标记时间戳T,后分别放入并发队列Q。
图1高清视频播放器系统设计模块图
OMXPlayer 播放器模块(P)-基于开源OMXPlayer 模型移植,分别采用基于FFmpeg 向树莓派移植的高
清视频解码模块(V)和基于FAAC 向树莓派移植的音频解码模块(A)。功能上播放器模块读取并发队列音视频数据,分别解码后输出给音视频输出模块(O)。
音视频输出模块(O)-基于输入模块标记时间戳T,向HDMI 接口写输出音视频数据。
关键技术音视频同步算法-基于以上模块设计,以下算法被设计为解决数据输出时音视频同步问题,经过此算法处理的音视频数据为时间同步数据,作为音视频解码模块和输出模块的输入实现音视频同步。
音视频同步算法:
Step 1:(I)模块读取ts 时长TS 或MP4封装数据,去除头部封装信息并获取视频帧率F
Step 2:获取当期系统时间T 线程1:处理音频数据
Step 3:将当前ts 时长音频数据标签为时间T,并将数据放入Q 线程2:处理视频数据
Step 4:记录当前系统时间t1
Step 5:读取ts/F 时长视频帧,标签为时间T,并将数据放入Q Step 6:记录当前系统时间t2及时间消耗SumT=t2-t1Step 7:IF SumT>=ts 转到Step1否则转到Step4
2高清音视频解码模块移植
基于开源OMXPlayer 播放器模型,基于树莓派的高清视频播放器移植了音、视频解码模块到树莓派系统中,此移植关键在于充分利用树莓派GPU 多媒体处理指令及技术。2.1H.264视频解码模块移植
H.264/MPEG-4AVC [5]是一种面向块的基于运动补偿的编解码器标准。由ITU-T 视频编码专家组与ISO/IEC 联合工作组开发,它也被广泛用于网络流媒体数据,网络软件以及各种高清晰(下转第20页)
基于树莓派的高清视频播放器的设计与实现
顾艳华王闯
(南京信息职业技术学院通信学院,江苏南京210023)
【摘要】树莓派卡片电脑是研究物联网,智能机器人等领域的天然开发板,基于树莓派的高清视频播放终器的设计与实现具有很强的实践参考价值。介绍了树莓派的软硬件研发环境及其发展,给出了基于树莓派设计实现高清视频播放器的软硬件设计及移植开发环境,并基于树莓派移植了高清视频解码模块,实现了基于树莓派的高清(720P 及1080P)视频的播放系统。经测试,该系统性能卓越,实用创新性强。
【关键词】树莓派;高清视频;视频播放器;物联网;H264;
AAC
. All Rights Reserved.
(上接第30页)度电视陆地广播系统中。
高清视频解码模块基于开源标准库FFmpeg 及X264库移植,面向树莓派的移植主要解决了FFmpeg 及X264程序库在树莓派ARM 平台的编译链接问题,其关键语法如下:
export CCPREFIX=“/opt/cross/x-tools
/arm -unknown -linux -gnueabi/bin/arm -unknown -linux -gnueabi-”
./configure———host=arm-unknown-linux-gnueabi
———enable-static
———
cross-prefix=${CCPREFIX}———
prefix=/my/path/were/i/keep/built/arm/stuff ———
extra-cflags='-march=armv6'———
extra-ldflags='-march=armv6'2.2ACC 音频解码模块移植
高级音频编码AAC(Advanced Audio Coding)基于MPEG-2的音频编码技术是一种取代MP3的高压缩比的音频压缩算法。AAC 压缩比通常为18:1,远胜mp3;在音质方面,由于采用多声道,更高的采样率和采样精度,以及使用低复杂性的描述方式,使其比几乎所有的传统编码方式在同规格的情况下更胜一筹。
AAC 音频解码模块基于FAAC 开源音频解码标准库向树莓派移植。移植过程分为两步,第一步需先交叉编译FAAC 库;第二部需再次交叉编译FFmpeg,同时激活X264及FAAC 模块。其关键语法如下:
./configure ———host=arm-unknown-linux-gnueabi ./configure ———arch=armel --target-os=linux --enable-gpl
———enable-libx264———enable-nonfree ———enable-libaacplus ———enable-librtmp ———enable-libmp3lame
3总结
3.1系统测试性能参数
将B 型树莓派,连接显示器、键盘,鼠标,移动硬盘等外部设备,然后在树莓派上运行编译后的高清视频播放器OMXPlayer,设计实现的高清视频播放器用户接口如下:
omxplayer -o hdmi filename
omxplayer -o hdmi URL/vidoe.m3u
经测试,基于树莓派的高清视频播放器,性能良好,具有以下测试参数。
3.2结束语
本文设计并实现了基于树莓派实现的高清视频播放器,该原型系统经测试,性能卓越,体积小,可携带性强。本系统中运用的设计方案和基于树莓派的软硬件开发经验为进一步研究基于树莓派的其他应用具有一定的实践参考意义。
[1]李明,译.Linux+树莓派玩转智能家居(第2版)[M].北京:人民邮电出版社,2014,6.
[2]Peter Membrey David Hows.树莓派学习指南-(基于Linux)[M].北京:人民邮电出版社,2014,4.
[3]Brendan Horan.RaspberryPi 树莓派实作应用[M].北京:人民邮电出版社,2014,5.[4]董杰,辛吉涛,
连捷.基于Android 系统的H.264视频直播技术研究.电视技术,2015(2).
[5]蔡丽艳.基于H.264嵌入式网络视频监控系统的研究与实现[M].南京邮电大学,2013.
[责任编辑:邓丽丽]
项目音频编码视频编码分辨率帧率720P (MP4)AAC H2641280x720
25–35帧/秒1080P (MP4)
AAC
H264
1920x108020–30帧/秒
表1
《水产动物组织胚胎学》实验报告评分标准
3改革效果
对青岛农业大学2012和2013级水产养殖专业学生进行了《水产动物组织胚胎学》学业考核评价改革,并和2011级水产养殖专业学生教学效果进行了比较
。与改革前相比,学生上课积极性明显提高,课堂活动活跃度显著增强,学生的创新思维和个人特长得到了充分的发挥,期末考试卷面平均成绩和课程总评成绩都有所提高,说明改革有利于学生对课程内容的掌握和综合素质的提高。在学校每学期组织的教学质量学生座谈会中,学生对课程改革给出如下评价:“老师教学风格新颖,积极开发同学创造力,提高了记忆力”、“在老师的指导下,对课程有了极大的兴趣,越来越喜欢自己的专业,更有信心了”、“课程给我们亲自实践的机会多,实验随堂考核给我们学习提供了压力和动力,学习也不那么枯燥了”、“学生课堂讲解活动给了同学自我展示的
机会,不仅能加强对课程知识的掌握,还促进组织能力、语言表达能力等综合素质发展”。由此可见,学生也比较认同课程的学业考核评价改革。不过由于期末考试成绩分值的降低,也有个别学生由一个极端走向另一个极端,由“期末考试前的突击”走向“不重视期末理论考试复习”。另外,在教学过程中发现,不同班级之间的学习成绩差异比较大,说明班级的整体学风对学生的学习质量也会有很大的影响。
4结语
《水产动物组织胚胎学》学业考核评价改革加强了过程考核,降低了期末考试分值,不仅能督促学生平时学习,提高学生自主学习、创新学习的积极性,提升学习质量,而且还能减弱因考试给学生带来的压抑、焦虑,激发学生的创造力,消除学生不以平时学习为基础、只靠期末几天突击的投机取巧心理和行为。另外课程考核增加了学生实验内容示教讲解和小组课堂PPT 展示环节,每个学生必须都要参与,这些环节除了教师给予评价外,学生之间也要进行互评,这有利于激发学生的主人翁精神和责任意识,培养学生的创新意识和综合分析、解决问题能力,促进了学生合作精神的培养和个体潜能的发挥;对于学生的展示讲解,教师要逐一进行点评和反馈,在肯定学生的同时还要让学生及时发现自己的问题和不足,这就要求教师不仅要掌握学科的基础知识,还得了解学科发展动态,从而促进了教师教研水平的提高以及专业知识的增长。实践发现由于实验随堂考核、实验内容示教讲解和小组课堂PPT 展示需要花费较多的时间和教师更多的精力,建议以小班授课效果更好。
[1]郝淑新.试述高等学校学生学业考核[J].读写算:教育教学研究,2011(13):24,26.[2]孙士杰,张国荣,冯喜英.高校学生学业成就评价现状及改革的研究[J].河南师范大学学报:哲学社会科学版,2000,27(5):106-109.
[3]蔡克勇.21世纪中国教育的走向[M].广东高等教育出版社,2004.
[4]廖迎春.对高职院校学业考核评价方式改革的思考[J].湖南工业职业技术学院学报,2011,11(6):94-95.
[5]刘继红.对高校考试改革的几点思考[J].中国高教研究,2000(5):28-29.
[责任编辑:邓丽丽]
评价指标评价标准
分值实验预习
了解实验目的和内容,掌握实验步骤及仪器设备使用方法。
10实验过程
积极主动完成实验内容,态度端正;实验步骤正确,仪器设备操作规范。
linux内核设计与实现 pdf20实验报告完成情况
姓名、学号、日期、项目名称等内容齐全。
5书写认真,绘图能真实反映显微镜下的结构和比例,实事求是,无抄袭别人作业和临摹挂图或书本插图现象。
10绘图是用点和线绘制的半模式图,用线条绘细胞膜、核
膜和纤维等连续性结构,细胞质则用点来表示。线条粗
细均匀,点大小一致,圆、细、密而不重叠。40绘制的图像有用横线指明结构,并注字说明。图下方有注明标本(图)名称、放大倍数等。
5对所绘结构特点有相应描述,语言组织恰当,用词准确。
10
实验总成绩
. All Rights Reserved.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。