MPEG-2_mpeg编码模式包括

MPEG-2_mpeg编码模式包括作者:haibara来源:pcicp.com本FAQ由(haibara)翻译,期间受到kaito_mkid(pcicp)帮助,在此感谢,由于Newbie的关系,如有翻译错误,还请各位指出,由Doom9的bond编撰的原文。译者注:基本专业名称我都以小括号形式加以解释,详细信息请自行查阅资料。什么是MPEG-4?MPEG-4(ISO14496)是由制定了我们熟知的MPEG-1(MP3,…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
作者:haibara来源:pcicp.com

本FAQ由(haibara)翻译,期间受到kaito_mkid(pcicp)帮助,在此感谢,由于Newbie的关系,如有翻译错误,还请各位指出,由Doom9的bond编撰的原文

译者注:基本专业名称我都以小括号形式加以解释,详细信息请自行查阅资料。

什么是MPEG-4?

MPEG-4(ISO 14496)是由制定了我们熟知的MPEG-1(MP3, VCD)和MPEG-2(DVD, SVCD)标准,并力于使各种音频/视频压缩格式和更多内容标准化的国际标准化组织(International Organization for Standardization/ISO)的工作组,即运动图像专家组(Moving Picture Experts Group/MPEG)发展的广泛的开放标准。
本质上MPEG-4标准不仅把目标定为标准化某些有发展前途的产品(例如达到DVD性能),而且含盖了一个能让产品供应商根据需要选择适当标准去执行的广泛的次级标准。

MPEG-4标准,如上所说,被分成许多不同的次级标准,在Doom9里我们使用者可能最感兴趣的部分如下:
ISO 14496-1(Systems/系统),动画/交互性(类DVD菜单)
ISO 14496-2(Video/视频),如Advanced Simple Profile(ASP/高级简单类),由XviD, DivX5, 3ivx…执行
ISO 14496-3(Audio/音频),Advanced Audio Coding(AAC/先进音频编码)
ISO 14496-10(Video/视频),Advanced Video Coding(AVC/进阶视频编码),著名有H.264
ISO 14496-14(Container/容器),MP4容器格式(使用.mp4作扩展名)
ISO 14496-17(Subtitles/字幕),MPEG-4时标文本字幕格式

这些信息页面正力于提供这些标准的大部分有用的信息,尤其是作为焦点的MPEG-4 ASP和AVC/H.264。

与封闭格式如Micro$oft的Windows Media相比,象MPEG-4一样的开放标准有什么可能的优势?

开放标准的一个好处是当创建产品时允许向所有人开放并遵循它。因此我们已经有许多不同的符合MPEG-4标准并可互相兼容的产品。
其次是互通性大范围的产品选择性,一个开放标准导致竞争,对顾客而言这意味着产品在竞争市场中能更好地提高品质,更少的价格和更关注顾客需求

但不要忘记这也许对我们来说最重要的一点:
一个开放标准允许开源发展,例如我们熟知的XviD。

ISO 14496-10 (Video) – 进阶视频编码(Advanced Video Coding/AVC)

有着AVC/H.264的MPEG-4标准定义了一个拥有最新,最高技术的实用的,充满尖端科技的视频编码格式。

2003年,ISO的MPEG(Moving Pictures Experts Group/运动图像专家组)与联合国(United Nations/UNO)下设的ITU(International Telecommunication Union/国际电信联盟)的VCEG(Video Coding Experts Group/视频编码专家组)这2大组织最终完成并共同规定了AVC/H.264视频编码标准,其中后者曾标准化H.263格式(现主用于视频会议)。

AVC/H.264标准它自身是由MPEG和VCEG的专家构成的Joint Video Team(JVT/联合视频组)发展的。

由MPEG来看,该标准被叫做MPEG-4 Part 10(ISO 14496-10);由ITU来看,它叫做H.264(ITU的公文号) 其中作为后者已广泛流传开来。

新标准选择Advanced Video Coding(AVC/进阶视频编码)作为“官方”名 – 因为对应视频的音频格式是Advanced Audio Coding(AAC/先进音频编码)。


AVC/H.264 Profile

AVC/H.264定义了4种不同的Profile(类):Baseline(基线类), Main(主要类), Extended(扩展类)和High Profile(高端类)(它们各自下分成许多个
):


Baseline Profile 提供I/P帧,仅支持progressive(逐行扫描)和CAVLC


Extended Profile 提供I/P/B/SP/SI帧,仅支持progressive(逐行扫描)和CAVLC


Main Profile 提供I/P/B帧,支持progressive(逐行扫描)和interlaced(隔行扫描),提供CAVLC或CABAC


High Profile (也就是FRExt)在Main Profile基础上新增:8×8 intra prediction(8×8 帧内预测), custom quant(自定义量化), lossless video coding(无损视频编码), 更多的yuv格式(4:4:4…)

只有未来会告诉我们哪一种框架和工具最可能被用于DVD备份,但是我猜想会是有着以下的工具大力帮助的Main和/或High Profile(同样请核实
MPEG-4 ASP的工具描述,除了GMC,所有的工具在AVC下都是可用的):

CAVLC/CABAC:

AVC/H.264定义了2种先进的重构数据流(包括macroblock-type(宏块), motionvectors(运动矢量) + reference-index(参考索引)…)的熵编码工具,一举超越MPEG-4 ASP:

Context-Adaptive Variable Length Coding(CAVLC/上下文自适应变长编码)和 Context-Adaptive Binary Arithmetic Coding(CABAC/上下文自适应二进制算术编码)

CABAC,与AVC/H.264中只是默认算法的CAVLC(也叫UVLC)相比,是个压缩率更强大的算法,据说能额外降低10-15%的比特率(特别在高码率)。CABAC(同CAVLC一样)是一种无损算法,因此不会降低质量,但会减缓编码和解码速度。

Loop/Deblocking Filter(循环/去块滤波器):

与预处理滤波器(例如通过avisynth作用于输入端),或后处理滤波器(通过解码器作用于最终输出端)相反,循环滤波器在编码过程中对每桢进行滤波,编码完成后被用于下一桢的参考。它能消除块效应,尤其在低码率时,但同样会减缓编码和解码速度。

Variable Block Sizes/Macroblock Partitions(块大小可变/宏块划分):

与MPEG-4 ASP(仅Inter4V/4MV能作16×16和8×8块变换)相比,AVC/H.264把动态搜寻精度(Motion Search Precision)提高到4×4(包含的步骤有8×4…)。子块大小是自适应/可变的,一个优秀的编码器应能对每个宏块明智地作出最恰当的划分大小 决定。

Multiple Reference Frames(多重参考桢):

与MPEG-4 ASP(仅允许当前桢的前一桢作为参考桢)相比,AVC/H.264使用帧间搜索方式并提供成倍的参考桢选择,它意味着AVC/H.264编码能决定是否 只是简单地参考前一桢或甚至参考比前桢更过去的桢。因此(例如某个P桢能参考最近I桢前的某桢)不得不提出一种新型桢型:IDR桢,是种其后的桢不允许参 考其前的桢的I桢。使用多重参考桢会减慢编码和解码速度并且可能导致只能在IDR桢剪切。

Weighted Prediction(加权预测):

有了加权预测就能对参考桢进行加权(例如你能测量前一幅图象的亮度程度)。它特别有助于在那些随时可能淡入或淡出的场景中前后图象极为相似,只是画面变暗 的图象的处理。WP对于同时出现淡入及淡出的图象没有效果(例如当图象从一个场景转到另一个场景就会同时出现淡入及淡出)。

Rate Distortion Optimisation(RDO/码率-失真/损耗最佳化):

只要编码器不得不在众多选择中作出绝择时,RDO允许选择最有效的编码方式(例如面临采用桢间/桢内的动态搜寻的决定…)

RDO不是AVC/H.264本身定义的工具,它是第一个由H.264参考软件引入的工具,可谓一种新的途径。其他的编码也能利用RDO,如XviD’的VHQ模式能使用RDO

AVC/H.264与其他流行的视频编码格式的比较测评:


MPEG-2_mpeg编码模式包括

现有的AVC/H.264编码

可用于终端用户的AVC/H.264执行者有
x264,
Nero,
Apple,
Sorenson,
Elecard,
Moonlight,
VSS,
mpegable,
Envivio,
Hdot264 (
binary),
DSPR,
JM (参考软件) (
binary),
ffmpeg,
Philips,
FastVDO,
Skal,
Sony
更多

编码器


x264:第一个公开的可使用High Profile的编码器,开源(GPL)(
源码),使用VFW的有:
x264vfw,
ffdshow(输出.avi),命令行的:
x264cli(输出raw的.mp4),
mencoder(输出raw的.avi)(Doom9的
MeGUI)或
ffmpeg

x264支持2pass, CABAC, 循环滤波, 多重B帧, 双向参考(B-Reference), 多重参考桢, 4×4 P帧块变换, 8×8 B帧块划分, 失真信号化(anamorphic signalling)和High Profile:8×8 dtc(离散余弦变换)与帧内预测, 无损视频编码和自定义无损量化矩阵(custom quant matrix)


NeroDigital AVC
Nero Recode2内含,输出为.mp4

ND AVC支持2pass, CABAC, 自适应循环滤波, 多重B帧, 多重参考桢, 加权预测, 8×8 B帧块划分, 16×16 B帧块划分, 自适应量化(高度Psy)


Sorenson
Sorenson Squeeze 4内含,输出.mp4,

Sorenson支持2pass, 最大2连续B帧, 双向参考, 循环滤波和多重Slice


Apple
Quicktime 7内含,输出.mp4, .3gp和.mov,编码速度很慢

支持2pass, 最大1连续B帧, 循环滤波(0,0), 8×8 P帧块变换, 8×8 B帧块变换, 4×4 I帧块变换, 自适应量化, 5级Slice, 没有CABAC, 没有加权预测, 没有多重参考桢


JM: 此AVC参考软件v9.3版提供Main和High Profile:B/SP帧, CABAC, 循环滤波器, 4×4 块划分, 多重参考桢, 自适应量化, 差错修复(Error Resilience), RDO, 无损视频编码, 自定义量化), 比率控制(Rate Control)等…


