IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> HEVC——Intra Picture Prediction at frequency domain with Neural Networks -> 正文阅读

[人工智能]HEVC——Intra Picture Prediction at frequency domain with Neural Networks

1.概要

本文简述在频域中基于神经网络进行帧内预测,通过将预测prediction转换到频域,从而大大减少了密集矩阵-向量乘法需要的运算量。将l1范数和s型函数应用于预测残差在DCT域中,我们的损失函数反映了残差量化和编码阶段存在于典型的混合视频编码架构中。最近也是初看HEVC,可能会有理解错误之处。

2. Introduction

与之前的工作相比,该论文所描述的预测方法提高了压缩效率,大大减少了计算负担。主要在于结构层数的减少及根据统计特性对某些特定频域置零,从而减少矩阵运算量。

2.1 Predictor Architecture

作为预测器的输入,该论文取当前block的左方和上方的两条重建样本线的重构样本块作为输入,如图所示。因此对于M × N大小的块,预测器的输入维数,即r的维数为2(M + N + 2)输出维数为MN。将预测器定义为一个完全连接的两层具有位移整流线性单元(SReLU)激活函数的神经网络。
在这里插入图片描述
第一层使用矩阵A1和偏置向量b1来计算向量t1
t 1 = f ( A 1 r + b 1 ) t_1=f(A_1r+b_1) t1?=f(A1?r+b1?)
p k ( r ) = A 2 , k t 1 + b 2 , k p_k(r)=A_{2,k}t_1+b_{2,k} pk?(r)=A2,k?t1?+b2,k?
SReLU function f:
f ( x ) i = m a x ( ? 1 , x i ) f(x)_i=max(-1,x_i) f(x)i?=max(?1,xi?)

由于模式索引k被信号到解码器,我们需要一种方法预测它在解码器执行熵编码。为了这个目的,我们用分离的两层函数,将r映射到模态上的概率分布通过softmax-function σ \sigma σ:
q ( r ) = σ ( A 4 f ( A 3 r + b 3 ) ) q(r)=\sigma(A_4f(A_3r+b_3)) q(r)=σ(A4?f(A3?r+b3?))
σ ( x ) i \sigma (x)_i σ(x)i?:
σ ( x ) i = e x i / ∑ j e x j \sigma (x)_i=e^{x_i}/\sum_j e^{x_j} σ(x)i?=exi?/j?exj?

2.2 Training

loss函数的设计包括两个方面:第一个是关于预测残差的转换编码,其中零系数起着重要作用。第二个方面是分区将图片分成块并选取其中一套简单的预测模型进行计算。
假设pk预测了一块原始样本s,ck=T × \times ×(s-pk)是由T进行的预测残差变换,即二维DCT-II。我们使用系数c上的损失函数l:
l ( c ) = ∣ c ∣ + σ g ( β ∣ c ∣ ? γ ) l(c)=|c|+\sigma g(\beta |c|-\gamma) l(c)=c+σg(βc?γ)
其中g为logistic函数:
g ( x ) = 1 / ( 1 + e ? x ) g(x)=1/(1+e^{-x}) g(x)=1/(1+e?x)
对于完整的块,则损失是所有DCT-II系数(ck)i损失的总和:
L b l o c k ( s , k ) = ∑ i l ( ( c k ) i ) L_{block}(s,k)=\sum_il((c_k)_i) Lblock?(s,k)=i?l((ck?)i?)
在下图中,我们可以看到,当系数很小时,函数 l l l迅速减小,当系数大时,斜率较小。
在这里插入图片描述
还有一个额外的好处系数设为零的好处,因为zero可以减少矩阵相乘次数,为后面的变换到频域提供了可能。
使用函数Lblock,我们构建了一个考虑到成本需要信号的模式 k k k,以及将块分割成各种各样的可能性形状,我们将损失函数定义为:
L t r e e ( s ) = m i n ( ? j { ∑ s i ? C j ( s ) L t r e e ( s i ) } ) ∪ L n o d e ( s ) } ) L_{tree}(s)=min(\bigcup_j \lbrace \sum_{s_i\epsilon C_j(s)}L_{tree}(s_i) \rbrace) \cup L_{node}(s) \rbrace) Ltree?(s)=min(j??{si??Cj?(s)?Ltree?(si?)})Lnode?(s)})
L n o d e ( s ) = L b l o c k ( s , k ˇ ) + b t r u e ( q ( r ) , k ˇ ) + H ( μ k ˇ , q ( r ) ) L_{node}(s)=L_{block}(s,\check{k})+b_{true}(q(r),\check{k})+H(\mu_{\check{k}},q(r)) Lnode?(s)=Lblock?(s,kˇ)+btrue?(q(r),kˇ)+H(μkˇ?,q(r))
k ˇ = a r g m i n k L b l o c k ( s , k ) \check{k}=argmin_k L_{block}(s,k) kˇ=argmink?Lblock?(s,k)
对于分区树中的每个节点,在上述公式中出现的损失项Lnode由的Lblock,它对上述量化系数编码的代价进行了建模,btrue,它为预测编码的速率开销,以及一个交叉熵项。
i.e H ( u k ˇ , q ( r ) ) = ? l o g 2 ( q ( r ) k ˇ ) H(u_{\check{k}},q(r))=-log_2(q(r)_{\check{k}}) H(ukˇ?,q(r))=?log2?(q(r)kˇ?)
通过梯度下降法来进行更新权重。

