1、介紹
MPP是瑞芯微提供的媒體處理軟件平台,適用於瑞芯微芯片系列。它屏蔽了有關芯片的復雜底層處理,屏蔽了不同芯片的差異,為使用者提供了統一的視頻媒體統一接口。
具體提供的功能:
視頻編碼:H264、MJPEG、VP8
視頻解碼:H265、H264、VP9、VP8、MJPEG、MPEG-4、MPEG-2、VC1
視頻處理:視頻拷貝、色彩空間轉換等
2、系統架構

Hardware:硬件層,視頻編解碼硬件加速模塊;
Kernel driver:內核驅動層,Linux內核的編碼器硬件驅動設備;
MPP層:MPP層屏蔽了不同操作系統和不同芯片平台的差異,為使用者提供統一的MPI接口,包括MPI模塊,OSAL模塊,NAL模塊以及編解碼模塊(video decoder、video encoder)、視頻處理模塊(video process);
操作系統層:MPP的運行平台;
應用層:MPP層通過MPI對接各種中間件軟件,如ffmpeg、gstreamer;
3、編譯安裝
源代碼下載地址:https://github.com/rockchip-linux/mpp
下載命令:git clone -b release https://github.com/rockchip-linux/mpp.git
MPP源代碼編譯腳本為cmake,建議使用2.8.12。首先配置build/linux/arm/目錄下arm.linux.cross.cmake里的工具鏈,再運行make-Makefiles.bash腳本,通過cmake生成Makefile,最后make即可。
4、使用測試
編碼器:
編碼器demo為mpi_enc_test系列程序,包括單線程mpi_enc_test,多實例mpi_enc_multi_test。
進入到mpp/test文件夾,直接運行mpi_enc_test:

-i:輸入文件;
-o:輸出文件;
-w:圖像寬度(強制要求參數);
-h:圖像高度(強制要求參數);
-f:輸入文件類型;
-t:輸出碼流類型(強制要求參數);
-n:編碼幀數;
解碼器:
解碼器為mpi_dec_test系列程序,包括單線程的mpi_dec_test,多線程的mpi_dec_mt_test,多實例的mpi_dec_multi_test。
直接運行mpi_dec_test:

-i:輸入文件(強制要求參數);
-o:輸出文件;
-w:圖像寬度;
-h:圖像高度;
-t:碼流類型(強制要求參數);
-f:輸出幀類型;
-n:輸出幀數;
其它工具:
mpp_info_test:讀取和打印MPP庫的版本信息。
mpp_buffer_test:測試內核的內存分配器是否正常。
mpp_mem_test:測試C庫的內存分配器是否正常。
mpp_runtime_test:測試一些軟硬件運行時環境是否正常。
mpp_platform_test:讀取和測試芯片平台信息是否正常。
