视频监控/视频编解码/机器视觉
在视频编解码领域从事工作几年,还没有仔细总结一路怎么走来。趁知友提的问题,再回头看看,稍有心得体会,希望对你有帮助。
视频编解码所从事的工作大致分成3类:编解码算法研究、编解码标准实现、编解码应用开发。
编解码算法研究主要指制定标准相关工作,参与标准组织,制定新一代标准,比如HEVC、AVS等。该方向研究性较强,需要扎实的基础学科功底,如果在学校期间能够很好掌握线性代数、矩阵论、信息论、通信原理、数字信号处理、统计信号处理等课程,对该方面的发展帮助较大。目前国内参与标准制定的单位主要是高等院校、研究机构、以及一些大企业(海思、三星、联发科等)。
编解码标准实现主要在不同的平台实现符合标准的编码组件和解码组件。该方向要求熟悉标准文档、熟练掌握C语言编程、熟悉平台指令集优化、熟悉嵌入式开发、能够设计编码3大算法(模式选择、码率控制、运动搜索)等。国内设立这种岗位的公司很多,视频监控行业、视频会议行业、互联网行业、机器视觉行业等与多媒体相关的企业都会有。当然,大的公司分工细,会设定专门做编解码组件的岗位,专业化程度;小公司则要求全面,做事杂些。
编解码应用开发主要是在编解码组件的基础上,进行系统级开发,包括系统封装层、多媒体软件、传输协议、QoS等。该方向所从事的工作更编解码标准中的技术没有关系,主要要求软件集成能力、应用开发能力等。
从后往前看,回到“如何打好基础”的问题上来,有几个建议步骤:
学好线性代数、矩阵论、信息论、通信原理、数字信号处理、统计信号处理等课程;
专业方面熟悉一门标准,建议学H.264。相比H.265来说,H.264更加成熟,材料多。推荐看Iain E G Richardon 写的入门教程“H.264 and MPEG-4 Video Compression”,该书浅显易懂,思路清晰。随后,需要看H.264标准文档以了解更多细节,结合参考软件JM的解码部分一起看;
围绕预测编码、变换编码、熵编码,看一些学术文章,弄清楚标准中各技术背后的原理;
调试开源代码,该步骤可以与前面并行。多去玩玩ffmpeg等、x264等,提高编程能力,主要是C语言开发能力。试着去优化一、两个独立的模块,优化的平台选X86、ARM都可以。
试着用开源代码实现一些应用demo,这方面可以参看
推荐一个音视频Github repo https://github.com/0voice/audio_video_streaming
全部评论
(0) 回帖