序列图像编码:
在视频图像压缩编码中,图像是由连续的帧形成的图像序列,由于景物变化速度的限制,相邻帧间存在很高的相关性,即存在很高的时间和空间冗余。
运动补偿预测的目的就是消除时域冗余,由运动补偿技术结合变换编码,构成了序列图像编码的主要方法。
在序列图像中,相邻帧间的主要变化是由于构成景物的各物体的运动引起的,检测物体的运动参数,并通过这些运动参数由前一帧预测当前帧,这就是运动补偿技术MCP(motion compensated prediction),或简称运动补偿(MC)。其中主要的任务是检测物体的运动参数,称为运动估计ME。

物体的运动由多种元素构成,包括平移、旋转及扭曲等,完整的描述物体运动的模型是复杂的。在目前通用的图像压缩标准及大多数实用的图像压缩算法中,均使用了简化的运动模型,即假设运动是由平移构成,这样只用X和Y方向(或水平与垂直方向)的两个平移参数dx,dy表征运动参数。由dx,dy构成一个运动矢量D
D=(dx,dy)T
当前帧(i,j)坐标点的像素值由前一帧预测为
MCP(i,j,k)= S(∧)(i,j,k)=S(i+dx,j+dy,k-1)
这里k表示当前帧,k-1表示前一帧,S(i,j,k)表示原始像素值, S(∧)(i,j,k)表示预测的像素值。

当前帧原始图像与预测图像之间可能会有误差,由于这个误差是由平移运动补偿预测引起的,故称为帧间位移误差DFD(displacement frame difference),表示如下:
DFD(i,j,k)= S(i,j,k)-S(∧)(i,j,k)= S(i,j,k)- S(i+dx,j+dy,k-1)
因此,对图像帧内像素的编码变成对DFD场和运动矢量D的编码,且DFD场的能量是非常低的,可以用很少的码字表示,运动矢量是稀疏的,同样用较少的码字表示,可以获得有效的码率压缩。
如果一个运动物体较大,将它分成一些小块,对于每个小块的平移与旋转运动可以用一个平移运动矢量来逼近。如果进行分块运动估计,则每个块的运动矢量可以逼近平移和旋转运动,所以块匹配运动估计是目前应用最广泛的。

对于当前的第k帧图像,将它划分成等大小的块,每个块的尺寸为N×M,即每个块包含N行,每行M个像素。每个块起始点在整帧图像中的行列标号为(I,J),整个块用符号B(I,J,k)表示。假设相邻帧间的各方向运动矢量的最大值为dmax。这样就在第k-1帧构成一个搜索窗,这个窗的中心点坐标与B(I,J,k)在k帧的中心点坐标重合,窗的大小为(2dmax+N)×(2dmax+M)。块B(I,J,k)的运动补偿预测块必定是窗内以某一位置为起点的一个块,设运动矢量为(dx,dy)T,则B(I,J,k)的运动补偿块为B(I+dx,J+dy,k-1),运动估计的目的是求这一矢量(dx,dy)T。
在搜索窗中所能构成的所有块的集合为{B(I+i,J+j,k-1),-dmax≤i,j≤dmax}。在所有的块中,利用匹配准则找到最匹配的块,即B(I,J,k)的运动补偿块B(I+i0,J+j0,k-1),(i0,j0)T就是运动矢量。匹配准则:均方误差准则(MSE)和平均绝对差值准则(MAD)。块B(I,J,k)和B(I+i,J+j,k-1)的MSE和MAD定义分别为:
MSE(i,j)=1/MN ∑_(n=0)(N-1)▒∑_(m=0)(M-1)▒〖[S(I+n,J+m,k)-S(I+i+n,J+j+m,k-1)]〗2
MAD(i,j)=1/MN ∑_(n=0)(N-1)▒∑_(m=0)(M-1)▒〖|S(I+n,J+m,k)-S(I+i+n,J+j+m,k-1)|〗
以上两个匹配准则都属于最小准则,取值越小越匹配。使用通用准则符号Crit。

