【H264/AVC 句法和語義詳解】(一): 句法元素分層結(jié)構(gòu)

本篇隸屬于文集:《H264/AVC 句法和語義詳解》,查看文集全部文章待榔,請點(diǎn)擊文字鏈接逞壁。
想看最新文章流济,可以直接關(guān)注微信公眾號:金架構(gòu)

從這一篇開始,我們詳細(xì)的講解H.264/AVC 比特碼流的句法和語義腌闯,可以說绳瘟,能夠?qū)W習(xí)并掌握H.264的句法和語義,是能徹底掌握并應(yīng)用H.264的關(guān)鍵姿骏。在前面幾篇文章中糖声,我們只是從理論層面,介紹了H.264工腋、片姨丈、宏塊、幀內(nèi)預(yù)測擅腰、幀間預(yù)測蟋恬。而在句法和語義中,我們就可以拿到H.264編碼之后的裸流趁冈,用理論加實(shí)踐的方式歼争,一步步探索H.264的編解碼實(shí)現(xiàn)過程。

而在這篇文章里呢渗勘,我們就先從宏觀的角度沐绒,來看看使用H.264編碼之后,得到的裸流的分層結(jié)構(gòu)是什么樣的旺坠。不過在開始之前乔遮,我們先從最基本的開始,來看看句法和語義取刃,這兩個(gè)詞蹋肮,分別代表什么意思?

1. 句法和語義

我們可以拿我們每天說的語言來舉例璧疗,比如以英語為例寫個(gè)句子:

It is a beautiful day today.

恩坯辩,學(xué)過英文的都知道它表達(dá)什么意思,但是我們的重點(diǎn)不是這個(gè)崩侠。我們的重點(diǎn)是漆魔,如何用它來理解什么是句法和語義。首先我們對這個(gè)句子進(jìn)行分析却音,它由六個(gè)單詞組成肪凛,每個(gè)單詞分別代表了一個(gè)意思龄砰,這是學(xué)習(xí)過英語的人的表達(dá)。假設(shè)我們沒學(xué)過英語,我們會(huì)這么說漾狼,這個(gè)句子由六部分(或者六個(gè)元素)組成兼呵,每個(gè)元素有一個(gè)含義柱恤。

所以句法和語義分別是指什么呢?如果我不這樣問涯塔,而是問句法元素和語義是指什么呢?你可能會(huì)恍然大悟清蚀。沒錯(cuò)匕荸,句法元素在上面的英文句子里,可以理解為一個(gè)個(gè)單詞枷邪,而語義就表示單詞的含義榛搔。理解了句法元素和語義,再去理解句法就更簡單啦东揣,它就表示了句法元素的組織結(jié)構(gòu)践惑。

那這和H.264的句法和語義有什么關(guān)系呢?當(dāng)然有關(guān)系嘶卧!

首先我們要明白尔觉,上面那個(gè)英文句子,是我們?nèi)四軌蚶斫獾娜祟愓Z言芥吟。而H.264的比特流侦铜,是計(jì)算機(jī)能理解的二進(jìn)制語言(可能使用機(jī)器語言能更好明白,但是機(jī)器語言現(xiàn)在一般指指令集體系)钟鸵。所以歸根結(jié)底钉稍,它們都屬于一種語言,只不過表達(dá)的意思不同而已棺耍。

比如上面那個(gè)英文句子贡未,它表達(dá)的意思是今天的天氣真美好!而H.264的比特流蒙袍,比如101111000101011111000(當(dāng)然是瞎寫的)俊卤,它可能就在表達(dá)圖像的寬或高、片的個(gè)數(shù)左敌、宏塊的大小、樣點(diǎn)像素值等等俐镐。

當(dāng)然具體在表達(dá)什么矫限,我們需要學(xué)習(xí)了H.264的句法和語義之后才知道,所以學(xué)習(xí)H.264的句法和語義佩抹,其實(shí)就相當(dāng)于在英語里背單詞和學(xué)習(xí)英語語法叼风。只不過H.264的語法和英語的語法不一樣,我們需要學(xué)習(xí)了之后才知道棍苹。

要注意雖然我們可以把H.264的句法理解為語法无宿,并且它的英文也確實(shí)為Syntax,表示語法枢里、句法的意思孽鸡。但是我們在H.264里還是通常用句法這一詞蹂午,這是因?yàn)閷戇^代碼的都知道,在編程語言中也有各種語法彬碱,在H.264的比特流的編解碼中豆胸,也會(huì)涉及到一系列編程語法。

