基于Altera FPGA高清晰视频去隔行功能的实现

FPGA/ASIC技术

206人已加入

描述

  引言

  开发去隔行算法是为了解决一个老问题:模拟电视的隔行视频必须进行转换才能在当今数字电视上显示。

  隔行视频是每秒50/60 连续场,每一场只传送一半的扫描行,这些行显示在视频的每一帧中。对于以前采用阴极射线管(CRT) 的显示技术,隔行视频是一种基本压缩方法。

  今天,去隔行是重要的视频处理功能,很多系统都需要它。大部分视频内容采用了隔行格式,而LCD 或者等离子体等所有新出现的显示器几乎都需要逐行视频输入。但是,去隔行功能本质上非常复杂,没有一种算法能够产生完美的逐行图像。

  背景

  在隔行视频中,一帧视频被分成两场,一场含有偶数行扫描线,一场含有奇数行扫描线。然而,为了能够在LCD 或者等离子体显示器上显示任意的隔行视频,必须进行去隔行处理。所有新出现的显示器都是逐行的,每一帧被压缩为一组像素( 例如, 1920 x 1080)。图1 显示了一帧中的象素是怎样组成两个场的。每一场都记录了在时间上分开的象素值。

  

  如果假设每秒30 帧(fps),即每秒60 场,那么,第0 场是在时间“t”,第1 场是在时间“t + 1/60”。由于在略有不同的时间间隔上对场进行记录,因此,无法将两个场连起来为运动视频产生逐行帧。去隔行技术

  之所以复杂,是因为需要估算并补偿可能出现的每秒1/60 的运动图像。

  基本去隔行技术

  基本上,去隔行是处理隔行帧流,将其转换为逐行帧流的过程。两种基本的去隔行方法通常被称为“单场插值”法和“场合并”法。

  采用“单场插值”去隔行法,每一场自己可以变成视频帧,因此, 29.97-fps 隔行NTSC 剪辑视频流变成了59.94-fps 的逐行帧。由于每一场只有整个帧一半的扫描线,因此,必须进行插值处理来构成丢失的扫描线。

  也可以说,单场插值去隔行技术是在空间上将扫描线加倍,每一场的扫描线被加倍。所产生的新行既可以是简单的复制前一行( 扫描线复制),也可以是前后行的平均值( 扫描线插值),如图2 所示。当图像亮度变化比较平稳时,单场插值去隔行技术的结果比较好,但是由于该技术降低了垂直分辨率,因此,图像变得更柔和。

  

  去隔行场合并技术涉及到将两个场进行合并,这两个在时间上分开的场形成一个完整的帧,如图3 所示。如果在两场分开的1/60 秒内,图像没有运动部分( 对于NTSC 视频),那么,场合并的结果比较好。有时候,当一对隔行场来自最初的逐行帧时,场合并算法结果会非常好。但是,如果有运动部分时,会出现“锯齿”等假像。

  

  单场插值法和场合并法去隔行法都会影响图像质量,特别是图像有运动部分时。单场插值法柔和了图像,场合并法会产生粗糙的图像,或者锯齿假像。图4 对比了单场插值法生成的图像和场合并去隔行法生成的图像。

  

  高级去隔行技术

  很明显,可以同时采用前面介绍的两种方法,首先计算视频前后帧之间是否有运动图像,从而产生质量更好的去隔行结果。该方法对于静止区域采用场合并法,而有运动的部分采用单场插值法,因此,被称为“运动自适应去隔行法”。更多【详情

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分