H266 vs VVC标准之仿射运动模型

2020年7月,联合视频专家工作组JVET 第19次会议胜利闭幕,宣告新一代视频编码标准多功能视频编码(H266/VVC)的正式诞生。这距离上一代视频编码标准 高性能视频编码H265/HEVC的问世刚刚过去七年。近年来随着短视频,在线会议等移动视频应用的爆发式普及,全球的视频信息需求快速增长,业界普遍感受到的宽带与存储的家u大压力,极度渴望高性能的视频压缩算法,仍然无法满足业界日益高涨的需求。这种情况,国际标准化组织ITU-T Video Coding experts Group 在2015年联合成立了JVET,提出了全面超越HEVC的战略目标。经过近3年的技术积累与酝量,VVC标准的制定工作与2018年4月正式启动。JVET的专家们终于在第19次会议上完成了VVC的标注制定。经过权威评测,编码同质量的视频节目,使用VVC相比使用HEVC能节省大约一半的带宽。

VVC使用了大量的新技术,多叉树块划分技术,历史运动适量预测技术,亮度色度线性模型预测技术等。重点介绍VVC中的仿射运动模型技术。标准的文档,参考代码等均为公开资料。

在视频编码的早期研究当中,人们已经发现平动运动模型并不能有效表示转动,缩放等复杂运动。仿射运动模型能够较好的描述这些复杂运动。整体仿射变换,局部仿射变换等方法,试图在视频编码过程中引入仿射运动模型以提高帧间预测的编码效率。尽管学术界对视频编码中仿射运动模型的研究,在很长一段时间内仿射运动模型没能走进视频编码标准。相关方法始终写在纸面上而不能刻入芯片中。意识仿射运动模型的相关算法复杂度都极高,无论在编码端还是解码端。超出了同时代实际产品负担的处理能力。二是相关研究较为学术设计并没有考虑到算法如何完美嵌入现代视频编码标准框架中现代视频编码标准整体设计大部分都是基于划分混合视频编码框架如果仿射运动模型无法顺畅融入这一框架也难以标准采纳

幸运是在HEVC诞生之后一系列源于中国学者创造性研究逐渐破解上述两大难题仿射运动模型走进工业标准铺平道路首先打破僵局Huang等人首次提出使用3运动矢量表示一组6参数仿射参数作为merge模式特别候选方法这种方法创造性利用混合编码框架存储运动矢量表示仿射模型打开仿射模型融入混合视频编码框架大门li等人进一步发展方法模型参数6简化4更重要1方法merge模式推广普通Inter模式为了简化编码器引入基于剃度方法快速运动估计方法估计仿射模型为了简化解码器仿射运动模型运动补偿精度像素放大4x4标志着仿射运动模型基本完全克服上述两大障碍距离标准化只有一步之遥进一步改进提高放射运动模型编码效率提出了4参数/6参数仿射模型自适应切换运动矢量预测方法VVC最终采纳经过改进仿射运动模型经过四十漫长发展视频编码仿射运动模型技术终于修成正果

仿射变换仿射运动补偿

为了更好理解仿射运动模型技术仿射变换几何学一种常见可逆变换定义如果一个可逆变换前后共线线变换仿射变换定义可以看出仿射变换可以保持共线几何可以证明共线经过仿射变换共线平行线经过仿射变换平行线仿射变换公式表达为

x' = ax + cy + e

y' = bx + dy + f

(x,y)(x',y')分别代表变换前后坐标

公式这种形式仿射变换称为6参数仿射变换仿射变换一般形式可以平移镜像旋转缩放错切五类变换以及他们的组合

公式做限制我们得到

x' = ax + cy + e

y' = bx + dy + f

公式这种形式仿射变换称为4参数仿射变换仿射变换的特殊形式表出平移旋转缩放三类变换以及它们组合4参数仿射变换表达能力不及6参数仿射变换一般自然视频信号中平移旋转缩放三类运动特征较为常见镜像错切较为少见4参数仿射变换用于视频编码领域也有参数较少优势这两类仿射变换可能用到

