• 沒有找到結果。

以下我們展示播放一個 MP4 檔案的例子:

(1) 開啟 MPEG-4 播放程式:

圖 30:開啟 MPEG-4 播放程式

(2) 開啟播放器程式之後,它會自動列出裝置內所有的 MP4 檔案,使者可以選 取要播放的 MPEG-4 檔案,之後把它開啟。

圖 31:開啟 MPEG-4 檔案

(3) 進入到顯示的畫面,這時使用者只要按下”播放”鈕,就可以將剛剛所選取的 MPEG-4 檔案,呈現出來。

圖 32:進入顯示畫面

(4) 按下播放鈕開始播放

圖 33:按下播放按鈕

(5) 按下暫停鈕將播放暫停下來,這個時候右下角的計時會停上,而且使用者對 於多媒體的互動功能也會失效。

圖 34:按下暫停鈕 (6) 按下播放鈕使播放繼續,計時器也會恢復計時。

圖 35:再次按下播放鈕 (8) 使用者和場景中的多媒體物件互動。

圖 36:使用者和場景中的多媒體物件互動

(8) 按下關閉鈕,關閉整個播放程式。

圖 37:關閉播放程式

七、結論 7.1 總結

當初在研究 MPEG-4 這個題目的時候,並不確定自己要實作出來的系統是 什麼。以為 MPEG-4 這個新的多媒體技術應該會成為下一代的多媒體技術主流,

在花費我不少時間之後(1 個多學期)才有一點頭緒,事實上光是要看懂那一分四 百多頁的規格書,就讓人要秏盡心血。深入研究之後,發現 MPEG-4 的規格實 在是太過於複雜,這是因為當初設計這套系統的人,想要把所有領堿的多媒體都 囊括進去,包括 2D, 3D, VRML, SMIL, SVG, streaming 等各領堿的技術,結果反 而造成系統既龐大又過於複雜,所以在業界目前並沒有被廣泛的使用。但是雖然 在系統部分不為大眾所接受,但是它對於視訊和音訊的壓縮卻被廣泛的採納。我 的結論是,要在短時間之內靠一人之力完成整個 MPEG-4 系統是非常困難的,

所以最後是決定把我會用到的部分萃取出來,只實作這些需要的部分。

我們使用了視覺化多媒體編輯工具產生大量的多媒體內容,並且經過轉換成 為 MPEG-4 格式,可以在 PC 或 PDA 環境上的播放器播放,這樣即是解決 MPEG-4 多媒體內容不易大量被產生的問題。

7.2 未來發展方向

在這一節中,我們會列出一些目前系統尚需補足的功能,或者是一些研究方 向在本論文中未提及的:

1. 系統傳輸層: 在這一篇論文中,我們所針對的 MPEG-4 的資料處理,都 只是針對本機檔案(local file),也就是不考慮網路上的資料流傳輸。所以 這一層是完全不在系統實作裡面的。

2. 系統同步層: 實作的系統沒有考慮資料的同步問題,這也是因為我所選 擇的 MPEG-4 多媒體內容並沒有很複雜的結構,並且資料都是靜態的,

所以也忽略了這一層。如果有實作傳輸層,這一層還是必要的。

3. JavaScript: BIFS 的互動功能是有限的,這是因為 BIFS 並沒有定義變數 來儲存狀態(state),所以有兩個以上的狀態要紀錄下來的時候,只靠 BIFS 就沒有辦法處理了,這時就必須借助其他的描述語言,在 MPEG-4 使用 了 JavaScript 來完成這項不足點。

4. MPEG-J: 由於 BIFS 並不能支援如程式般複雜的邏輯控制,所以在 MPEG-4 Version 2 擴展了這項新的功能,它是直接以一種程式控制的機 制來取代 BIFS 中以參數控制的機制。MPEG-J 提供了豐富的 API,不僅 在場景互動的功能上還有播放器相關的一些功能。MPEG-J 是在 MPEG-4 內容中加上 Java code 的串流,所以這意味著它一樣具有 Java 跨平台的 特性,如在 PC、PDA、Setup-Box。

5. 由於 PDA 上所使用的功能較少,我們實作出來的 MPEG-4 播放器只有 符合規格的某部分,像是 BIFS 中關於 node 的定義,我們就只實作了一 部分的 node,並且有些實作出來的 node 中的 field 也並沒有每一個 field 都實作出來,所以若是轉換出來的 BIFS 用到新的 node,那麼系統就必 須加入新的 node。

參考文獻或資料

[1] Yang-Chih Huang, “A Study on Interactive Support of MPEG-4”, Master Thesis of N.C.T.U Taiwan, 2000.

[2] Jang-Jer Tsai, “MPEG-4 Systems and Its Simulations”, Master Thesis of N.C.T.U Taiwan, 1999.

[3] Chorng-Shiuh Koong, "A Component-based Visual Scenario construction envirenment for non-programming users to create interactive electronic books",N.C.T.U Taiwan, dissertation,2000

[4] ISO/IEC 14496-1, Information Technology – Coding of Audio-Visual Objects:

Systems, 2d Edition, 2001.

[5] IM1 Core code + authoring tools Version 4.0 ISO/IEC JTC1/SC29/WG11 M5450

[6] ISO/IEC 14496-1, Information Technology – Coding of Audio-Visual Objects:

Systems Amendment: Textual Format: XMT Chapters 14-17, 2d Edition, 2001.

[7] ISO/IEC 14496-5, Information Technology – Coding of Audio-Visual Objects:

Reference Software, 2d Edition, 2001.

[8] International Standard ISO/IEC 14772-1:1997 – VRML 97: The Virtual Reality Modeling Language.

[9] Li-Hsien Chen, “The Implementation and Application of MPEG-4 Based Object Description Framework and Streaming Manager”, Master Thesis of N.T.U Taiwan, 2001.

