随着AVS的逐步发展,AVS中的一些创新也得到国际上越来越多学者的关注。尤其是AVS中针对监控视频编码的背景建模技术和感兴趣区域提取技术。对于国际同行来说,如何在HEVC的参考软件平台HM上加入这两项技术是一个工作量甚大的事情。本文就本人做的一些工作做简单介绍。
软件平台HM14.0,IDE:VS2010(英文版)
废话了这么多,下面开始真正的内容:
在《HEVC framework before starting encoding(基于HM14.0平台)》中(网址:点击打开链接)讲述了进入编码前的一些准备工作,其实背景建模也是准备工作的一部分。
下面给出大致的流程图,可以看到背景建模应该处于的位置。
要想进行背景建模,必须知道当前帧的像素值和前一帧的像素值。当前帧的像素值可以用以下方法得到(基于HM14.0):
Pel* PicOrgLumaAdrr=pcPicYuvOrg->getLumaAddr(); for(int i=0;i<352;i++) { if(i%16==0) cout<<endl; cout<<*(PicOrgLumaAdrr+i)<<" "; } Pel* PicOrgCbAdrr=pcPicYuvOrg->getCbAddr(); for(int j=0;j<176;j++) { if(j%8==0) cout<<endl; cout<<*(PicOrgCbAdrr+j)<<" "; } Pel* PicOrgCrAdrr=pcPicYuvOrg->getCrAddr(); for(int k=0;k<176;k++) { if(k%8==0) cout<<endl; cout<<*(PicOrgCrAdrr+k)<<" "; }上述代码可以得到当前帧Y、Cb和Cr三个分量的像素值。