播放图像有锯齿_反隔行操作

摄像机按图像扫描方式可分为隔行扫描像机和逐行扫描像机,常用的是隔行扫描像机。隔行扫描像机拍摄的每帧图像分为顶场和底场,图像中的奇数行为顶场,图像中的偶数行为底场。隔行扫描摄像机在拍摄图像时先拍摄顶场然后拍摄底场,当摄像机以每秒25帧的速率拍摄图像时,顶场和底场之间的拍摄时间差为20毫秒,这20毫秒的时间差使运动物体在顶场和底场中有了位置差异。监视器等隔行显示设备是按场播放图像,因此不会有问题,但电脑等逐行显示设备是按帧显示图像的,此时图像中的运动物体会有锯齿效果产生,如图一所示。总之,这类现象是由于使用逐行显示设备显示隔行拍摄图像造成的。

为了使隔行扫描的图像能够在逐行显示的设备上正常播放,必须先对图像进行处理,也就是反隔行处理。反隔行算法有很多种,根据算法的复杂度可以分为三类,第一类算法不带运动检测功能,主要是利用一些插值或者中值滤波的方式实现,这类算法现在主要被一些低端的显卡或者图像卡采用,例如可以利用顶场和底场之间的均值来生成一帧图像,其处理效果见图二,该算法在运动区域会形成模糊。总之这类算法都有一些缺陷例如运动区域模糊,或者降低图像分辨率等等。 第二类算法统称为运动自适应算法,这类算法根据前后帧图像差值估算图像中的运动区域,并针对静止区域和运动区域采用不同的算子进行处理,例如在静止区域直接用顶场和底场合成图像,在运动区域只用一场插值生成图像,处理效果见图三,这类算法有较好的处理效果,现在是高端显卡所采用的主流算法。第三类算法统称为运动补偿算法,该类算法根据前后帧图像估算运动区域的位移矢量,并将运动物体在底场中的图像拉回t时间以前的位置。这类算法具有最好的处理效果,但是这类算法非常复杂,一般只有顶级的图像卡才使用这类算法。( )转( )

转.................................................................

交错扫瞄(隔行扫瞄, Interlaced), 就是一个画面分成两次送出, 先送奇数线的画面后, 再送偶数线,显示时再将它们合成完整画面. 非交错扫瞄(逐行扫瞄, Porgressive), 就是每次都送完整的画面, 不需要奇偶画面重新组合.所以在非交错式显示的萤幕上观看时, 交错画面要把它重组回来, 这个动作叫做 "去交错" (Deinterlaced)

直接来看看, 到底它们是什么.
下图是隔行扫瞄 (Interlaced) 的图, 影片镜头是由右而左缓慢移动的为每个选手做特写.

我们可以发现在上图中, 选手的衣服边缘处有细纹产生, 穿着2号球衣的这个 "2" 字样也可以看出明显的细纹,而且在衣服上胸口处的菱形黑色斜边线条有锯齿纹状.

为了怕大家看不清楚, 做了局部放大, 整理如下图, 让大家可以看的更清楚.

注意上图中, 左方放大的图 (红色箭头所指的红色框框处), 选手的衣领和脸部边缘处都有细纹出现. 这就是在动态画面下使用 "交错"(Interlaced) 方式显示会产生的问题. 所以有所谓 "去交错" (Deinterlaced),目的在尽量将这种现象降低.

下图是开启 "去交错" (Deinterlaced) 后的状况.

在上图中, 我们可以发现, 先前的细纹不见了, 但画面变的模糊了一点点, 这是因为做 "去交错" 的关系,做了一些调整所造成的结果.

接着我们来看看, 假设收到的影像已经是使用 "非交错" (逐行扫瞄, Progressive), 表现又如何呢? 贴一张 "非交错"的图如下, 让大家做一个比较.

不知道大家看出差异了没有, 在 "非交错" 讯号中, 即然是非交错, 当然没有去交错问题, 省了一次处理的麻烦和画质的失真.所以上图中没有锯齿和细纹等等现象.

为了更清楚解释, 我将三个放大图摆在一起, 请参考下图.

由左而右分别是 "交错扫瞄" (左边), "交错扫瞄+去交错处理" (中间), "非交错扫瞄" (右边). 请注意每个图的左下角,在衣服上的菱形黑色图案, 左边和中间的图都有锯齿状, 而右边的 "非交错扫瞄" 没有这个状况.再来是中间图的菱形图黑色表现没有旁边两个来的黑. 也就是说做 "去交错" 处理 (中间的图) 会比没有做 "去交错"的表现来的糊一点点. 所以 "去交错" 做的好不好也很重要.

以上是比较静态的, 接着来就找个动作大一点, 夸张一点的图, 会看的更清楚一些.下图是一台车快速的转弯移动中.

由上图中, 我们可以看到很明显的横线, 状似抽丝, 已经不是细纹可以形容, 大家应该都可以清楚的看见了吧, 这个例子是十分夸张的图,为了说明方便特别贴出来.

接下来就是 "去交错" (Deinterlaced) 后的状况, 如下图.

我们可以发现, 横条细纹在 "去交错" 后不见了, 但是仍有拖影的现象, 在这么大动作的画面中, 这是无法避免的, 就算是用"非交错" (逐行扫瞄) 方式也会有拖影现象, 只是程度上的差别而已.

接着下面几张图, 再来比较一下, 让各位更清楚. 也是一台跑车在过弯时的图, 这次一口气比 "交错", "交错+去交错", "非交错"三种, 每张图为了容易看到差异, 都有贴上一张局部放大的图.


