91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RK3588-MPP解碼詳解

ARMSOM ? 2023-11-21 11:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一. 簡(jiǎn)介

[RK3588從入門到精通] 專欄總目錄

本篇文章進(jìn)行RK3588-MPP解碼的詳細(xì)解析

二. 環(huán)境介紹

硬件環(huán)境: ArmSoM-W3 RK3588開發(fā)板

軟件版本: OS:ArmSoM-W3 Debian11

三. 解碼器數(shù)據(jù)流接口

3.1 decode_put_packet

wKgaomVcHbiAD337AADexm3LGiU067.png

輸入碼流的形式:分幀與不分幀 MPP 的輸入都是沒有封裝信息的裸碼流,裸碼流輸入有兩種形式:

不分幀 這種方式是已經(jīng)按幀分段的數(shù)據(jù),即每一包輸入給 decode_put_packet 函數(shù)的 MppPacket 數(shù)據(jù)都已經(jīng)包含完整的一幀,不多也不少。在這種情況下,MPP 可以直接按包處理碼流,是 MPP 的默認(rèn)運(yùn)行情況。

分幀 按長(zhǎng)度讀取的數(shù)據(jù),這樣的數(shù)據(jù)無(wú)法判斷一包 MppPacket 數(shù)據(jù)是否是完整的一幀,需要 MPP 內(nèi)部進(jìn)行分幀處理。MPP 也可以支持這種形式的輸入,但需要在 mpp_init 之前,通過 control 接口的 MPP_DEC_SET_PARSER_SPLIT_MODE 命令,MPP 內(nèi)的 need_split 標(biāo)志打開。

// NOTE: decoder split mode need to be set before init // 按幀輸入碼流 RK_U32 need_split = 1; mpi_cmd = MPP_DEC_SET_PARSER_SPLIT_MODE; param = &need_split; ret = mpi->control(ctx, mpi_cmd, param); if (MPP_OK != ret) { mpp_err("mpi->control failed\n"); deInit(&packet, &frame, ctx, buf, data); }

這樣,調(diào)用 decode_put_packet 輸入的 MppPacket 就會(huì)被 MPP 重新分幀,進(jìn)入到情況一的處理。

如果這兩種情況出現(xiàn)了混用,會(huì)出現(xiàn)碼流解碼出錯(cuò)的問題。

分幀方式處理效率高,但需要輸入碼流之前先進(jìn)行解析與分幀;

不分幀方式使用簡(jiǎn)單,但效率會(huì)受影響。

在 mpi_dec_test 的測(cè)試用例中,使用的是方式不分幀的方式。在瑞芯微Android SDK 中,使用的是分幀的方式。用戶可以根據(jù)自己的應(yīng)用場(chǎng)景和平臺(tái)條件進(jìn)行選擇

3.2 decode_get_frame

wKgaomVcHcGAIbvsAADtW8WXlpc304.png

3.3 給解碼器提供足夠大小的保存像素?cái)?shù)據(jù)的內(nèi)存空間

解碼器在解碼時(shí),需要為輸出圖像獲取保存像素?cái)?shù)據(jù)的內(nèi)存空間,用戶需要給解碼器提供足夠大小,這個(gè)空間大小的需求,會(huì)在 MPP 解碼器內(nèi)部根據(jù)不同的芯片平臺(tái)以及不同的視頻格式需求進(jìn)行計(jì)算,計(jì)算后的內(nèi)存空間需求會(huì)通過MppFrame 的成員變量 buf_size 提供給用戶。用戶需要按 buf_size的大小進(jìn)行內(nèi)存分配,即可滿足解碼器的要求。

RK_U32 buf_size = mpp_frame_get_buf_size(frame); ret = mpp_buffer_group_limit_config(data->frm_grp, buf_size, 24); if (ret) { mpp_err("%p limit buffer group failed ret %d\n", ctx, ret); break; }

3.4 輸出圖像的變寬高信息(Info change)

當(dāng)碼流的寬高,格式,像素位深等信息發(fā)生變化時(shí),需要反饋給用戶,用戶需要更新解碼器使用的 內(nèi)存池,把新的內(nèi)存更新給解碼器。這里涉及到解碼內(nèi)存分配與使用模式。 圖像內(nèi)存分配以及交互模式:

模式一:純內(nèi)部分配模式 模式二:半內(nèi)部分配模式 模式三:純外部分配模式: 直接使用外部顯示用的內(nèi)存,容易實(shí)現(xiàn)零拷貝。

模式一:純內(nèi)部分配模式

