NAL的基本特征

為了保證視頻流在不同傳輸環境中能有效地傳輸,單純的高壓縮率是不夠的,必須提供有效的方法,使視頻流能夠與傳輸協議無縫連接,才能應用到各種網絡。在以前的標準中,MPEG標準包含系統層,同時制定了H.320或H.324等獨立的標準來滿足視頻編碼的網絡適應性。然而,對于不同的通信系統來說,只有將網絡適應性與視頻編碼緊密結合起來,才可能獲得最佳的傳輸性能。因此在制定新一代國際視頻編碼標準H.264/AVC時就考慮了網絡友好性,提出了網絡抽象層NAL(Network Abstraction Layer)的概念。可根據實現的功能不同,將編碼器分成兩層:視頻編碼層VCL(Video Coding Layer)與網絡抽象層NAL(Network Abstraction Layer)。

?????? NAL層作為VCL層與傳輸層的接口,主要負責VCL數據的打包、序列和圖像的設置參數(parameter sets)傳輸、IDR(Instantaneous Decoding Refresh)等,使壓縮后的數據能在不同網絡傳輸。NAL層將視頻編碼數據抽象成NAL單元,根據不同的傳輸方式,進行NAL單元封裝,H.264編碼器分層結構圖中的H.324M表示用于移動的H.324系統。

根據傳輸網絡中數據交換方法的不同,有兩種類型的NAL單元:
針對電路交換網,如H.320,MPEG.2等,提出字節流格式NAL單元。NAL層將視頻編碼數據封裝成字節流格式的單元,每一個單元包含3個(或4個)字節的起始前綴,值0x000001

針對分組交換網,如RTP/IP或TCP/IP系統等,提出包傳輸NAL單元。NAL層將編碼數據直接進行協議封裝,而不必進行起始碼填充。

??????? 根據打包的數據類型不同,又可以將NAL單元分為VCL.NAL單元和非VCL.NAL單元。VCL.NAL單元包含視頻殘差編碼數據,對其解碼后能夠重建圖像。非VCL.NAL單元包含附加信息,如參數集和輔助增強信息(SEI:Supplemental Enhancement Information)等。

??????? 其中參數集包含高層的語法元素,這些信息對解碼而言非常重要。VCL.NAL單元解碼必須參考參數集里的語法元素,主要有序列參數集和圖像參數集。這些參數如果在傳輸中出錯或丟失,將直接影響其它NAL單元的解碼。通常這些參數集在VCL—NAL單元前傳遞,也可通過重復傳輸來提高其魯棒性,防止數據丟失。在一些應用中,參數集可以和VCL.NAL單元在同一信道傳輸。在一些特殊環境下,可以采用比視頻信道更可靠的傳輸機制來優先傳遞參數集。VCL層編碼集中了近些年來視頻編碼方面的先進技術,并將它們很好結合起來,與以前的標準相比,在同等視覺質量的情況下可節省50%左右的碼率。

??????? 網絡抽象,NAL負責使用下層網絡的分段格式來封裝數據,包括組幀、邏輯信道的信令定時信息的利用或發序列結束信號等。例如,NAL支持視頻在電路交換信道上的傳輸格式,支持視頻在Internet上利用RTP/UDP/IP傳輸的格式。NAL包括網絡提取層的頭信息、段結構信息和實際載荷信息,即上層的VCL數據。NAL提供適當的映射方法將頭部信息和數據映射到傳輸層協議上,可以減少在分組交換傳輸種組幀和重同步所需要的資源開銷。為了提高在不同特性的網絡上定制VCL數據格式的能力,H.264的網絡提取層在VCL和NAL之間定義了基于分組的接口規范、打包方式等,也包括了相應的信令內容。這樣,高效率編碼任務和網絡友好性任務就由VCL和NAL分別完成。

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

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

相關文章

Linux使用circos

1.在conda中安裝bioconda conda install -c bioconda circos -y # 測試是否所有的module都安裝好了 circos -module # 所有都顯示OK則成功 ok 0.39 Font::TTF::Font ok 2.68 GD ok 0.2 GD::Polyline ... .... 2.檢查模塊是否齊全 circos -module 3.下…

下一步工作的一些思考和問題

前期PL和PS部分基本開發完成了,現在開始做界面交互集成的工作,總結一些思考和問題。 1,關于software cpu的計算時間,可能會比現在長。前期實驗時是裸跑程序,加入操作系統時,由于系統的多任務,PS…

python numpy教程_Python中的Numpy入門教程

這篇文章主要介紹了 Python 中的 Numpy 入門教程,著重講解了矩陣中的數組操作 , 需要的 朋友可以參考下 1 、 Numpy 是什么 很簡單, Numpy 是 Python 的一個科學計算的庫, 提供了矩陣運算的功能, 其一般與 Scipy 、 matplotlib 一…

jquery中的 jquery.contains(a,b)