Hdot264:由doom9会员charact3r发展的开源(GPL)的VFW版参考软件,仍然以很老的参考软件(JM 4.0c)为基础


VSS:免费的VFW编码器(可预览5天),以参考编码器为基础


Elecard
Elecard Mobile Converter内含,输出.mp4,
MainConcept’s v2 encoder也内含,输出.264和.mpg PS/TS

不再公开的:


Moonlight:Moonlight的
OneClick Compressor v1.1和CyberLink的
PowerEncoder内含,输出.mpg

Moonlight支持1pass(VBR/CBR/预设 量化), CABAC, 循环滤波, 最大2连续B帧, 8×8 B帧块划分, 自适应量化, 自动调整PAR(Pixel Aspect Ratio/象素纵横比), 隔行扫描


MainConcept:免费的编码器(有水印),输出.264和.mpg PS/TS

1pass(CBR/VBR/预设 量化), P帧重排(P-Frame Reorder), CABAC, 循环滤波, 多重B-Vops(Bidirectional Video Object Planes/双向视频对象平面), 多重参考桢, 4×4 P帧块划分), PAR, RDO


mpegable:提供试用有限的免费VFW编码器(不以参考软件为基础),不支持YV12

mpegable支持仅限P帧的1pass(预设量化), 8×8 P帧块划分, 只支持CAVLC, 循环滤波