[10] Meng-Chi Hsieh, “Design and Implementation of a MPEG-4 System”, Doctor Thesis of N.T.U Taiwan, 2003.

[11] Jen-Chieh Wang, “Entropy based Object Selection and Automatic Encryption Mechanism in MPEG-4 Streaming”, Master Thesis of N.C.K.U Taiwan, 2004.

[12] Po-Kai Chiu, “Design and Implement a MP4 Video-on- System Based on PC Cluster”, Master Thesis of N.C.K.U Taiwan, 2003.

[13] Jun-Rong Yang, “Implementing a MPEG-4 Interactive Environment with MPEG-J”, Master Thesis of N.C.K.U Taiwan, 2003.

[14] Grady Booch, James Rumbaugh, Ivar Jacobson著,UML使用手冊,張裕益譯,

博碩文化,台北,2003。

[15] 嚴子翔著,VRML 虛擬實境網頁語言,知城數位,2001。

[16] 楊先民著,PocketPC 程式設計自學手冊,學貫行銷,2002。

[17] MPEG Home Page. http://mpeg.telecomitalialab.com

[18] IBM MPEG-4 Technologies,http://www.research.ibm.com/mpeg4/indexjs.htm [19] EnvivoTV and Envivo Encoding Station web site: http://www.envivio.com [20] GPAC Project web site: http://gpac.sourceforge.net/

[21] MPEG-4 @ ENST : http://www.comelec.enst.fr/~dufourd/mpeg-4/index.html [22] MPEG Industry Forum: http://www.mpegif.org/

[23] ISMA: http://www.isma.tv/

[24] 資策會多媒體實驗室,http://www.iii.org.tw/special/

附錄 1:支援的 atom

每個 atom 資料前的 4 個位元組為 atom 的類型(type),所有每個 atom 都有其 相對應的縮寫,根據這些縮寫,我們就知道 atom 的類別。然而有一些 atom 我雖 有定義儲存它的資料結構,然而卻沒有定義解析它的函式,這是因為這些 atom 中的資料不是我所需要的,所以在解析的過程中我把它忽略掉了。

下表列出本系統所支援的 atom 列表:

Supporting MPEG-4 Atom Abbreviation Supporting Decoding ChunkOffsetAtomType stco Yes

DataInformationAtom dinf No

DataReferenceAtom dref No

HandlerAtom hdlr No InitialObjectDescriptorAtom iods Yes

MediaAtom mdia Yes

MediaDataAtom mdat Yes

MediaHeaderAtom mdhd No

MediaInformationAtom minf Yes

MovieAtom moov Yes

MovieHeaderAtom mvhd Yes

SampleDescriptionAtom stsd Yes

SampleSizeAtom stsz Yes

SampleTableAtom stbl Yes

SampleToChunkAtom stsc No

SyncSampleAtom stss No

TimeToSampleAtom stts No

TrackAtom trak Yes

TrackHeaderAtom tkhd Yes

TrackReferenceAtom tref Yes

表 3:支援的 MPEG-4 atom

附錄 2:支援的節點(nodes)和欄位 (fields)

此章會列此本論文系統所支援的節點和欄位。實作這些節點的規格是 ISO/IEC 14496-1:2001,由於實作時間有限,並且我們實際上只針對編輯手播放器的功能 來實作我們需要的節點,而實作的節點中的每一個欄位也並非都能被正確的解析 出來。

Supporting MPEG-4 Nodes Supporting MPEG-4 Fields

Appearence material, textture

AudioClip loop, url

Bitmap scale Conditional buffer

FontStyle family, style, justify, size, spacing, leftToright Geometry bitmap, rectangle, text

Group ImageTexture url

Material2D emissiveColor, filled, transparency MediaControl url, mediaStartTime, mediaStopTime,

mediaSpeed, loop, preRoll, mute, enabled OrderedGroup

PositionInterpolator2D key, keyValue

Rect size

Shape appearance, geometry

Sound2D source

Text string, fontStyle

TimeSensor enabled, cycleInterval TouchSensor enabled

Transform2D translation 表 4:支援的節點和欄位

附錄 3: AAC Decoding 在手持裝置上 的實作

現在 aac decoder 在手持裝置上的實作方式,都是直接與 DSP/FPGA 做結合。由 於手持裝置的運算能力有限,會採用以下的方式來加速解碼的速度:

1. DSP 程式碼最佳化:

‰ 程式寫作方式最佳化:是關於程式指令和運算元的最佳化,有下面幾種 方式:

i. 不同資料型態有不同的運算時間,位元數愈少的資料型態運算愈 快,比如:8 bit char 的加法比 64 bit double 的加法速度快很多 ii. 使用內部基本函式:有一些對於 DSP 架構設計出來的基本函式,

可以減少運算時間

iii. 利用 SIMD 特性:一個指令同時處理完好幾筆資料,如下圖所示:

vA 和 vB 各有四筆資料,本來要經過依序做完四次運算,但是依 此架構就可以平行處理完四筆資料,之後存放到 vD。

iv. 編繹器的迴圈展開方式(loop unrolling):展開愈大會造成程式碼大 小愈大,但是運算速度會變得愈快。如下圖所示,(a)是原來的迴 圈,(b)將迴圈展開一次,(c)將迴圈完全展開

v. 少用指標:盡量使用暫存器,而不用記憶體,這樣可以減少暫存器 和記憶體傳送資料的時間。如下圖所示,將(a)的寫法轉換成(b)寫 法。

‰ 演算法最佳化:這一部分是必須針對 aac 的演算法做修改,故必須深入 了解 aac 所用的壓縮方法,再去找尋可以做到減少運算時間的地方。

相關文件