论文部分内容阅读
近十年来,基于IP网络的语音及视频通话在技术上发展迅速,其实际应用也越来越广泛。视频通话功能满足用户对实时通讯更高的需求,具有很好的应用前景。PKUnity-3(65)是一款由北京大学微处理器研发中心自主研发的低功耗系统芯片,在片上集成了CPU、图形加速、视频编解码等多种硬件功能部件。本文基于该系统芯片的软硬件平台,设计和实现一款具有高清视频通话功能的VoIP软件;并针对网络传输不稳定特征,采取多种策略以保障视频通话的服务质量。 本文针对视频处理过程使用软硬件协同的方法,采取多种优化措施,实现最高720p@30fps视频通话支持。在图像采集模块中,通过使用内存映射的缓冲来减少拷贝,以实时调度的独立线程来保证采集过程的实时性。在原始图像数据的颜色空间转换步骤中,使用向量指令实现4至6倍的计算加速。利用视频处理单元(VPU)的硬件加速能力,完成多实例的封装控制,实现并发的视频编码和解码,分担了CPU的计算负载。利用支持覆盖(overlay)技术的显示引擎,在视频层中快速地输出解码后的高分辨率图像,并使用图形处理器(GPU)辅助图像的显示合成。 网络传输的数据丢失严重影响视频解码,使得视频通话的服务质量大幅下降。本文针对IP网络无服务质量保证的数据传输特征,设计和实现多种策略,在网络传输带宽不稳定的情况下,保证视频通话的服务质量。本文一方面采取了端到端的动态自适应带宽的码率控制方法,在网络带宽下降时,避免持续的数据包丢失导致服务质量的迅速下降;并且在码率跟随带宽的变化之后,自动刷新视频编码的参考帧,使得接收端的解码器能迅速从数据丢失中恢复。另一方面,本文采用低密度奇偶校验码(LDPC)的前向纠错编码技术,在应用层增加对数据丢失的抵抗措施,与自适应策略相互补充,在一定范围内完全掩盖数据丢失的发生。 本文在PKUnity-3(65)平台实现高清视频VoIP软件,并实现多种策略以保证通话的服务质量,为其它类似系统芯片上的视频通话实现提供了很好的参考。