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