请输入您要查询的百科知识:

 

词条 x264
释义

H.264和x264

H.264是ITU(International Telecommunication Unite 国际通信联盟)和MPEG(Motion Picture Experts Group 运动图像专家组)联合制定的视频编码标准。从1999年开始,到2003年形成草案,最后在2007年定稿有待核实。在ITU的标准里称为H.264,在MPEG的标准里是MPEG-4的一个组成部分--MPEG-4 Part 10,又叫Advanced Video Codec,因此常常称为MPEG-4 AVC或直接叫AVC。

H.264编码能实现非常好的压缩比,有广泛的适用码率(适于从超低码率低延迟的电话会议到高码率的BluRay光盘和HDTV码流),良好的硬件支持(以PSP、iPod和显卡DXVA为代表)和众多强大的厂商作后盾。

x264始于2003年,从当开源社区的MPEG4-ASP编码器Xvid小有所成时开始的,经过几年的开发,特别是Dark Shikari加入开发后,x264逐渐成为了最好的视频编码器。

RMVB X264 性价比之争

理论知识,我估计很多人也不喜欢看,直接说结论。

同样的片源、码率情况下,x264的mkv一定会比rmvb画质更好,文件更小(264高级参数发挥的作用)。还有请扔掉“mkv版一定会很大,rmvb一定会很小”的错误观念,一般来说用于收藏的mkv版才会很大!

正常情况下mkv只会比rmvb大10%左右,但是质量却提高了不少!历史的车轮滚滚向前,各位rmvb爱好者接受新观念吧!

接上补充 x264是一种编码方式 而RMVB是一种封装格式完全没有可比性 常见的编码方式和封装格式有:x264:MP4/MKV/FLV R10/R9:RMVB/RM XVID/DIVX:AVI

特点

采用CAVLC/CABAC多种算法编码

内置所有macroblock格式(16x16, 8x8, and 4x4 )

Inter P:所有的分割块(从16x16到4x4 )

Inter B:分割块从16x16到8x8

码率控制:恒定的分层编制,单次或多次的ABR压制,可选的VBV压制

场景剪切侦测

支持B-frame

能够任意编制B-frame命令行

无损模式

8x8和4x4的格式能够进行翻转或旋转

自定义精确的矩阵模板

可在多个CPU平行编码

隔行扫描

命令行界面的x264

我们下载到的x264.exe是一个命令行工具,不需要安装,随便放在哪里都能运行。双击x264.exe只能看到打开了一个黑色的窗口里在刷着什么,然后就没了。x264.exe需要在命令行里输入命令,没有GUI。

不可否认有GUI的工具用来很方便,更容易上手,比如用的最广泛的MeGUI,此外还有ripbot、staxrip等GUI。doom9上有都是各种GUI,一一试过来看看自己喜欢什么。MeGUI可以自动更新编码常用的软件,作为自动下载的工具倒是不错。本文主要讲解命令行参数,GUI也是调用同一个x264,因此都用对应的选项。

输入输出文件类型

在加入了ffms/lavf后,x264可以直接输入几乎所有类型的片子,而不是像原来一样必须借助于avs。下面所讲的是输入输出的片子类型,除此之外的输入输出还有多pass中的stats文件、qp file、量化矩阵和tc file。

输入:

x264支持输入的文件类型有raw yuv、y4m、avs和任何可以由ffms或lavf打开的文件。raw yuv会用在64位的x264里。有ffms/lavf打开的片子会自动正确的处理vfr问题。avs和ffms/lavf输入不需要指定片子的分辨率。

输出:

x264可以输出没有封装的H.264视频流,扩展名是.264;matroska视频,扩展名是.mkv;flash视频,扩展名是.flv;mp4视频,扩展名是.mp4。mkv、mp4和flv可以是vfr的。

x264通过输出文件的扩展名判断输出文件类型。

preset和tune系统

x264的参数繁多,开发者为了方便使用者、简化输入和提出编码建议,设计了一套快速调用参数的系统。如果没有特别的需要,请尽量使用preset和tune系统。这套开发者推荐的参数比各种道听途说的参数更合理。

在使用了preset和tune以后,依然可以指定里面已经有的参数。手动指定的参数会覆盖preset和tune里的参数。

--preset

通过--preset的参数调节编码速度和质量的平衡。

--preset的值有ultrafast、superfast、veryfast、faster、fast、medium、slow、slower、veryslow、placebo。从快到慢,参数越来越EP。默认是medium。

--tune

通过--tune的参数值指定片子的类型,是和视觉优化的参数,或有特别的情况。

--tune的值有

film:电影、真人类型;

animation:动画;

grain:需要保留大量的grain时用;

stillimage:静态图像编码时使用;

psnr:为提高psnr做了优化的参数;

ssim:为提高ssim做了优化的参数;

fastdecode:可以快速解码的参数;

zerolatency:零延迟,用在需要非常低的延迟的情况下,比如电视电话会议的编码。

码率控制

视频的码率直接影响到了片子的编码质量。要想效果好,码率足够是最重要的必要条件之一。但是想实现更好的效果和控制文件的体积(码率)之间始终是一对矛盾。这就需要我们通过实践,在强大的编码器的帮助下总结出合适的码率,实现尽量好的效果。

x264有4种码率控制方式,分别是1pass bitrate、crf、qp和2pass bitrate。其中2pass bitrate包含pass bitrate。

1pass bitrate和qp(恒定量化值)一般不推荐使用。

crf

--crf 23 (默认)

一种根据片子质量自动分配码率的vbr码率控制方式。一遍编码,如果对码率没要求请尽量使用crf模式。

可用的值从1到51,越小编码质量越好,码率越高。一般使用16到24,可以为浮点。

crf并不是恒定质量的方式,同一片子同一crf值,其他参数不同可能码率和质量能差比较大,不同的片子之间就更没有可比性了。

2pass bitrate

这种方式可以精确的得到想要的平均码率,2pass代表需要做2次编码,第一遍编码x264先分析全片,得到一个stats文件和一个mbtree文件(默认使用mbtree)。第二遍编码以这两个文件作参考分配合理的码率。需要特定的码率(或文件大小)一定要用2pass(或多pass)编码。

除了2pass,还有多pass模式,在之前分析的基础上再继续分析,理论上会使码率分配更加合理,但实际上2pass已经足够了。

--bitrate 1000 (以1000kbps码率为例)

DXVA

DXVA(DirectX Video Accelaration)通常被称为硬解,是在Windows上用显卡解码H.264等编码视频的方式。AMD的显卡方面,HD2xxx以上的系列都可以DXVA;nVidia的显卡方面,GeForce8000以上的系列都可以DXVA。

符合一定条件的H.264编码的片子才能正常的DXVA。由于H.264的复杂性,用比较老的CPU解码720p和1080p通常比较吃力,因此720p和1080p的片子能否DXVA常常成为矛盾的焦点。为了让大多数人都能正常的看到片子,建议尽量使用能够DXVA的参数压制。

编码开发作者

x264 Team 成员:

Laurent Aimar

Loren Merritt

Eric Petit (OS X)

Min Chen (vfw/asm)

Justin Clay (vfw)

Måns Rullgård

Radek Czyz

Christian Heine (asm)

Alex Izvorski

Alex Wright

获得奖项

2005年 赢得Doom9's 2005 codec shoot-out奖项

2006年 在第3届MSU MPEG-4 AVC/H.264视频编码比赛中获奖

2007年 在第4届MSU MPEG-4 AVC/H.264视频编码比赛中获奖

相关链接

官方网站:http://x264.nl

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/2/27 13:04:12