圖像、幀、片、NALU(firstime)

圖像、幀、片、NALU 是學習 H.264 的人常常感到困惑的一些概念,我在這里對自己的理解做一些闡述,歡迎大家討論:


H.264 是一次概念的革新,它打破常規,完全沒有 I 幀、P幀、B 幀的概念,也沒有 IDR 幀的概念。對于 H.264 中出現的一些概念從大到小排序依次是:序列、圖像、片組、片、NALU、宏塊、亞宏塊、塊、像素。這里有幾點值得說明:
(1)、在 H.264 協議中圖像是個集合概念,頂場、低場、幀都可以稱為圖像(本文后面內容用到圖像概念時都是集合概念,不再重復說明)。因此我們可以知道,對于 H.264 協議來說,我們平常所熟悉的那些稱呼,例如:I 幀、P 幀、B 幀等等,實際上都是我們把圖像這個概念具體化和細小化了,即我們提到的“幀”通常就是指不分場的圖像;
(2)、如果不采用 FMO(靈活宏塊排序) 機制,則一幅圖像只有一個片組
(3)、如果不使用多個片,則一個片組只有一個片;
(4)、如果不采用 DP(數據分割)機制,則一個片就是一個 NALU,一個 NALU 也就是一個片。否則,一個片由三個 NALU 組成(即標準“表7-1”中 nal_unit_type 值為 2、3、4 的三個 NALU 屬于一個片);
(5)、以上所述的片和 NALU 的大小關系并不是抽象概念上的從屬關系。從概念的從屬關系上來看,NALU其實又是片的一個集合概念,例如:標準“表7-1”中 nal_unit_type 值為 5 的 NALU 包括 I 片或者 SI 片。

一幅圖像根據組成它的片類型來分,可以分為標準“表7-5”中的 8 種類型。我們平常應用中所最常見到的其實是這些類型的特例。例如:我們平常所謂的“I 幀”和“IDR 幀”,其實是 primary_pic_type 值為 0 的圖像,我們平常所謂的“P幀”其實是 primary_pic_type 值為 1 的圖像的特例,我們平常所謂的“B幀”其實是 primary_pic_type 值為 2 的圖像的特例。

一幅圖像根據概念來分可以分為兩種:IDR 圖像和非 IDR 圖像。一幅圖像是否是 IDR 圖像是由組成該圖像的 NALU 決定的,如果組成該圖像的 NALU 為標準“表7-1”中 nal_unit_type 值為 5 的 NALU,則該圖像為 IDR 圖像,否則為非 IDR 圖像。這里也有幾點值得說明:
(1)、nal_unit_type 值為 5 的 NALU 只會出現在 IDR 圖像中,而 IDR 圖像中的所有 NALU 都是nal_unit_type 值為 5 的 NALU;
(2)、我們以組成一幅圖像的片的類型來區分該圖像是否是 IDR 圖像是錯誤的。例如:一幅圖像中的所有片都是 I 片并不代表這幅圖像就是 IDR 圖像。因為 I 片也可以從屬于 nal_unit_type 值為 1 的 NALU。只不過我們平常最常見到的形式是:所有片都是 I 片的圖像就是 IDR 圖像。其實這個時候 IDR 圖像的概念也被我們具體化和細小化了。

一幅圖像由 1~N 個片組組成,而每一個片組又由一個或若干個片組成。圖像解碼過程中總是按照片進行解碼,然后按照片組將解碼宏塊重組成圖像。從這種意義上講,片實際是最大的解碼單元。而一個片又包含哪些類型的宏塊呢?標準“表7-10”做了最好的說明。一個 I 宏塊又分為哪些類型呢?標準“表7-11”做了最好的說明。一個 P 宏塊又分為哪些類型呢?標準“表7-13”做了最好的說明。一個 B 宏塊又分為哪些類型呢?標準“表7-14”做了最好的說明。一個 P 宏塊的亞宏塊又分為哪些類型呢?標準“表7-17”做了最好的說明。一個 B 宏塊的亞宏塊又分為哪些類型呢?標準“表7-18”做了最好的說明。

