三大主流高清视频编解码技术浅析

news/2024/11/29 10:51:43/
众所周知,高清视频相对于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仍然承担一定的处理任务,因此占用率仍然要高出不少。



http://www.ppmy.cn/news/516496.html

相关文章

在本地视频播放中硬解与软解的能耗比体现

如今高清视频源日益普及,我们能很轻松的观看到许多高质量的视频资源(指画质)。真所谓好马配好鞍,今天我来给大家测试一下两种视频解码方式(硬解与软解)所带来不同的能耗体现。 首先我们要认识一下软解与硬…

【Java高级语法】(十二)可变参数:Java中的“可变之美“,做好这些细节,你的程序强大又灵活~

Java高级语法详解之可变参数 🔹 前言1️⃣ 概念2️⃣ 优势和缺点3️⃣ 特征和应用场景3.1 特征3.2 应用场景 4️⃣ 使用和原理5️⃣ 使用技巧5.1 可变参数结合泛型5.2 使用元组或列表进行参数传递5.3 使用默认值5.4 缓存计算结果 6️⃣ 实战:构建动态日志…

w ndows10玩游戏蓝屏,Windows 10 电脑玩穿越火线蓝屏原因及解决方法

Windows 10 蓝屏是非常常见的,可是面对不同原因出现的蓝屏您又知道如何去处理吗?今天我们就来通过解决穿越火线蓝屏顺便一起看看都是因为什么原因导致的 Windows 10 系统蓝屏吧。 1、显卡驱动导致的蓝屏,由于在 Windows 10 系统中有很多不稳定…

CF卡bug教程

win10为例 下载软件Fraps(以下简称fps) overlay hotkey控制打开/关闭fps 按我的勾选设置 video caputer hotkey同上overlay hotkey 设置成一样的按键 控制打开/关闭 4fps穿箱子 穿墙 方法:对准箱子/墙的棱角线 跳蹲头朝地 开fps 此时画面会很卡这就对了 帧率降低…

cf服务器优化,穿越火线走过12年存在服务器何时能得到优化?

目前穿越火线生化模式的现状——30人模式玩的人越来越多,16人模式逐渐变得无人问津了。有很多玩家说,16人模式是青春,30人的生化模式没有游戏体验体验。其实,现在来讲16人模式真的可以说是凉凉了,也少了以前的那种味道…

穿越火线好友服务器不稳定,穿越火线合区后新危机,玩家:卡顿掉帧没法玩

原标题:穿越火线合区后新危机,玩家:卡顿掉帧没法玩 大家好我是小包子,今天和大家聊一下穿越火线经历了一次大规模的合区之后,玩家们顿时感受到了服务器真正的火热。服务器总数的减少使得很多地区的玩家们相聚一起&…

win10玩cf不能全屏_《穿越火线》(CF)正经讲电脑配置

前天给一个网友配了个专门打CF的配置。 要求挺简单,要求150帧。 一番讨论后,决定配这套: 主要考虑到适应WIN7系统,客户也不需要升级,但求够用。 如果客户能适用WIN10的话,其实我个人是推荐上这套的&#xf…

cf有没有linux版本,急切求助万能的吧友 !!! Linux系统能玩穿越火线吗 好

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 屏幕17.3英寸 分辨率1920x1080 CPU型号Intel 酷睿i7 4710MQ 核心/线程数四核心/八线程 CPU主频2.5GHz 显卡类型双显卡(性能级独立显卡+集成显卡) 显卡芯片NVIDIA GeForce GTX 850M+Intel GMA HD 4600 显存容…