中兴算法大赛-图灵派解题思路与数据包


1.赛题背景

1.1赛题要求:

处理原始视频数据raw.yuv,编码压缩之后得到压缩文件enc.code,通过一定算法解压得到文件dec.yuv

1.2赛题处理数据格式:

原始数据为yuv444p,分辨率为1280*720

1.3评审标准:

压缩内容enc.code文件的大小和重构视频dec.yuv文件与原始视频文件保真度对比

2.赛题分析

本赛题为视频压缩赛题,主要解决的问题为将视频尽可能的压缩至更小的文件,且能重构出质量高的视频。视频文件本质为多帧图像连续运行。那么问题就可以拆解为压缩图像,和压缩每秒视频帧数。
图像显示可以分为RGB和YUV两种格式,其中YUV格式中,Y代表亮度,U和V代表色彩,人对色彩的感知不如亮度,因此可以考虑压缩U、V分量。这个过程相当于将源数据视频YUV444P转化为YUV420P,存储空间减少1/2,再使用现有的比较成熟的压缩算法h264算法进行压缩,可以自行设置码率和帧率。建议帧率不低于25,码率不低于256,一般h264的压缩率为95%左右还能较好的重构源视频,进一步的可以使用h265算法,在相同重构质量的前提下,h265算法比h264算法压缩率可以提升30%左右。

3.赛题解题思路(基于h264算法压缩)

3.1 安装ffmpeg软件库,ffmpeg为目前最广泛使用的编解码软件

Ubuntu安装命令:sudo apt install ffmpeg
windows下载安装包:附件在我的资源里,解压,将bin路径添加到环境变量中去,即可在命令行中使用。
链接: https://download.csdn.net/download/weixin_45583352/18379951.

3.2 yuv444p转为yuv420p

ffmpeg -s 1280*720 -pix_fmt yuv444p -i 输入 -pix_fmt 输出

3.3 yuv420p压缩为h264格式文件

ffmpeg -s 1280*720 -pix_fmt yuv420p -i 输入 -vcodec libx264 -f h264 输出

3.4 h264算法压缩

ffmpeg -i 输入 -r 25 -pix_fmt yuv420p -vcodec h264 -preset veryslow -profile:v baseline  -crf 20 -acodec aac -b:a 32k -strict -5 输出

3.5 h264转为yuv444p

ffmpeg -i 输入 -c:v rawvideo -pix_fmt yuv444p 输出

4.赛题补充

部分文档参考连接:
Yuv444p和yuv420p的区别:https://blog.csdn.net/byhook/article/details/84037338
Yuv转为h264的代码:https://blog.csdn.net/quantum7/article/details/107007208
提交注意事项:
严格按照赛题的提交说明进行提交,并且将压缩文件命名为.code后缀文件,解压文件命名为.yuv后缀,且分别放置在同名子文件夹中。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值