当前位置: 首页 > 专利查询>北京大学专利>正文

针对Intel移动平台的实时AVS软编码方法技术

技术编号:10685347 阅读:188 留言:0更新日期:2014-11-26 15:50
本发明专利技术公开了一种针对Intel移动平台的实时AVS软编码方法。本方法为:1)AVS编码器检测当前待编码宏块的类型,调用相应的I帧编码单元或P帧编码单元进行编码;2)在进行I帧宏块编码时,通过利用预测模式的匹配代价均值作为阈值实现预测模式遍历的提前终止;3)在进行P帧宏块编码时,通过利用匹配代价的最小值来作为阈值实现参考帧和预测模式遍历的提前终止。在计算当前宏块和预测宏块之前的匹配代价(SAD值)时,采用Intel移动平台特有的SSE指令技术实现。本发明专利技术大大提高了处理器利用率,实现了每秒10帧的视频采集和编码。

【技术实现步骤摘要】
针对Intel移动平台的实时AVS软编码方法
本方法涉及AVS视频编码技术、Android应用程序开发技术、NDK技术、程序优化技术和SSE技术。本方法直接应用于移动平台视频编码领域,实现了在Intel移动平台上的实时AVS软编码。
技术介绍
AVS视频编码技术:AVS视频标准是为了适应数字电视广播、数字存储媒体、因特网流媒体、多媒体通信等应用中对运动图像压缩技术的需要而制定的。该标准适用的范围包括但不限于下述领域:数字地面电视广播(DTTB,Digitalterrestrialtelevisionbroadcasting)、有线电视(CATV,CableTV)、交互存储媒体、直播卫星视频业务(DBS,DirectbroadcastSatellitevideoservices)、宽带视频业务、多媒体邮件、分组网络的多媒体业务(MSPN,Multimediaservicesonpacketnetworks)、实时通信业务(视频会议,可视电话等)、远程视频监控。该标准采用了一系列技术来达到高效率的视频编码,包括帧内预测、帧间预测、变换、量化和熵编码等。帧间预测使用基于块的运动矢量来消除图像间的冗余;帧内预测使用空间预测模式来消除图像内的冗余。通过对预测残差进行变换和量化消除图像内的视觉冗余。最后,运动矢量、预测模式、量化参数和变换系数用熵编码进行压缩。Android应用程序开发技术:Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑。Android的系统架构和其操作系统一样,采用了分层的架构,分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。Android开发四大组件分别是:活动(Activity):用于表现功能。服务(Service):后台运行服务,不提供界面呈现。广播接收器(BroadcastReceiver):用于接收广播。内容提供商(ContentProvider):支持在多个应用中存储和读取数据,相当于数据库。在Android集成开发环境(IDE)利用上述组件可以完成基本的Android应用开发。NDK技术:AndroidNDK(AndroidNativeDevelopmentKit)是一系列的开发工具,允许程序开发人员在Android应用程序中嵌入C/C++语言编写的代码。NDK允许程序开发人员使用C/C++语言进行库文件开发,并提供便捷工具将库文件打包到apk文件中。程序优化技术:程序优化技术是指在不改变程序功能的情况下,根据处理器及系统的特性,通过修改原来程序的算法、结构,或利用软件开发工具对程序进行改进。使修改后的程序运行速度更快或占用空间更小或能耗最低。优化的原则有:等效原则、有效原则、经济原则。优化的途径主要有:程序多线程化、使用处理器专用编译器、程序结构优化、代码优化等。SSE技术:SSE是指令集的简称,它包括70条指令,其中包含单指令多数据浮点计算、以及额外的SIMD整数和高速缓存控制指令。其优势包括:更高分辨率的图像浏览和处理、高质量音频、MPEG2视频、同时MPEG2加解密;语音识别占用更少CPU资源;更高精度和更快响应速度。现有的同类应用存在AVS编码效率低,处理器利用率低等缺点。
技术实现思路
针对现有的同类技术方案存在AVS编码效率低、处理器利用率低等问题,本专利技术提出一种针对Intel移动平台的实时AVS软编码方法。本方法首先运用Android应用开发技术开发出摄像机框架。之后运用NDK技术将AVS编码器移植到Android摄像机工程中。参照AVS视频编码原理和技术,完成对AVS编码器的算法优化;运用程序优化技术,完成摄像机程序的多线程优化以及AVS编码器C程序的结构优化和代码优化。最后,使用处理器专用的C编译器,并使用处理器支持的SSE指令集,优化计算,提高处理器利用率。AVS视频编码的关键是对I、P、B三种图像的编码(本方法涉及的优化只考虑了I图像和P图像,并未涉及B图像)。而对I图像和P图像的编码都是以宏块为单位的,所有关键技术都体现在对一个宏块的编码过程中。下面介绍对宏块编码的优化。本专利技术的技术方案为:一种针对Intel移动平台的实时AVS软编码方法,其步骤为:1)AVS编码器检测当前待编码宏块的类型,如果为I帧宏块,则调用I帧编码单元进行编码;如果为P帧宏块,则调用P帧编码单元进行编码;2)P帧编码单元对当前P帧宏块进行帧间预测,选择块间绝对误差和SAD最小的帧间宏块模式为最佳帧间宏块模式,将该帧间宏块模式下得到预测宏块作为最佳预测宏块;将其与当前P帧宏块进行残差计算,并对得到的残差矩阵进行变换、量化、熵编码;3)I帧编码单元对当前I帧宏块进行帧内预测,得到当前I帧宏块的最佳帧内预测块,将其与当前I帧宏块进行残差计算,并对得到的残差矩阵进行变换、量化、熵编码;其中,在每次帧内预测模式遍历过程中,判断当前帧内预测模式下计算所得的8x8块率失真代价是否小于率失真代价均值,如果是,则将其作为当前I帧宏块的最佳帧内预测块,终止遍历;所述率失真代价均值=所有已计算帧内预测模式下8x8块率失真代价之和/已计算的帧内预测模式数。进一步的,获取所述当前P帧宏块的最佳帧间宏块模式的方法为:对于每一种帧间宏块模式的帧间预测中,进行内层循环参考帧遍历时,参考帧遍历过第一帧后,如果当前帧间宏块模式当前子块对应的代价小于之前的最小代价,则将当前参考帧作为当前帧间宏块模式当前子块的最佳参考帧,此时当前子块对应的代价作为最小代价,并终止内层循环参考帧遍历;对于外层帧间宏块模式遍历,帧间宏块模式遍历过第一种后,如果当前帧间宏块模式下的总代价小于之前最小总代价,则将当前帧间宏块模式作为当前P帧宏块的最佳帧间宏块模式。进一步的,所述块间绝对误差和(SAD)的计算方法为:将所有待编码块全部分割为8x8块的单位,然后采用SSE技术中的_mm_loadl_epi64()指令获取待编码8x8块和预测8x8块中各一整行像素值,然后利用SSE技术中的_mm_sad_epu8()指令计算这两行像素值的绝对误差和,利用SSE技术中的_mm_extract_epi16()指令提取该绝对误差和并将其累加到总绝对误差和上;当所有行遍历完后,即得到待编码8x8块和预测8x8块之间的绝对误差和。进一步的,所述帧间宏块模式包括16x16、16x8、8x16、8x8四种帧间宏块模式。进一步的,采用UMHexagons运动估计算法进行帧间预测。进一步的,所述帧内预测包括:均值预测、水平预测、垂直预测、平面预测、左下对角预测和右下对角预测。本方法的有益效果是:提升移动平台上AVS编码效率,使摄像机能够完成每秒10帧的实时采集和编码,提高了处理器利用率。下面结合测试实例进行分析。将搭载优化前AVS编码器的摄像机应用和搭载优化后AVS编码器的摄像机应用分别在移动设备上运行,通过对三个不同的YUV文件进行编码,得到测试数据。对测试数据进行分析,得到测试数据分析结果。移动设备配置如表1所示。表1移动设备配置项目值TargetAndroid4.2.2–APILevel16CPU/ABIINTEL(x86-atom)SDCardsuppo本文档来自技高网
...
针对Intel移动平台的实时AVS软编码方法