再补上一张 "非交错" 的原图, 让大家自行比对前几张的差异.

照样在最后将三者排开, 比对差异.

最左边是 "交错", 所以会看到线条, 中间是 "交错+去交错处理", 虽然线条不见了, 但有点拖影现象, 而最右边是"非交错"

除了图像会有交错现象外, 还有颜色交错 (color interlaced) 与亮度交错(brightnessinterlaced)
参考资料 : http://zh.wikipedia.org/wiki/去交錯

原文地址:https://www.cnblogs.com/8335IT/p/9050133.html

时间: 2024-10-19 19:26:44

播放图像有锯齿_反隔行操作的相关文章

android内部培训视频_第四节(1)_异步网络操作

第四节(1):异步网络操作  一.结合asyncTask下载网络图片 1.定义下载类,继承自asyncTask,参数分别为:String(url地址),Integer(刻度,本例没有用到),BitMap(下载成功后的图片) public class downloadImageTask extends AsyncTask<String, Integer, Bitmap> { /** * 在线程开始之前执行 */ @Override protected void onPreExecute() {

数据持久化(归档和反归档操作 ,清除缓存等等)

数据持久化的步骤 // 1.指定前往哪个文件夹 // 2,用字符串接收路径 // 3.拼接文件夹路径 // 4.写入本地或者归档操作 // 注 :如果是复杂对象归档 ,要签订NSCoding方法 .并且实现两个协议方法,放在数组里的复杂对象归档也要签协议 苹果手机为了保证自己数据上的绝对的安全设计了沙盒文件 ,每一个应用程序都配备了自己的沙盒文件 ,每一次运行 ,文件夹的名字就会变成一个没有任何规律的字符串 复杂对象写入到本地 ,主要至我们自己创建的对象写入到本地, 也叫归档和反归档操作 结构体

赵雅智_使用SQLiteDatabase操作SQLite数据库及事务

知识点详解:http://blog.csdn.net/zhaoyazhi2129/article/details/9025995 具体代码: MainActivity.java package com.example.android_sqlite; import android.app.Activity; import android.os.Bundle; import com.example.android_sqlite.dao.impl.UserDaoImpls; import com.ex

Oracle学习(二)_多表操作

--第一部分:SQL基础 --ch1 简单查询 --ch2 查询基本概念 --ch3 数据过滤 --第二部分:多表操作 --ch4 集合理论 --ch5 内连接 --ch6 外连接 --ch7 子查询 --第三部分:数据分组 --ch8 简单统计 --ch9 数据分组 --ch10 分组数据过滤 --第四部分:SQL函数 --ch11 内置函数 --ch12 case表达式 --第五部分:DML语句 --ch13 插入数据 --ch14 修改数据 --ch15 删除数据 ------------

Python不归路_字符编码操作

文件操作补充 上篇随笔中写了文件操作的几个方法,其中truncate()方法遗漏,truncate()方法作用是截取内容,f.truncate()不带参数会清空文件内容,带参数表示截取从零到参数的位置 字符编码 在<Python不归路_零基础学习二>中我们已经学习了一些编码的知识,比如ASCII一共有255个符号,Unicode中,中文字符占两个字节,英文占一个字节,utf-8是unicode的优化方案,中文字节占三个字符.不同字符编码之间需要相互转化才能正常读取.encode和decode,

Java逆向武器库_反编译工具

1.反编译工具之_jd-gui 官网下载地址:http://java-decompiler.github.io/#jd-gui-download 使用: 下载后解压直接使用即可. jd-gui的优势是图形化界面 操作简单,但gui很久没有更新了 存在无法反编译的情况.   2.反编译工具之_CFR 官网下载地址:http://www.benf.org/other/cfr/ 使用: (1)命令行操作: 进入到CFR所在目标 执行命令(需反编译jar:http_operator.jar.反编译后输出

Android12_播放器_surfaceVIew_照相机_传感器

编程的时间与空间的概念,两者不可兼得(技术固定),时间换空间,空间换时间 sufaceView占用比较大的空间但是效率高 1,音乐播放器 MediaPlayer ①同步的 大致流程按下图走即可,播放最好写在服务里,因为要在后台播放 1.1 new出来的mediaplayer 默认处于Idie(空闲),reset()也可以让其处于初始状态 1.2 setDataSource()设置好文件之后就处于Initialized()初始化状态 1.3 可以通过setOnErrorListener方法查看播放

第3章 文件I/O(7)_高级文件操作:存储映射

8. 高级文件操作:存储映射 (1)概念: 存储映射是一个磁盘文件与存储空间的一个缓存相映射,对缓存数据的读写就相应的完成了文件的读写. (2)mmap和munmap函数 头文件 #include<sys/types.h> #include<sys/mman.h> 函数 void* mmap(void* addr, size_t length, int prot, int flags,                       int fd, off_t offset); int

[Cocoa]_[初级]_[NSTableView--数据操作和表格操作要注意的问题]

1.首先在MainMenu.lib文件里面创建一个NSTableView,在界面上显示一个表格出来,并对表格进行设置. 2.创建文件TableViewDelegate.h和TableViewDelegate.m(文件内容如下文件所示).并在MainMenu.lib文件中创建一个Object(从窗口右边选中Object,拉到在Window中的对话框中),命名:TableViewDelegate. 3.设置代理:tableView 进行设置,和图片中的Table View进行连接. staticFi