那曲檬骨新材料有限公司

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

RK3588-MPP解碼詳解

ARMSOM ? 2023-11-21 11:04 ? 次閱讀

一. 簡介

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

本篇文章進行RK3588-MPP解碼的詳細解析

二. 環(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 的默認運行情況。

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

// 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 就會被 MPP 重新分幀,進入到情況一的處理。

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

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

不分幀方式使用簡單,但效率會受影響。

在 mpi_dec_test 的測試用例中,使用的是方式不分幀的方式。在瑞芯微Android SDK 中,使用的是分幀的方式。用戶可以根據(jù)自己的應用場景和平臺條件進行選擇

3.2 decode_get_frame

wKgaomVcHcGAIbvsAADtW8WXlpc304.png

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

解碼器在解碼時,需要為輸出圖像獲取保存像素數(shù)據(jù)的內(nèi)存空間,用戶需要給解碼器提供足夠大小,這個空間大小的需求,會在 MPP 解碼器內(nèi)部根據(jù)不同的芯片平臺以及不同的視頻格式需求進行計算,計算后的內(nèi)存空間需求會通過MppFrame 的成員變量 buf_size 提供給用戶。用戶需要按 buf_size的大小進行內(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)

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

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

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

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

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

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

模式三:純外部分配模式

這種模式通過創(chuàng)建空的 external 模式的 MppBufferGroup,從用戶那里導入外部分配器分析的內(nèi)存塊 文件句柄(一般是 dmabuf/ion/drm)。在 Android 平臺上,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)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 解碼
    +關(guān)注

    關(guān)注

    0

    文章

    183

    瀏覽量

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

    關(guān)注

    25

    文章

    5121

    瀏覽量

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

    關(guān)注

    0

    文章

    24

    瀏覽量

    10623
  • RK3588
    +關(guān)注

    關(guān)注

    7

    文章

    342

    瀏覽量

    4562
