基于SMP8654的MKV播放器設計與實現(xiàn)
摘要:MKV封裝格式是一種新的由開源組織制定的多媒體封裝格式,具有可擴展,支持多種視頻和音頻編碼格式等優(yōu)點,是高清影片采用的主要封裝格式之一。本文基于SMP8654平臺設計與實現(xiàn)了一個MKV播放器,能夠支持對高清MKV文件的播放,并針對嵌入式系統(tǒng)和高清媒體的特點做了進一步優(yōu)化,具有一定的工程意義和市場價值。
關鍵詞:MKV;多媒體封裝;SMP8654;播放器;嵌入式系統(tǒng)
0 引言
隨著電子技術和多媒體技術的進步,數(shù)字視頻的分辨率逐步提高,開始由SD(標準清晰度)向HD(高清晰度)演變。伴隨著大屏幕液晶顯示技術的發(fā)展,高清影片開始逐步進入到廣大消費者的視野。高清播放機由于支持眾多的視頻和音頻編碼格式,能夠流暢播放1080i/p清晰度的高清影片,并且在輸出方面支持模擬、數(shù)字、HDMI等多種方式。此外在價格和片源方面相對于藍光播放機有很大優(yōu)勢,將逐步替代VCD、DVD等傳統(tǒng)播放器,成為下一代家庭影音娛樂的主流產(chǎn)品。
MKV是一種新的多媒體封裝格式,支持多種視頻和音頻編碼格式,能夠?qū)⒍噙_16路不同格式的音頻和不同語言的字幕流封裝到一個文件中,在高清影片中得到了廣泛的應用,越來越多的視頻和影片采用MKV作為其封裝格式。能否支持MKV封裝格式是高清播放機性能的一個重
要指標。本文提出了一種基于SMP8654平臺的MKV播放器設計與實現(xiàn)方案,并針對嵌入式系統(tǒng)和高清媒體的特點做了進一步優(yōu)化,能夠提供對MKV文件的流暢播放。
1 MKV封裝格式
MKV全稱為Matroska Video,是一種新的多媒體封裝格式。多媒體封裝格式也稱多媒體容器(Multimedia Container),它不同于H264、MPEG-2、MPEG-4這類編碼格式,它只是為多媒體編碼提供了一個“外殼”,本身不涉及編碼。MKV是由開源組織Matroska Development Team制定的一個標準,總共包括三部分:MKV(Matroska Video)、MKA(Matroska Audio)和MKS(Matroska Subtitles),后兩種格式分別針對音頻和字幕,應用較少。MKV的目的是代替AVI等傳統(tǒng)封裝格式。AVI是Microsoft于1992年推出一種封裝格式。其含義是Audio Video Interactive,就是把視頻和音頻編碼混合在一起儲存。微軟在1996年推出了AVI的改進版本AVl2.0。AVI格式上限制比較多,只能有一個視頻軌道和一個音頻軌道,還可以有一些附加軌道,如文字等。AVI格式不提供任何控制功能??傮w而言,AVI為主的傳統(tǒng)封裝格式結構陳舊,只能包含少數(shù)幾種音視頻格式,并且不夠開放,可擴展性差。正因為如此,才促成了Matroska這類新的多媒體封裝格式的誕生。
MKV相對于傳統(tǒng)的封裝格式,有如下優(yōu)點:支持可變比特率(VBR),支持錯誤檢測以及修復軟字幕,支持流式傳輸,強大的開放性和跨平臺兼容性,支持16路以上的音頻流和字幕流等。Matroska最大的特點是能容納幾乎所有類型的視頻、音頻及字幕流,除H.264以外,也可包括MPEG4、MPEG2、Ac3、AAC等其他視頻和音頻格式,即使是非常封閉的RealMedia及QuicklTime也被它包括進去了,并將它們的音視頻進行了重新組織來達到更好的效果。
由于MKV封裝格式本身具有眾多優(yōu)點,隨著互聯(lián)網(wǎng)和高清影片的流行,MKV格式得到了廣泛的應用,互聯(lián)網(wǎng)上越來越多的高清影片采用MKV格式。然而,MKV是一個由開源組織制定和推廣的標準,缺乏大商業(yè)公司的支持,導致MKV文件的播放缺乏一個完整和有效的設計實現(xiàn)。在性能和資源受限的嵌入式平臺上,這個問題尤為嚴重。雖然目前有很多高清播放機都提供了對MKV格式的支持,但是大部分實現(xiàn)方案都存在支持不完善、播放效率比較低的問題,播放高碼率的影片時會出現(xiàn)不流暢、畫面卡頓等問題,影響觀看效果。本文提出了一種基于SMP8654平臺的MKV播放器的設計與實現(xiàn)方案,并針對嵌入式系統(tǒng)的特點做了優(yōu)化,較好地達到了MKV文件流暢播放的要求。
2 硬件平臺和軟件總體設計
硬件平臺以SMP8654芯片為核心,通過總線與RAM、SATA硬盤、Flash閃存、輸入輸出設備等外設相連。SMP8654是Sigma Design公司推出的多媒體播放SoC解決方案,集成了一個強大的多媒體處理器、強健的內(nèi)容保障系統(tǒng)、新的DDR2內(nèi)存控制器、多個片上CPU以及完備的系統(tǒng)外圍設備接口。從媒體播放角度看,smp8654提供了一個完整支持高清晰度視頻解碼的先進解碼引擎,能夠支持對MPEGl、MPEG-2、MPEG-4、H.264、WMV9、VCl以及AVS等格式的硬件解碼,支持高效能的圖形加速,支持多標準音頻解碼和先進的顯示處理能力。Siena Design公司為方便第三方廠商開發(fā)應用,提供了與芯片相關的開發(fā)工具包和開發(fā)框架。本文的工作也基于這個框架進行二次開發(fā)。軟件平臺方面,由于一個完善的播放系統(tǒng)已經(jīng)相當復雜,不適合直接操縱底層硬件來完成功能,需要操作系統(tǒng)的支持。本項目中操作系統(tǒng)采用uclinux,文件系統(tǒng)采用Romfs。uclinux是專為嵌入式系統(tǒng)定制的一款Linux,它具有標準Linux操作系統(tǒng)的穩(wěn)定性、強大網(wǎng)絡功能等主要優(yōu)點,但是卻不像標準Li-nux那樣復雜,主要針對沒有MMU(內(nèi)存管理單元)的微控制器。Romfs是一款專門為嵌入式系統(tǒng)設計的文件系統(tǒng),體積小、可靠性好、讀取速度快,是嵌入式系統(tǒng)常用的文件系統(tǒng)。
adc相關文章:adc是什么
評論