Envivio
4Coder内含,输出.mp4

解码器 (
比较测评)


ffmpeg:开源(LGPL),包含在
ffdshow(VFW和DShow编码器),
mplayer
VideoLAN

支持B帧, 双向参考, CABAC, 循环滤波, 加权预测和High Profile (8×8 dct与帧内预测, 无损视频编码)


Apple:Quicktime 7支持AVC解码,支持.mp4/.mov,解码速度很慢

仅支持最大1连续B帧, CABAC, 不作后帧参考的循环滤波, 多重B帧和隔行扫描


NeroDigital AVC:Recode2附带DShow解码器和.mp4 Parser

支持Main和High Profile


VSS:VFW解码器 (预览5天) 和
DShow解码器 (限制30天)

VSS DShow支持.avi (支持VSSH和H264 fourcc), CABAC, 循环滤波, B帧


Elecard
Elecard’s MPEG Player v4.0
MainConcept’s v2 encoder内含


Envivio:有个名叫EnvivioTV的非免费AVC DShow解码器,(从2.0版开始,当前版本为2-1-181)支持混合AVC的.mp4


Philips
AVC Alliance播放器内含免费的DShow AVC解码器(只支持raw AVC)


FastVDO:有时间限制(每个视频文件5分钟)的High Profile DShow解码器


Pegasus
这里有发展不成熟的DShow AVC解码器


Basic AVC Decoder用C编写,是一所大学的工程,见
这里

不再公开的:


Moonlight:DShow解码器/Parser支持混合AVC的.mpg, .mp4和.264 Moonlight’s MPEG Player v3.0内含

支持Main和High Profile


MainConcept:v1预览版提供免费DShow AVC解码器(有水印) 并且Parser支持AVC和.mpg PS/TS


mpegable:提供试用有限的VFW解码器 (可用于DShow),支持.avi (支持 DAVC fourcc)


预览样本

NeroDigital:
mp4,
mp4

Sorenson:
mp4

AVC Alliance:
raw

Moonlight:
raw/中码率,
raw/低码率,
raw,
mpg

FastVDO:
raw/high profile