仿射变换用于食品编码应用所谓的仿射运动模型我们实际上指的是当前编码像素坐标(x,y)运动补偿中参考像素坐标(x',y')存在仿射变换关系针对公式公式我们那可以很容易得到

mv^k(x,y) = x' - x = (a-1)x + cy +e = a'x + cy + e

mv^v(x,y) = y'-y=bx+(d-1)y+f=bx+d'y+f

其中mv(x,y) = (mv^(x,y), mv^v(x,y)^t) 代表像素点坐标(x,y)运动矢量由于参数可以任意给定在后文我们统一a,d表示a',d'不会引起误会

VVC对每个编码块我们可以使用一套或者两套仿射模型在实际中我们并不会保存或者传输参数a~f采用所谓角点运动矢量导出办法间接保存或者传递这些参数4参数仿射模型可以左上角运动矢量mv0右上角运动矢量mv1表示6参数仿射模型可以mv0,mv1 再加左下角运动矢量mv2表示经过简单公式推导我们可以得到

针对4参数模型

mv^k(x,y)=a(x-x0) - b(y-y0) + mv0^k

mv^v=b(x-x0)+a(y-y0)+mv0^v

针对6参数模型

mv^k(x,y)=a(x-x0)+c(y-y0)+mv0^h

mv^v(x,y)=b(x-x0)+d(y-y0)+mv0^v

我们假设左上角右上角左下角三个坐标分别(x0,y0),(x0+W,y0)(x0 + W, Y0+H)

理论只要给定了一个编码块两个三个运动矢量信息我们可以根据上述4参数模型6参数模型计算任意位置运动矢量但是VVC实现为了节省计算我们针对每个4x4子块中心点计算一次运动矢量整个4x4子块所有像素共享这一运动矢量统一完成运动补偿如图-2所示这是一种仿射模型近似操作编码效率造成一定损失考虑运算复杂度硬件带宽因素近似必要

mv0

mv1

mv2

-2基于4x4子块运动补偿

VVC中的仿射编码模式

运动矢量VVC仿射运动补偿算法汇总起到核心作用根据运动矢量来源VVC仿射编码模式分为两大类第一类仿射Inter模式第二类仿射Merge模式

采用仿射Inter模式普通Inter模式类似运动矢量差值经过编码传输不同的是普通Inter模式每一个预测方向只需要传输一个运动矢量仿射Inter模式下需要传输两个4参数仿射模型或者三个6参数仿射模型 运动矢量表示来给你个三个运动矢量(称为角点运动矢量)编码器可以根据性能优劣选择采用4参数仿射模型或者6参数仿射模型之后传输一个标志位通知解码器选择结果解码器根据标志解码两个或者三个运动矢量采用仿射Inter模式VVC支持三种运动矢量精度(1/16,1/4,1)像素精度编码器选定运动矢量精度信息发送解码器

普通Inter模式类似仿射Inter模式将会产生两组预测运动矢量候选预测运动矢量产生方式主要两种继承方式构造方式继承方式利用周边相邻采用仿射模式编码推导产生当前编码块运动矢量预测回到公式5 6我们可以看到实际上公式限制(x,y)范围这个目标可以

也可以公式56套用到A0所在编码块如果目标坐标置为当前左上角我们就可以得到当前编码块左上角运动矢量预测类似也可以得到其他两个运动矢量预测值继承方式得到运动矢量预测准确较高可能情况优先采用构造方式不需要周边相邻编码采用仿射模式直接相邻4x4子块所保存运动矢量预测运动矢量{MVa,MVb,MVc}被用来产生左上角预测运动矢量将被用来产生右上角预测角点运动矢量MVf,MVg将被用来产生左下角预测运动矢量继承方式构造方式产生预测运动候选不足两个VVC还会利用普通Inter模式的预测运动矢量填充各个预测运动矢量补足预测角点运动矢量候选注意VVC要求产生预测运动矢量目标运动矢量指向相同参考

