隔行扫描 和 逐行扫描

article/2025/9/20 6:42:43
 
隔行扫描
每一帧被分割为两场,每一场包含了一帧中所有的奇数扫描行或者偶数扫描行,通常是先扫描奇数行得到第一场,然后扫描偶数行得到第二场。
无论是逐行扫描还是隔行扫描,都有视频文件、传输和显像三个概念,这三个概念相通但不相同。最早出现的是隔行扫描显像,同时就配套产生了隔行传输。而隔行扫描视频文件是到数字视频时代才出现的,其目的是为了兼容原有的隔行扫描体系(隔行扫描还依然在广泛应用)。
通常显示器分“隔行扫描” 和 “逐行扫描”两种扫描方式。逐行扫描相对于隔行扫描是一种先进的扫描方式,它是指显示屏显示图像进行扫描时,从屏幕左上角的第一行开始逐行进行,整个图像扫描一次完成。因此图像显示画面闪烁小,显示效果好。先进的显示器大都采用逐行扫描方式。
隔行扫描情况下,由于视觉暂留效应,人眼将会看到平滑的运动而不是闪动的半帧半帧的图像。但是这种方法造成了两幅图像显示的时间间隔比较大,从而导致图像画面闪烁较大。 因此该种扫描方式较为落后,通常用在早期的显示产品中。

 

 

扫描区别

每一帧图像由电子束顺序地一行接着一行连续扫描而成,这种扫描方式称为逐行扫描。把每一帧图像通过两场扫描完成则是隔行扫描,两场扫描中,第一场(奇数场)只扫描奇数行,依次扫描1、3、5…行,而第二场(偶数场)只扫描偶数行,依次扫描2、4、6…行。隔行扫描技术在传送信号带宽不够的情况下起了很大作用,逐行扫描和隔行扫描的显示效果主要区别在稳定性上面,隔行扫描的行间闪烁比较明显,逐行扫描克服了隔行扫描的缺点,画面平滑自然无闪烁。

在电视的标准显示模式中,i表示隔行扫描,p表示逐行扫描。

说隔行显示不如逐行,这又是为什么?这就要看这两种模式在显像时的具体过程。
我们有一部30p的视频用作测试。假设有一台高速摄影机,对着平板电视拍摄(CRT存在扫描过程,解释起来稍微有些复杂,所以以平板电视为例)。接着我们用慢镜头重新观看电视机的工作状况,就会看到下列景象。
1080p(逐行)   :每秒显示30个画面(实际上是60个场,由于第一个1/60秒和第二个1/60秒内显示的画面是一样的,所以看不到区别)。
1080i (隔行):   每秒显示60个场,我们用“第一场”、“第二场”、“第三场”等表示在第一个、第二个、第三个1/60秒内发生的事。
如图:
第一场:显示上场的画面,下场还没出来,所以是空的
第二场:下场显示出来了,而上场依然存在,所以我们看到了一张完整的画面。
第三场:上场刷新成第2帧的内容,而下场没动
第四场:下场跟进刷新,于是我们就看到完整的第2帧了
第五场:上场变成了第3帧,而下场仍然还是第2帧中的内容
第六场:下场继续跟进,我们又看到了完整的第3帧
……
可以看到1080p和1080i在显示上根本的不同了。由于单位时间内总会有一半时间看到交错的画面,所1080i的显示会略有模糊。

 

 

 

隔行扫描视频编码(interlaced-scan video coding)

隔行扫描图像的每帧包括两个场,所以对于隔行扫描图像有三种编码方式:

  1、将两场合并为一帧进行编码;

  2、将两场分别编码;

  3、将两场合 并为一帧,但是在宏块级别上,将一个帧宏块划分为两个场宏块进行编码。

前两种编码方式称为图像自适应帧/场编码(Picture-adaptive frame-field, PicAFF or PAFF)

第三种称为宏块自适应帧/场编码(Macroblock-adaptive frame-field, MBAFF)。

  • PAFF:对于一个运动图像,由于场之间存在着较大的扫描间隔,所以帧中相邻两行之间的空间相关性相对于逐行扫描图像较小,因此对两个场分别编码 会更节省码流。对于一个非运动图像,相邻两行之间存在较大的空间相关性,将两场合并为一帧编码更有效。所以PAFF编码方式可以针对整个图像的编码方式做 自适应调整,选择帧编码或场编码。
  • MBAFF:当图像同时存在运动区域和非运动区域时,PAFF的劣势便显现出来,PAFF的自适应粒度太粗,无法实现满足更加精细的编码要求,于 是MBAFF应运而生。MBAFF对帧编码或场编码的选择是基于宏块的,MBAFF将两场合并为一帧进行编码,但将每一个帧宏块(16x16)划分为场宏 块对(8x16),针对每一个帧宏块,比较帧编码和场编码产生的码流大小,使用最节省码流的方式。