收藏 人收藏

    評論

    相關(guān)推薦

    PET_RK3588_CORE核心板

    一、PET_RK3588_CORE 核心板圖片 二、PET_RK3588_CORE 核心板詳細參數(shù) 注意:RK3588 引腳大部分是功能復用的,以上列表內(nèi)的資源存在不能同時使用的情況,引腳功能復用情況 可以查詢下表或查看我司核心
    的頭像 發(fā)表于 01-15 14:12 ?201次閱讀
    PET_<b class='flag-5'>RK3588</b>_CORE核心板

    米爾RK3576和RK3588怎么選?-看這篇就夠了

    32bit),數(shù)據(jù)傳輸上RK3588更有優(yōu)勢。 超強的視頻編解碼能力 編碼能力RK3588最高支持8K@30fps H.264/H.265,RK3576最高支持4K@60fps H
    發(fā)表于 12-27 11:44

    RK3588RK3576區(qū)別解析

    ,145G FLOPS;RK3588為Mali-G610 MP4,圖形性能更強。 視頻編解碼RK3576支持 8K@30fps 解碼等;RK358
    的頭像 發(fā)表于 12-17 14:03 ?638次閱讀
    <b class='flag-5'>RK3588</b>與<b class='flag-5'>RK</b>3576區(qū)別解析

    RK3588核心板多媒體功能一覽

    前言:RK3588支持8K視頻編碼和解碼,以及多路視頻源同時解碼,為視頻處理和多媒體應用提供了強大的支持,本文則從音視頻兩個功能測試上來認識一下這款高性能核心板。圖1-EVM-RK3588
    的頭像 發(fā)表于 12-12 08:31 ?677次閱讀
    <b class='flag-5'>RK3588</b>核心板多媒體功能一覽

    開發(fā)更便利!迅為RK3568/RK3588 定制分區(qū)鏡像發(fā)布

    開發(fā)更便利!迅為RK3568/RK3588 定制分區(qū)鏡像發(fā)布
    的頭像 發(fā)表于 11-11 14:00 ?588次閱讀
    開發(fā)更便利!迅為<b class='flag-5'>RK</b>3568/<b class='flag-5'>RK3588</b> 定制分區(qū)鏡像發(fā)布

    國產(chǎn)最強SOC—RK3588之虛擬機搭建篇

    步驟詳解,為開發(fā)者提供全面的指導,助您快速上手,為后續(xù)RK3588開發(fā)工作做好充分的準備。圖1EVM-RK3588評估板外觀(正面)一、安裝虛擬機軟件VMware在
    的頭像 發(fā)表于 11-07 09:04 ?1868次閱讀
    國產(chǎn)最強SOC—<b class='flag-5'>RK3588</b>之虛擬機搭建篇

    RK3588RK3576芯片對比

    在AIoT領域,瑞芯微的RK3588RK3576都是備受矚目的處理器。以下將從多個方面對它們進行詳細對比。
    的頭像 發(fā)表于 11-04 15:55 ?1567次閱讀
    <b class='flag-5'>RK3588</b>與<b class='flag-5'>RK</b>3576芯片對比

    迅為瑞芯微RK35883588S如何選型硬件區(qū)別

    RK3588S和RK3588處理器在接口上可是有著不小的區(qū)別哦!這兩款處理器,都是市場上的熱門選擇,但它們的接口設計卻各有千秋。 首先,我們來看看iTOP-3588開發(fā)板采用瑞芯微RK3588
    發(fā)表于 09-11 11:31

    RK3588!黑神話悟空,啟動?-迅為電子RK3588開發(fā)板

    RK3588!黑神話悟空,啟動?-迅為電子RK3588開發(fā)板
    的頭像 發(fā)表于 08-30 14:13 ?761次閱讀
    <b class='flag-5'>RK3588</b>!黑神話悟空,啟動?-迅為電子<b class='flag-5'>RK3588</b>開發(fā)板

    迅為RK3588開發(fā)板運行openkylin麒麟系統(tǒng)

    迅為在RK3588開發(fā)板移植了銀河麒麟和開放麒麟系統(tǒng) 迅為優(yōu)先RK3588開發(fā)板上支持Android13系統(tǒng) 迅為在RK3588開發(fā)板移植了銀河麒麟和開放麒麟系統(tǒng) 迅為優(yōu)先RK3588
    發(fā)表于 08-19 10:38

    外協(xié):RK3588適配linux

    RK3588適配linux 功能:RK3588J+16GB+64GB 接口支持: 1.HDMI1 2.EDP1 3.USB3.02,USB2.04 4.電池管理1 5.網(wǎng)絡2 6.GPIO*8 7.音頻功能 有開發(fā)經(jīng)驗的請留聯(lián)系方式。
    發(fā)表于 07-09 16:31

    迅為電子RK3588S與RK3588硬件性能區(qū)別及板卡選型

    迅為電子RK3588S與RK3588硬件性能區(qū)別及板卡選型
    的頭像 發(fā)表于 06-25 15:30 ?3768次閱讀
    迅為電子<b class='flag-5'>RK3588</b>S與<b class='flag-5'>RK3588</b>硬件性能區(qū)別及板卡選型

    亮鉆科技推出重磅新品:基于RK3588S平臺的K-3588S

    近日,基于RK3588S平臺,亮鉆科技推出重磅新品:K-3588S,其性能與RK3588相媲美,擁有高性能、高算力和8K視頻編解碼等優(yōu)勢,且性價比更高,滿足用戶降本需求。
    的頭像 發(fā)表于 05-09 14:11 ?2552次閱讀
    亮鉆科技推出重磅新品:基于<b class='flag-5'>RK3588</b>S平臺的K-<b class='flag-5'>3588</b>S

    迅為RK3588最小系統(tǒng)板發(fā)布

    迅為RK3588最小系統(tǒng)板發(fā)布
    的頭像 發(fā)表于 03-08 15:32 ?912次閱讀
    迅為<b class='flag-5'>RK3588</b>最小系統(tǒng)板發(fā)布

    基于RK3588的NPU案例分享!6T是真的強!

    RK3588?NPU簡 介 作為瑞芯微新一代旗艦工業(yè)處理器,RK3588 NPU性能可謂十分強大,6TOPS設計能夠?qū)崿F(xiàn)高效的神經(jīng)網(wǎng)絡推理計算。這使得RK3588在 圖像識別、語音識別、自然語言處理
    的頭像 發(fā)表于 02-27 14:14 ?1922次閱讀
    基于<b class='flag-5'>RK3588</b>的NPU案例分享!6T是真的強!
    星河国际娱乐场| 大发888游戏免费下载| 澳门百家乐官网| 大发888 894| 百家乐官网缩水工具| 梅河口市| 巴西百家乐的玩法技巧和规则| 百家乐官网讲谈| 永胜博娱乐| 百家乐最安全打法| 太阳城百家乐官网公司| 娱乐城去澳门| 真人百家乐输钱惨了| 百家乐官网博彩软件| bet365备用 必发| 玩百家乐输了| 绥滨县| 太阳城娱乐正网| 百家乐技巧之写路| 百家乐官网在线娱乐可信吗| 榆次百家乐的玩法技巧和规则 | 百家乐官网赢的技巧| 太阳城雨伞| 澳门百家乐走势图| 百家乐官网赌场娱乐网规则| 百家乐官网遥控牌靴| 星空棋牌下载| 赌王百家乐的玩法技巧和规则| 金百家乐官网网站| 宜川县| 大发888网址是什么| 百家乐的看路技巧| 百家乐天天赢钱| 百家乐官网是怎么赌法| 百家乐官网赢得秘诀| 大发888娱乐场出纳| 免费百家乐的玩法技巧和规则 | 博九网百家乐官网现金网| 大发888真人网址的微博| A8百家乐的玩法技巧和规则| 百家乐信誉平台现金投注|