随着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三个分量的像素值。