编码角点运动矢量左上角运动矢量普通运动矢量类似只需要编码左上角预测运动矢量的差值MVD即可对于其他两个VVC引入运动矢量预测技术两个MVD需要左上角MVD预测一次公式表示在编码

mvd0 = mv0 - mvp0;

mvd1 = mv1-mvp1

mvd2=mv2-mvp2

运动矢量再预测技术可以提高运动矢量编码效率通常我们认为仿射运动可以分解平移运动平移运动VVC仿射模型左上角运动矢量mv0代表平移运动mv1-mv0mv2-mv0代表了平移运动分别独立预测平移运动平移运动就会得到mvd0=mv0-mvp0

mvd1=mv1-mv0-(mvp1-mvp0),

mvd2=mv2-mv0-(mvp2-mvp0) 我们就可以得到公式

-5 角点运动矢量预测

仿射Merge模式在VVC作为一种子块merge模式出现VVC子块merge模式一共两大一类子块时域运动矢量预测模式另一类仿射merge模式VVC子块merge模式候选队列第一子块时域运动矢量预测模式候选余下都是仿射Merge模式候选VVC可以支持多打5仿射Merge模式候选仿射方式两类仿射Inter模式不同的是仿射Merg模式不需要再发送参考信息MVD参考帧信息运动矢量直接来源Merge模式候选采用继承方式构造方式得到预测运动矢量直接用作仿射Merge模式候选运动矢量另外仿射Merge模式构造方式更为灵活一些除了左下三个相邻4x4子块保存运动矢可以用来估算运动矢量之外右下角的时域预测运动矢量也可以用来预测右下角运动矢量经过简单换算右下角角点运动矢量可以用来推算左上右上或者左下角点运动矢量

仿射运动模型进一步简化

相对于传统仿射运动模式编码方式已经有了很大简化对于实际应用特别硬件实现而言仍然显得复杂针对这一问题VVC对仿射运动模型运动补偿方式进一步简化

1 针对色域格式4:2:0情况色度块子块划分采取4x4子块2x2子块方式即一个色度子块对应四个亮度子块色度块子块运动矢量对应左上右下亮度子块运动矢量平均得到这样可以尽可能减少色度运动补偿占用带宽

2 VVC普通Inter运动补偿采用8抽头亚像素插值滤波器仿射模式编码块运动补偿采用6抽头亚像素插值滤波器因为普通Inter不会出现4x4双向预测模式仿射模式编码出现4x4双向预测模式平均计算而言尺寸越小运算量越大采用6抽头亚像素插值滤波器可以尽量减少仿射模式编码亚像素插值加法乘法次数

3 硬件实现中运动补偿尺寸越小平均意义带宽需求越高为了减少4x4子块运动补偿带来高额带宽需求VVC采纳边界方案如图-6所示仿射模式当前内部44x4子块所对应参考像素点必须落在同一个边界框这个边界所需要参考像素仅仅一个8x8运动补偿需要参考像素点稍多这样一来4字形4x4子块运动补偿参考像素可以一次取出所需带宽仅仅一个8x8运动补偿所需要带宽稍多不满足上述条件当前退回普通Inter模式不做仿射运动补偿操作

仿射运动模型在VVC中的性能

JVET组织文献JVET-S0013各个编码工具编码效率做了官方评测实验平台VTM-9,测试环境JVET官方给出了通用测试环境包括随机访问RA测试低延迟BLDB测试测试方法关闭测试工具考察VTM编码器性能损失性能损失越大表明工具性能越强1给出了各个测试序列类别以及平均结果实验结果可以看出仿射运动模型VVC平均可以提供超过3%编码性能增益编码器时间复杂影响20~30%之间解码器时间复杂度影响3-8%左右对比JVET-S0013列举其他编码工具仿射运动模型可以VVC除了灵活划分结构之外最强有力编码工具之一

2列出各个序列单独测试结果可以看出仿射运动模型编码工具性能序列内容依赖性对于富含平移运动序列Cactus,Catrobot,BQSquare, 仿射运动模型编码工具可以极大提高编码效率最好情况可以超过10%15%.

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值