【技术保护点】
一种针对Intel移动平台的实时AVS软编码方法,其步骤为:1)AVS编码器检测当前待编码宏块的类型,如果为I帧宏块,则调用I帧编码单元进行编码;如果为P帧宏块,则调用P帧编码单元进行编码;2)P帧编码单元对当前P帧宏块进行帧间预测,选择块间绝对误差和SAD最小的帧间宏块模式为最佳帧间宏块模式,将该帧间宏块模式下得到预测宏块作为最佳预测宏块;将其与当前P帧宏块进行残差计算,并对得到的残差矩阵进行变换、量化、熵编码;3)I帧编码单元对当前I帧宏块进行帧内预测,得到当前I帧宏块的最佳帧内预测块,将其与当前I帧宏块进行残差计算,并对得到的残差矩阵进行变换、量化、熵编码;其中,在每次帧内预测模式遍历过程中,判断当前帧内预测模式下计算所得的8x8块率失真代价是否小于率失真代价均值,如果是,则将其作为当前I帧宏块的最佳帧内预测块,终止遍历;所述率失真代价均值=所有已计算帧内预测模式下8x8块率失真代价之和/已计算的帧内预测模式数。

【技术特征摘要】
1.一种针对Intel移动平台的实时AVS软编码方法,其步骤为:1)AVS编码器检测当前待编码宏块的类型,如果为I帧宏块,则调用I帧编码单元进行编码;如果为P帧宏块,则调用P帧编码单元进行编码;2)P帧编码单元对当前P帧宏块进行帧间预测,选择块间绝对误差和SAD最小的帧间宏块模式为最佳帧间宏块模式,将该帧间宏块模式下得到预测宏块作为最佳预测宏块;将其与当前P帧宏块进行残差计算,并对得到的残差矩阵进行变换、量化、熵编码;3)I帧编码单元对当前I帧宏块进行帧内预测,得到当前I帧宏块的最佳帧内预测块,将其与当前I帧宏块进行残差计算,并对得到的残差矩阵进行变换、量化、熵编码;其中,在每次帧内预测模式遍历过程中,判断当前帧内预测模式下计算所得的8x8块率失真代价是否小于率失真代价均值,如果是,则将其作为当前I帧宏块的最佳帧内预测块,终止遍历;所述率失真代价均值=所有已计算帧内预测模式下8x8块率失真代价之和/已计算的帧内预测模式数;其中,获取所述当前P帧宏块的最佳帧间宏块模式的方法为:对于每一种帧间宏块模式的帧间预测中,进行内层循环参考帧遍历时,参考帧遍历过第一帧后,如果当前帧间宏块模式当前子块对应的代价小于之前的最小代价,则将当前参考帧作为当前帧间宏...

【专利技术属性】
技术研发人员:刘宏志李浩吴中海张兴
申请(专利权)人:北京大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1