Apple:
mov

Videosoft:
avi,
avi/新,
avi/老

Lead:
ogm


当前AVC/H.264的争论

– 互通性:大多数执行者支持多种容器格式:

.mp4:由MPEG-4标准(ISO 14496-15)定义的AVC容器,Apple, Nero, Sorenson, Envivio, Elecard/Moonlight和x264都支持

.mpg PS/TS:由MPEG-2标准(ISO 13818-1, AMD3)定义的AVC容器,Mainconcept和Elecard/Moonlight支持

.avi:采取AVC-in-AVI的方式非标准,因此会造成不兼容问题。
AVI和VFW的局限(如关于B帧或任意帧的编码顺序),混合这两种格式混合会完全阻碍AVC提供的所有可能特性的执行,因此可能降低质量,或至少降低处理速度和互通性,其竞争性也因此下降。当前VSS和x264(mencoder 和vfw)支持使用AVI

.264/.h264:未混合入容器的原始数据流。JM参考软件, x264cli, mencoder和mainconcept都可输出

– 速度:当前一些执行者编码器速度不敢恭维,依然只有x264和NeroDigital’s AVC的编码器看上去能提供不俗的速度与品质。但这不会改变AVC是种先进的视频编码方式的事实。所以老的CPU编解码AVC会非常耗时


MPEG-4 AVC/H.264的硬件应用化 – HD-DVD/蓝光(Blu-ray)

DVD论坛(DVD Forum)和蓝光光盘协会(Blu-ray Disc Association)正在讨论能支持高清晰(High Definition)内容(存储容量完全超过当前的DVD)下一代DVD格式的继承人选:HD-DVD和BD-ROM


这里报道HD-DVD会强制采用MPEG-4 AVC/H.264,而蓝光支持老早被MPEG-4 AVC/H.264 High Profile纳入-
这里

因此AVC/H.264极有可能成为下一代视频格式,会被广泛地使用和支持,就象今天MPEG-2(用于DVD)的情形一样


更多的文档

阅读更多关于MPEG-4 AVC/H.264的文档:详细说明-
这里,摘要信息-
这里
这里


执行者清单

AVC的测试结论参看
这里

下载完整的AVC/H.264标准详述
这里(Draft from the 7-14 March 2003)

蓝光的技术信息参看
这里

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/191746.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • HashMap扩容机制解读[通俗易懂]

    HashMap扩容机制解读[通俗易懂]扩容机制什么时候需要扩容:当hashmap中的元素个数超过数组大小*loadFactor(负载因子)时,就会进行数组扩容,loadFactor的默认值(DEFAULT_LOAD_FACTOR)是0.75这是一个折中的取值,也就是说,默认情况下数组大小为16,那么当hashmap中的元素个数超过16*0.75=12(阈值或者边界值的时候)就把数组的大小扩展Wie2*16=32,然后重新计算出每个元素在数组中的位置,而这是一个非常耗性能的操作,所以我们最好能够提前预知并设置元素的个数。注

  • 一步一步写算法(洗牌算法)[建议收藏]

    一步一步写算法(洗牌算法)

    2021年12月17日
  • RPC接口mock测试

    RPC接口mock测试1        简介Dubbo目前的应用已经越来越广泛、或者基于Dubbo二次开发的也越来越多,使用到Dubbo的系统基本也是采用微服务架构设计的系统,多个系统、多个应用之间的接口是有依赖关系的,所以就会出现需要MOCK的应用场景。当我们发布了两个应用A和B,应用A引用应用B发布的接口,那么我们的应用场景是MOCK应用B(接口提供方)。通常的MOCK方式是,测试人员自己发布一个一样的接口

    2022年10月13日
  • IT职场求生法则(加强版)

    IT职场求生法则(加强版)

  • varchar2和varchar的区别[通俗易懂]

    varchar2和varchar的区别[通俗易懂]1.varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节;2.VARCHAR2把空串等同于null处理,而varchar仍按照空串处理;3.VARCHAR2字符要用几个字节存储,要看数据库使用的字符集,大部分情况下建议使用varchar2类型,可以保证更好的兼容性…

  • Smail语法「建议收藏」

    Smail语法「建议收藏」Smail语言首先了解什么是smail?apk文件通过apktool反编译出来的都有一个smali文件夹,里面都是以.smali结尾的文件。smali语言是Davlik的寄存器语言,语法上和汇编语言相似,DalvikVM[1]与JVM的最大的区别之一就是DalvikVM是基于寄存器的。基于寄存器的意思是,在smali里的所有操作都必须经过寄存器来进行。S…

    2022年10月22日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号