所以為了避免歧義巷疼,我們在H.264里晚胡,分別使用句法,來表示句法元素的組織結(jié)構(gòu)嚼沿。用語法估盘,來表示編程語言語法。

2. 句法元素分層結(jié)構(gòu)

理解了句法和語義之后骡尽,我們就來看看H.264比特流的分層結(jié)構(gòu)遣妥,這是開始學(xué)習(xí)H.264句法的第一步。我們的標(biāo)題爆阶,分別使用句法元素和比特流這兩個(gè)詞燥透,來描述分層結(jié)構(gòu),是因?yàn)槲覀兛梢哉驹趦蓚€(gè)維度來分析H.264的比特流辨图。

在這一小節(jié)中班套,我們先站在句法元素的角度,來分析一下它的分層結(jié)構(gòu)故河。

為什么可以站在句法元素的角度來分析吱韭?

我們通過第一小節(jié)知道,在H.264的比特碼流中鱼的,分析單個(gè)的比特是沒有意義的理盆,只有分析由比特組成的句法元素,并且了解其語義凑阶,才能知道這段比特流表達(dá)了什么猿规。所以我們可以簡單的視為,碼流就是由一個(gè)個(gè)句法元素依次銜接組成的宙橱。只要理解了這一層關(guān)系姨俩,那么接下來的工作就簡單多了!

我們都知道(MPEG-1师郑、2也講過)环葵,視頻是由視頻序列組成的,而視頻序列又由一幀幀圖像組成宝冕,圖像又由片組成张遭,片由宏塊組成,宏塊由子宏塊組成地梨。

既然一段碼流菊卷,由多個(gè)句法元素組成缔恳,那這段碼流表示了什么呢?它是表示了一個(gè)序列的烁,還是一幀圖像褐耳,還是片、宏塊或子宏塊渴庆?這就要涉及到這一小節(jié)的標(biāo)題了铃芦,也就是句法元素的分層結(jié)構(gòu)。在講H.264的句法元素分層結(jié)構(gòu)之前襟雷,我們先看看之前標(biāo)準(zhǔn)的分層結(jié)構(gòu)刃滓。

2.1 以往標(biāo)準(zhǔn)句法元素的分層結(jié)構(gòu)
以往標(biāo)準(zhǔn)中的分層結(jié)構(gòu)

上圖就是在之前標(biāo)準(zhǔn)中的分層結(jié)構(gòu),可以看到句法元素同畫面的劃分一樣耸弄,被組織成了有層次的結(jié)構(gòu)咧虎,這種結(jié)構(gòu)有助于更高效的節(jié)省碼流。但是這樣的結(jié)構(gòu)计呈,有幾個(gè)很大的缺點(diǎn):

(1)在每一層中砰诵,數(shù)據(jù)和它的頭部,形成強(qiáng)依賴關(guān)系捌显,一旦頭部丟失茁彭,數(shù)據(jù)部分也不可能正確被解碼。

(2)在序列層及圖像層扶歪,因?yàn)閿?shù)據(jù)量過大理肺,不可能將所有的句法元素一次傳輸,這時(shí)假如頭部所在的分組丟失善镰,那么該層其他的數(shù)據(jù)妹萨,即使能正確接收也無法解碼。

(3)圖像層內(nèi)的各個(gè)片之間炫欺,經(jīng)常會(huì)攜帶相同的數(shù)據(jù)乎完,造成碼流的浪費(fèi)。

所以在此基礎(chǔ)上品洛,H.264取消了圖像層和序列層树姨,取而代之的,將原本屬于圖像層和序列層的大部分句法元素毫别,抽取出來形成圖像參數(shù)集和序列參數(shù)集娃弓,其余的部分典格,則放入片層岛宦。

2.2 H.264的句法元素的分層結(jié)構(gòu)

下圖為H.264圖像參數(shù)集和序列參數(shù)集,與片中句法元素的關(guān)系:

H.264參數(shù)集與片中句法元素的關(guān)系

