1. 程式人生 > >MPEG4標準中的Advanced Simple Profile(ASP)完整的說明-04-1章

MPEG4標準中的Advanced Simple Profile(ASP)完整的說明-04-1章

第四章 解碼流程這一章對MPEG4 ASP的解碼流程作一個完整的介紹。首先給出解碼框圖,然後按照解碼的先後順序對每一個功能模組進行詳細的說明。4.1. 解碼框圖運動向量解碼運動補償VLC IZZIACDC IQ IDCTVOP重建(ADD)重建VOP運動資料紋理資料41 MPEG4 ASP的解碼流程如圖41 所示,它給出了基本的解碼流程。其中,碼流解析就是從碼流中得到頭資訊,並把紋理資料送交紋理解碼過程,運動資料送交運動解碼過程。下面按照解碼的順序,逐個進行介紹。在編碼碼流中,運動資訊在紋理資訊前面給出來得,不過在後面的解碼流程介紹中,我們還是先介紹紋理解碼,再介紹運動解碼。4.2. 碼流解析

碼流解析就是從編碼碼流中解析到頭資訊,並把對我們有用的資訊儲存下來。接著將紋理資料交給紋理解碼模組,運動資料交給運動解碼模組,實際上也就是把對碼流的控制權交給它們。4.3. 紋理解碼這一部分講述了VOP的紋理解碼過程,此過程的框圖如圖42所示:PDF 檔案使用 "pdfFactory Pro" 試用版本建立www.fineprint.cnASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc 62 頁共 99VariableLengthDecodingInverse ScanInverse DC &AC PredictionInverseQuantizationInverse DCT Motion
CompensationVOP MemoryCoded DataDecoded PelsQFS[n]QF[v][u] f[y][x]d[y][x]Reconstructed VOPF[v][u] PQF[v][u]42 MPEG4 ASP紋理解碼流程4.3.1 巨集塊係數解碼這一部分講述了DCT係數的解碼,包括DC係數(n0)AC係數(n!=0),這裡n指的是鋸齒掃描的(zigzag)的係數序號。4.3.1.1 幀內塊的DC 係數解碼幀內巨集塊的差分DC 係數作為由dct_dc_size(見表325 和表326)指定長度的變長碼dct_dc_differential(見表327)來編碼。
dct_dc_sizeDC係數的長度對它們進行分類。對每
一種分類方法,dct_dc_size後附加的若干位元唯一標識了差分的實際值。最終解碼的DC數的實際值是差分DC值與預測值的和。這裡需要注意的是,對我們來說,dct_dc_size的值101112是不合法的,這樣解碼後的DC值的範圍應該是[-511, +511],這樣只需要用10 個位元表示DC 係數就夠了。(標準中原話如下:NOTE: The variable length code fordct_dc_size_luminance of 10, 11 and 12 are not valid for any object types where the pixel depth is8 bits. They shall not be present in a bitstream conforming to these object types.)以上說的是一般情況,對下列情況需要特殊考慮: short_video_header 1 時,幀內塊的DC係數不是按差分編碼的,而是代以8 位元定長碼作為無符號整數來編碼,除非這個整數是255。這些值中0128 沒有被使用,它們被保留。如果要編碼255,它被當成有符號整數128 來編碼。短頭格式情況下use_intra_dc_vlc等於0對非短頭格式幀內巨集塊,如果use_intra_dc_vlc等於0,則表示該內部巨集塊的DC不單獨編碼,而將它同ac係數一起進行vlc編碼,這也就意味著如果DC係數為0時並不編碼,只是簡單的增加後面的AC係數的遊程。同時,cbp的定義也要作相應的變化,本來,幀內塊cbp0,只要所有AC係數為0 就可以了;但如果use_intra_dc_vlc等於0 時,幀內塊的cbp0,指的就是所有係數為0,而不僅僅是ac係數。4.3.1.2 其他係數AC 係數通過變長碼產生一個事件(EVENT)來獲得。一個事件由最後一個非0 係數指示(LAST0 說明這個塊中還有許多非0 係數;1 說明這是塊中最後一個非0係數)、編碼係數PDF 檔案使用 "pdfFactory Pro" 試用版本建立www.fineprint.cnASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc 63 頁共 99前面連續出現的0 的數目和這個非0 係數的值組成。 short_video_header 1 時,最經常發生的事件用表41 的變長碼編碼。最後的位元“s”表示符號,0 表示正而1 表示負。注意,此時對除幀內DC係數外的所有係數均用這個表。 short_video_header 0 時,幀內塊和幀間塊的變長碼錶是不同的。內部塊的亮度和色差係數最經常發生的事件變長碼見表42;而幀間塊的亮度和色差係數最經常發生的事件變長碼見表41。最後的位元“s”識別符號號,0 表示正而1 表示負。 41 幀間亮度和色差TCOEF的變長碼錶VLC CODE LAST RUN LEVEL VLC CODE LAST RUN LEVEL10s 0 0 1 0111 s 1 0 11111 s 0 0 3 0000 1100 1s 0 11 10101 01s 0 0 6 0000 0000 101s 1 0 60010 111s 0 0 9 0011 11s 1 1 10001 1111 s 0 0 10 0000 0000 100s 1 0 70001 0010 1s 0 0 13 0011 10s 1 2 10001 0010 0s 0 0 14 0011 01s 0 5 10000 1000 01s 0 0 17 0011 00s 1 0 20000 1000 00s 0 0 18 0010 011s 1 5 10000 0000 111s 0 0 21 0010 010s 0 6 10000 0000 110s 0 0 22 0010 001s 1 3 10000 0100 000s 0 0 23 0010 000s 1 4 1110s 0 0 2 0001 1010 s 1 9 10101 00s 0 1 2 0001 1001 s 0 8 10001 1110 s 0 0 11 0001 1000 s 0 9 10000 0011 11s 0 0 19 0001 0111 s 0 10 10000 0100 001s 0 0 24 0001 0110 s 1 0 30000 0101 0000s 0 0 25 0001 0101 s 1 6 11110 s 0 1 1 0001 0100 s 1 7 10001 1101 s 0 0 12 0001 0011 s 1 8 10000 0011 10s 0 0 20 0000 1100 0s 0 12 10000 0101 0001s 0 0 26 0000 1011 1s 1 0 40110 1s 0 0 4 0000 1011 0s 1 1 20001 0001 1s 0 0 15 0000 1010 1s 1 10 10000 0011 01s 0 1 7 0000 1010 0s 1 11 10110 0s 0 0 5 0000 1001 1s 1 12 10001 0001 0s 0 4 2 0000 1001 0s 1 13 10000 0101 0010s 0 0 27 0000 1000 1s 1 14 10101 1s 0 2 1 0000 0001 11s 0 13 1PDF 檔案使用 "pdfFactory Pro" 試用版本建立www.fineprint.cnASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc 64 頁共 990000 0011 00s 0 2 4 0000 0001 10s 1 0 50000 0101 0011s 0 1 9 0000 0001 01s 1 1 30100 11s 0 0 7 0000 0001 00s 1 2 20000 0010 11s 0 3 4 0000 0100 100s 1 3 2VLC CODE LAST RUN LEVEL VLC CODE LAST RUN LEVEL0000 0101 0100s 0 6 3 0000 0100 101s 1 4 20100 10s 0 0 8 0000 0100 110s 1 15 10000 0010 10s 0 4 3 0000 0100 111s 1 16 10100 01s 0 3 1 0000 0101 1000s 0 14 10000 0010 01s 0 8 2 0000 0101 1001s 1 0 80100 00s 0 4 1 0000 0101 1010s 1 5 20000 0010 00s 0 5 3 0000 0101 1011s 1 6 20010 110s 0 1 3 0000 0101 1100s 1 17 10000 0101 0101s 0 1 10 0000 0101 1101s 1 18 10010 101s 0 2 2 0000 0101 1110s 1 19 10010 100s 0 7 1 0000 0101 1111s 1 20 10001 1100 s 0 1 4 0000 011 escape0001 1011 s 0 3 20001 0000 1s 0 0 160001 0000 0s 0 1 50000 1111 1s 0 1 60000 1111 0s 0 2 30000 1110 1s 0 3 30000 1110 0s 0 5 20000 1101 1s 0 6 20000 1101 0s 0 7 20000 0100 010s 0 1 80000 0100 011s 0 9 20000 0101 0110s 0 2 50000 0101 0111s 0 7 3 42 幀內亮度和色差TCOEF的變長碼錶VLC CODE LAST RUN LEVEL VLC CODE LAST RUN LEVEL10s 0 0 1 0111 s 1 0 11111 s 0 0 2 0000 1100 1s 1 0 20101 01s 0 0 3 0000 0000 101s 1 0 3PDF 檔案使用 "pdfFactory Pro" 試用版本建立www.fineprint.cnASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc 65 頁共 990010 111s 0 0 4 0011 11s 1 1 10001 1111 s 0 0 5 0000 0000 100s 1 1 20001 0010 1s 0 0 6 0011 10s 1 2 10001 0010 0s 0 0 7 0011 01s 1 3 10000 1000 01s 0 0 8 0011 00s 1 4 10000 1000 00s 0 0 9 0010 011s 1 5 10000 0000 111s 0 0 10 0010 010s 1 6 10000 0000 110s 0 0 11 0010 001s 1 7 10000 0100 000s 0 0 12 0010 000s 1 8 1110s 0 1 1 0001 1010 s 1 9 10101 00s 0 1 2 0001 1001 s 1 10 10001 1110 s 0 1 3 0001 1000 s 1 11 10000 0011 11s 0 1 4 0001 0111 s 1 12 10000 0100 001s 0 1 5 0001 0110 s 1 13 10000 0101 0000s 0 1 6 0001 0101 s 1 14 11110 s 0 2 1 0001 0100 s 1 15 10001 1101 s 0 2 2 0001 0011 s 1 16 10000 0011 10s 0 2 3 0000 1100 0s 1 17 10000 0101 0001s 0 2 4 0000 1011 1s 1 18 10110 1s 0 3 1 0000 1011 0s 1 19 10001 0001 1s 0 3 2 0000 1010 1s 1 20 10000 0011 01s 0 3 3 0000 1010 0s 1 21 1