3.Predictor Simplification

当计算资源有限时,系统的全连接体系结构由于需要进行大量的乘法运算,对于大的block size将更为严重。然而,如果人们能够利用出现的权重结构,那将降低最终实现的复杂性。在这里,我们现在降低复杂性的两种可能性:第一个是基于统计特性将矩阵某些行设置为零,即剪枝在训练之后的一个步骤中从块预测器中获得权重。另一个是从实验观察,我们可以近似的块预测一个仿射线性函数。

3.1 Pruning

在解码器处,通过反变换得到重构信号量化剩余系数并加入预测器,即
r e c = T i n v c + p rec=T_{inv}c+p rec=Tinv?c+p
我们可以将式子重写为 r e c = T i n v ( c + T i n v ? 1 p ) rec=T_{inv}(c+T_{inv}^{-1}p) rec=Tinv?(c+Tinv?1?p)。但现在我们不计算预测在空间域,我们在编解码器使用的频域计算它。在这个领域工作使我们能够设置它的许多行到零,这样造成的损失很小。这样可以直接节省大量的计算时间,因为我们不需要计算相应的标量乘积输出层的矩阵行。
那么该如何选取矩阵那些参数为零呢,通过在大量的训练例子中积累这些差异,具体为:
假设 c = T s c=Ts c=Ts,c是样本block变换到频域的参数;我们可以比较预测器 p ^ \hat{p} p^?和零预测器的损失函数 l l l: l ^ i = l ( c i ? p ^ i ) ? l ( c i ? 0 ) \hat{l}_i=l(c_i-\hat{p}_i)-l(c_i-0) l^i?=l(ci??p^?i?)?l(ci??0)。我们通过在大量的样本上对应维度分别计算上述 l l l函数,通过 d w , h , k , i d_{w,h,k,i} dw,h,k,i?来表示累计和;最后我们将输出 d w , h , k , i / n w , h , k , i d_{w,h,k,i}/n_{w,h,k,i} dw,h,k,i?/nw,h,k,i?和阈值 τ \tau τ相比较,如果小于,则将对应矩阵的对应行参数设置为零,不用参与矩阵计算,节省计算开销。结果如下图,可见经过Pruning对于大block size带来较大提升。
在这里插入图片描述

3.2Affine Linear Predictors

当在大量的例子中评估块预测器时,该论文注意到小于?1的SReLU函数的参数非常少,即激活函数在大多数情况下被用作线性函数,所以通过删除SReLU,可以表示块预测器由单一的矩阵乘法和偏置加法,同时又不会带来较大的error。

Reference:Intra Picture Prediction for Video Coding with Neural
Networks

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-04 13:27:05  更:2021-12-04 13:27:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/19 16:45:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码