当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]众所周知,高清视频相对于rmvb、DVD等标清视频,播放起来对于电脑硬件要求的提升是无疑的。一、下面我们先来看看高清视频究竟从哪些方面提升了要求:(一)首先便是视频流量的

众所周知,高清视频相对于rmvb、DVD等标清视频,播放起来对于电脑硬件要求的提升是无疑的。

一、下面我们先来看看高清视频究竟从哪些方面提升了要求:

(一)首先便是视频流量的加大。这是最为直观的一个提升元素,我们可以参照下面的表格,表格中只是简单的提出了“视频源”的流量对比,但其实高清视频的“不同格式”更决定了流量的不同。

可以看出,DVD视频的数据流量只有约9.5Mb/s,但是最高的蓝光可以达到40Mb/s以上,提升了4倍以上,无疑这是硬件配置提升的一个主要原因,因为需要处理的数据量增大了很多。

 

(二)其次便是编码格式的复杂度。我们知道每种编码格式都有其自身的算法,优秀的算法可以将视频压缩到更小的体积,但是还原这种算法却需要更强的计算能力。H.264高清编码格式就是典型的代表。也许有些读者会碰到一些高清视频,但是播放要求并不高,那可能它就是采用一些简单的算法,比如Mpeg2的高清编码格式,但是遇到类似H.264编码格式,就会出现无法流畅播放的情况。

现在看来,H.264因为优秀的算法取得了广泛的支持,它的算法虽然复杂,但是能获得最高的压缩同时视频细节损失很小,因此想要在未来流畅的播放高清视频,H.264编码视频是必须通过的一个考验。当然我们也不能忽视VC-1编码,它是微软力推的编码格式,也受到了广泛的支持,其要求虽然略低,但同样造成了目前很多主流电脑的“播放困难”。至于Mpeg2高清编码,其要求很低,未来发展的前景也不突出。

我们再来了解一下,这些编码在电脑上是如何被处理器的。视频编码的处理一般分为几个步骤,每个步骤会完成相应的任务,而解码的时候也会存在这些步骤,从而达成影片的顺利播放。那么谁来处理这些工作呢,早期在电脑上,解码播放的大部分步骤都是CPU来处理,也就是处理器软件解码(以下简称软解)播放,这也就是CPU占用率为什么会很高的原因。

简单的来说,目前任何一台主流电脑或者说哪怕几年前的电脑,使用处理器软解播放之前所有的标清视频都没有任何问题。而高清视频中,Mpeg2高清编码的视频要求最低,VC-1编码的视频其次,而要求最高的H.264高清视频可能会导致很多老式的电脑都无法流畅播放。

虽然现在硬件发展速度飞快,用户可以采用高档四核处理器把软解播放高清的CPU占用率控制在50%以下,但这类处理器的价格却很高,装机成本大幅增加。而双核处理器虽然便宜了不少,但软解播放的CPU占用率又可能会很高,甚至高到无法流畅播放的程度。

如果想要减轻CPU的负担,则必须有另一个配件来接手编码处理工作,显卡自然成为了最佳选择,也就是用显卡里的引擎替代CPU完成视频解码的处理任务,从而释放CPU的负载。CPU作为通用处理器,进行视频解码这类事效率有限,但是显卡却可以直接硬件集成视频解码引擎,从而达到极高的功效。

二、高清视频的编码流程

那么究竟高清编码的步骤有哪些,哪些又是负载最高的部分呢?以H.264视频举例而言,分为四个主要部分(见下图)。图中的四个方块基本就是H.264解码的四个最主要步骤,也是资源消耗的主要四个部分,其中又以第一步的“CAVLC/CABAC解码”最为消耗运算资源,这方面远高于其他三步(简单的说,CAVLC/CABAC是H.264编码规范中两种不同的算法,际俏了提高压缩比,其中CABAC比CAVLC压缩率更高,但解码时自然也要求更高)。

 

三、高清视频的解码流程

我们下面来看看主流的3种编码格式,包括Mpeg2、VC-1、H.264的解码流程对比(见下图)。可以看出,几种编码格式还是有不少区别的,这也是造成几种编码格式要求不同的原因,H.264编码格式最为复杂,因此系统要求最高,VC-1略有降低,但是也比Mpeg2高得多。

 

其它编码格式与H.264类似。

四、高清解码资源消耗分析

那么究竟哪个步骤最为消耗CPU占用率呢?下面的测试对比应该最能说明问题(见下图)。对比的视频包括Mpeg2和H.264(AVC),其中上面我们讲到的四个步骤都有涉及。显而易见,“流处理”是所有编码格式中最为消耗处理器运算的部分,但是Mpeg2视频的这部分还并不会造成很大的困扰,因为CPU的占用率还不到2%。

 