相關推薦

MPEG4標準Advanced Simple ProfileASP完整的說明-03-4

第 50 頁共 99頁表 3-19 I-VOP和P-VOP中cbpy的變長碼錶Code cbpy(intra-MB)(1234)cbpy(inter-MB),(1234)0011 000011110010 1 000111100010 0 001011011001 001111000001 1 0100101

MPEG4標準Advanced Simple ProfileASP完整的說明-04-1

第四章 解碼流程這一章對MPEG4 ASP的解碼流程作一個完整的介紹。首先給出解碼框圖,然後按照解碼的先後順序對每一個功能模組進行詳細的說明。4.1. 解碼框圖碼流解析運動向量解碼運動補償VLC IZZIACDC IQ IDCTVOP重建(ADD)重建VOP運動資料紋理資料圖4-1 MPEG4 ASP的解碼流

MPEG4標準Advanced Simple ProfileASP完整的說明-04-2

第 73 頁共 99頁InverseQuantisationArithmeticSaturationQF[v][u] F''[v][u] F'[v][u] F[v][u]quant_scale_codeW[w][v][u]MismatchControl圖 4-7 逆量化的過程4.3.4.1 第一種反量化方法第

MPEG4標準Advanced Simple ProfileASP完整的說明-04-3

第 82 頁共 99頁碼流中的引數如重建的差分運動向量MVDx和MVDy要限定在範圍[low:high]內。另外,重建的運動向量MVx和MVy的範圍也要在[low:high]內。而允許範圍則是依賴於引數vop_fcode,如下面表4-9所示:表 4-9 –運動向量的範圍vop_fcode_forwardorv