最简单也是最准确的运动估计算法是全搜索算法,但运算太复杂,选择使用快速算法。
算法1 二维对数搜索算法
二维对数法TDL:
1、算法思想。
二维对数搜索法是从原点开始,以十字形分布的五个点构成每次搜索的点群。通过快速搜索跟踪MBD点。
2、算法描述。
step1:从原点开始,选取一定的步长,在以十字形分布的五个点处进行块匹配计算并比较。
step2:若MBD点在边缘四个点处,则以该点作为中心点,保持步长不变,重新搜索十字形分布的五个点;若MBD点位于中心点,则保持中心点位置不变,将步长减半,构成十字形点群,在五个点处计算。
step3:在中心及周围8个点处找出MBD点,若步长为1,该点所在位置即对应最佳运动矢量,算法结束;否则重复step2。
3、算法分析。
TDL算法搜索时,最大搜索点数为2+7log2W,这里W表示最大偏移量dXmax。若发现新的十字形点群的中心点位于搜索区的边缘,则步长也减半,后来有人提出应该在搜索的每个阶段都将步长减半。所有这些改动都是为了使算法搜索范围很快变小,提高收敛速度。TDL算法的前提是假设搜索区内只有一谷点,如果搜索区内存在多个谷点时,该方法找到的可能是局部最小点。不能保证找到全局最优点也正式最大部分快速搜索算法的通病。
算法2 三步搜索算法
三步搜索法:
1、基本思想。
TSS算法的基本思想是采用一种由粗到细的搜索模式。从原点开始,按一定步长取周围8个点构成每次搜索的点群,然后进行匹配计算,跟踪最小块误差MBD点。
2、算法描述。
step1:从原点开始,选取最大搜索长度的一半为步长,在周围距离步长的8个点处进行块匹配计算比较。
step2:将步长减半,中心点移到上一步的MBD点,重新在周围距离步长的8个点处进行块匹配计算并比较。
step3:在中心及周围8个点处找出MBD点,若步长为1,该点所在位置即对应最佳运动矢量,算法结束;否则重复step2.
3、算法分析:
TSS算法搜索时,整个过程采用了统一的搜索模板,使得第一步的步长过大,容易引起误导,从而对小运动效率较低。最大搜索点数为1+8log2W,当搜索范围大于7时,仅用3步是不够的,搜索步数的一般表达式为log2(dmax+1)。
算法3 新三步法
新三步搜索法NTSS
1、基本思想。
NTSS利用运动矢量的中心偏置分布,采用具有中心倾向的搜索点模式,并应用中止判别结束,减少搜索次数。
2、算法描述。
step1:搜索17个点(分外环和内环,外环8个点,内环9个点),如果MBD点为搜索窗中心,算法结束;如果MBD点为搜索窗中心,算法结束;如果MBD点在中心点的8个相邻点,则进行step2.否则进行step3。
step2:以上一步MBD点为中心,使用3x3搜索窗进行搜索,若MBD点在搜索窗中心,则算法结束;否则重复step2.
step3:执行TSS法的step2和step3,算法结束。
3、算法分析。
运动矢量通常总是高度集中分布在搜索窗的中心位置附近。NTSS采用中心倾向的搜索点模式不仅提高了匹配速度。而且减少了陷入局部极小的可能性;而采用中止判别结束则大大降低了搜索复杂度。提高了搜索效率。
可以适当考虑四步搜索算法和菱形搜索

搜索块的大小
运动估计有空间相关运动估计,变块大小的分层运动估计,分数像素运动估计。
空间相关运动估计:利用图像帧中相邻块之间的运动相关性,降低运动估计的搜索范围。搜索范围根据Crit的值自适应变化,区分标准为两个门限值。