jquery.contains(a,b) 判斷元素 a中是否包含 b 元素: 源碼: contains isNative(docElem.contains) || docElem.compareDocumentPosition ?function( a, b ) {var adown a.nodeType 9 ? a.documentElement : a,bup b && b.parentNode;return a bup || !!( bup &a…

【Mysql】數據庫主從搭建-基于docker

后臺可回復【1024】即可獲取相關寶藏內容分享 :) 為什么基于Docker搭建? 資源有限 虛擬機搭建對機器配置有要求,并且安裝mysql步驟繁瑣 一臺機器上可以運行多個Docker容器 Docker容器之間相互獨立,有獨立ip,互不沖突…

塑料封裝可靠性問題淺析

塑料封裝可靠性問題淺析 摘 要: 塑料封裝器件在現在的封裝產業中具有無可比擬的優勢,諸如成本、可靠性、尺寸以及重量等.但是還是有相當一部分人對于塑封器件的可靠性持懷疑態度.文章的目的就是使讀者能夠更深入地了解到塑封器件的可靠性,尤其是在塑封器件應用于高…

java創建對象new后面為啥可以傳入參數_你有認真了解過自己的“Java對象”嗎?渣男...

對象在 JVM 中是怎么存儲的對象頭里有什么?作為一名 Javaer,生活中的我們可能暫時沒有對象,但是工作中每天都會創建大量的 Java 對象,你有試著去了解下自己的“對象”嗎?我們從四個方面重新認識下自己的“對象”創建對…

【技術+某度面經】Jenkins 內容+百度面經分享

后臺可回復【1024】即可獲取相關寶藏內容分享 :) Q1: Jenkins是什么?? A:Jenkins是一款開源 CI&CD 軟件,用于自動化各種任務,包括構建、測試和部署軟件。 今天文章分為兩部分 :) PART1 Jenkins技術分享 / PART2 關…

xcode多工程聯編 - 詳細教程

2019獨角獸企業重金招聘Python工程師標準>>> 一、創建workspace (MyProject)放入MyProject文件夾內 二、先 打開workspace 創建app1工程 點擊next之后注意選擇 workspace 同理創建app2 或者更多的工程 完成之后的工作 重新打開workspace的樣子 三、使用pod 庫 首先…

動態規劃入門 合并石子 COGS1660 石子合并

1660. 石子合并(加強版) ★★ 輸入文件:stone3.in 輸出文件:stone3.out 簡單對比時間限制:1 s 內存限制:256 MB 【題目描述】 在一個圓形操場的四周擺放N堆石子,現要將石子有次序地合并成一堆.規定…

python實現百錢買百雞

個人博客點這里 Python語言基礎(百元買百雞) 需求分析 百錢買百雞的問題算是一套非常經典的不定方程的問題,題目很簡單: 公雞5文錢一只,母雞3文錢一只,小雞3只一文錢, 用100文錢買一百只雞,其中公雞,母雞…

實數是不是python數據類型_python 基本數據類型

一、數據類型及操作 #整數類型,和數學中整數的一樣,可正可負 *十進制:210 *二進制:以0B或者0b開頭:0b1010 *八進制:以0O或者0o開頭:0o123 *十六進制:以0x或者0X開頭:0x9a…

python之用循環實現五子棋小程序

在python中我們學過流程控制中的循環結構,現在我們來進行一個小應用的練習 本程序是通過循環控制結構來實現五子棋小程序的 游戲規則 五子棋的規則如下: 對局雙方各執一色棋子。空棋盤開局。黑先、白后,交替下子,每次只能下一子。棋子下在棋盤的空白點…

Principle of Computing (Python)學習筆記(7) DFS Search + Tic Tac Toe use MiniMax Stratedy

1. Trees Tree is a recursive structure. 1.1 math nodes https://class.coursera.org/principlescomputing-001/wiki/view?pagetrees 1.2 CODE無parent域的樹 http://www.codeskulptor.org/#poc_tree.py class Tree:"""Recursive definition for tree…

C#線程篇---Task(任務)和線程池不得不說的秘密

我們要知道的是,QueueUserWorkItem這個技術存在許多限制。其中最大的問題是沒有一個內建的機制讓你知道操作在什么時候完成,也沒有一個機制在操作完成是獲得一個返回值,這些問題使得我們都不敢啟用這個技術。 Microsoft為了克服這些限制&…

關于編譯FFMPEG的初級教程

關于編譯FFMPEG的初級教程1.首先我們要下載相關工具,這里不多說,大家按照我的地址去下載文件就好了 MINGW下載地址:http://prdownloads.sourceforge.net/mingw/MinGW-3.1.0-1.exe?download 然后在下載MSYS :http://prdownloads.…

電子科學與技術相關索引匯總

電子科學與技術相關索引匯總 關于安裝deepinwindow10雙系統有時沒有聲音的問題關于deepin系統安裝design compiler的問題解答基于51單片機的交通燈控制設計基于物聯網的智能垃圾桶設計基于FPGA 的8b10b編解碼電路前端電路設計金屬磁記憶傳感器封裝集成電路版圖與工藝課程設計之…

【百度面試】閘機測試場景

面試被問到這一題思路想法: 自己找了相關內容充實自我。內容分享如下: 隨著人臉識別技術的成熟,閘機行業大量應用人臉識別算法,只因現今的人臉識別算法也已經能夠保證識別率、識別速度、誤識率和拒識率等各項指標的優異性&#x…

前后端分離項目如何部署_前后端分離項目,如何解決跨域問題?

跨域資源共享(CORS)是前后端分離項目很常見的問題,本文主要介紹當SpringBoot應用整合SpringSecurity以后如何解決該問題。01 什么是跨域問題?CORS全稱Cross-Origin Resource Sharing,意為跨域資源共享。當一個資源去訪問另一個不同域名或者同…