qt資料儲存方法介面的思路應用1thinkvd開發日誌

  <qt中資料儲存方法(介面)的思路>個人最早釋出在qtcn bbs http://www.qtcn.org/bbs/read.php?tid=32483中,可能由於比較理論化而讓人感覺其實際應用意義,今後其有相關的應用會逐步寫出來。     關於載入視訊檔案後

Python 3.x的6種標準物件型別之——Number數值資料型別

整型(int) 通常被稱為整型或整數,包含正負,不含小數點,同時沒有大小限制。 (如1,2,3,-6,5555等) 支援正常的數學運算,但在整數的除法(/)中,計算結果不會為整數 print(153/51) >>> 3.0 若想在整數的除法中

ASP.NET Core的依賴注入3: 服務的註冊與提供

在採用了依賴注入的應用中,我們總是直接利用DI容器直接獲取所需的服務例項,換句話說,DI容器起到了一個服務提供者的角色,它能夠根據我們提供的服務描述資訊提供一個可用的服務物件。ASP.NET Core中的DI容器體現為一個實現了IServiceProvider介面的物件。 ServiceProvider與

ASP.NET Core的依賴注入2:依賴注入DI

IoC主要體現了這樣一種設計思想:通過將一組通用流程的控制從應用轉移到框架之中以實現對流程的複用,同時採用“好萊塢原則”是應用程式以被動的方式實現對流程的定製。我們可以採用若干設計模式以不同的方式實現IoC,比如我們在上面介紹的模板方法、工廠方法和抽象工廠,接下來我們介紹一種更為有價值的IoC模式,即依賴注入

