📄 [原创] 如何读标准和代码 - h_264乐园 - 视频技术论坛 中华视频网ffmpeg工程组 - powered by discuz!.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0049)http://bbs.chinavideo.org/viewthread.php?tid=4164 -->
<HTML><HEAD><TITLE>[原创] 如何读标准和代码 - H.264乐园 - 视频技术论坛 中华视频网|ffmpeg工程组 - Powered by Discuz!</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gbk">
<META
content="Discuz!,Board,Comsenz,forums,bulletin board,h264,ffmpeg,ffdshow,AnyChat,chianvideo.org,视频会议"
name=keywords>
<META
content="视频技术论坛 中华视频网,专业视频技术,提供音视频论文、源代码、方案,AnyChat.cn视频会议系统 - Discuz! Board"
name=description>
<META content="MSHTML 6.00.2900.5626" name=GENERATOR>
<META content=TRUE name=MSSmartTagsPreventParsing>
<META http-equiv=MSThemeCompatible content=Yes><LINK id=css
href="[原创] 如何读标准和代码 - H_264乐园 - 视频技术论坛 中华视频网ffmpeg工程组 - Powered by Discuz!.files/style_2.css"
type=text/css rel=stylesheet>
<SCRIPT
src="[原创] 如何读标准和代码 - H_264乐园 - 视频技术论坛 中华视频网ffmpeg工程组 - Powered by Discuz!.files/common.js"
type=text/javascript></SCRIPT>
<SCRIPT
src="[原创] 如何读标准和代码 - H_264乐园 - 视频技术论坛 中华视频网ffmpeg工程组 - Powered by Discuz!.files/menu.js"
type=text/javascript></SCRIPT>
</HEAD>
<BODY onkeydown="if(event.keyCode==27) return false;">
<CENTER>
<DIV class=mainborder></DIV>
<DIV class=headerline style="HEIGHT: 6px"></DIV>
<DIV class=maintable>
<DIV style="WIDTH: 100%; HEIGHT: 78px; TEXT-ALIGN: left">
<DIV class=right><BR>
<SCRIPT type=text/javascript><!--
google_ad_client = "pub-5888130182048891";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
//--></SCRIPT>
<SCRIPT
src="[原创] 如何读标准和代码 - H_264乐园 - 视频技术论坛 中华视频网ffmpeg工程组 - Powered by Discuz!.files/show_ads.js"
type=text/javascript>
</SCRIPT>
</DIV><A href="http://bbs.chinavideo.org/index.php"><IMG alt=视频技术论坛
src="[原创] 如何读标准和代码 - H_264乐园 - 视频技术论坛 中华视频网ffmpeg工程组 - Powered by Discuz!.files/logo.gif"
border=0></A> </DIV></DIV>
<DIV class=headerline style="HEIGHT: 6px"></DIV>
<DIV class=headermenu>
<DIV class=maintable>
<DIV class=right id=menu><SPAN class=bold>游客: </SPAN><A
href="http://bbs.chinavideo.org/chinavideoreg.php">注册</A> | <A
href="http://bbs.chinavideo.org/chinavideologin.php?action=login">登录</A> | <A
href="http://bbs.chinavideo.org/member.php?action=list">会员</A> | <SPAN
id=stats><A href="http://bbs.chinavideo.org/stats.php">统计</A>
<SCRIPT type=text/javascript>menuregister(false, "stats")</SCRIPT>
</SPAN> | <A href="http://bbs.chinavideo.org/faq.php">帮助</A> </DIV></DIV></DIV>
<DIV class=headerline style="HEIGHT: 6px"></DIV>
<DIV class=maintable><BR>
<DIV class="subtable nav" style="WIDTH: 98%"><SPAN id=forumlist><A
href="http://bbs.chinavideo.org/index.php">视频技术论坛</A>
<SCRIPT type=text/javascript>menuregister(false, "forumlist")</SCRIPT>
</SPAN> » <A
href="http://bbs.chinavideo.org/forumdisplay.php?fid=29">H.264乐园</A> » [原创]
如何读标准和代码</DIV><BR></DIV>
<DIV class=maintable>
<TABLE style="CLEAR: both" cellSpacing=0 cellPadding=0 width="98%"
align=center><TBODY>
<TR>
<TD vAlign=bottom>
<DIV style="MARGIN-BOTTOM: 4px"><A style="FONT-WEIGHT: normal"
href="http://bbs.chinavideo.org/redirect.php?fid=29&tid=4164&goto=nextoldset">‹‹
上一主题</A> | <A style="FONT-WEIGHT: normal"
href="http://bbs.chinavideo.org/redirect.php?fid=29&tid=4164&goto=nextnewset">下一主题
››</A><BR></DIV>
<DIV class=p_bar><A class=p_total> 12 </A><A
class=p_pages> 1/2 </A><A class=p_curpage>1</A><A class=p_num
href="http://bbs.chinavideo.org/viewthread.php?tid=4164&extra=&page=2">2</A><A
class=p_redirect
href="http://bbs.chinavideo.org/viewthread.php?tid=4164&extra=&page=2">››</A></DIV></TD>
<TD vAlign=bottom align=right width="40%">
<DIV class=right> <A
href="http://bbs.chinavideo.org/post.php?action=reply&fid=29&tid=4164&extra="><IMG
alt=""
src="[原创] 如何读标准和代码 - H_264乐园 - 视频技术论坛 中华视频网ffmpeg工程组 - Powered by Discuz!.files/reply.gif"
border=0></A></DIV>
<DIV class=right id=newspecialheader><A
href="http://bbs.chinavideo.org/post.php?action=newthread&fid=29&extra="><IMG
alt=""
src="[原创] 如何读标准和代码 - H_264乐园 - 视频技术论坛 中华视频网ffmpeg工程组 - Powered by Discuz!.files/newtopic.gif"
border=0></A><A
href="http://bbs.chinavideo.org/viewthread.php?tid=4164###"><IMG alt=""
src="[原创] 如何读标准和代码 - H_264乐园 - 视频技术论坛 中华视频网ffmpeg工程组 - Powered by Discuz!.files/newspecial.gif"
border=0></A>
<SCRIPT
type=text/javascript>menuregister(false, "newspecialheader", true)</SCRIPT>
</DIV>
<DIV class="popupmenu_popup newspecialmenu" id=newspecialheader_menu
style="DISPLAY: none">
<TABLE cellSpacing=0 cellPadding=4 width="100%" border=0>
<TBODY>
<TR>
<TD class=popupmenu_option>
<DIV class=newspecial><A
href="http://bbs.chinavideo.org/post.php?action=newthread&fid=29&extra=&poll=yes">投票</A></DIV></TD></TR>
<TR>
<TD class=popupmenu_option>
<DIV class=newspecial><A
href="http://bbs.chinavideo.org/post.php?action=newthread&fid=29&extra=&trade=yes">交易</A></DIV></TD></TR>
<TR>
<TD class=popupmenu_option>
<DIV class=newspecial><A
href="http://bbs.chinavideo.org/post.php?action=newthread&fid=29&extra=&reward=yes">悬赏</A></DIV></TD></TR>
<TR>
<TD class=popupmenu_option>
<DIV class=newspecial><A
href="http://bbs.chinavideo.org/post.php?action=newthread&fid=29&extra=&activity=yes">活动</A></DIV></TD></TR></TBODY></TABLE></DIV></TD></TR></TBODY></TABLE></DIV>
<SCRIPT type=text/javascript>
function fastreply(subject) {
if($('postform')) {
$('postform').subject.value = subject;
$('postform').message.focus();
}
}
</SCRIPT>
<DIV class=maintable>
<DIV class=spaceborder style="WIDTH: 98%; BORDER-BOTTOM: medium none">
<TABLE cellSpacing=0 cellPadding=4 width="100%" align=center>
<TBODY>
<TR class=header>
<TD style="COLOR: #154ba0" colSpan=2>
<DIV class=right style="FONT-WEIGHT: normal"><A
href="http://bbs.chinavideo.org/viewthread.php?action=printable&tid=4164"
target=_blank>打印</A> | <A
href="http://bbs.chinavideo.org/misc.php?action=emailfriend&tid=4164">推荐</A>
| <A
href="http://bbs.chinavideo.org/my.php?item=subscriptions&subadd=4164">订阅</A>
| <A
href="http://bbs.chinavideo.org/my.php?item=favorites&favadd=4164&type=thread">收藏</A>
</DIV>标题: [原创] 如何读标准和代码</TD></TR>
<TR class=category>
<TD class=bold align=middle colSpan=2> <A title=主题管理记录
href="http://bbs.chinavideo.org/misc.php?action=viewthreadmod&tid=4164"
target=_blank>本主题由 firstime 于 2008-8-6 11:28 AM 加入精华</A>
</TD></TR></TBODY></TABLE></DIV>
<FORM name=delpost
action=topicadmin.php?action=delpost&fid=29&tid=4164&page=1
method=post><INPUT type=hidden value=b65a5a58 name=formhash>
<DIV class=spaceborder
style="BORDER-TOP: medium none; MARGIN-BOTTOM: 4px; WIDTH: 98%">
<TABLE class=t_row cellSpacing=0 cellPadding=4 width="100%" align=center>
<TBODY>
<TR style="HEIGHT: 100%">
<TD class=t_user vAlign=top width="18%"><A class=bold
href="http://bbs.chinavideo.org/viewpro.php?uid=1900"
target=_blank>firstime</A> <SPAN class=smalltxt>(天之骄子)</SPAN> <BR>
<DIV class=smalltxt>超级版主<BR><IMG alt="Rank: 8"
src="[原创] 如何读标准和代码 - H_264乐园 - 视频技术论坛 中华视频网ffmpeg工程组 - Powered by Discuz!.files/star_level3.gif"><IMG
alt="Rank: 8"
src="[原创] 如何读标准和代码 - H_264乐园 - 视频技术论坛 中华视频网ffmpeg工程组 - Powered by Discuz!.files/star_level3.gif"><BR><BR>
<TABLE style="TABLE-LAYOUT: fixed; OVERFLOW: hidden" cellSpacing=0
cellPadding=0 width="95%" border=0>
<TBODY>
<TR>
<TD align=middle>
<DIV class=avatar style="WIDTH: 120px"><IMG height=120 alt=""
src="[原创] 如何读标准和代码 - H_264乐园 - 视频技术论坛 中华视频网ffmpeg工程组 - Powered by Discuz!.files/1900.jpg"
width=120 border=0></DIV></TD></TR></TBODY></TABLE><BR>UID 1900<BR>精华 <A
href="http://bbs.chinavideo.org/digest.php?authorid=1900">32</A> <BR>积分
760<BR>帖子 929<BR>阅读权限 150<BR>注册 2006-9-26<BR>状态 <B>在线</B> </DIV></TD>
<TD
style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px"
vAlign=top width="82%">
<TABLE class=t_msg cellSpacing=0 cellPadding=4 border=0>
<TBODY>
<TR>
<TD>
<DIV>
<DIV class="right t_number"><A class=bold
onclick="window.clipboardData.setData('text','http://bbs.chinavideo.org/viewthread.php?tid=4164&page=1#pid13297')"
href="http://bbs.chinavideo.org/viewthread.php?tid=4164###">#1</A></DIV>
<DIV style="PADDING-TOP: 4px">发表于 2008-8-5 11:10 AM <A
href="http://bbs.chinavideo.org/viewpro.php?uid=1900">资料</A> <A
href="http://bbs.chinavideo.org/blog.php?uid=1900"
target=_blank>文集</A> <A
href="http://bbs.chinavideo.org/pm.php?action=send&uid=1900"
target=_blank>短消息</A> <A
href="http://wpa.qq.com/msgrd?V=1&Uin=500144&Site=视频技术论坛&Menu=yes"
target=_blank><IMG alt=QQ
src="[原创] 如何读标准和代码 - H_264乐园 - 视频技术论坛 中华视频网ffmpeg工程组 - Powered by Discuz!.files/qq1_offline.gif"
border=0></A> </DIV></DIV></TD></TR>
<TR>
<TD class=line style="PADDING-TOP: 10px" vAlign=top height="100%"><A
title="评分 0"
href="http://bbs.chinavideo.org/misc.php?action=viewratings&tid=4164&pid=13297"
name=pid13297></A><SPAN class=bold>[原创] 如何读标准和代码</SPAN><BR><BR>
<DIV style="FONT-SIZE: 12px"><FONT
color=white>首先</FONT>首先,还是要弄清楚编解码的流程和 H.264 的关键技术,看白皮书就知道了,另外 H.264
综述类的文章和别人的学位论文一般也会讲到;其次,弄清楚代码的各个函数实现的功能,这个可以看看 JM
代码里各个函数前面的函数说明;最后,弄清楚标准各个章节讲的什么内容:这里只说重要的。第三章是名词解释,第四章是缩略语,第五章是一些计算方式和运算符号的说明,第六章是与
H.264 相关的一些视频基础知识和 H.264 中用到的一些过程推导,第七章是 NALU
及其以下语法结构的语法和语义(如果要知道码流结构就要看这一章了),第八章是详细说明解码过程中某一个模块的功能怎么完成,第九章是熵编码,附录
A 是关于 profile 和 level 的具体规定,附录 B 是关于如何从字节流中解析 NALU(标准没有说明如何在 RTP
流中解析 NALU)。<BR><BR><BR>
有了上面的基本知识,下面我们结合对码流的解析过程来讲讲怎么读标准:<BR>1、如果是字节流的码流当然就首先要对字节流进行解析,这就要看附录
B 了;如果是 RTP 格式的码流,那首先就要按 RFC3984 来解析了(标准没有规定 RTP
格式码流的解析过程);<BR><BR>2、字节流解析完后提取出来的就是 NALU 了,对 NALU 的解析就要看 7.3.1
小节了。第七章中黑色的粗体字都是在码流中可能出现的语法元素,解码器的首要任务就是要对这些语法元素进行解析。对于这些码流中的语法元素我们要进行解析必须知道三个问题:<BR>(1)、什么时候存在于码流中?这样我们才能知道当前解析的是哪个语法元素;<BR>(2)、采用什么样的熵编码方式?这样我们才能知道如何解析;<BR>(3)、含义是什么?这样我们才知道解析出来之后用来干什么。<BR>
三个问题的答案分别是:<BR>(1)、有 if 条件关联的就是可能出现的,没有 if
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -