精华内容
下载资源
问答
  • 求解答MPEG视频编码系统中,双向预测编码的实现过程,谢谢大家!
  • 讲述视频压缩和预测编码的基本原理及现有的视频压缩标准
  • 1、帧内预测与帧间预测编码的区别 帧内编码: 不依赖参考图像,可以独立解码,因而可以作为一个GOP的起点和随机接入点,即IDR帧 输出的码率相对较高,即压缩率较低 帧内编码为了确保可独立解码这一最关键的特性,...

    一、视频的时间冗余

    1、帧内预测与帧间预测编码的区别

    • 帧内编码:
      • 不依赖参考图像,可以独立解码,因而可以作为一个GOP的起点和随机接入点,即IDR帧
      • 输出的码率相对较高,即压缩率较低
      • 帧内编码为了确保可独立解码这一最关键的特性,只利用了图像的空间冗余进行压缩,无法充分利用视频信息前后帧之间的关联
    • 帧间编码:
      • 帧间编码所利用的是视频的时间冗余,主要编码运动(运动矢量)和纹理(预测残差)信息
      • 压缩率较高
      • 通常在视频信息中,每一帧所包含的物体对象与其前后帧之间存在运动关系,这种物体的运动关系即构成帧与帧之间的时间冗余。由于帧与帧之间物体的运动相关性大于一帧内部相邻像素之间的相关性,尤其对于时间相近的图像之间,时间冗余比空间冗余更加明显。
    • 图像之间物体的运动关系可由下图表示:
      在这里插入图片描述

    二、块结构的运动估计

    • H.264:块结构的混合编码
    • 帧间编码一一个宏块为最小执行单位
    • 可分为几个模块:
      • 预测编码(包括运动估计/运动补偿过程)
      • 变换/量化编码
      • 熵编码
      • 参考帧管理
    • 帧间编码中的变换、量化编码:类似帧内编码
    • 预测编码:
      • **基于块的运动估计(Motion Estimation, ME):**通过当前的像素块,然后在参考帧中查找与当前要编码像素块最匹配的参考块;
      • **运动补偿(Motion Compensation, MC):**同运动估计是对应的,主要存在于解码的环路中,根绝解码得到的残差然后通过运动矢量查找到相应的参考块,然后参考块和残差还原出解码后的重建像素块
        在这里插入图片描述为了给后续的帧内预测提供参考帧,还需要内部解码的环路过程,使用运动补偿还原出重建的像素块

    三、运动矢量

    运动估计,有时也称作运动搜索,即在相应参考帧中搜索当前像素块的对应参考像素块,使最终的编码代价最小。为了实现这个目标,相比帧内编码所定义的16×16和8×8两种宏块划分方式,帧间编码定义了更多、更复杂的方法。

    1、运动估计宏块划分

    • 一个宏块将按帧间编码进行编码时,按照预定义的方法进行分割
    • 针对帧间预测,H.264定义了4种宏块分割和4种子宏块分割方式:
      • 宏块分割:16 * 16、16 * 8、8 * 16、8 *8
      • 子宏块分割:8 * 8、8 * 4、4 * 8、4 * 4
    • 当某个宏块配置为8 * 8形式时,每个8 * 8宏块将按照子宏块的分割方法来进一步分割;当某个宏块配置为16 * 16、16 * 8、8 * 16就不再按照子宏块分割了
    • 帧间预测的宏块分割如下图所示:
      在这里插入图片描述

    2、运动矢量

    • 在一个帧间编码宏块中,每一个分割后的子块都会进行相应的运动搜索,在参考帧中查找对应的相同尺寸的像素块作为参考
    • 运动矢量(Motion Vector, MV): 当前像素块在当前帧中的位置同参考块在参考帧总的位置之间的相对位置代表了像素块中的物体在两帧之间的运动轨迹。这个相对位置以两个坐标值组成的矢量(MV_x, MV_y)表示
    • 一个宏块最多可能包含16个MV(因为最多可能为16个4 * 4的像素块)
      在这里插入图片描述
      在上图中某个像素块在参考帧和当前帧中不存在运动关系,因此运动矢量为(0,0)。
      在这里插入图片描述
      参考帧相对于当前帧向下偏移了20,向右偏移了5,因此运动矢量为(20,5)。

    四、运动矢量预测

    • 一个帧内宏块最多可分割为16个子块
    • 每个子块都按照完整的运动信息编码效率较低
    • 运动矢量预测:提升运动信息的编码效率
    • 计算运动矢量的方法:
      • 运动矢量预测:MVP,由相邻像素块信息计算得到
      • 运动矢量残差:MVD,由码流中的语法匀速解析得到

    1、运动矢量预测的计算方法

    当前块同相邻块之间的相互关系可由下图表示:
    在这里插入图片描述
    其中,当前块的MVP由A、B和C块的MV取中间值计算得到。如果像素块C不存在,那么以像素块D取而代之。如果当前宏块采用了SKIP模式编码(即码流中不传递相应的数据),则按照16×16模式宏块的方法计算MVP。(见标准文档8.4.1.3节)‘

    2、亚像素插值

    • 亚像素插值的目的:提升运动搜索的匹配精度
    • H.264相对于前期标准进一步提升了ME(运动估计)精度
    • 在H.264中,亮度分量的MV最高可达1/4像素精度,色度分量的MV最高可达1/8像素精度。无论1/2、1/4或1/8像素位置上的像素值在图像中都是不存在的,只是作为在运动估计过程中的一个临时值存在。
    • 非整数像素:根据相邻像素值计算得到的,理论上存在于实际像素之间的一个中间值
    • 计算方法:当前相邻的几个像素计算加权均值

    2.1亚像素

    大小字母表述的就是图像中实际存在的整数像素,其余的表示通过计算得到的亚像素点,至于这些亚像素点是怎么计算的呢,根据不同的情况进行不同的分析

    • 1/2像素精度的亚像素可由下图表示:
      在这里插入图片描述
      1/4像素精度的亚像素可由下图表示:
      在这里插入图片描述
      1/8像素精度的亚像素可由下图表示:
      在这里插入图片描述

    2.2亚像素的计算方法

    由上图可知,亚像素精度就是根据相邻像素值计算得到的,理论上存在于实际像素之间的一个中间值。其计算方法是由当前相邻的几个像素计算加权均值的方式得到,具体的计算方法定义在标准文档的8.4.2.2.1节中。亮度信息的插值如下图:
    在这里插入图片描述
    对于水平和垂直方向的半像素点b和h:

    b = (( E − 5*F + 20*G + 20*H − 5*I + J) + 16) >> 5; 四舍五入
    h = (( A − 5*C + 20*G + 20*M − 5*R + T) + 16) >> 5;
    

    对于四个像素的中间点j,其计算方法与b和h类似,只是用于计算加权均值的像素变为了同方向上的6个半像素点:

    j = (( cc − 5*dd + 20*h1 + 20*m1 − 5*ee + ff) + 512) >> 10;或
    j = (( aa − 5*bb + 20*b1 + 20*s1 − 5*gg + hh) + 512) >> 10;
    

    对于1/4像素位置的值,其计算方法更为简单,即取其相邻的整像素或半像素的值取平均即可:

    n=(h+M+1)>>2
    

    五、运动搜索快速算法

    完全的运动搜索过程是一种极为耗时的操作,其主要原因有:

    1. 运动搜索过程需要覆盖搜索区中的每个像素和亚像素;
    2. 运动搜索需要在多个参考帧中进行;

    为了解决这个问题,研究人员提出了多种运动搜索的优化算法,旨在降低运动搜索的总运算量。其中比较常见的有:

    1. 三步搜索法;
    2. 菱形搜索法;
    3. 六边形搜索法;

    5.1三步搜索法

    三步搜索法对比全搜索只有约1/10的计算量,而算法性能基本一致。三步搜索法如图所示:
    在这里插入图片描述
    三步搜索法运行过程:
    4. 从搜索窗口中心开始,以4为步长搜索8个点+中心点共9个点,以SAD最小的原则选择一个最佳匹配点;
    5. 以步骤1得到的最佳匹配点为中心点,以2为步长继续搜索相似的9个点,得到第二个最佳匹配点;
    6. 从第二个最佳匹配点开始,以1为步长重复上述步骤,得到最终的运动搜索匹配点;

    5.2菱形搜索法

    菱形搜索法使用大菱形和小菱形两种模板,大菱形包含9个点,小菱形包含5个点,如下图所示:
    在这里插入图片描述
    菱形搜索法执行步骤:
    7. 从搜索窗口中心开始,按照大菱形模板搜索9个点,检查菱形中心点是否是大菱形中的最佳匹配点;
    8. 如果最佳匹配点是菱形的中心点,则进一步按照小菱形模板进行搜索;
    9. 如果最佳匹配点不是菱形中心点,则按照实际的最佳匹配点继续按大菱形模板搜索,直到找到某个最佳匹配点在大菱形模板的中心点,然后按小菱形模板搜索;

    5.3六边形搜索法

    六边形搜索的原理同菱形搜索法类似,区别在于其大模板采用的模板为7个点的六边形形状,而小六边形模板的形状同菱形模板相同,如下图所示:
    在这里插入图片描述
    六边形搜索执行步骤:

    1. 从搜索窗口中心开始,按照大六边形模板搜索9个点,检查菱形中心点是否是大六边形中的最佳匹配点;
    2. 如果最佳匹配点是六边形的中心点,则进一步按照小六边形模板搜索;
    3. 如果最佳匹配点不是六边形中心点,则按照实际的最佳匹配点继续按大六边形模板搜索,直到找到某个最佳匹配点在大六边形模板的中心点,然后按小六边形模板搜索;
    展开全文
  • “纸上得来终觉浅,绝知此事要躬行”,只有自己按照标准文档以代码的形式操作一遍,才能对视频压缩编码标准的思想和方法有足够深刻的理解和体会!链接地址:H.264/AVC视频编解码技术详解GitHub代码地址:点击这里

    《H.264/AVC视频编解码技术详解》视频教程已经在“CSDN学院”上线,视频中详述了H.264的背景、标准协议和实现,并通过一个实战工程的形式对H.264的标准进行解析和实现,欢迎观看!

    “纸上得来终觉浅,绝知此事要躬行”,只有自己按照标准文档以代码的形式操作一遍,才能对视频压缩编码标准的思想和方法有足够深刻的理解和体会!

    链接地址:H.264/AVC视频编解码技术详解

    GitHub代码地址:点击这里


    在前面的博文中所述,视频信息中通常包含的冗余有三种:空间冗余时间冗余统计冗余。处理这三种冗余信息通常采用不同的方式:

    • 空间冗余采用帧内预测编码压缩;
    • 时间冗余采用运动搜索和运动补偿压缩;
    • 统计冗余采用熵编码压缩。

    在上述的各种编码技术中,帧内预测是非常重要的一种。因为在各种视频帧类型中,I帧(包括IDR帧等)全部采用帧内预测,I帧的压缩比率通常比P和B帧更低,因此帧内预测编码的效率对视频整体平均码率具有较大影响。另一方面,I帧通常都会作为P/B帧解码过程中的参考帧,如果I帧的编码出现了错误,那么不仅仅是该I帧出现错误,参考该I帧的P/B帧也同样不能正确解码。

    1. MPEG-1/MPEG-2帧内编码

    在早期的视频编码标准中就已经存在了帧内编码的方法。如MPEG-1/MPEG-2等早期的标准中,帧的类型已经定义了I/P/B三种类型,分别表示帧内编码帧、预测编码帧和双向预测编码帧。然而在H.264/AVC之前的标准中,编码I帧时并未采用预测编码,只有编码P/B帧时采用了帧间预测编码。在MPEG-1/MPEG-2等编码标准中,I帧的编码采用的是DCT-RLC的方法进行编码。I帧编码的主要流程如下图:
    在这里插入图片描述

    由于未采用预测算法,这种帧内编码的压缩效率相对较低,后期已经不能适应整体提升压缩比率的要求。

    2. 预测编码的基本原理

    对于存在前后相关性的信息,预测编码是一种非常简便且有效的方法。此时预测编码输出的不再是原始的信号值,而是信号的预测值与实际值的差。预测编码如此设计的出发点在于,由于前后存在相关性,相邻信号存在大量相同或相近的现象,通过计算其差值,可以减少大量保存与传输原始信息的数据体积。

    我们用几个简单的例子来说明这个问题。假设有下面的一串数字:

    1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 3
    

    我们可以用如下的信息来表示这串数字信息:

    Pred = 1;
    Residual = { (1, 5), (2, 11) };
    

    这些信息表示,目标信号的预测值为1,在第5和12个元素的位置存在残差,分别为1和2。

    我们举另外一个例子,假设有下面一串数字:

    0, 1, 2, 3, 5, 5, 6, 7, 8, 9, 10, 9, 12
    

    对于这部分信号,可以如下表示:

    Pred = n;
    Residual = {(4, 1), (-2, 11)};
    

    其表示的含义类似于前例。

    从另一方面考虑,视频信息在输出码流之前需要经过量化操作。量化完成后的信息用数字化表示,其所需要的位数与表示信息的范围与方差有关。对于取值范围小、方差较小的信息,量化器所需要的比特范围就更小,每个像素数的比特位数便更小。统计表明,相比于原始的图像像素,预测残差的方差与动态范围远小于原始图像像素。通过预测编码,不仅降低了表示像素信息所需要的比特数,还可以保留视频图像的画面质量不至于降低。

    3. H.264的帧内编码

    在H.264/AVC中,帧内编码采用了全新的、更复杂的算法,相比早期标准的压缩比率大大提高。在H.264中采用的算法主要可分为预测编码模式和PCM编码模式。

    2.1 H.264帧内预测编码

    预测编码并非H.264最先采用的技术。在早期的压缩编码技术中便采用了预测数据+残差的方法来表示待编码的像素。然而在这些标准中预测编码仅仅用于帧间预测来去除空间冗余,对于帧内编码仍然采用直接DCT+熵编码的方法,压缩效率难以满足多媒体领域的新需求。H.264标准深入分析了I帧中空间域的信息相关性,采用了多种预测编码模式,进一步压缩了I帧中的空间冗余信息,极大提升了I帧的编码效率,为H.264的压缩比取得突破奠定了基础。

    H.264的帧内预测算法通常可以分为三种情况讨论:4×4的亮度分量预测、16×16的亮度分量预测、色度分量预测。我们分别讨论这三种情况的算法原理。

    2.1.1 4×4亮度分量预测

    对于每一个帧内预测宏块,其编码模式可以分为I_4x4和I_16x16两种。对于I_4x4模式,该宏块的亮度分量被分为16个4×4大小的子块,每一个4×4大小的子块作为一个帧内预测的基本单元,针对每一个4×4像素块进行过预测与编码。

    帧内预测会参考每一个像素块的相邻像素来构建预测数据。对于某一个4×4的子块而言,该子块上方4个、右上方4个、左侧4个以及左上方顶点的1个像素,共13个像素会作为参考数据构建预测块。预测块同参考像素的位置关系如下图所示:
    在这里插入图片描述

    在上图中,a~p表示预测块中的像素,A/B/C/D表示上方参考像素,E/F/G/H表示右上方的参考像素,I/J/K/L表示左方参考像素,Q表示左上方的参考像素。对于4×4亮度分量的帧内预测,共定义了9种不同预测模式。

    模式0:垂直模式

    在这里插入图片描述
    在该模式下,每一个预测块的预测值由上方相邻的4个像素预测得到;

    模式1:水平模式

    在该模式下,每一个预测块的预测值由左方相邻的4个像素预测得到;

    模式2:DC模式

    在这里插入图片描述

    该模式下,用上方和左方相邻像素的均值表示整个预测块;

    模式3:左下模式

    在这里插入图片描述

    模式4:右下模式

    在这里插入图片描述

    模式5::右垂直模式

    在这里插入图片描述

    模式6:下水平模式

    在这里插入图片描述

    模式7:左垂直模式

    在这里插入图片描述

    模式8:上水平模式

    在这里插入图片描述

    2.1.2 色度分量与16×16亮度分量

    模式0:垂直模式

    在这里插入图片描述

    模式1:水平模式

    在这里插入图片描述

    模式2:均值模式

    在这里插入图片描述

    模式3:平面模式

    在这里插入图片描述

    2.2 H.264的I_PCM编码模式

    除了帧内预测编码之外,H.264还定义了一种特殊的编码模式,即为I_PCM模式。I_PCM模式不对像素块进行预测-变换-量化操作,而是直接传输图像的像素值。在有些时候(如传输图像的不规则纹理信息,或低量化参数条件下),该模式比预测编码模式效率更高

    展开全文
  • 预测编码

    万次阅读 多人点赞 2017-07-27 20:36:09
    预测编码是数据压缩理论的一个重要分支。根据离散信号之间存在一定相关性特点,利用前面的一个或多个信号对下一个信号进行预测,然后对实际值和预值的差(预测误差)进行编码。如果预测比较准确,那么误差信号就会很...

    转自http://www.cnblogs.com/irish/archive/2013/06/21/3148768.html

    1.1 定义

    预测编码是数据压缩理论的一个重要分支。根据离散信号之间存在一定相关性特点,利用前面的一个或多个信号对下一个信号进行预测,然后对实际值和预值的差(预测误差)进行编码。如果预测比较准确,那么误差信号就会很小,就可以用较少的码位进行编码,以达到数据压缩的目的。

    第n个符号Xn的熵满足:

     

    n越大考虑更多元素之间的依赖关系时,熵值进一步降低,得到的熵越接近于实

    际信源所含的实际熵(极限熵)。

     

    所以参与预测的符号越多,预测就越准确,该信源的不确定性就越小,数码率就可以降低。

     

    1.2 原理

    利用以往的样本值对新样本值进行预测,将新样本值的实际值与其预测值相减,得到误差值,对该误差值进行编码,传送此编码即可。

    理论上数据源可以准确地用一个数学模型表示,使其输出数据总是与模型的输出一致,因此可以准确地预测数据,但是实际上预测器不可能找到如此完美的数学模型;

    预测本身不会造成失真。误差值的編码可以采用无失真压縮法或失真压縮法。

     

    2 分类

    无损预测编码;

    有损预测编码:

    DPCM:差分脉冲调制预测,Differential Pulse Code Modulation:差值脉冲编码调制是利用信号的相关性找出可以反映信号变化特征的一个差值量进行编码。 

    ADPCM:自适应差分脉冲调制预测,Adaptive Differential Pulse Code Modulation

    当输入信号序列X(k12、…)逐个进入编码器时,预测器根据若干个过去的输入产生当前

    输入的预测(估计)值。将预测器的输出舍入成最接近的整数,并用来计算预测误差ek

                      

    这个误差可用符号编码器借助变长码进行编码以产生压缩信号数据流的下—个元素。

    在解码器方根据接收到的变长码字重建预测误差,并执行以下操作以得到解码信号

                     

    借助预测器将原来对原始信号的编码转换成对预测误差的编码。在预测比较准确时,预测误差的动态范围会远小于原始信号序列的动态范围,所以对顶测误差的编码所需的比持数会大大减少,这是预测编码获得数据压缩结果的原因。

    在多数情况下,可通过将M个先前的值进行线性组合以得到预测值。

     

    预测方程式:

     

     

     

    K>N表示x1, x2,, xN 的时序在xk 之前。

     

     

     

    线性预测是指预测方程式的右方是各个xi的线性函数:

     

     

     

    如果a(k)是常数,则为时不变线性预测。

     

    最简单的预测方程:

     

     

     

    最佳线性预测

     

    使误差函数:

     

     

     

    达到最小值的预测方程式叫做最佳线性预测。

     

    求最佳线性预测的各个参数ai,列方程组:

     

     

     

    代入

     

     

     

    得到联立方程组,解方程定出ai

     

    2.2 有损预测编码原理(DPCM

     

    在无损预测编码系统的基础上加一个量化器构成。

    压缩过程:

    1发送端预测器带有存储器,把tn时刻以前的采样值x1, x2, x3,, xk-1存储起来并据此对xk进行预测,得到预测值

    2ekxn的差值, ek’为ek经量化器量化的值

    3xk’是接收端的输出信号

    4误差

     

    实际上就是发送端的量化器量化的误差。对 ek的量化越粗糙,压缩比越高,失真越大.

     

    2.2.1 示例一:德尔塔调制(DM或ΔM) 

     

    最简单的有损预测编码方法是德尔塔(或称增量)调制(DM或ΔM) 方法,早期在数字电话中采用,是一种最简单的差值脉冲编码 。

     

    其预测器和量化器分别定义为:

    其中a是预测系数(一般小于等于1)c1个正的常数。因为量化器的输出可用单个位符表示(输出只有2个值),所以编码器中的符号编码器可以只用长度固定为1比特的码。由DM方法得到的码率是1比特/像素。

     

    示例:

         取a1c5。设输入序列为1216121420324652505150。编码开始时先将第1个输入像素直接传给编码器。

     

    上例的输入和输出中显示出2种有损预测编码典型的失真现象。

    其一,当c远大于输入中的最小变化时,如在n0n3的相对平滑区间,DM编码会产生颗粒噪声,即误差正负波动。

    其二,当c远小于输入中的最大变化时,如在n=5n=9的相对陡峭区间,DM编码会产生斜率过载,有较大的误差。

    对大多数图像来说, 上述2种情况分别会导致图像中目标边缘发生模糊和整个图像产生纹状表面。

     

    2.2.2 自适应差分脉冲调制(ADPCM)预测

    输入数据不是平稳的随机过程

    自适应差分脉冲调制(ADPCM)预测

    定期重新调整预测器的预测参数,使预测器随输入数据的变化而变化

    适应改变量化器的量化阶数,用小量化阶量化小差值,大量化阶量化大差值

    分为线性自适应预测与非线性自适应预测两种

    自适应量化 

    在一定量化级数下减少量化误差或在同样的误差条件下压缩数据,根据信号分布不均匀的特点,希望系统具有随输入信号的变化区间足以保持输入量化器的信号基本均匀的能力,这种能力叫自适应量化。 

    示例二:

        ADPCM采用与DPCM相同的预测器,但对误差量化时采用自适应改变量化器的量化阶数的压缩结果

     

    自适应预测 

    1. 预测参数的最佳化依赖信源的特征,要得到最佳预测参数显然是一件繁琐的工作。而采用固定的预测参数往往又得不到较好的性能。为了能使性能较佳,又不致于有太大的工作量,可以采用自适应预测。 

    2. 为了减少计算工作量,预测参数仍采用固定的,但此时有多组预测参数可供选择,这些预测参数根据常见的信源特征求得。编码时具体采用哪组预测参数需根据特征来自适应地确定。

    3. 为了自适应地选择最佳参数,通常将信源数据分区间编码,编码时自动地选择一组预测参数,使该实际值与预测值的均方误差最小。随着编码区间的不同,预测参数自适应地变化,以达到准最佳预测。 

    示例三:

    4个不同的预测器如下所示

     

    其中第4个预测器是自适应预测器,它通过计算图像的局部方向性来选择合适的预测值以达到保持图像边缘的目的。

     

    3.1 图像信号的预测编码

    一幅数字图像可以看成一个空间点阵,图像信号不仅在水平方向是相关的,在垂直方向也是相关的。根据已知样值与待预测样值间的位置关系,可以分为:

      (1)一维预测(行内预测):利用同一行上相邻的样值进行预测。

      (2)二维预测(帧内预测):利用同一行和前面几行的数据进行预测。

     

    这种压缩算法被应用到JPEG标准的无损压缩模式之中,中等复杂程度的图像压缩比可达到2:1

    Lossless JPEG

    DPCM/Huffman Codign

    DPCM/Arithmetic Coding

    DPCM at 1.0 bpp

    DPCM at 2.0 bpp

    DPCM at 3.0 bpp

    3.2 活动图像的帧间预测编码

    视频信号的冗余度主要体现在空间相关性(帧内)、时间相关性(帧间)和色度空间表示上的相关性。

    对于每秒25帧(30)的电视信号,其相继帧之间存在极强的相关性。所以在活动图像序列中可以利用前面的帧来预测后面的帧,以实现数据压缩。

    帧间预测编码技术被广泛应用到H.261H.263H.264MPEG-1MPEG-2等视频压缩标准之中。

    采用预测编码的方法消除序列图像在时间上的相关性,即不直接传送当前帧的像素值,而是传送x和其前一帧或后一帧的对应像素x,之间的差值,这称为帧间预测。

    当图像中存在着运动物体时,简单的预测不能收到好的效果,

    例如当前帧与前一帧的背景完全一样,只是小球平移了一个位置,如果简单地以第k-1帧像素值作为k帧的预测值,则在实线和虚线所示的圆内的预测误差都不为零。如果已经知道了小球运动的方向和速度,可以从小球在k-1帧的位置推算出它在k帧中的位置来,而背景图像(不考虑被遮挡的部分)仍以前一帧的背景代替,将这种考虑了小球位移的k-1帧图像作为k帧的预测值,就比简单的预测准确得多,从而可以达到更高的数据压缩比。这种预测方法称为具有运动补偿的帧间预测。 

     

    3.3 具有运动补偿的帧间预测

    活动图像序列中的一个画面可以大致划分为3个区域:

    背景区:相邻两个画面的背景区基本相同。

    运动物体区:可以视为由前一个画面的某一区域的像素平移而成。(位移矢量)

    暴露区:指物体运动后而显露出来的曾被遮盖的背景区域。

    运动补偿预测就是将前一个画面的背景区+平移后的运动物体区作为后一个画面的预测值。

     

    运动补偿帧间预测从原理上包括如下几个基本步骤:

    1图像分割:把图像划分为静止的背景和若干运动的物体,各个物体可能有不同的位移,但构成同一物体的所有像素的位移相同。

    2运动矢量估值:考察前后两个画面,利用运动估值算法得到每个物体的位移矢量。

    3运动补偿:用运动矢量补偿物体的运动效果再进行预测。

    4编码:除了对实测值与预测值之间的差值进行编码传送外,还要传送位移矢量以及区域分割信息

     


    展开全文
  • MPEG2视频编码简介

    千次阅读 2019-04-20 17:42:17
    MPEG-2视频编码简介 MPEG-2是一组用于视音频压缩编码及其数据流封装的国际标准。它定义了编解码技术及数据流的传输协议;制定了MPEG-2解码器之间的共同标准。编码是MPEG-2标准的核心内容之一,其涉及到MPEG-2视频流...

    MPEG-2视频编码简介

    MPEG-2是一组用于视音频压缩编码及其数据流封装的国际标准。它定义了编解码技术及数据流的传输协议;制定了MPEG-2解码器之间的共同标准。编码是MPEG-2标准的核心内容之一,其涉及到MPEG-2视频流层结构、MPEG-2帧间编码结构、MPEG-2的类与级、MPEG-2运动估值等技术。

    1. 编码复用系统

    MPEG-2 码流分为三层,即基本流(ES,elementary bit stream)、包基本码流(PES,packetelementary stream)和复用后的传送码流(TS,transport stream)、节目码流(PS,programstream)。其编码复用系统结构如图1所示。

                                                                  图1 MPEG-2 编码复用系统

    ES:由视频压缩编码后的视频基本码流(Video ES)和音频压缩编码后的音频基本码流(Audio ES)组成。

    PES:把视音频ES分别打包,长度可变,最长为65536字节。

    TS、PS:若干个节目的PES复用后输出为传输流TS或节目流PS,分别用于传输和存储。

    2. 档次和级别

    MPEG-2按不同的压缩比分成五个档次,按视频清晰度分为四个级别,如表1所示。共有20种组合,最常用的为其中的11种组合,分别用于标准数字电视、高清晰度电视,码率从4Mbps到100Mbps。

                                                          表1 MPEG-2 Profile, level

    3. MPEG-2 视频编码器

    3.1 框图

    MPEG-2 编解码器结构与H.261 区别不大,如图2 和图3 所示。

                                                                 图2 MPEG-2 编码器

                                                             图3 MPEG-2 解码器

    3.2 ES码流结构

    ES码流采用图像序列(PS)、图像组(GOP)、图像(P)、片(slice)、宏块(MB)、块(B)六层结构,具体结构见图 4。

    (1)图像序列层,图像序列包括若干GOP,序列头包含起始码和序列参数,如档次、级别、彩色图像格式、帧场选择等等;

    (2)图像组层,图像组包含若干幅图像,组头包含起始码、GOP标志等,如视频磁带记录器时间、控制码、B帧处理码等;

    (3)图像层,一幅图像包含若干片,头信息中有起始码、P标志,如时间、参考帧号、图像类型、MV、分级等;

    (4)片层,片是最小的同步单位,包含若干宏块,片头中有起始码、片地址、量化步长等;

    (5)宏块层,宏块由4个8×8 亮度块和2个色度块组成,宏块头包括宏块地址、宏块类型、运动矢量等。

                                                               图4 ES码流结构

    3.3  MPEG-2帧间编码结构

    为了在高效压缩编码的条件下、获得可随机存取的高压缩比、高质量图像,MPEG定义了I、P、B三种图像格式,分别简称为帧内图(Intra Picture)、预测图(Predicted Picture)及双向图(Bidirec tional Picture),即I帧、P帧及B帧,用于表示帧序列画面。因为要满足随机存取的要求,仅利用I图本身信息进行帧内编码就可以了;要满足高压缩比和高质量图像的要求,单靠I图帧内编码还不行,还要加上由P图和B图参与的帧间编码,以及块匹配运动补偿预测,即用前一帧图像预测当前图像的因果预测和用后一帧图像预测当前图像的内插预测。这就要求帧内编码与帧间编码平衡,因果预测与内插预测间的平衡。平衡的结果是随机存取的高压缩比、高质量图像的统一。图5是MPEG-2帧间编码结构图,其中:

                                                       图5 MPEG-2帧间编码结构图

    1) 帧内编码图像(ICP)

    I帧为不要基准图像编码作为基准所产生的图像,称为帧内编码图像(ICP-Intra Coded Pictures)。特点是:数据量最大;帧内中等程度压缩;无运动预测,可采用自相关性,即帧内相邻像素、相邻行的亮度、色度信号都具有渐变的空间相关性,可作静止图像处理,无条件传送;图像可随机进入压缩图像数据序列,进行编码。

    2) 预测编码图像(PCP)

    P帧是以最近的上一个I帧或P帧为基准进行运动补偿预测所产生的图像,称为预测编码图像(PCP-Predictive Coded Pictures)。P帧的特点是:本身是前I帧或P帧的前向预测(FP-Forward Prediction)结果,也是产生下一个P帧的基准图像;高编码效率,与I帧相较,可提供更大的压缩比;前一个P帧是下一个P帧补偿预测的基准,如果前者存在误码,则后者会将编码误差积累起来、传播下去。

    3) 双向预测编码帧(BPCP)   

    B帧是同时以前面的I帧或P帧和后面的P帧或I帧为基准进行运动补偿预测所产生的图像,称为双向预测编码图像(BPCP-Bidirectional Predictive Coded Picture)。前面的I帧或P帧代表"过去信息",后面的P帧或I帧代表"未来信息",由于同时使用了"过去"和"未来"两种信息,所以称为双向预测。

    由图5可见,一个GOP由I帧为起始的一串IBP帧组成,GOP的长度是前一个I帧到下一个I帧之前的B帧之间的间隔,如I1B2B3P4B5B6P7B8B9I10中从I1到B9就是GOP的长度。GOP越长,MPEG-2编码越有效,而数据流的编辑及组接越困难。基准帧重复频率的不同,可提供不同的输出码率。GOP的结构随码率变化而不同,码率大时可以采用较短的GOP,具有高效率的优点;码率低时需要采用较长的GOP,有延迟,影响存取速度。

    4 基于帧或场的DCT编码

    MPEG-2 可用于逐行扫描图像也可用于隔行扫描图像。对逐行扫描图像,可按行分割成块,基于块进行DCT 变换。对逐行扫描图像,一帧由两场组成,于是就有基于帧的分割和基于场的分割两种宏块结构,如图5所示。

                                            图5 按帧分割进行DCT 变换的亮度宏块结构

    同一帧内的各邻近行之间空间相关性比同一场内各邻近行之间的相关性要强。因此基于帧的DCT 编码适用于相对静止或慢运动的景物。

    同一场内各邻近行之间时间相关性比同一帧内各邻近行之间的时间相关性要强(因为同一帧内当前行的下一行要等到一场扫描完后才出现在当前行之下,时间相关性弱),基于场的DCT 编码适用于运动大的景物。

    根据帧的行间相关系数和场的行间相关系数可判定采用帧分割还是场分割进行编码。

    5. 分级服务

    为了适应信道的变化和扩大应用范围,MPEG-2 采用三种分级编码:空间域分级、时间域分级和信噪比分级。

    以空间域分级为例,用户接收HDTV 信号时,丢弃一部分解码其中的SDTV 信号,也可再丢弃一部分解出CIF 甚至QCIF信号。这种分级可为不同用户提供不同质量的服务。

     

    展开全文
  • 视频压缩原理之 预测编码

    千次阅读 2015-12-25 09:59:32
    预测法是最简单和实用的视频压缩方法,压缩编码后传输的并不是像素本身的取样幅 值,而是该取样的预测值和实际值之差(就是传输差分值)。   预测法的流程图如下: (在量化过程中,会产生量化误差)   ...
  • 视频预测编码

    千次阅读 2019-04-28 10:58:02
    一、概述 \quad对于视频信号,一副图像内邻近的像素点之间有着较强的空间相关性,相邻图像之间有着很强的时间相关性。...\quad针对空间冗余有帧内预测编码,对于时间冗余有基于运动估计和运动补偿技术...
  • 针对分层次B帧的特点,提出一种新的B帧双向预测直接模式。通过挖掘相邻帧间的时域相关性,利用B帧作为参考帧时的前后向运动矢量进行时域缩放,精细当前块在直接模式下的运动矢量精度。仿真实验证明,该方法相对于...
  • MPEG-1中I、B、P帧的基本编码原理

    千次阅读 2019-08-20 11:45:12
    但是我们并没有更深入的去了解,编码这三种类型的图像数据时所采用的不同方式,只知道它们都是把图像分为以16x16像素的宏块、8x8像素的图块为基本单元进行处理的。而实际上,编码I、P、B三种类型的图像数据的方式并...
  • LPC--线性预测编码

    千次阅读 2019-12-11 12:32:07
    线性预测编码(英语:LPC, Linear predictive coding)是主要用于音频信号处理与语音处理中根据线性预测模型的信息用压缩形式表示数字语音信号谱包络(spectral envelope)的工具。它是最有效的语音分析技术之一,也...
  • MPEG-2视频编码系统原理及关键技术

    千次阅读 2014-09-12 20:05:26
    概括地说,MPEG-2图像压缩的原理是利用了图像中的两...B帧图像采用双向时间预测,可以大大提高压缩倍数。值得注意的是,由于B帧图像采 用了未来帧作为参考,因此MPEG-2编码码流中图像帧的传输顺序和显示顺序是不同的。
  • 将DAEDN模型中的LSTM网络结构设计为双向LSTM(Bi-LSTM),以解决单向LSTM预测结果中的滞后问题,从而进一步提高预测模型的预测精度。 利用空气污染物时间序列数据,使用北京在过去5年中收集的每小时PM2.5浓度数据对...
  • MPEG图像编码包含3个成分:I帧,P帧和B帧。MPEG编码过程中,一些图像压缩成I帧,一些压缩成P帧,另一些压缩成B帧。I帧压缩可以得到6:1的压缩比而不产生任何可觉察的模糊现象。I帧压缩的同时使用P帧压缩,可以达到更...
  • 视频压缩原理之-预测编码

    千次阅读 2018-05-17 14:54:55
    预测法是最简单和实用的视频压缩方法,压缩编码后传输的并不是像素本身的取样幅值,而是该取样的预测值和实际值之差(就是传输差分值)。预测法的流程图如下:(在量化过程中,会产生量化误差) 预测法大致可分为帧...
  • CU级双向预测(BCW)
  • 帧间预测是指利用视频时间域的相关性,使用邻近已编码图像像素预测当前图像的像素,以达到去除视频时域冗余信息的目的。由于视频序列通常包括较强的时域相关性,因此预测残差通常是“平坦的”,即很多残差值接近于...
  • 一维预测编码器:只在X或者Y上面 二维预测编码器:在一个块上面预测,上下左右。 帧间编码: 单项预测:计算当前帧F与前帧或后帧的运动矢量MV,由运动矢量预测当前帧的预测值F1,计算F与F1的残差,编码。编码需要...
  • 1、预测编码   压缩算法的本质就是去除信号间的冗余,什么是信号的冗余呢?信号之间的相关性就是冗余,人类听觉或视觉系统感觉不到的或者掩蔽的也可以当做冗余成分。今天谈谈预测编码的概念,这是一种非常直观和...
  • “纸上得来终觉浅,绝知此事要躬行”,只有自己按照标准文档以代码的形式操作一遍,才能对视频压缩编码标准的思想和方法有足够深刻的理解和体会! 链接地址:H.264/AVC视频编解码技术详解 GitHub代码地址:...
  • H.264预测编码之帧间预测

    千次阅读 2016-04-08 17:53:00
    预测编码是视频压缩中最基本的编码工具,常见的预测编码为帧间预测和帧内预测。 视频编码中,主要的冗余信息是时间冗余,其次是空间冗余,视频编码通过帧间预测消除时间冗余,通过帧内预测消除空间冗余。接下来...
  • H.266帧间预测双向光流BIO

    千次阅读 2018-01-09 16:55:59
    双向光流(BIO)是采样点级别的运动优化,基于双向预测的块运动补偿,不需要传输多余信号。令I(k)I^{(k)}为参考点k(k=0,1)运动补偿之后的亮度值,∂I(k)/∂x,∂I(k)/∂y∂I^{(k)}/∂x,∂I^{(k)}/∂y为I(k)I^{(k)...
  • LPI-IBNRA:基于改进的双向网络推荐算法的长非编码RNA-蛋白质相互作用预测”的论文。 它是用Matlab编写的。 LPI-IBNRA_code 档案: 1.数据 Lnc_exp.mat存储lncRNA表达谱信息; PLI .mat存储已知的蛋白质-lncRNA相互...
  • 利用双向LSTM进行数据的预测

    千次阅读 2018-11-30 12:10:34
    双向LSTM 我们为什么要用双向LSTM? 双向卷积神经网络的隐藏层要保存两个值, A 参与正向计算...现在们利用tensorflow提供双向LSTM函数来进行手写识别的分类案例,时间序列数据数据的预测也可以通过修改数据集来实现...
  • 【技术领域】本发明涉及一种基于深度双向长短期记忆网络的空气质量预测方法,属于空气污染预测领域。背景技术:空气污染物浓度的预测拥有很强的学科交叉性,一直是环境、气象、数学、地理及计算机科学领域研究的热点...
  • 3DCNN与Long short team memory(LSTM)和双向LSTM相结合,可根据对视频流中事件的以往观察来预测异常事件。 可以看出,与带有双向LSTM的3DCNN相比,带有LSTM的3DCNN导致精度提高。 实验是在UCF犯罪数据集上进行的...
  • 1、预测编码   压缩算法的本质就是去除信号间的冗余,什么是信号的冗余呢?信号之间的相关性就是冗余,人类听觉或视觉系统感觉不到的或者掩蔽的也可以当做冗余成分。今天谈谈预测编码的概念,这是一种非常直观和...
  • 例如,在预测接下来会发生什么时,最近的事件应该具有更大的权重确实是有意义的。 而在语言相关问题中,“tah eht ni tac”和“cat in the hat”显然不应该具有真正的更高的抽象意义。“Tah”和“hat”都指的是同一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,494
精华内容 6,597
关键字:

双向预测编码