ASP.NET Core的依賴注入4: 建構函式的選擇與服務生命週期管理

ServiceProvider最終提供的服務例項都是根據對應的ServiceDescriptor建立的,對於一個具體的ServiceDescriptor物件來說,如果它的ImplementationInstance和ImplementationFactory屬性均為Null,那麼ServiceProvider

ASP.NET Core的依賴注入5:ServicePrvider實現揭祕【補充漏掉的細節】

到目前為止,我們定義的ServiceProvider已經實現了基本的服務提供和回收功能,但是依然漏掉了一些必需的細節特性。這些特性包括如何針對IServiceProvider介面提供一個ServiceProvider物件,何建立ServiceScope,以及如何提供一個服務例項的集合。 一、提供一個Serv

ASP.NET Core的依賴注入5: ServiceProvider實現揭祕 【總體設計 】

本系列前面的文章我們主要以程式設計的角度對ASP.NET Core的依賴注入系統進行了詳細的介紹,如果讀者朋友們對這些內容具有深刻的理解,我相信你們已經可以正確是使用這些與依賴注入相關的API了。如果你還對這個依賴注入系統底層的實現原理具有好奇心,可以繼續閱讀這一節的內容。 目錄一、ServiceCall

ASP.NET Core的依賴注入5: ServiceProvider實現揭祕 【解讀ServiceCallSite 】

通過上一篇的介紹我們應該對實現在ServiceProvider的總體設計有了一個大致的瞭解,但是我們刻意迴避一個重要的話題,即服務例項最終究竟是採用何種方式提供出來的。ServiceProvider最終採用何種方式提供我們所需的服務例項取決於最終選擇了怎樣的ServiceCallSite,而服務註冊是採用的S

ANSI C標準標準預定義巨集整理備用

#include 包含一個原始碼檔案 #define 定義巨集 #undef 取消定義巨集 #if 如果條件為真,則編譯下面的程式碼 #elif 如果前面的#if不為真,則編譯下面的程式碼 #endif 結束一個#if...#elif條件編譯塊 #ifdef 如果已經定義了某個巨集,則編譯下面的程式碼 #i

asp.net類公共類DBHelpC#

using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; using System.Configura

ASP.NET應用程式使用身份模擬Impersonation

摘要 預設情況下,ASP.NET應用程式以本機的ASPNET帳號執行,該帳號屬於普通使用者組,許可權受到一定的限制,以保障ASP.NET應用程式執行的安全。但是有時需要某個ASP.NET應用程式或者程式中的某段程式碼執行需要特定許可權的操作,比如某個檔案的存取,這時就需要給

asp.net網頁實現tabPage功能

  我是個.net新手,所以我寫的東西在好些高手們看來似乎比較粗淺,還請大家海涵!並希望大家多多指導、多提意見,我會十分感激的,謝謝!   前幾天在做一個專案時,專案經理非要讓我在asp.net網頁中實現類似Windows Form程式中類似TabControl(TabPag

opencv標準霍夫線變換HoughLines和統計霍夫變換HoughLinesP

一、下面首先對HoughLines函式進行講解:  void HoughLines(InputArray image, OutputArray lines, double rho, double theta, int threshold, double srn=0,

ASP.NET Core使用EF CoreMySqlCode First

mys lambda core context gin etc roo nim 建數據庫 ⒈添加依賴   MySql.Data.EntityFrameworkCore ⒉在appsettings.json配置文件中配置數據庫連接字符串 1 { 2 "Lo

8ASP.NET Core 的MVC路由

1.前言 ASP.NET Core MVC使用路由中介軟體來匹配傳入請求的URL並將它們對映到操作(Action方法)。路由在啟動程式碼(Startup.Configure方法)或屬性(Controller Action屬性)中定義。路由描述應如何將URL路徑與操作(Action方法)相匹配。它還用於在響應

9ASP.NET Core 的MVC路由

 1.URL生成 MVC應用程式可以使用路由的URL生成功能,生成指向操作(Action)的URL連結。 IUrlHelper 介面用於生成URL,是MVC與路由之間的基礎部分。在控制器、檢視和檢視元件中,可通過Url屬性找到IUrlHelper的例項。在此示例中,將通過Controller.Ur