硬解码和软解码

来源:互联网 发布:mac中ssh客户端 编辑:程序博客网 时间:2024/04/29 04:51

 硬解码和软解码

         硬件解码就是通过显卡的视频加速功能对高清视频进行解码。因此硬解码能够将CPU从繁重的视频解码运算中释放出来,使播放设备具备流畅播放高清视频的能力。显卡的GPU/VPU要比CPU更适合这类大数据量的、低难度的重复工作。视频解码工作从处理器那里分离出来,交给显卡去做,这就叫做“硬解码”。
        与之对应的,以前纯粹依靠CPU来解码的方式则是“软解码”。软解码是在显卡本身不支持或者部分不支持硬件解码的前提下,将解压高清编码的任务交给CPU,这是基于硬件配置本身达不到硬解压要求的前提下,属于一个折中的无奈之举
        对于一个超级电视而言,观看高清电影无疑是用户最大的诉求,而硬解码的优势就在于可以流畅的支持1080p甚至4K清晰度的电影播放,而不需要占用CPU,CPU就可以如释重负,轻松上阵,承担更多的其他任务。如果通过软解码的方式播放高清电影,CPU的负担较重,往往会出现卡顿、不流畅的现象。 

       

        视频解码有四个步骤,分别是VLD(流处理)iDCT(频率转换MoComp(运动补偿)PostProc(显示后处理,解码去块滤波Deblocking)。通常我们所说的硬件加速或硬件解码,就是指视频解码的这几个步骤中,用显卡专用的解码引擎替代CPU的软件计算,降低CPU的计算负荷。


显卡的硬件解码引擎
微软规定的显卡硬件加速标准为DXVA2.0(DirectX Video Acceleration),它将显卡硬件加速级别从高到低划分为四个等级,顺序为:VLD>iDCT>MoComp>PostProc。主要包括和以上四个步骤对应的流处理(BitstreamProcessing CAVLC/CABAC,前后自适应可变长度编码、前后自适应二进制算数编码)、逆变换(InverseTransform)、运动补偿(MotionCompensation)、解码去块滤波(Deblocking)。其中VLD加速包含了全部四步,iDCT加速包含了MoCompPostProcMoComp加速包含了PostProc。而对H.264视频解码则加上了FGT(FilmGrain Technology,电影胶片质感技术)后分为AF的六个等级,F级的硬解级别最高。
解码去块滤波影响画质


其实,无论是硬件解码还是软件解码,所进行的解码过程和解码结果都是完全一样的。他们的区别就是视频解码的工作是由处理器完成,还是由显卡来完成而已。因此,在理论上硬件解码和软件解码的效果应该是完全一样的。但是,也的确有用户在开启和关闭硬解码之后发现明显的画质区别,这个关键在于最后一个解码步骤PostProc(显示后处理,解码去块滤波操作Deblocking)Deblocking的意思为解码去块,能够消除H.264压缩编码可能产生的马赛克现象,真实地还原视频图像。Deblocking对处理器提出了较高的要求,早期的GeForce6/7RadeonX1000显卡在开启显卡硬件加速的状态下就会关闭解码去块滤波操作Deblocking,这时播放一些影片会看到较明显的马赛克现象,明显影响画面质量。而在其它编码格式的高清视频中,则没有相关的问题。


硬解码最大的优点就是速度非常快(与软解码相比较而言,在相同条件下),再有就是省电。软解码在解码工过程中要借助软件提供的算法来取指,分析,运算解码等工作,相对来讲速度就降下来了,还非常费电。在这里,我再举几个例子吧,比如说电脑中的独立显卡(具有各种的处理,控制芯片,当然还有显存)和集成显示芯片,他们都可以处理图像数据,但是在具有独立显卡的机器中,CPU把全部的图形处理工作都交给了专门的显卡去完成(硬件完成,里面也有微指令控制系统,如同Firmware),而没有独立显卡的PC机中,CPU将不可推卸地完成大部分的图形图像的处理任务(软件程序控制CPU完成),显示芯片负责少量的处理以及输出。

1 0
原创粉丝点击