视频图像压缩编码之预测编码相关推荐

  1. matlab用游程编码压缩图像,基于Matlab的图像压缩编码

    开发与应用 计算机与信息技术 ·23· 基于 Matlab 的图像压缩编码 杨晓 李悦 (贵州大学 计算机与信息学院,贵州 贵阳 550025) 摘 要 本文描述了图像编码压缩方法的主要分类,介绍了每 ...

  2. 图像压缩编码基础——笔记整理

    图像压缩基础 1)压缩的原因:数字视频码率高达216Mb/s.数据量之大,无论是网络传输,还是存储都构成巨大压力.在保持信号质量的前提,要降低码率及数据量. 2)压缩的原理: 图像信息存在着大量的规律 ...

  3. 图像压缩编码和解码原理

    本节介绍图像压缩编码的基本原理,图像数据压缩和解压缩电路的基本结构.它们是看影碟机电路图的基础知识. 一.图像压缩的基本途径 图像的数据量极大,必须对其数据总量大大压缩,才能够存储在直径12cm的光盘 ...

  4. 图像压缩编码的必要性可行性分类图像压缩的评价指标

    图像压缩编码的必要性:图像的数据量非常大.为了有效地传输和存储图像,有必要压缩图像的数据量.随着现代通信技术的发展,要求传输的图像信息的种类和数据量愈来愈大.若不对此进行数据压缩,便难以推广应用. 图 ...

  5. matlab基于dct的图像压缩编码解码_音频压缩编码的基本原理详解

    1.视频编码基本原理 (1) 视频信号的冗余信息 以记录数字视频的YUV分量格式为例,YUV分别代表亮度与两个色差信号.例如对于现有的PAL制电视系统,其亮度信号采样频率为13.5MHz:色度信号的频 ...

  6. DCT变换编码matlab,基于DCT变换的图像压缩编码的MATLAB实现

    基于DCT变换的图像压缩编码的MATLAB实现 今天是一个信息化.网络化的时代,通过Internet可以获取全面的文字.图像.声音等信息,但是,图像信息需要占据大量的存储空间,给原始数 (本文共4页) ...

  7. 用java实现给图片增加图片水印或者文字水印(也支持视频图像帧添加水印)

    javaCV图像处理系列: javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体.位置.大小.粗度.翻转.平滑等操作 javaCV图像处理之2:实时视频添加图片水 ...

  8. paper 89:视频图像去模糊常用处理方法

    随着"平安城市"的广泛建设,各大城市已经建有大量的视频监控系统,虽然监控系统己经广泛地存在于银行.商场.车站和交通路口等公共场所,但是在公安工作中,由于设备或者其他条件的限制,案情 ...

  9. DM368学习--捕获视频图像分辨率修改

    encode的选项设置里有个: -r <resolution>, --resolution <resolution> The resolution of video to en ...

最新文章

  1. 修改input的text 通过jquery的html获取值 未变化
  2. Python面向对象-特殊成员
  3. 知乎高赞:从源码层,拆解OracleJDK和OpenJDK有什么区别?网友:不愧是大神的回答~...
  4. onclick 获取img 里面的id_红魔5S游戏手机如何解锁bl获取第三方面具root权限
  5. mysql管理器源码_一个HelloWorld版的MySQL数据库管理器的设计与实现(源码)
  6. 小小一行Python命令,居然把电脑变成服务器
  7. c语言最短延时程序,linux下写个C语言程序,要求有0.5微秒以下的延时,要怎样写...
  8. 微博发布公告 将开展财经违规内容专项整治行动
  9. 微信怎么at所有人_微信分付怎么开通,入口在这里,简单几步教你快速开通
  10. Lucene 原理分析之-全文检索的一般过程-笔记
  11. mac空格代表图标_最糟糕的图标代表功能
  12. 都在说云原生?到底什么是云原生?
  13. Rhcsa第二次课堂练习
  14. 知人者智自知者明--所有的懊恼都是实力的差劲--我的第一次面试
  15. 博途数据类型wstring怎么用_西门子博图数据类型说明
  16. 怎么让win10隐藏任务栏不会在程序有消息时自动弹出
  17. python面向对象编程
  18. 对php进行开发的环境,PHP开发环境搭建(一):PHP简介及开发工具
  19. php 上传图片方法
  20. 关闭Windows系统中的UAC用户帐户控制

热门文章

  1. BitBlt 函数 详解, StretchBlt、SetStretchBltMode、SetBrushOrgEx 按句柄截图、直接截取缩略图...
  2. 基于DPDK的Open vSwitch概述
  3. 闲云控制台(一)控制台命令解析框架
  4. windows10中java调用python脚本
  5. 高考数学试题等比数列及其前n项和|附习题
  6. 绿米开关如何重置_绿米智能墙壁插座/开关图赏:寿命可能比你还长!
  7. 达摩易筋经十二式图解
  8. OC底层原理-Block
  9. 进程切换与线程切换的区别?
  10. PHP中增删改应用“六脉神剑”