Xvid编解码色彩失真(偏色)问题及其解决
来源:互联网 发布:laravel nginx 编辑:程序博客网 时间:2024/05/01 02:10
### Date:2017/4/11
### Author: SoaringLee
在之前的Xvid源码在Linux/Unix系统下编译过程中,遇到如下两个问题:
(1)对原始yuv视频采用xvid mpeg4编码器进行编码后,出现编码后的码流解码后的视频色彩失真问题。
(2)但是比较遗憾的是,yuvplayer这个软件只有windows版本的exe,没有linux下的,所以对解码后得到的dec.yuv不能进行播放和验证解码的正确性。一般情况下,这里的编码和解码应该都是正确的。
对于第二个问题,可以通过python脚本中的filecmp模块中的cmp函数来比较通过解码器在Linux下和windows下解码得到的yuv文件,来验证解码的正确性。对于yuvplayer在linux下的编译可能有些困难,这还涉及到界面。
通过比较两个解码得到的yuv文件,>>filecmp.cmp('dec.yuv','dec_m.yuv') >>True
对于第一个问题,原因已经找到了。对于xvid mpeg4编码器xvid_encraw,默认采用的原始视频文件的色彩空间为yv12,然而一般yuv视频采用的是标准yuv色彩空间(I420)。这两个彩色空间都是YUV 420 planar的,唯一的区别是U、V的存储顺序不一样,I420是Y之后紧跟是U,然后是V;而yv12是Y之后紧跟的是V,然后是U。因此,编码之后的码流出现了偏色现象(偏蓝)。xvid解码器的输出文件的色彩空间默认采用的是I420。
因此,这个问题的根本原因是输入yuv的彩色空间的设置不当。
参考:http://blog.chinaunix.net/uid-1827018-id-4711434.html
- Xvid编解码色彩失真(偏色)问题及其解决
- Xvid视频编解码算法
- java 编解码问题(一)
- 字节编解码问题
- 中文编解码问题
- CodeWars 编解码问题
- VC 解决图片失真问题
- VC解决stretchblt 失真问题
- SetSTretchBltMode解决图像失真问题
- 解决StretchBlt()图像失真问题
- 视音频编解码技术及其实现
- java中的编解码问题
- Python的编解码问题
- base64的编解码问题
- python2.7 编解码问题
- 使用xvid进行解码
- xvid解码的几个问题
- 调用xvid 实现解码
- JavaScript创建对象---工厂模式
- TensorFlow 的神经网络库Sonnet
- 对android的android:taskAffinity初识
- cp命令强制覆盖方式实现
- Service
- Xvid编解码色彩失真(偏色)问题及其解决
- 从零开始用 Flask 搭建一个网站(一)
- SQL实现定时执行计划(---SQL Server2012)
- 数据存储单位从B/KB/MB/GB到NB/DB,如何转化?全球数据量有多少
- RxBus在rxjava2.0 的使用
- EditText实现分割输入内容
- ReactNative开发中如何去掉iOS状态栏的"Loading from..."
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)
- LeetCode 21. Merge Two Sorted Lists