樓上還是沒看明白哈。例如一幀 CIF 圖像尺寸為 352*288;不分場時可以叫圖像,也可以叫幀,其大小為 352*288;分場后其中一半也可以叫圖像,也可以叫頂場,其大小為 352*144,另一半也可以叫圖像,也可以叫低場,其大小為 352*144。各個論文中提到的幀一般都是指不分場時候的圖像
——(1)、在 H.264 協議中圖像是個集合概念,頂場、低場、幀都可以稱為圖像(本文后面內容用到圖像概念時都是集合概念,不再重復說明)。因此我們可以知道,對于 H.264 協議來說,我們平常所熟悉的那些稱呼,例如:I 幀、P 幀、B 幀等等,實際上都是我們把圖像這個概念具體化和細小化了

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/455863.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455863.shtml
英文地址,請注明出處:http://en.pswp.cn/news/455863.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Python的黑魔法】實例方法、靜態方法和類方法

class Bird:# classmethod修飾的方法是類方法classmethoddef fly (cls):print(類方法fly: ,cls)# staticmethod修飾的方法是靜態方法# staticmethoddef info (p):print(靜態方法info: , p)if __name__ __main__:# 調用類方法,Bird類會自動綁定到第一個參數Bird.fl…

基于dreamweaver軟件設計和開發一網站_基于 abp vNext 和 .NET Core 開發博客項目 Blazor 實戰系列(一)...

系列文章使用 abp cli 搭建項目給項目瘦身,讓它跑起來完善與美化,Swagger登場數據訪問和代碼優先自定義倉儲之增刪改查統一規范API,包裝返回模型再說Swagger,分組、描述、小綠鎖接入GitHub,用JWT保護你的API異常處理和…

CSS邊框,背景,邊距,溢出

CSS邊框,背景,邊距,溢出 css邊框屬性 border:寬度 樣式 顏色; border-color; border-style; 邊框樣式:solid實現,dotted點狀線,dashed虛線CSS3的樣式 border-radius:圓角處理 box-shadow: x軸偏移 y軸偏移 模糊度 擴散成都 顏色…

LINUX 內存使用情況

# free 顯示結果如下: Mem:表示物理內存統計 total 內存總數 8057964KBused 已使用的內存 7852484KBfree 空閑的內存數 205480KBshared 當前已經廢棄不用,總是0buffers Buffer 緩存內存數: 290432KBcached Page 緩存內存數:5735024KB(存在關…

vagrant系列教程(四):vagrant搭建redis與redis的監控程序redis-stat(轉)

閱讀目錄 下載redis解壓redis編譯安裝redis配置redisredis開機自啟動系統參數的調整上一篇php7環境的搭建 真是火爆,僅僅兩天時間,就破了我之前swagger系列的一片文章,看來,大家對搭建環境真是情有獨鐘。 為了訪問量,我…

sps及pps在解碼器內傳遞過程

首先解碼器中有一個全局變量seq_parameter_set_rbsp_t SeqParSet[MAXSPS];// MAXSPS32,它是一個指向序列參數集的數組。還有一個全局變量seq_parameter_set_rbsp_t *active_sps;主要為后續解碼所用。解碼器先將碼流中的數據讀入臨時指針sps,之后存入全局…

【技術分享】Ubuntu下使用微信教程

做后端開發的同學用的Linux(ubuntu),肯定會因為沒有適配微信版本會感覺不太舒服,很多時候因為缺少一些辦公通訊軟件而感到不便。現在已經有很方便的Wine WeChat方案,但是微信在Wine上配置還有許多bug,今天在github上看…

python join函數_Python join()函數

原博文 2016-08-12 10:16 ? 今天寫python 100例時,有個題目是大致是這樣的:已知輸入形式是1321,要求輸出形式為1123 一開始思路是將輸入的字符串用split()函數劃分成數組,在對數組進行排序,再用for循環輸出 代碼附上&…

CSS中的盒子

盒子 盒子模型解釋元素在頁面中顯示成一個方塊,類似一個盒子,CSS盒子模型就是使用現實中盒子來做比喻,幫助我們設置元素對應的樣式。盒子模型示意圖如下: 把元素叫做盒子,設置對應的樣式分別為:盒子的邊框…

分享Kali Linux 2017年第17周鏡像文件