运动补偿

  一种描述相邻帧(相邻在这里表示在编码关系上相邻,在播放顺序上两帧未必相邻)差别的方法,具体来说是描述前面一帧(相邻在这里表示在编码关系上的前面,在播放顺序上未必在当前帧前面)的每个小块怎样移动到当前帧中的某个位置去。这种方法经常被视频压缩/视频编解码器用来减少视频序列中的时域冗余。它也可以用来进行去交织(deinterlacing)以及运动插值(motion interpolation)的操作。

  一个视频序列包含一定数量的图片--通常称为帧(frame)。相邻的图片通常很相似,也就是说,包含了很多冗余。使用运动补偿的目的是通过消除这种冗余,来提高压缩比。

  最早的运动补偿的设计只是简单的从当前帧中减去参考帧,从而得到通常含有较少能量(或者称为信息)的"残差",从而可以用较低的码率进行编码。解码器可以通过简单的加法完全恢复编码帧。

  一个稍微复杂一点的设计是估计一下整帧场景的移动和场景中物体的移动,并将这些运动通过一定的参数编码到码流中去。这样预测帧上的像素值就是由参考 帧上具有一定位移的相应像素值而生成的。这样的方法比简单的相减可以获得能量更小的残差,从而获得更好的压缩比--当然,用来描述运动的参数不能在码流中 占据太大的部分,否则就会抵消复杂的运动估计带来的好处。

  通常,图像帧是一组一组进行处理的。每组的第一帧(通常是第一帧)在编码的时候不使用运动估计的办法,这种帧称为帧内编码帧(Intra frame)或者I帧。该组中的其它帧使用帧间编码帧(Inter frame),通常是P帧。这种编码方式通常被称为IPPPP,表示编码的时候第一帧是I帧,其它帧是P帧。

  在进行预测的时候,不仅仅可以从过去的帧来预测当前帧,还可以使用未来的帧来预测当前帧。当然在编码的时候,未来的帧必须比当前帧更早的编码,也就是说,编码的顺序和播放的顺序是不同的。通常这样的当前帧是使用过去和未来的I帧或者P帧同时进行预测,被称为双向预测帧,即B帧。这种编码方式的编码顺序的一个例子为IBBPBBPBBPBB。

转载于:https://www.cnblogs.com/maxiaodoubao/p/4465902.html


http://chatgpt.dhexx.cn/article/cHAojJk9.shtml

相关文章

第三方Android 模拟器流畅速度快,适合开发人员

“工欲善其事,必先利其器。” 使用Android模拟器开发和调试应用肯定比使用真机方便。但相比XCODE的IOS模拟器,Android SDK自带的AVD实在不争气,不过一些第三方的模拟器却表现不俗! 12年我开始接触Android开发时候,手头…

Android 内存分析工具集【7】Android Systrace