但是对于H.264来说,问题就出现了,20Mb/s编码率的视频流处理过程就会达到不小的CPU占用率,40Mb/s的高编码率视频更为夸张,流处理的过程CPU占用率上升极快,加上别的处理,总CPU占用率很高毫不奇怪。

上文已经提到,这四个步骤的处理配件不同,主要是CPU和显卡。在之前,CPU因为处理了更多的步骤,所以占用率高居不下,因此如果显卡能承担越多的解码步骤,CPU就能释放更多的负载,以保证视频播放的流畅。

下图H.264的解码过程很好的说明了问题。如果显卡不承担任何步骤(图解第一行),那么CPU占用率很高,甚至根本无法流畅播放;如果显卡能实现后两个步骤的解码处理(图解第二行),CPU可以获得部分解放,但是对于比较关键的、负载最大的“流处理”,部分显卡还不能实现,所以CPU占用率有所下降,但是仍然偏高。

 

通过具有H.264硬件解码引擎的显卡,就可以完成H.264编码的全部4个处理步骤(图解第三行),也就是实现全程解码,这就是它们能让H.264高清视频播放的CPU占用率大幅度下降的根本原因。既然显卡完成了所有的高清解码处理,那么CPU自然就空闲了。而我们所谓的部分解码,就是CPU仍然承担一定的处理任务,因此占用率仍然要高出不少。[!--empirenews.page--]

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式系统和底层驱动开发中,C语言因其高效性和可控性成为主流选择,但缺乏原生单元测试支持成为开发痛点。本文提出一种基于宏定义和测试用例管理的轻量级单元测试框架方案,通过自定义断言宏和测试注册机制,实现无需外部依赖的嵌入...

关键字: C语言 嵌入式系统 驱动开发

在Linux设备驱动开发中,等待队列(Wait Queue)是实现进程睡眠与唤醒的核心机制,它允许进程在资源不可用时主动放弃CPU,进入可中断睡眠状态,待资源就绪后再被唤醒。本文通过C语言模型解析等待队列的实现原理,结合...

关键字: 驱动开发 C语言 Linux

该设备能非常实时的呈现视频和音频的功能为我们交通事故个处理和定位提供了更科学的依据,让我们的财产和人生安全得到了充分的保障。

关键字: 视频 音频

在数字化时代,电子墨水屏(E-Ink)因其独特的显示效果和低功耗特性,在电子书、智能手写本等领域得到了广泛应用。然而,电子墨水屏的刷新率一直是其发展的瓶颈,如何在保证低功耗的同时提高刷新率,成为了驱动开发中的一个重要课题...

关键字: 电子墨水屏 E-Ink 驱动开发

在当今数字时代,多媒体处理技术的重要性日益凸显。安谋科技作为中国领先的芯片IP设计与服务提供商,近日推出了最新的"玲珑"系列自研新品,包括首次发布的DPU(显示处理器)和新一代VPU(视频处理器)。

关键字: 多媒体处理 H.266 编解码 安谋科技 显示处理器 玲珑D8 VPU 玲珑V510 玲珑V710

在Linux驱动开发中,设备树(Device Tree)作为一种描述硬件信息的数据结构,扮演着至关重要的角色。它使得操作系统能够以一种更加灵活和标准化的方式识别和管理硬件设备。然而,在实际的开发过程中,设备树配置错误或理...

关键字: Linux 驱动开发 Debug

在嵌入式系统与设备驱动开发的广阔领域中,时钟、定时器以及延时函数扮演着至关重要的角色。它们不仅是系统时间管理的基石,更是实现高效、精确控制硬件行为的关键工具。本文将深入探讨这三种机制在驱动开发中的具体应用、实现方式及注意...

关键字: 驱动开发 嵌入式系统 延时函数

在Linux内核的广阔领域中,驱动开发是连接硬件与软件、实现设备功能的关键环节。在这个过程中,文件操作函数与I/O操作函数作为两大核心工具,各自扮演着不可或缺的角色。本文旨在深入探讨这两种函数在Linux驱动开发中的区别...

关键字: I/O操作函数 文件操作函数 Linux 驱动开发

BNC接口是一种常见的电子连接器,广泛应用于视频和音频设备之间的信号传输。它具有简单、可靠且易于使用的特点,被广泛用于监控领域、广播电视行业和电子测试设备中。

关键字: sdi接口 bnc 视频

随着现代通信技术和业务的发展,人们对通信的需求已经由最初的单一语音需求转变为对视频和音频的通信需求,以传送语音、数据。

关键字: 视频通信 视频 IP网络
关闭