分享Kali Linux 2017年第17周鏡像文件 Kali Linux官方于4月23日發布2017年的第17周鏡像。這次維持了11個鏡像文件的規模。默認的Gnome桌面的4個鏡像,E17、KDE、LXDE、MATE、XFCE桌面的各一個,手機版的包括ARMEL和ARMHF。有最近要安裝Kali Linux系統的&am…

Djang重新整理migrations,解決:Django Table xxx already exist

在開發過程中,由于需求變更或者自我重構,需要清理migrations,以保持代碼整潔和后續的可維護性。 場景一 不考慮數據庫數據表,可以完全清空數據庫里面的表的數據。 步驟: 刪除所有migrations find . -path "/migr…

安全隨筆2:對稱加密應用場景

MD5或者說HASH值是一種不可逆的算法。如果需要從密文還原成明文,那么就需要對稱和非對稱這兩類可逆算法。 首先,簡單介紹下這兩類算法。圖9-1是對稱算法的示意圖: 圖9-1 對稱算法 在對稱算法中,首先需要發送方和接收方協定一個密鑰…

python安裝多久_python安裝與使用

1、進入官網下載python軟件 python-3.4.4.amd64.msi http://www.python.org/download/ 這個軟件包含三個環境,如下圖:2、雙擊安裝軟件 3、設置環境變量path";C:\Python34"; 4、驗證是否安裝成功 進入cmd中,輸入python,如果出現如下…

HADAMARD變換

for (j0;j<16;j) { for (i0;i<16;i) { M1[ i ][j]imgY_org[img->opix_yj][img->opix_xi]-img->mprr_2[k][j][ i ]; 計算當前宏塊殘差塊 M0[i%4][i/4][j%4][j/4]M1[ i ][j]; } } current_intra_sad_20; //…

CSS中的塊元素,內聯元素,內聯塊元素

塊元素,內聯元素,內聯塊元素 元素就是標簽&#xff0c;布局中常用的有三種標簽&#xff0c;塊元素、內聯元素、內聯塊元素&#xff0c;了解這三種元素的特性&#xff0c;才能熟練的進行頁面布局。 塊元素塊元素&#xff0c;也可以稱為行元素&#xff0c;布局中常用的標簽如&…

django 與 vue 的完美結合

最近接到一個任務&#xff0c;就是用django后端&#xff0c;前段用vue&#xff0c;做一個普通的簡單系統&#xff0c;我就是一搞后端的&#xff0c;聽到vue也是比較震驚&#xff0c;之前壓根沒接觸過vue。看了vue的一些文檔&#xff0c;還有一些項目&#xff0c;先說一下django…

東芝確定半導體重組計劃:保留閃存其他全賣

會計丑聞給日本東芝公司的業績帶來嚴重影響&#xff0c;為了提高盈利&#xff0c;東芝正在對旗下的半導體、個人電腦、白色家電等業務進行一次重大重組。據日經新聞1月23日報道&#xff0c;東芝已經正式制定了芯片業務重組的詳細計劃&#xff0c;除了占據優勢的閃存芯片之外&am…

python畫兩條曲線圖_python繪制多個曲線的折線圖

這篇文章利用的是matplotlib.pyplot.plot的工具來繪制折線圖&#xff0c;這里先給出一個段代碼和結果圖&#xff1a; # -*- coding: UTF-8 -*- import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt #這里導入你自己的數據 #...... #...... #x_axix&a…

5.19匯總

int block_x 8*(b8 & 0x01)4*(b4 & 0x01);int block_y 8*(b8 >> 1)4*(b4 >> 1);請問下老大 這兩句定義是什么意思啊&#xff1f; 帶些值進去算一下就知道了 b8 0 1 2 3b4 0 1 2 3 A&#xff1a;0 ........Er…

oracle 截取字指定的字符串

過濾指定的字符串,一字符串有重復的數據內容,所以需要去掉重復的內容,subst()截取 起止下標;instr()獲取終止下標位置 例如:substr(p.address, 0, instr(p.address, -, 1, 1)-1) ); case when length(substr(p.address, 0, instr(p.address, -, 1, 1)-1) ) 13 then substr(sub…