圖像內(nèi)存直接從 MPP 解碼器內(nèi)部分配,內(nèi)存由解碼器直接分配,用戶得到解碼器輸出圖像,在使用 完成之后直接釋放。 在這種方式下,用戶不需要調(diào)用解碼器 control 接口的 MPP_DEC_SET_EXT_BUF_GROUP 命令,只 需要在解碼器上報(bào) info change 時(shí)直接調(diào)用 control 接口的 MPP_DEC_SET_INFO_CHANGE_READY 命令即可。解碼器會(huì)自動(dòng)在內(nèi)部進(jìn)行內(nèi)存分配,用戶需要把獲取到的每幀數(shù)據(jù)直接釋放。

模式二:半內(nèi)部分配模式

用戶需要根據(jù)get_frame返回的MppFrame的buf_size 來(lái)創(chuàng)建 MppBufferGroup,并通過 control 接口的 MPP_DEC_SET_EXT_BUF_GROUP 配置給解碼器。用戶可以通過 mpp_buffer_group_limit_config 接口來(lái)限制解碼器的內(nèi)存使用量。

模式三:純外部分配模式

這種模式通過創(chuàng)建空的 external 模式的 MppBufferGroup,從用戶那里導(dǎo)入外部分配器分析的內(nèi)存塊 文件句柄(一般是 dmabuf/ion/drm)。在 Android 平臺(tái)上,Mediaserver 通過 gralloc 從 SurfaceFlinger 獲取顯示用內(nèi)存,把 gralloc 得到的文件句柄提交(commit)到 MppBufferGroup 里,再把 MppBufferGroup 通過 control 接口 MPP_DEC_SET_EXT_BUF_GROUP 命令配置給解碼器,然后 MPP 解碼器將循環(huán)使用 gralloc 得到的內(nèi)存空間。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 解碼
    +關(guān)注

    關(guān)注

    0

    文章

    189

    瀏覽量

    28703
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    26

    文章

    6288

    瀏覽量

    117999
  • MPP
    MPP
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    11330
  • RK3588
    +關(guān)注

    關(guān)注

    8

    文章

    555

    瀏覽量

    7314
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    RK3588操控終端

    RK3588操控終端全國(guó)產(chǎn)化無(wú)人裝備手持操控終端,搭載工業(yè)級(jí)瑞芯微RK3588J芯片,適配麒麟等自主操作系統(tǒng),從硬件核心到軟件應(yīng)用實(shí)現(xiàn) 100% 國(guó)產(chǎn)化,徹底擺脫外部技術(shù)依賴。設(shè)備標(biāo)配16G
    發(fā)表于 02-28 09:42

    你的專屬“數(shù)字員工”已到崗!迅為RK3588系列適配OpenClaw

    你的專屬“數(shù)字員工”已到崗!迅為RK3588系列適配OpenClaw
    的頭像 發(fā)表于 02-27 15:33 ?290次閱讀
    你的專屬“數(shù)字員工”已到崗!迅為<b class='flag-5'>RK3588</b>系列適配OpenClaw

    RK3588?平臺(tái)?MPP?編譯?+ VPU?格式測(cè)試

    ? ? ? ? ? ? 大家在做瑞芯微 ?RK3588? 開發(fā)時(shí),是不是經(jīng)常困惑「怎么驗(yàn)證? VPU? 到底支持哪些編解碼格式?」「 MPP? 媒體庫(kù)該怎么編譯?」今天手把手帶你走一遍流程
    的頭像 發(fā)表于 12-25 11:33 ?1857次閱讀
    <b class='flag-5'>RK3588</b>?平臺(tái)?<b class='flag-5'>MPP</b>?編譯?+ VPU?格式測(cè)試

    【技術(shù)分享】RK3588如何搭建xenomai3+ethercat

    說(shuō)明使用的RK3588的分支版本是linux-6.1-stan-rkr6內(nèi)核版本是6.1.99把瑞芯微的SDK更新到linux-6.1-stan-rkr6這個(gè)版本即可。編譯xenomai3的內(nèi)核請(qǐng)參考上一篇技術(shù)分享:技術(shù)分享|RK3588如何增加Xenomai3實(shí)時(shí)補(bǔ)丁修
    的頭像 發(fā)表于 12-11 17:26 ?1022次閱讀
    【技術(shù)分享】<b class='flag-5'>RK3588</b>如何搭建xenomai3+ethercat

    瑞芯微RK3588RK3576技術(shù)參數(shù)詳解

    電子發(fā)燒友網(wǎng)報(bào)道(文/李彎彎)瑞芯微不久前表示,2025年上半年AIoT市場(chǎng)延續(xù)蓬勃發(fā)展趨勢(shì),因應(yīng)AI在端側(cè)應(yīng)用發(fā)展需求,公司旗艦產(chǎn)品RK3588、次新產(chǎn)品RK3576等帶領(lǐng)AIoT各產(chǎn)品線繼續(xù)
    的頭像 發(fā)表于 09-23 08:20 ?8636次閱讀
    瑞芯微<b class='flag-5'>RK3588</b>與<b class='flag-5'>RK</b>3576技術(shù)參數(shù)<b class='flag-5'>詳解</b>

    RK3588數(shù)據(jù)手冊(cè)

    RK3588的資料
    發(fā)表于 08-01 16:08 ?53次下載

    RK這2款旗艦芯片RK3588 PK RK3576,誰(shuí)是最優(yōu)選

    (64bit 對(duì)比 32bit),數(shù)據(jù)傳輸上 RK3588 更有優(yōu)勢(shì)。三、超強(qiáng)的視頻編解碼能力? 編碼能力:RK3588 最高支持 8K@30fps H.264/H.265,RK357
    發(fā)表于 07-10 18:24

    干貨分享 | RK3588 Ubuntu系統(tǒng)Docker容器使用指南

    前言:在瑞芯微RK3588高性能AIoT平臺(tái)上運(yùn)行Ubuntu系統(tǒng)時(shí),Docker容器技術(shù)能極大提升開發(fā)部署效率。通過輕量級(jí)虛擬化實(shí)現(xiàn)環(huán)境隔離與快速遷移,本文將從零開始詳解RK3588平臺(tái)
    的頭像 發(fā)表于 06-27 12:01 ?3841次閱讀
    干貨分享 | <b class='flag-5'>RK3588</b> Ubuntu系統(tǒng)Docker容器使用指南

    RK3576 vs RK3588:為何越來(lái)越多的開發(fā)者轉(zhuǎn)向RK3576?

    高端平板、邊緣計(jì)算)。 NPU 算力相同,但 RK3588 支持更復(fù)雜的 AI 計(jì)算(如 INT4/FP16)。 2. 多媒體與存儲(chǔ):滿足主流需求 [td]項(xiàng)目RK3576RK3588 視頻解碼
    發(fā)表于 05-30 08:46

    RK3588參數(shù)與主要特性 RK3588數(shù)據(jù)手冊(cè)解讀

    RK3588參數(shù)與主要特性 RK3588數(shù)據(jù)手冊(cè)解讀
    的頭像 發(fā)表于 05-19 18:34 ?1.3w次閱讀
    <b class='flag-5'>RK3588</b>參數(shù)與主要特性  <b class='flag-5'>RK3588</b>數(shù)據(jù)手冊(cè)解讀

    RK3588S和RK3588S2差異說(shuō)明

    RK3588S2?較?RK3588S少了一組?MIPI D/C-PHY CSI_RX PORT0,新增一組?MIPI DPHY CSI_RX PORT1,同時(shí)接口位置除?MIPI D/C-PHY
    的頭像 發(fā)表于 05-13 14:23 ?2835次閱讀
    <b class='flag-5'>RK3588</b>S和<b class='flag-5'>RK3588</b>S2差異說(shuō)明

    HZ-EVM-RK3588-技術(shù)規(guī)格書

    電子發(fā)燒友網(wǎng)站提供《HZ-EVM-RK3588-技術(shù)規(guī)格書.pdf》資料免費(fèi)下載
    發(fā)表于 04-17 16:27 ?1次下載

    HZ-CORE-RK3588-技術(shù)規(guī)格書

    電子發(fā)燒友網(wǎng)站提供《HZ-CORE-RK3588-技術(shù)規(guī)格書.pdf》資料免費(fèi)下載
    發(fā)表于 04-17 16:25 ?5次下載

    迅為iTOP-RK3588S開發(fā)板/核心板瑞芯微RK3588S處理器6TOPS算力內(nèi)置NPU

    性能強(qiáng) iTOP-3588S開發(fā)板采用瑞芯微RK3588S處理器,是全新一代AloT高端應(yīng)用芯片,搭載八核64位CPU,四核Cortex-A76和四核Cortex-A55架構(gòu)主頻高達(dá)2.4GHZ
    發(fā)表于 04-10 11:13

    RK3588主板:多元場(chǎng)景的硬核“芯”力量

    近年來(lái),RK3588主板在市場(chǎng)上愈發(fā)活躍,作為智能硬件領(lǐng)域的關(guān)鍵組件,RK3588主板以強(qiáng)大的性能和廣泛的適用性,成為眾多設(shè)備的核心“大腦”。一、RK3588主板核心優(yōu)勢(shì)高性能處理器RK358
    的頭像 發(fā)表于 03-11 10:40 ?1595次閱讀
    <b class='flag-5'>RK3588</b>主板:多元場(chǎng)景的硬核“芯”力量