随着工作业务的开展,对视频编解码的理解更加深入了一些,记录一些心得体会,以便后面回味。

某天突然有个好的想法略过心头,可以形象的像别人介绍视频编码和解码。

1.编解码像一场考试,编码就像做主观题,解码就像做客观题。

  编码可以类比为写作文:优秀的学生可以用短小精炼的语音,生动形象地描述一个故事,大体细节都叙述清楚了;而普通的学生则要用啰嗦、冗余、平凡的文字来表达一个故事,但是故事中的很多细节漏掉了!

    即,优秀学生(优秀的编码器)用较少的文字语言(比特数据)来表达了一个故事(图形),而平庸学生(一般的编码器)用大量的文字(比特数据)来表达一个故事(图形)。如果对比过不同的编码器,你就会发现同样的编码图像质量,有的编码器需要用较高的码率才行,如果强行将目标码率设小了会出现马赛克;而有的编码器(像x264)用较小的码率就可以实现较高的图形质量。

  解码可以类比为做选择题,这些题目都有固定的答案,(不同的解码器厂商)必须按照某个标准(h264的官方文档)去解码。

2.h264官方文档是个解码标准,规定了解码协议,不是编码标准。

  编码器厂商需要按照解码协议尽情发挥,使自家编码器输出的数据能够被解码。因此,编码考验各个厂商的人力物力投入,体现了其技术水平。

3.软硬件编码器特点比较。

  编码过程就是一个海量运算的过程。硬件编码器相比软件编码器,最大特点就是一个字——快!因为其将大量算法硬件化。软件编码器也有其特点——可以快速迭代升级。

  对于其他行业的人来说,可能没有“快”的概念。这个快到底有多快?

  拿笔者所服务的厂商所设计的soc来说,使用hw来编码一帧1080p图像,需要10-15ms,然而,编码同样一帧yuv图像,使用6代i5处理器,使用大名鼎鼎的x264,需要500ms。因此如果进行录像,使用硬件基本绰绰有余,而使用软件编码,可能导致录制出的文件帧率较低,出现卡顿现象。

4.软硬件编码器有哪些?

  软编:x264和OpenH264,前者应用最为广泛,支持的编码特性最多,由分布于全球的视频编码领域专家所维护;后者由cisco公司开源给外界使用,特性较少,编码速度也一般。

  硬编:分成两类,一类专业的编码器厂商,另外一类搞通用soc的厂商。

    后者,会集成一个硬件编码IP到处理器中,因为再外挂一个专业的编码器对下游方案商来说,成本有点高,所以主控厂商,会自行设计这个专业模块以集成到自家处理器中。如桌面端的intel和amd,移动端的qcom,hisilicon,mtk,unisoc,编解码器不是其核心卖点,其卖点是通用处理器或者基带,因此编码性能可能做的比较一般(intel的qsv编解码器,测试效果很不错,应该是花了不少人力资源去做,毕竟多媒体业务是个强需求)。

    前者,所设计的soc以编解码器为核心,可以说是买编码器送ap,例如通常把编解码性能做的非常强悍(核心卖点),但是使用的处理器架构可能比较low,例如使用arm9、arm11这些上一代的处理器架构,因为客户对cpu运算需求较少,核心需求就是编解码。近几年来许多主控厂商也将自己的架构进行更新换代,例如一路跟随arm的节奏走,使用cotexA7,A9,A15,A72...等等,以满足下游客户对cpu运算的增长需求(可能跑一些AI算法)。这里面要着重提几家,以TI(德州仪器),Ambarella(安霸),Hisilicon(海思)为代表的主流老中青三代,以及以Allwinner(全志)、Novatek(联咏)为代表的业余玩家。其中TI的编解码这块基本退出中国市场,安霸在早几年,在中国业务开展的非常之宽,大部分行车记录仪和安防上基本用它的方案,其编码质量高并且码率小,但是这几年其在编码市场上在走下坡路,其大客户GoPro现在出的产品就不用它的编码器了;然而,市场是多变的,偷点懒就可能被竞争对手超过,目前,海思占据着安防监控领域大部分份额!海思算是后起之秀,从2014年做到现在的2020年,一步一步变成了市场的NumOne。其他几个厂家,像全志科技,就是靠视频编解码(平板电脑)起家的,编解码性能做的还可以,但毕竟人力资源投入有限,技术水平还有待于提高。联咏为台湾企业,编解码做的还行。

好啦,随心而发,先总结到这!后面空了再开一些专栏来介绍编码和解码原理。

05-23 12:02