久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

專欄中心

EEPW首頁 > 專欄 > 征程 6P codec decoder sample

征程 6P codec decoder sample

發布人:地平線開發者 時間:2026-03-15 來源:工程師 發布文章
1. 功能概述

解碼 h264/h265 視頻或 jpg 圖片,生成 yuv 圖像。

1.1. 軟件架構

采用 MediaCodec 的 poll 模式來解耦輸入和輸出,可使解碼幀率性能達到最優。 在主線程中灌碼流數據:取出一個空的 input buffer,配置碼流數據的地址信息(如 phys addr),再 queue input buffer 并通知解碼器處理該幀數據; 另一個線程取輸出 YUV 圖像:通過 select 接收硬件解碼完成通知,取出一個硬件填滿輸出圖像的 output buffer,將解碼結果寫到文件中后歸還 output buffer。

1.2. 硬件數據流說明

1.3. 代碼位置及目錄結構

sample 代碼位置在工程目錄{sdk_dir}/test/samples/platform_samples/source/S83_Sample/S83E04_Module/codec_sample。

目錄結構如下:

.
├── codec_sample.sh
├── Kconfig
├── Makefile
├── Makefile.in
└── src
    ├── Makefile
    ├── sample.c
    ├── sample_common.c
    ├── sample.h

根目錄包含 Kconfig、codec_sample.sh 和外部接口的 makefile,Kconfig 用于控制該 demo 是否加入整體編譯;codec_sample.sh 提供幾種編解碼執行腳本。

src 目錄下的 makefile 用于 src 目錄下的編譯。src 目錄下的 sample.c 是 main 入口的所在文件,sample_common 包含了一些共用的 api,sample_venc.c 包含編碼相關函數,sample_vdec.c 包含解碼相關函數。

2. 編譯2.1. 編譯環境

本 sample 的編譯環境使用 SDK 中的 build 工具,請參考: Build 環境建立 。

2.2. 編譯說明

本 sample 主要依賴 libmm 提供的 API 頭文件:

#include "hb_media_codec.h"
#include "hb_media_error.h"

編譯依賴的庫有如下:

LIBS += -lpthread -ldl -lhbmem -lalog  -lmultimedia
LIBS += -lavformat -lavcodec -lavutil -lswresample

編譯命令:

# 進入SDK所有目錄{sdk_dir},并source構建環境(參見上)。
# 編譯本sample:
bdm libmm-sample
# 輸出文件:
{sdk_dir}/out/debug-gcc_{gcc_version}/build/test/samples/platform_samples/source/S83_Sample/S83E04_Module/codec_sample
3. 運行3.1. 支持平臺

Matrix 6P/H

3.2. 板端部署及配置

刷寫系統軟件鏡像后,本 sample 的可執行文件位于板端:/app/sample/S83_Sample/S83E04_Module/codec_sample/bin/。

可能需要用到的資源:

  • 執行腳本 codec_sample.sh 位于板端:/app/sample/S83_Sample/S83E04_Module/codec_sample/bin/;

  • 輸入 H264、H265、JPG 文件可使用腳本或者用戶自行準備。

3.3. 運行指南3.3.1. 運行參數說明

codec_sample : 應用程序名字。

下面的表格是具體參數的說明:

3.jpg

3.3.2. 幫助菜單
Usage: ./codec_sample
  -m --samplemode sample mode, default encoder, {0-encoder, 1-decoder}
  -c --codecid codec id, default h264, {0-h264, 1-h265, 2-mjpeg, 3-jpeg}
  -w --width width, default 3840
  -h --height height, default 2160
  -p --pixfmt pix fmt, default nv12, {0-yuv420p, 1-nv12, ..}
  -n --threadnum test thread number, default 1
  -i --inputfile input file name, default ./input_${w}x${h}_${pixfmt}.yuv
  -o --outputfile output file name, default ./output_${w}x${h}_${pixfmt}.{code_type}
  -u --core unit, default 0
3.3.3. 運行方法

輸入源準備:

執行如下腳本,此腳本的作用是把測試用的源文件拷貝到/map/路徑下,然后用-i 指定文件路徑;