本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容: 一、Systrace 简介 Systrace 允许你收集和检查设备上运行的所有进程的计时信息。 它包括Androidkernel的一些数据(例如CPU调度程序,IO和APP T…

小米8刷入LineageOS17.1

从来如此,便对吗? —鲁迅 XDA论坛原帖 1.首先解BL锁 详见解BL锁 2.下载资源 下载LineageOS 17.1直接下载最新版就行了 下载MIUI Q based firmware(推荐) 谷歌云盘(不推荐) 下载OPEN GAPPS(推…

如何优雅的使用GMS,为此我做了个食用Google服务的magisk microG懒人模块。

如何优雅的使用GMS,为此我做了个食用Google服务的magisk懒人包。 开端 其实吧,我对google服务的需求并不大,我主要就是在play store下下软件,同步同步通讯录和用Google相机,所以我就在magisk仓库找到了microG体验了一…

Android开发百科全书①

友情提示根据目录 快速查找问题 %1$s %1$d Android string 1、整型&#xff0c;比如“我今年23岁了”&#xff0c;这个23是整型的。在string.xml中可以这样写&#xff0c;<string name"old">我今年%1$d岁了</string> 在程序中&#xff0c;使用 [java] …

【exthmui】【红米9】红米9类原生系统 exthmui 使用体验

ExTHmui 前言特性简洁 清爽流畅亮点 不足后台Gapps时不时系统界面无响应屏幕闪烁亮度终端 后记 前言 设备&#xff1a;红米9 464 exthmui版本&#xff1a;见下图 底包&#xff1a;V12.0.1.0.RJCMIXM ⚠本文所述的一切内容均基于本人实际使用体验&#xff0c;不吹不黑&#xff…

安卓玩机搞机-----没有第三方包 刷写第三方各种GSI系统 体验非官方系统

很多安卓友友热衷与刷这些各种第三方包体验。但有个别机型第三方资源较少。而且有的机型要体验非官方系统却没有对应系统的第三方包。那可以体验下刷gsi系统来畅玩。今天的帖子就聊聊GSI系统的各种刷写操作和对应的故障解析、 &#x1f494;&#x1f494;&#x1f494;&#x…

Windows 10 安装安卓子系统 WSA(Magisk/KernelSU)使用 WSA 工具箱安装 APK

from https://blog.zhjh.top/archives/XokySA7Rc1pkVvnxAEP5E 前提是系统为 Windows 10 22H2 10.0.19045.2311 或更高版本&#xff0c;尽量新。 步骤 使用 WSAPatch 和 MagiskOnWSALocal 安装 WSA 在 Microsoft Store 中安装 Ubuntu LTS&#xff08;或你喜欢的发行版&#xf…

AndroidThings之基础二 设计理念

转载自&#xff1a;https://blog.csdn.net/tangxiaoyin/article/details/75273491 (PS:目前AndroidThings已经走向消费级别&#xff0c;发布正式版本1.0版&#xff0c;开发板推荐树莓派3B) 【CSDN 编者按】Android Things 是 Google 在 2016 年底推出的基于物联网的操作系统…

Android 9.0 TV版导入GMS组件以及Google Play

一、Android P之后的差异 参照phone版本整理出一版适合电视或者电视盒子相关GMS框架导入方法 可查看GMS P Initial Release Notes 了解&#xff1a; 1、P上增加了一些core app &#xff1a;AndroidPlatformServices、GoogleRestore、Device Health Services (Turbo) 2、Goo…

Android 玩机指南详细汇总(刷机、root、Xposed等)

点击上方“程序员大咖”&#xff0c;选择“置顶公众号” 关键时刻&#xff0c;第一时间送达&#xff01; 目录 Android 系统简介Android 系统版本Android API 等级基于原生安卓的定制系统第三方 ROMOEM 定制 ROM无处不在的 Android 系统任何人都可以免费为安卓系统开发应用安卓…

【LineageOS】编译安装及windows下推送更新记录

【LineageOS】编译安装及windows下推送更新记录 背景说明编译安装GApps 安装windows下推送更新 背景说明 AOSP装谷歌服务&#xff0c;遇到很多问题&#xff0c;于是选择其它的rom&#xff0c;之前装了piexlExperience没有成功&#xff0c;后来又换了LineageOS&#xff0c;终于…

iOS 和 Android 的后台推送原理各是什么?有什么区别?

2019独角兽企业重金招聘Python工程师标准>>> 郑紫阳&#xff0c;ziyangzhihu.com 炉门、尘规、陈汤姆 等人赞同 • 收录于 知乎周刊 iOS 系统的推送&#xff08;APNS&#xff0c;即 Apple Push Notification Service&#xff09;依托一个或几个系统常驻进程运作&…

android 版本选择,谷歌服务框架版本如何选择 我该下载哪个版本解析

谷歌服务框架版本如何选择 我该下载哪个版本解析 来源&#xff1a;www.18183.com作者&#xff1a;似水流年时间&#xff1a;2017-06-29 谷歌服务框架版本如何选择呢&#xff1f;本文小编为您带来谷歌服务框架版本如何选择 我该下载哪个版本解析。 谷歌服务框架版本如何选择呢?…

GAPPS版本区别

细雨灯花落&#xff0c;泪眼若为容。 Open Gapps GAPPS是谷歌软件服务集合&#xff08;Google Apps&#xff09;的缩写形式。由于移动设备生产厂商的某些限制&#xff0c;一些运行Android系统的设备没有安装谷歌服务框架。这类设备在无法运行一些基于谷歌服务框架开发的应用软…

线性代数(矩阵和向量)

目录 矩阵和向量加法和标量乘法矩阵向量乘法矩阵乘法矩阵乘法特征逆和转置 矩阵和向量 矩阵&#xff1a; 下图为一个R(4x2)和一个R(2x3)的矩阵 矩阵优点&#xff1a;快速整理&#xff0c;索引和访问大量数据。 向量&#xff1a; 下图为一个R(4)的向量 加法和标量乘法 加…

线性代数(7):矩阵的应用

一、简化矩阵 &#xff08;1&#xff09;阶梯形矩阵 1.1.1 定义 a. 如果矩阵有零行&#xff08; 元素全为 0 的行 &#xff09;&#xff0c; 零行 全在下面&#xff1b; b. 各非零行的第一个非零元素列标随行标增大而增大&#xff1b; 1.1.2 展示 下图两个矩阵都是阶梯矩阵 …

线性代数之矩阵

矩阵&#xff08;Matrix&#xff09;是一个按照长方阵列排列的复数或实数集合&#xff0c;矩阵是许多学科中常用的数学工具。 1 矩阵运算 m*n个数aij(i1,2,...,m;j1,2,...,n)排成m行n列的矩形数表&#xff1a; 称为m*n矩阵&#xff0c;一般记为Am*n。 元素是实数就是实矩阵&…

线性代数2:矩阵(1)

目录 矩阵&#xff1a; 矩阵的定义&#xff1a; 0矩阵 方阵 同型矩阵&#xff1a; 矩阵相等的判定条件 矩阵的三则运算&#xff1a; 乘法的适用条件 矩阵与常数的乘法&#xff1a; 矩阵的乘法&#xff1a; 矩阵的乘法法则&#xff1a; Note1&#xff1a; Note2&…

线性代数:矩阵运算之乘法?

线性代数&#xff1a;矩阵运算之乘法&#xff1f; 分步阅读 授人予鱼不如授人予渔&#xff0c;在《线性代数》的学习中&#xff0c;方法尤为重要。下面就让我们一起解决《线性代数》中令人头痛的——矩阵的乘法运算吧&#xff01; 如果您对——矩阵乘法的学习比较吃力&#…