海思h264解碼庫

2021-09-08 04:04:00 字數 1727 閱讀 7413

海思的dll,解碼h264  解碼後轉出yuv12

呼叫方法:

if (h264dec.hi264decau(_dechandle, ph264data, framelen, 0, ref _decodeframe, 0) == 0)

ph264data是h264幀的控制代碼,framelen是h264幀的長度,_decodeframe是解碼後的yuv幀

#region 解碼器相關變數宣告

//////資料的控制代碼

/// ///

///這是解碼器屬性資訊

/// public

h264dec.hih264_dec_attr_s decattr;

//////

這是解碼器輸出影象資訊

/// public h264dec.hih264_dec_frame_s _decodeframe = new

h264dec.hih264_dec_frame_s();

//////

解碼器控制代碼

/// public

intptr _dechandle;

static

double[,] yuv2rgb_convert_matrix = new

double[3, 3] , , };

#endregion

#region 解碼器相關初始化,一般在視窗load中進行初始化decattr = new

h264dec.hih264_dec_attr_s();

decattr.upictureformat = 0

; decattr.ustreamintype = 0

; decattr.upicwidthinmb = (uint

)width;

decattr.upicheightinmb = (uint

)height;

decattr.ubufnum = 8

; decattr.uworkmode = 16

;

//建立、初始化解碼器控制代碼

_dechandle = h264dec.hi264deccreate(ref

decattr);

#endregion

using

system;

using

system.runtime.interopservices;

namespace

fvd.common

//////

解碼器輸出影象資訊資料結構

///[structlayout(layoutkind.sequential)]

public

struct

hih264_dec_frame_s

//////

解碼庫版本、版權和能力集資訊。

///[structlayout(layoutkind.sequential)]

public

struct

hih264_libinfo_s

//////

使用者私有資料資訊。

///[structlayout(layoutkind.sequential)]

public

struct

hih264_userdata_s

}}

H264 編譯碼框架簡介

2 h264和以前的標準 如h261 h263 mpeg 1 mpeg 4 的編解碼器實現流程沒有太大區別,主要的不同在於各功能塊的細節。3 h264就是利用實現的複雜性獲得壓縮效能的明顯改善。至於複雜度的評估,以後會介紹 下面介紹一下h264的編碼器框圖 編碼器採用的仍是變換和 的混合編碼法。在圖...

H264 解碼耗時分析

在數字基帶處理器上 的最佳放置 美國模擬器件公司 jose fridman 最近幾年,高速緩衝儲存器 caches 在dsp和嵌入式系統中已經很普遍。在快取記憶體出現前,嵌入式軟體需要對片內sram和片外sram sdram和flash等所有物理儲存資源中的 進行管理。軟體工程師必須根據執行時間統計...

H 264中CAVLC解碼過程詳解

例項解析 nc 1 編碼後得到輸出碼流為 0000 1000 1110 0101 1110 1101 解碼詳細過程如下 1.根據coeff token和nc查表 見標準表9 5 得到非零係數數目totalcoeffs和拖尾係數數目trailingones nc 1選擇對應的表,coeff token...