HEVC/H.265视频软硬件编码的概念是相对的,通常把基于处理器平台实现的编码器称为软编码,典型如基于PC/ARM/DSP的视频编码器,而硬编码则通常指基于数字逻辑电路搭建的视频编码器,典型如基于FPGA平台以及SOC芯片中的编码器硬核等。

软硬件编码器在设计方法上迥然不同。软编码是在特定的硬件平台上实现的,它所对应的硬件资源是固定的,如它在单位时间内的运算处理能力是固定的,对于设计者而言,更多需要做的是在软件实现算法上做优化。而硬件编码器则是在最基本的逻辑电路上进行自由搭建,就好比在一张白纸上绘画一样,可根据需要添加硬件资源,如果以软件编码的方法或者在C程序上做移植优化的方法来进行硬件编码器设计,则很难设计出优秀的硬件编码器。另外硬件编码算法的差异化和灵活性会更高,相对软件编码器而言,不同设计方法导致的硬件编码器的性能差异化会更大。

评判一个视频硬件编码器的性能,主要考虑几点:

1. 压缩性能:一个视频压缩标准会有不同的编码工具集,并非所有的编码工具集都需要在编码器中实现,特别是对于实时硬件编码器,会根据编码器的应用场合特点对编码工具进行适当的删减,因此不同编码器在最佳编码性能方面会有些差异;

2. 硬件资源占用: 通常用逻辑门数和RAM大小等指标表示。不同的设计算法,特别是整个系统的设计安排,导致的硬件资源占用差异化很大,通常可以达到2~3倍以上;

3. 实时工作频率和fmax:实时工作时钟频率是衡量编码器的重要指标,这是硬件编码器设计之初即确定的参数,功能模块的算法设计选择需要根据实时工作时钟频率的要求来做相应调整,一般越低的工作时钟频率对模块以及系统的设计会带来更高的要求。由于视频编码数据量十分庞大,每个像素的处理时间甚至要求在1~2clk内完成,此时每增加1clk时间,都可能带来实工作频率的极大增加。例如,同样的FPGA硬件平台,有的设计可以实现1080P@30fps实时编码器,而有的设计却只能完成CIF(320*240)实时编码器,差距在十倍以上。除了实时工作时钟频率外,还要考虑整个电路的最高可运行频率fmax,这个和硬件设计算法有关,fmax越高,实时工作频率越低,则编码器性能越优秀;

4. 功耗:功耗也是编码器设计需要考虑的问题,特别是编码器应用在移动便携式领域时。

不管是软件编码器还是硬件编码器,要设计一款优秀的产品都不是容易之事。软件编码器有官方的参考软件,可在此基础上做优化,但不同优化方案的性能差异相对有限,国内目前进行HEVC/H.265商用软件编码器设计的公司有视骏、瑞普图视频等。而硬件编码器的技术门槛相对较高,产品差异化较大,国内进行HEVC/H.265硬件编码器IP商用开发的公司ZoboVision、