從圖中可以看到耍缴,同一個(gè)序列參數(shù)集可以被多個(gè)序列中的圖像參數(shù)集引用砾肺,同一個(gè)圖像參數(shù)集也可以被多個(gè)圖像引用挽霉。所以我們在打開H.264碼流文件時(shí)會(huì)看到,序列參數(shù)集和圖像參數(shù)集位于碼流的最前面变汪。如果編碼器認(rèn)為需要更新參數(shù)集時(shí)侠坎,會(huì)發(fā)送新的參數(shù)集。

在這種引用關(guān)系中裙盾,被引用方在時(shí)間上必須先被發(fā)送实胸,所以在H.264建議中,參數(shù)集和參數(shù)集外部的句法元素番官,分別處于不同的信道中傳輸庐完。

除了在參數(shù)上的改進(jìn),H.264在片層以下的句法元素上的結(jié)構(gòu)徘熔,和之前的標(biāo)準(zhǔn)類似门躯。而且因?yàn)槿∠藞D像層,片成為攜帶圖像像素?cái)?shù)據(jù)的酷师,最上層的數(shù)據(jù)單位讶凉。并且每個(gè)片必須攜帶所屬的圖像的編號、大小等信息山孔,這些信息在同一個(gè)圖像的每個(gè)片中必須是一致的懂讯。

以上就是H.264的句法元素的分層結(jié)構(gòu),它分別為序列饱须、圖像域醇、片、宏塊蓉媳、子宏塊這5個(gè)層次譬挚。

當(dāng)然有的同學(xué)一下并不能完全理解,句法元素的分層結(jié)構(gòu)是指什么酪呻,那是因?yàn)橐胪耆斫饧跣€要結(jié)合之后要講的NALU,以及序列玩荠、圖像漆腌、片、宏塊阶冈、子宏塊這些層次闷尿,具體包含哪些句法元素,以及句法元素的語義是什么女坑。而在這里填具,我們可以先簡單的理解為,圖像引用序列,片引用圖像劳景,同時(shí)片包含宏塊誉简,宏塊包含子宏塊。

3. 關(guān)于H.264的協(xié)議文檔

H.264一直在更新盟广,英語底子好的同學(xué)闷串,可以直接根據(jù)下面的鏈接,去ITU的官網(wǎng)上下載最新版筋量。

http://www.itu.int/rec/T-REC-H.264

當(dāng)然即使英語好烹吵,也不一定能看懂文檔在講啥,因?yàn)橛泻枚鄬I(yè)詞匯桨武。所以我們可以下載個(gè)中文版年叮,但是最新的17版沒有中文版,我們下個(gè)05版的中文版就足夠了玻募。擼一遍05的中文版后只损,再擼一遍最新的英文版就輕松多了

http://www.itu.int/rec/T-REC-H.264-200503-S/en

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市七咧,隨后出現(xiàn)的幾起案子跃惫,更是在濱河造成了極大的恐慌,老刑警劉巖艾栋,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件爆存,死亡現(xiàn)場離奇詭異,居然都是意外死亡蝗砾,警方通過查閱死者的電腦和手機(jī)先较,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來悼粮,“玉大人闲勺,你說我怎么就攤上這事】勖ǎ” “怎么了菜循?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長申尤。 經(jīng)常有香客問我癌幕,道長,這世上最難降的妖魔是什么昧穿? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任勺远,我火速辦了婚禮,結(jié)果婚禮上时鸵,老公的妹妹穿的比我還像新娘胶逢。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布宪塔。 她就那樣靜靜地躺著,像睡著了一般囊拜。 火紅的嫁衣襯著肌膚如雪某筐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天冠跷,我揣著相機(jī)與錄音南誊,去河邊找鬼。 笑死蜜托,一個(gè)胖子當(dāng)著我的面吹牛抄囚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播橄务,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼幔托,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蜂挪?” 一聲冷哼從身側(cè)響起重挑,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎棠涮,沒想到半個(gè)月后谬哀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡严肪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年史煎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驳糯。...
    茶點(diǎn)故事閱讀 38,747評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡篇梭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出酝枢,到底是詐尸還是另有隱情很洋,我是刑警寧澤,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布隧枫,位于F島的核電站喉磁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏官脓。R本人自食惡果不足惜协怒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望卑笨。 院中可真熱鬧孕暇,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至座舍,卻和暖如春沮翔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背曲秉。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工采蚀, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人承二。 一個(gè)月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓榆鼠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親亥鸠。 傳聞我的和親對象是個(gè)殘疾皇子妆够,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評論 2 350