[INSTANT NOTE]视频流编码基础及后置隐写基础

视频编码基础

视频是一系列图像基于时间的集合.
相邻帧差异一般情况下较小.
为了最大限度压缩,一般采用偏差的编码思想.
P 1 P 2 = P 1 + o f f s e t 2 P 3 = P 1 + o f f s e t 3 P_1\\P_2=P_1+offset_2\\P_3=P_1+offset_3 P1P2=P1+offset2P3=P1+offset3
此处P1称作基准帧或参照帧.

帧间压缩

在这里插入图片描述
每一个帧组的帧具有较强的联系关系,
每个帧组的第一帧为整个帧组的基准帧.
一般两个帧组之间的差异较大.
基准帧称为I帧
P帧为仅仅参考I帧的帧.
B帧为参考前后两帧的帧.
解码顺序为I-P-B.

运动估计

一个块在两帧之间移动了一个相对量,记录这个相对量可以避免重新编码占用空间.
通过遍历查找相似块,可以得出这个偏移向量.
在这里插入图片描述
上图的 ( − 2 , 2 ) (-2,2) (2,2)就是要找的偏移向量.

帧内预测

帧内的内容也可能有强相关性,尤其是相邻的内容.帧内压缩目标是对单个帧(I)尽可能的压缩.
在这里插入图片描述
对于一个块.预测所需的信息是这些相邻块的字.

在这里插入图片描述
几种预测模式.根据预测模式的不同会对隐写的位置的选择产生影响.
在这里插入图片描述
16*16的预测模式.
一般来说,内容变化越不剧烈的地方使用的块越大.如下图,
在这里插入图片描述

HEVC/H.265标准提供了更多样的块尺寸选择.最多能到64*64.

基于帧内预测的隐写选择

误差矩阵

指套用在某一块上的隐写造成的隐写后视频和原视频块相比造成的误差.
Δ = [ 0 0 0 0 t 0 0 0 0 0 0 0 0 0 0 0 ] \Delta=\left[ \begin{matrix}0&0&0&0\\t&0&0&0\\0&0&0&0\\0&0&0&0\end{matrix} \right] Δ=0t00000000000000
在4*4块的某一处嵌入数值 t t t.误差矩阵如下.
在这里插入图片描述

帧内漂移

基于上面提到的帧内预测模式,某一块的内容改变会造成预测路径上一系列的块的内容改变,从而造成大规模的失真.隐写之前必须考虑这一点并尽可能消除影响.
解决问题的关键是阻断误差的传播路径,即关键像素.
对某一块数据,相邻块用到的数据称为关键像素.也就是右侧和下方.
在这里插入图片描述

误差补偿

(推导略)对于一个4*4像素矩阵,在某个地方嵌入误差 t t t,则在另一个恰当的地方嵌入 − k t -kt kt可以使得误差矩阵的边缘行或列为0,从而阻断误差的传播.这样的位置对 ( C 1 , k C 2 ) (C_1,kC_2) (C1,kC2)称为耦合数对.

数对设置规则
  1. 如果要让行为0,则 C 1 , C 2 C_1,C_2 C1,C2在同一行.列也是这样.
  2. 以使得行为0为例,如果 C 1 C_1 C1在第一列,则 C 2 C_2 C2在第三列,补偿系数 k = 1 k=1 k=1;
    如果 C 1 C_1 C1在第二列,则 C 2 C_2 C2在第四列,补偿系数 k = 2 k=2 k=2;
    Sample:
    Δ = [ 0 0 0 0 t 0 − t 0 0 0 0 0 0 0 0 0 ] (1) \Delta=\left[ \begin{matrix}0&0&0&0\\t&0&-t&0\\0&0&0&0\\0&0&0&0\end{matrix} \right]\tag{1} Δ=0t0000000t000000(1)
    E = [ 0 0 0 0 . . . . . . . . . . . . . . . . 0 0 0 0 ] (1’) E=\left[ \begin{matrix}0&0&0&0\\..&..&..&..\\..&..&..&..\\0&0&0&0\end{matrix} \right]\tag{1'} E=0....00....00....00....0(1)
    Δ = [ 0 0 0 0 0 t 0 − 2 t 0 0 0 0 0 0 0 0 ] (2) \Delta=\left[ \begin{matrix}0&0&0&0\\0&t&0&-2t\\0&0&0&0\\0&0&0&0\end{matrix} \right]\tag{2} Δ=00000t00000002t00(2)
    E = [ 0 0 0 0 . . . . . . . . . . . . . . . . 0 0 0 0 ] (2’) E=\left[ \begin{matrix}0&0&0&0\\..&..&..&..\\..&..&..&..\\0&0&0&0\end{matrix} \right]\tag{2'} E=0....00....00....00....0(2)

Sample:
在这里插入图片描述
此时误差矩阵的左右列为0.

传播途径的阻断

根据上面的理论,可以通过补偿消除行或列的影响.但是帧内预测有很多种模式,在使用行或列补偿是要考虑相关邻块的预测形式.
在这里插入图片描述
4*4,16*16的预测模式

类型一 右阻断

在这里插入图片描述
右邻块是0,3,7类型预测或者16*16的0类型预测时,该块的最后一列不会作为右边的参考像素,此时可以不用考虑一列的误差,而只考虑最后一行的误差.使用行补偿将最后一行置0.

条件二 列阻断

在这里插入图片描述
此时不会使用当前块的最后一行作为预测块,转而考虑消除最后一列的影响.思想同上,使用列补偿.

基于纹理特征的隐藏基本流程

熵解码-检索待提取块-Type1/Type2-嵌入-重编码
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值