/app/sample/S83_Sample/S83E04_Module/codec_sample/bin/decoder_resoure_prepare.sh

用戶也可以不執行腳本,自行準備源文件,拷貝到/map/路徑下,然后用-i 指定文件路徑。

解碼一路 3840x2160 的 h264 視頻, 生成 yuv 圖像。

/app/sample/S83_Sample/S83E04_Module/codec_sample/bin/codec_sample -m 1 -i /map/input_3840x2160_nv12.h264

解碼一路 1920x1080 的 h265 視頻, 生成 yuv 圖像。

/app/sample/S83_Sample/S83E04_Module/codec_sample/bin/codec_sample -m 1 -c 1 -w 1920 -h 1080 -i /map/input_1920x1080_nv12.h265

解碼一張 1920x1088 的 jpg 圖片, 生成 yuv 圖像。

/app/sample/S83_Sample/S83E04_Module/codec_sample/bin/codec_sample -m 1 -c 3 -w 1920 -h 1088 -i /map/input_1920x1088_nv12.jpg

解碼兩路 3840x2160 的 h264 視頻, 生成 yuv 圖像。

/app/sample/S83_Sample/S83E04_Module/codec_sample/bin/codec_sample -m 1 -n 2 -i /map/input_3840x2160_nv12.h264

解碼四路 1920x1080 的 h265 視頻, 生成 yuv 圖像。

/app/sample/S83_Sample/S83E04_Module/codec_sample/bin/codec_sample -m 1 -c 1 -n 4 -w 1920 -h 1080 -i /map/input_1920x1080_nv12.h265

上面的命令默認跑 VPU 或者 JPU 硬件核 0,可通過-u 參數調整,加入-u 1 表示指定運行 VPU 核 1 或者 JPU 核 1,加入-u 2 表示指定運行 VPU 核 2 或者 JPU 核 2。

例如跑 VPU 核 1,解碼一路 3840x2160 的 h264 視頻,生成 yuv 圖像。

/app/sample/S83_Sample/S83E04_Module/codec_sample/bin/codec_sample -u 1 -m 1 -i /map/input_3840x2160_nv12.h264

例如跑 JPU 核 2,解碼一張 1920x1088 的 jpg 圖片,生成 yuv 圖像。

/app/sample/S83_Sample/S83E04_Module/codec_sample/bin/codec_sample -u 2 -m 1 -c 3 -w 1920 -h 1088 -i /map/input_1920x1088_nv12.jpg
3.3.4. 運行結果說明

如下圖所示為運行成功:

使用 yuvplayer 查看生成的 yuv 圖像文件是否正常:


*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。

關鍵詞: 算法 自動駕駛 算法工具鏈 地平線 征程5

相關推薦

數字PID控制算法之一

資源下載 2007-12-28

ADI:傳感技術助力未來自動駕駛的發展

視頻 2020-03-16

英偉達宣布與比亞迪、吉利展開自動駕駛業務合作

2026-03-17

物理人工智能如何在自動駕駛和電動汽車中應用?

PID算法

資源下載 2007-02-16

地平線HSD引領智能駕駛普惠新時代

英偉達 “全天候” 芯片實現毫秒級人臉檢測

日產聯手優步與 Wayve,計劃在東京推出自動駕駛出租車服務

自動駕駛的現狀與未來(節選)

視頻 2020-03-16

簡單實用的單片機CRC 快速算法

資源下載 2007-02-16

攜手ADI贏得未來

視頻 2019-11-08

加快實現自動駕駛(完整小組討論)

視頻 2020-06-12

采埃孚與SiliconAuto推出自動駕駛實時I/O接口芯片

加密算法之MD5算法

賦能自動駕駛和機器人感知,讀懂二維可尋址VCSEL | 硬科技有點意思

自動駕駛的時代,呼喚線控底盤

ZF與SiliconAuto推出用于自動駕駛的實時I/O芯片

76-81GHz自動駕駛CMOS RADAR

視頻 2018-05-31

CRC算法原理及C語言實現

資源下載 2007-02-16

為什么可擴展高性能 SoC 是自動駕駛汽車的未來

汽車電子 2026-03-06
更多 培訓課堂
更多 焦點
更多 視頻

技術專區