前言
本文引用地址:http://www.eepw.com.cn/article/127430.htms3c6410是三星電子(Samsung Electronics)公司生產的一款基於ARM 1176JZF-S核的微處理器,其內核在1.2 V供電時主頻可達667MHz。s3c6410具有適合於多媒體處理器應用的特性,內集成一個硬體多格式編解碼器MFC(Multi-Format Codec ),支持30fps標清H.264、MPEG4、H.263格式視頻的編碼和解碼,支持JPEG格式圖片的編碼和解碼,也支持30fps標清VC-1格式視頻的解碼,這個硬體編解碼器還支持實時的視頻會議以及 NTSC 和 PAL 制式的 TV 輸出。
s3c6410配合適當的視頻採集設備、顯示設備驅動程序和相應的應用程式,可以實現圖片、視頻等的處理,本文著重介紹其獨特的硬體MFC的原理及應用。
MFC的軟體結構
在基於s3c6410的多媒體應用中,MFC軟體的層次結構如圖1所示,多媒體應用程式調用MFC的API,API調用MFC驅動提供的I/OCTROL,I/OCTROL通過MFC設備驅動,完成視頻、圖片的編碼或解碼。
多媒體應用程式有兩種方式使用s3c6410的硬體編解碼器MFC。
方式1:多媒體應用程式調用MFC的編碼或解碼API函數,這些API函數實際是驅動I/OCTROL接口的一個封裝,便於應用程式調用。
方式2:多媒體應用程式可直接調用MFC驅動的I/OCTROL函數,繞過API、不用API。
本文主要探討方式1的使用。實際上,方式1是將方式2的驅動I/O CTROL調用封裝成更簡捷、方便的API函數。
MFC編解碼器的原理和API
MFC的解碼器
MFC解碼支持兩種輸入視頻流的解碼方式,分別為LINE_BUF方式和RING_BUF方式,兩種解碼方式使用於不同的場合,前者常用於視頻文件數據的解碼,後者一般用於連續視頻流數據的解碼,如表1所示。