LUẬN VĂN: XÂY DỰNG ĐỒ HỌA 3D DỰA TRÊN CÔNG NGHỆFLASH DÀNH CHO THIẾT BỊ NHÚNG KỸ THUẬT HIỂN THỊ FLASHVIDEO DỰA TRÊNGNASH

Chia sẻ: Lan Lan | Ngày: | Loại File: PDF | Số trang:46

0
57
lượt xem
19
download

LUẬN VĂN: XÂY DỰNG ĐỒ HỌA 3D DỰA TRÊN CÔNG NGHỆFLASH DÀNH CHO THIẾT BỊ NHÚNG KỸ THUẬT HIỂN THỊ FLASHVIDEO DỰA TRÊNGNASH

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Khóa luận này mang tới những hiểu biết, kỹ thuật cơ bản vể cách thể hiện FlashVideodựa trên Gnash nhằm hướng tới mục tiêu của dự án tại phòng thí nghiệm Toshiba-Coltechvề "3D Visualization Framework". Trong giai đoạn đầu tìm hiểu của dự án, chúng tôi đãtìm hiểu về máy ảo ActionScript và một số kỹ thuật khác liên quan tới công nghệ AdobeFlash, cách thể hiện đối tượng đồ họa 3D thông qua thư viện nguồn mở PaperVision 3D....

Chủ đề:
Lưu

Nội dung Text: LUẬN VĂN: XÂY DỰNG ĐỒ HỌA 3D DỰA TRÊN CÔNG NGHỆFLASH DÀNH CHO THIẾT BỊ NHÚNG KỸ THUẬT HIỂN THỊ FLASHVIDEO DỰA TRÊNGNASH

  1. Đ I H C QU C GIA HÀ N I TRƯ NG Đ I H C CÔNG NGH Đinh Anh Thái K THU T XÂY D NG Đ H A 3D D A TRÊN CÔNG NGH FLASH DÀNH CHO THI T B NHÚNG K THU T HI N TH FLASHVIDEO D A TRÊN GNASH KHÓA LU N T T NGHI P Đ I H C H CHÍNH QUY Ngành: Công ngh ph n m m Cán b hư ng d n: PGS. TS. Nguy n Vi t Hà ThS. Vũ Quang Dũng HÀ N I-2010
  2. L i c m ơn L i đ u tiên tôi xin bày t lòng bi t ơn sâu s c t i các th y giáo PGS. TS. Nguy n Vi t Hà- phó Hi u trư ng trư ng Đ i h c Công ngh , ĐHQGHN và ThS. Vũ Quang Dũng- Gi ng viên b môn Công ngh ph n m m, khoa Công ngh thông tin, trư ng Đ i h c Công ngh , ĐHQGHN. Các th y đã hư ng d n tôi t n tình trong su t quá trình th c hi n khóa lu n cũng như trong su t năm h c v a qua. Tôi xin bày t lòng bi t ơn t i các th y, cô giáo trong Khoa Công ngh thông tin, Trư ng Đ i h c Công ngh , ĐHQGHN. Các th y cô đã t n tình d y b o, ch d n tôi và luôn t o đi u ki n t t nh t cho chúng tôi h c t p trong su t quá trình h c đ i h c. Các th y cô đã t n tình giúp đ cho tôi đ hoàn thành khóa lu n t t nghi p này. Tôi xin cám ơn phòng thí nghi m Công ngh ph n m m Toshiba-Coltech, mô hình liên k t gi a trư ng Đ i h c Công ngh và T p đoàn Toshiba, đã cho tôi nh ng đ nh hư ng nghiên c u hi n đ i, theo k p xu hư ng phát tri n c a th gi i. Tôi xin c m ơn các b n sinh viên trong phòng thí nghi m đã cho tôi nh ng ý ki n đóng góp giá tr khi th c hi n đ tài này. Cu i cùng tôi xin g i t i b m và toàn th gia đình lòng bi t ơn và tình c m yêu thương sâu s c. Hà N i, 15 tháng 5 năm 2010 Sinh viên Đinh Anh Thái ii
  3. T ng quan T ng quan Khóa lu n này mang t i nh ng hi u bi t, k thu t cơ b n v cách th hi n FlashVideo d a trên Gnash nh m hư ng t i m c tiêu c a d án t i phòng thí nghi m Toshiba-Coltech v "3D Visualization Framework". Trong giai đo n đ u tìm hi u c a d án, chúng tôi đã tìm hi u v máy o ActionScript và m t s k thu t khác liên quan t i công ngh Adobe Flash, cách th hi n đ i tư ng đ h a 3D thông qua thư vi n ngu n m PaperVision 3D. Abstract In this thesis, we present our investigation in Flash technology and its details. This thesis is a part of jointed project of Toshiba-Coltech laboratory in 3D Visualization framework, that takes us to approach the technology from learning new techniques of ActionScript virtual machine and 3D graphics with OpenGLES 2.0 environment. The first part is to be done by me - Dinh Anh Thai, and the other will be done by Le Viet Son. iii
  4. Tóm t t n i dung Công ngh 3D ngày càng đư c s d ng r ng rãi và ph bi n t i ngư i s d ng, t ngư i dùng ph thông t i nh ng chuyên gia công ngh . Hi n nay, công ngh 3D đã và đang phát tri n m nh nh m mang t i m t th hi n đ h a s ng đ ng, g n v i cu c s ng th c cho con ngư i. Cùng v i s đ nh hư ng c a T p đoàn Toshiba, phòng thí nghi m công ngh ph n m m Toshiba-Coltech cũng hư ng t i nghiên c u công ngh này- K thu t hi n th đ h a 3D trên h th ng nhúng. Sau quá trình l a ch n công ngh đ th c hi n đ h a 3D trên h th ng nhúng, chúng tôi hư ng t i s d ng công ngh Flash- Công ngh đ c quy n cung c p b i Adobe Systems Incorprated. Flash v i ưu đi m g n nh , d dàng th c thi trên nhi u n n t ng, môi trư ng khác nhau và đư c s d ng ph bi n trên r t nhi u h th ng khác nhau: h th ng y t , PC, thi t b c m tay, đ gia d ng. . . Adobe Flash( Tên g i khác: Macromedia Flash) là m t công ngh ch a n n t ng đa phương ti n đư c s d ng đ t o ho t h a, video, và các tương tác g m MacroMedia Flash- Chương trình t o ra các t p tin Flash, và Flash Player- ng d ng có nhi m v chơi và hi n th các t p tin Flash. Flash dùng k thu t đ h a vector và đ h a đi m(raster graphics). Flash đi kèm v i cùng m t ngôn ng k ch b n riêng g i là ActionScript, ActionScript đư c s d ng đ t o các tương tác, các ho t c nh, hành đ ng trong phim Flash. Trong th i gian th c hi n khóa lu n, chúng tôi đã cơ b n n m đư c k thu t hi n th và th c thi đ h a, cách x lý s ki n đ hi n th các đ i tư ng trong t p tin Flash, cách đ chương trình chơi Flash dùng đ th c thi t p tin SWF. D a trên m t s mã ngu n m , tôi đưa ra gi i pháp th hi n 3D trên ph n m m ngu n m Gnash k t h p v i Tamarin. Hi n t i, Gnash ch h tr th c thi đ h a 2D cho t p tin Flash và Tamarin là máy o ActionScript ngu n m đư c Adobe cùng v i Mozilla cung c p cho c ng đ ng nhưng không cung c p kèm theo cách hi n th đ h a cho t p tin Flash. Đ th c hi n gi i pháp, chúng tôi đ xu t mô hình cho vi c k t h p Gnash v i Tamarin và cùng v i đó là phương pháp th c thi. B ng vi c thêm máy o m i, Gnash s h tr t t hơn cho ActionScript 3 và qua đó s h tr th c thi hi u qu nh ng phiên b n iv
  5. sau c a SWF( phiên b n 9 và 10). Trong ActionScritp 3 đã h tr nh ng đ i tư ng cơ b n, hi u ng đơn gi n cho đ h a 3D, do đó v i mô hình m i này, Gnash s th c thi đư c đ h a 3D. B ng vi c s d ng thư vi n đ h a 3D h tr cho ActionScript 3, hoàn toàn có th t o đư c nh ng hi u ng, phim Flash 3D ph c t p. Trong khóa lu n này, tôi đã th c hi n m t chương trình đ th hi n k thu t hi n th FlashVideo d a vào Gnash đ i v i t p tin SWF và hi n th ti n trình x lý các đ i tư ng ActionScript. v
  6. M cl c 1 Đ tv nđ 1 1.1 Th c tr ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Hư ng ti p c n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Ph m vi nghiên c u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Cơ s lý thuy t 4 2.1 ActionScript - Flash - SWF . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1.1 Ngôn ng ActionScript . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1.2 Công ngh Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.3 T p tin Flash - SWF . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 ActionScript Virtual Machine( AVM) . . . . . . . . . . . . . . . . . . . . 8 2.2.1 Gi i thi u AVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2.2 Ki n trúc c a AVM . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2.3 B d n d p b nh AVM . . . . . . . . . . . . . . . . . . . . . . . 11 2.2.4 B xác th c AVM . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2.5 B thông d ch AVM . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.6 AVM Just-in-Time Compiler(JIT) . . . . . . . . . . . . . . . . . . 13 2.3 Tamarin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.3.1 Gi i thi u Tamarin . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.3.2 M c đích d án Tamarin . . . . . . . . . . . . . . . . . . . . . . . 15 2.3.3 Tamarin central . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3.4 Tamarin redux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.4 PaperVision 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 vi
  7. M CL C 2.4.1 Gi i thi u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.4.2 Đ c đi m PaperVision 3D . . . . . . . . . . . . . . . . . . . . . . 17 2.5 Gnash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.5.1 Gi i thi u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.5.2 Ki n trúc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.5.3 Đ c đi m c a Gnash . . . . . . . . . . . . . . . . . . . . . . . . . 21 3 Bài toán 22 3.1 Cơ s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.2 Gi i pháp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.2.1 Khái quát . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.2.2 N i dung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.3 K thu t hi n th Flash Video . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.3.1 C u trúc d li u lưu tr đ i tư ng hi n th . . . . . . . . . . . . . 24 3.3.2 FlashVideo v i các s ki n . . . . . . . . . . . . . . . . . . . . . . 26 3.4 Áp d ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.4.1 Th c thi đ h a 3D trên thi t b nhúng . . . . . . . . . . . . . . . 29 3.4.2 Hi n th 3D trên Gnash d a trên PaperVision 3D . . . . . . . . . 30 4 Th c nghi m 31 4.1 Các so sánh, đánh giá . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.1.1 LightSpark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.1.2 Tamarin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.1.3 Ki m nghi m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.2 Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 5 K t lu n 35 Tài li u tham kh o 36 vii
  8. Danh sách hình v 1.1 Ví d v hi n th tr c quan 3D . . . . . . . . . . . . . . . . . . . . . . . . 2 2.1 C u trúc file SWF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Ví d các tag có trong t p tin abc sau khi gi i mã(Flash-SWF) . . . . . . 7 2.3 Minh h a cho n i dung t p tin SWF . . . . . . . . . . . . . . . . . . . . . 8 2.4 Ki n trúc AVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.5 Quá trình chuy n mã c a công ngh Flash . . . . . . . . . . . . . . . . . . 10 2.6 Cơ ch c a b d n d p b nh . . . . . . . . . . . . . . . . . . . . . . . . 12 2.7 Các quá trình c a AVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.8 Ki n trúc Tamarin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.9 Các thành ph n th hi n đ h a 3D . . . . . . . . . . . . . . . . . . . . . 17 2.10 Các thành ph n trong Gnash . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.11 Quá trình x lý qua các thành ph n Gnash . . . . . . . . . . . . . . . . . . 20 3.1 C u trúc c a DisplayList . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.2 FlashVideo v i các s ki n . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.3 Lu ng x lý đ i tư ng đ h a trong Gnash . . . . . . . . . . . . . . . . . 27 3.4 Sơ đ k th a as_object . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.5 Mô hình Gnash th c thi đ h a 3D . . . . . . . . . . . . . . . . . . . . . . 29 4.1 Bi u đ so sánh k t qu th c thi . . . . . . . . . . . . . . . . . . . . . . . 33 4.2 Lu ng x lý Video c a Flash- Gnash Player . . . . . . . . . . . . . . . . . 34 viii
  9. B ng t vi t t t T vi t t t T ho c c m t 3D 3 Dimension(ba chi u) abc ActionScript Byte Code AS ActionScript(Ngôn ng k ch b n c a công ngh Flash) AGG Anti-Grain Geometry(Engine th hi n đ h a 2D) API Application Programming Interface AVM ActionScript Virtual Machine( Máy o ActionScript) GUI Graphics User Interface(Giao di n ngư i dùng đ h a) LIR Low-Level Intermediate Representation LLVM Low-Level Virtual Machine MIR Macromedia Intermidiate Representation OpenGL Open Graphics Library(Thư vi n đ h a 2D và 3D) OpenGLES OpenGL Embeded Systems(Thư vi n đ h a OpenGL cho h th ng nhúng) PC Personal Computer( Máy tính cá nhân) PP3D PaperVision 3D (Thư vi n Flash 3D) JIT Just-in-time SWF Small Web Format ho c Shockwave Flash VM Virtual Machine( Máy o) ZCT Zero Count Table B ng 1: B ng t vi t t t ix
  10. CHƯƠNG 1 Đ tv nđ 1.1 Th c tr ng Ngày nay, cùng v i s phát tri n c a khoa h c k thu t công ngh , thi t b đi n t đã tr thành công c h tr h u ích trong công vi c c a con ngư i. Nh ng thi t b này đư c s n xu t, s d ng trong h u kh p các lĩnh v c c a xã h i, t s n xu t công nghi p t i s n xu t nông nghi p và cung c p d ch v . Các thi t b đi n t làm cu c s ng con ngư i tr nên đơn gi n, thu n ti n hơn, tăng năng su t, hi u qu . . . Nh ng thi t b đi n t này, t nh ng thi t b l n như robot trong công nghi p, nh ng siêu máy tính. . . t i nh ng thi t b nh bé, g n bó v i t ng cá nhân như máy tính cá nhân, PDA. . . đã h tr cho ngư i s d ng m t cách hi u qu . Do nhu c u c a con ngư i luôn luôn thay đ i, nh ng thi t b này cũng thay đ i không ng ng, liên t c đ i m i, đưa ra nh ng đ c đi m m i đ h tr cho nhu c u đó. Thi t b đi n t h tr cá nhân đư c s n xu t v i m c đích cung c p cho s lư ng l n ngư i dùng, và trong s này ph n l n là ngư i dùng ph thông. Vì v y, thi t b đó ph i d s d ng, v i giao di n thân thi n. Trong nh ng năm g n đây, k thu t n n t ng s d ng đ h a 2D đã có nh ng bư c ti n m i v i s xu t hi n c a đ h a 3D đã mang đ n nh ng thi t b đ u tiên s d ng đ h a 3D đư c s d ng r ng rãi như Tivi 3D, đi n tho i di đ ng 3D. . . S phát tri n c a công ngh này nh m nh m mang t i s th a mãn nhu c u ngày càng cao c a ngư i dùng v th m m , v ch c năng. . . c a s n ph m. M t v n đ đ i v i thi t b h tr cá nhân nói riêng và thi t b nhúng nói chung: năng l c h n ch c a b x lý, dung lư ng lưu tr c a b nh và b nh th c thi. . . Nh ng ng d ng th c thi trên PC nhưng không th th c thi trên thi t b nhúng nên nh ng k thu t x lý hình nh thông thư ng t 2D sang 3D áp d ng cho PC có th s không đư c áp d ng đúng đ n v i h nhúng. Nh ng đ c đi m này d n đ n nhu c u phát tri n h th ng đ h a không ph thu c n n t ng( h đi u hành, năng l c x lý. . . ) và đ c bi t là tính g n nh , đơn gi n và có kh năng t o nh ng hi u ng 3D m t cách m m m i, uy n 1
  11. CHƯƠNG 1: Đ T V N Đ chuy n. Trư c nhu c u đó, chúng tôi đã l a ch n công ngh Flash, m t công ngh hi n nay đư c s d ng r t ph bi n vì tính tr c quan, tính g n nh và có kh năng h tr khá t t đ h a 3D. 1.2 Hư ng ti p c n Trong khuôn kh h p tác gi a trư ng Đ i h c Công ngh - ĐHQGHN và t p đoàn Toshiba, trung tâm công ngh ph n m m thu c t p đoàn đã đưa ra b n mô hình s d ng các k thu t đ h a 3D khác nhau: Compiz Fusion( C/C++), Flash, Qt và Wide Studio. Sau khi so sánh các đ c đi m, ưu và như c đi m c a t ng k thu t, trung tâm đã th ng nh t dùng Flash đ th c thi đ h a 3D v i s h tr c a PaperVision 3D[1]. V i m c đích đ nh hư ng nghiên c u b t k p v i trình đ th gi i, đư c s h tr t trung tâm, chúng tôi ti n hành nghiên c u k thu t xây d ng 3D cho thi t b nhúng, đây là xu hư ng m i đang đư c phát tri n khá m nh trên th gi i trong th i đi m này. M c đích c a quá trình nghiên c u là xây d ng m t chương trình khung1 hi n th giao di n ngư i dùng đ h a 3D d a trên công ngh Flash, đư c th c thi b i chương trình chơi Flash2 h tr OpenGLES 2.0. Hư ng nghiên c u này còn bao g m thu t toán hi n th 3D tr c quan d a trên nh ng thư vi n 3D và thư vi n hi n th tr c quan trên công ngh Flash đã có s n( PP3D[1], Flare[2]. . . ). Cùng v i đó, d án c n nghiên c u vi c phân tích d li u đ hi n th tr c quan 3D d a trên phương pháp ư c lư ng. M c tiêu c n đ t đư c c a d án là cung c p m t chương trình khung cho vi c hi n th d li u tr c quan 3D d a trên Flash, cùng v i nh ng hi u ng sinh đ ng, ch y mư t mà trên h th ng nhúng s d ng OpenGLES, th c thi b i chương trình chơi Flash. Hình 1.1: Ví d v hi n th tr c quan 3D Nhi m v 1 Framework 2 Flash Player 2
  12. CHƯƠNG 1: Đ T V N Đ Đ i v i thi t b nhúng vi c t o ra giao di n đ h a 3D t OpenGLES 1.1/2.0 tr c ti p là r t ph c t p, vì l đó chúng ta c n ph i xây d ng m t chương trình khung đ gi m thi u s ph c t p này. Ngoài ra, m t vài s n ph m đư c cung c p b i Toshiba đã đư c cài đ t ng d ng Flash như đi n tho i di đ ng, tivi s , m t s ng d ng phân tích d li u. . . Nhưng các thi t b c a Toshiba, nh ng ng d ng đư c cài đ t ch m i h tr ho t h a 2D và c n ph i đư c c i ti n đ th c thi 3D trên Flash Lite. Toshiba đã có m t s ng d ng v phân tích d li u tr c quan và bây gi c n ph i c i ti n đ phù h p v i công ngh Flash. Trong th i gian nghiên c u hi n t i, chúng tôi hư ng t i m c tiêu xây d ng m t h th ng máy o riêng đ th c thi Flash và có h tr 3D, nh m hư ng t i m c tiêu th c thi trên thi t b nhúng. Đ ti n t i m c đích này, chúng tôi ti n hành tìm hi u chương trình chơi Flash mã ngu n m Gnash, thư vi n Flash 3D: Papervision 3D và đưa ra gi i pháp cho vi c th c thi trên thi t b nhúng. Đ th c hi n đư c m c đích trên, nh m hư ng t i m c tiêu xây d ng đ h a 3D cho thi t b nhúng, trong khuôn kh khóa lu n này t p trung ch y u vào vi c xác đ nh, tìm hi u và đưa ra k thu t hi n th Flash trư c m t là trên h th ng PC, và sau đó s là h th ng nhúng d a trên b x lý ARM. 1.3 Ph m vi nghiên c u Trong giai đo n tìm hi u đ u, chúng tôi c n ph i tìm hi u chương trình chơi Flash ngu n m - Gnash đưa lên trên thi t b nhúng và can thi p vào chương trình này sao cho có th th c thi h u h t các phiên b n c a ngôn ng ActionScript( tương ng là các phiên b n c a SWF) và x lý đ h a 3D trên thi t b nhúng. Trong khuôn kh khóa lu n này, tôi có nhi m v tìm hi u k thu t hi n th FlashVideo, lu ng x lý trong Gnash, cơ ch th c thi phim Flash và đưa ra gi i pháp th c hi n đ h a 3D vào Gnash cũng như chuy n chương trình chơi Flash lên h th ng nhúng. Nhi m v còn l i tìm hi u cách th c xây d ng đ i tư ng Flash 3D, nghiên c u bi n pháp đ Gnash th c thi Flash 3D d a vào PaperVision 3D đư c giao cho b n Lê Vi t Sơn. Do đây là m t v n đ ph c t p liên quan đ n nhi u lĩnh v c: đ h a máy tính, k thu t x lý Flash, công ngh ch y run-time, b thông d ch. . . , th i gian th c hi n khóa lu n này là không đ nên k t qu đ t đư c chưa đư c như mong đ i c a m c tiêu đ ra. Trong th i gian ti p theo, tôi s ti p t c hoàn thi n đ tài này đ đ t đư c k t qu mong mu n. 3
  13. CHƯƠNG 2 Cơ s lý thuy t Flash đư c bi t đ n ch y u trên các trang Website v i các th hi n như: qu ng cáo, chi u phim tr c tuy n, t o các thành ph n cho trang Web cũng như t o các game tương tác. . . b i s g n nh , tính linh ho t và sinh đ ng. Flash là m t công ngh đư c phát tri n b i Macromedia và hi n nay đư c bi t t i như m t s n ph m c a Adobe Systems. V i Flash, Macromedia và Adobe đưa ra m t s k thu t đư c áp d ng cho công ngh này như máy o, ngôn ng k ch b n hành đ ng( ActionScript), t p tin SWF, chương trình chơi Flash( Flash Player). . . Do đ c đi m đó, Flash có nh ng k thu t riêng đ th hi n đ i tư ng đ h a, đ c bi t là đ h a 3D. PaperVision 3D là m t thư vi n h tr đ h a 3D cho Flash. V i nh ng cơ s lý thuy t đư c gi i thi u, chúng tôi ti n t i xây d ng m t h th ng riêng đ c l p v i công ngh Adobe Flash( g m máy o AS, quá trình biên d ch và th c thi) trong th i gian t i. 2.1 ActionScript - Flash - SWF 2.1.1 Ngôn ng ActionScript ActionScript[3] là m t ngôn ng l p trình hư ng đ i tư ng1 v i các đ i tư ng như class, interface và packages đư c dùng như l nh k ch b n(script) cho các phim dùng Adobe Flash. • ActionScript là ngôn ng k ch b n d a trên ECMAScritpt[4]. ActionScript đư c s d ng chính cho m c đích phát tri n các thành ph n trên Website và thi hành trên ng d ng Adobe Flash Player( T p tin Flash- ph n m r ng có d ng SWF là m t d ng đư c s d ng trên các trang web). 1 Object-oriented programming language 4
  14. CHƯƠNG 2: CƠ S LÝ THUY T • ActionScritpt đư c thi t k đ đi u khi n nh ng hi u ng hình nh vector 2D đơn gi n đư c t o b i AdobeFlash. Nh ng phiên b n sau này có thêm ch c năng cho phép t o trò chơi trên web và vô vàn nh ng ng d ng Internet v i d li u media như âm thanh và hình nh. • ActionScript b t đ u là m t ngôn ng k ch b n cho công c Macromedia Flash và hi n t i đư c phát tri n b i Adobe Systems như là Adobe Flash. Nh ng phiên b n ban đ u c a Flash ch cung c p gi i h n nh ng đ c đi m tương tác như nh ng hành đ ng đơn gi n g m play, stop, getURL, gotoAndPlay • T phiên b n Flash 4 đư c phát hành năm 1999, t p h p nh ng hành đ ng đơn gi n tr thành ngôn ng k ch b n nh v i nh ng kh năng m i như cho phép khai báo bi n, phương th c, câu l nh r nhánh, l p. 2.1.2 Công ngh Flash Flash[5] là m t công ngh n n đa phương ti n thư ng đư c s d ng đ t o ho t h a, video, tương tác v i các trang web, và đ phát tri n nh ng ng d ng trên Internet( trò chơi, qu ng cáo. . . ). Flash s d ng k thu t đ h a vector và đ h a đi m đ t o ho t h a cho ch , hình v , nh, h tr th c thi lu ng âm thanh, video. Nó ch a bên trong m t ngôn ng hư ng đ i tư ng g i là ActionScript. Đ hi n th n i dung Flash, chúng ta ph i s d ng m t s ph n m m chơi Flash như Adobe Flash Player ho c Flash Lite trên thi t nhúng. Flash đư c gi i thi u l n đ u vào năm 1996 b i Macromedia và hi n t i là Adobe Systems. Ti n thân c a ng d ng Flash là SmartSketch- M t ng d ng cho máy tính dùng bút ch y trên h đi u hành Penpoint OS phát tri n b i Jonathan Gay, sau đó đư c đưa vào phát tri n trên h đi u hành Microsoft Windows và Mac OS. Cho đ n khi Internet tr nên ph bi n SmartSketch đư c bi t t i v i tên g i m i là FutureSplash. Năm 1995, SmartSketch đư c thay đ i v i đ c đi m ho t h a frame-by- frame 2 v i tên g i m i là FutureSplash Animator. Năm 1996, Macromedia đưa ra tên g i m i là Flash, s vi t t t c a "Future" và "Splash". T p tin Flash đư c g i v i tên Shockwave Flash và có ph n m r ng là .swf. Flash là m t công ngh đóng hoàn toàn, đư c đ c quy n s h u 100% b i Adobe Systems, m t công ty công ngh l n c a M v i nh ng s n ph m n i ti ng như: Adobe PhotoShop, Adobe Reader, Adobe Creative Suite. . . Các công ngh c a hãng đư c s d ng r ng rãi trên toàn th gi i như chương trình đ c tài li u Adobe Reader - đ c t p tin .pdf 3 , chương trình chơi Flash đư c b sung vào trình duy t web như Adobe Flash 2 Khung hình n i ti p khung hình 3 Portable Document File, m t đ nh d ng tài li u r t ph bi n trên Internet 5
  15. CHƯƠNG 2: CƠ S LÝ THUY T Player t i nh ng s n ph m chuyên d ng như Adobe Creative Suite. . . Do đư c s d ng r ng rãi trên toàn th gi i, Adobe ph bi n v i s lư ng khá l n các tài li u hư ng d n s d ng, hư ng d n thi hành, cơ ch . . . Tuy nhiên, nh ng tài li u này ch y u hư ng t i đ i tư ng là ngư i s d ng cu i cùng( ngư i dùng s n ph m c a hãng) và không hư ng t i m c đích cung c p tài li u đ c t k thu t cho nh ng ngư i phát tri n d a trên công ngh này. Vi c m t s n ph m đư c ph bi n m t cách r ng rãi không đ ng nghĩa v i vi c đó là công ngh m . Nh t là khi nh ng s n ph m này đư c ki m soát hoàn toàn và ch đư c gi i thi u b i m t mình Adobe. H có quy n quy t đ nh t i tương lai c a công ngh này. . . 2.1.3 T p tin Flash - SWF SWF( ShockWave Flash)[6] ho c tên g i khác là Small Web Format hay Flash movies ho c Flash games. T p tin Flash có ph n m r ng là .swf và có th đư c s d ng như m t thành ph n thêm vào trên web. SWF có th đư c t o ra t m t vài s n ph m c a Adobe như Flash, FlexBuilder( ho c d ng MXMLC). M i t p SWF đ u b t đ u b ng ph n Header, v i 3 byte d u ti p theo là nh ng tag ch a các thông tin như đ nh d ng, đ nh nghĩa d li u, các h ng. . . đư c đ c t chi ti t trong tài li u mô t SWF[6]. Thu c tính FileAttributes ch c n thi t cho SWF8 và các phiên b n sau( hình v 2.1). Hình 2.1: C u trúc file SWF Trong file SWF, các tag có th có là tag đi u khi n(Control Tag) và tag đ nh nghĩa(Defination Tag). • Tag đ nh nghĩa đ nh nghĩa m t đ i tư ng đư c bi t đ n như là đ c đi m c a đ i tư ng đư c lưu tr trong danh sách thu t ng . • Tag đi u khi n ch a nhi u đ c đi m và cách đi u khi n lu ng c a file, qu n lý m t vài m t t ng th c a files, frames và playback c a files SWF như setBackground- Color, FrameLabel. • Flash Player x lý t t c các tags c a file SWF cho đ n khi m t tag g i là ShowFrame đư c g i t i. T i th i đi m này, danh sách hi n th đư c chuy n t i màn hình và Flash Player ti p t c g i frame ti p theo đ x lý. 6
  16. CHƯƠNG 2: CƠ S LÝ THUY T Hình v 2.2 là các tag có trong t p tin SWF sau khi đư c phân tích thành d ng XML4 . Chúng ta có th d dàng nh n th y c u trúc c a t p tin SWF bao g m tu n t các tag n i ti p nhau bao g m các thu c tính, các giá tr . . . Ví d đ i v i th Header có các thu c tính đ nh nghĩa cho phim Flash: s lư ng Frame( Frame count), t l Frame( Frame rate), ti p đó là m t danh sách các tag n i ti p nhau như File Attributes( các thu c tính c a file SWF: ch a ABC tag hay DoAction tag, ch a d li u Meta: hasMetaData. . . ). V i ví d này ta có th th y đây là t p tin đư c sinh ra t AS 3 vì ch a DoABC tag, ti p theo đó là các thông tin đ nh nghĩa các đ i tư ng h ng( chu i, s nguyên. . . ), các QName5 - đ nh nghĩa m t đ nh danh và thu c tính m i, đ nh nghĩa các đ i tư ng, các phương th c trong AS. . . Hình 2.2: Ví d các tag có trong t p tin abc sau khi gi i mã(Flash-SWF) Hình v 2.3 th hi n m t ph n c a n i dung t p tin nh phân SWF ng v i mô hình đư c mô t trong hình v 2.1. 4 Ngôn ng đánh d u m r ng 5 qualifiedname 7
  17. CHƯƠNG 2: CƠ S LÝ THUY T Hình 2.3: Minh h a cho n i dung t p tin SWF Qua quá trình phân tích này, chúng ta d dàng nh n th y s tương đ ng c a hình 2.3 v i hình 2.1. 2.2 ActionScript Virtual Machine( AVM) Đ t p tin Flash có th th c thi trên m i n n t ng khác nhau mà không ph thu c vào h đi u hành( Windows, Linux, Solaris, MacOS. . . ) cũng như ki u PC(Mac, Solaris. . . ), Flash đưa ra gi i pháp dùng máy o ActionScript( ActionScript Virtual Machine- AVM). Cũng gi ng như công ngh Java c a Sun v i máy o Java, máy o ActionScript th c thi qua hai giai đo n: d ch mã trung gian và thông d ch thành mã th c thi trên máy v t lý. 2.2.1 Gi i thi u AVM AVM cài đ t bên trong m t cơ ch g i là run-time compiler6 đ chuy n nh ng ch l nh t AVM t i nh ng ch l nh x lý đ c bi t c a b vi x lý(processor-specific intructions). Máy o AVM đư c thi t k đ th c thi mã và nh ng phương th c thân ch a khái ni m c a nh ng thông tin v phương th c(method infomation), vùng d li u c c b (a local data area), vùng ch a nh ng h ng s , vùng heap v i cơ ch non-premititve cho đ i tư ng d li u đư c t o ra trong lúc th c thi và m t môi trư ng th c thi run-time( hình v 2.4[7]). 2.2.2 Ki n trúc c a AVM Đ u vào c a máy o ActionScript là file có ph n m r ng là abc7 , sau khi qua quá trình phân tích c a t p tin .swf. Quá trình .abc parser đ phân tích nh ng thành ph n c a file .abc thành nh ng mã bytecode đ truy n vào cho quá trình ti p theo là xác th c bytecode(Bytecode Verifier). T i đây s đư c chuy n sang quá trình ch y JIT n u mã bytecode còn ch a nh ng ch l nh ph c t p và quá trình thông d ch khi mã bytecode ch 6 Biên d ch lúc ch y 7 Dùng abcdump đ t o file .abc 8
  18. CHƯƠNG 2: CƠ S LÝ THUY T Hình 2.4: Ki n trúc AVM ch a nh ng ch l nh đã có s n. K t thúc quá trình này, máy o s chuy n sang quá trình th c thi đ i tư ng trên h th ng th t(Runtime System), chuy n toàn b ch l nh t máy o sang ch l nh cho b x lý máy th t và đư c qu n lý b i trình qu n lý b nh và b d n d p b nh . Đ m t chương trình Flash đư c th c thi trên thi t b s d ng, chúng ph i qua m t quá trình chuy n mã g m nhi u giai đo n( hình v 2.5). Ban đ u, ngư i phát tri n mã hóa chương trình dư i d ng AS, sau đó chương trình biên d ch FlexSDK cho ra mã trung gian ch a trong file .abc và MIR. Các mã trung gian v i m c đích chính đ chương trình đư c sinh ra không ph thu c môi trư ng, phương th c th c thi cũng như v n chuy n d dàng gi a các môi trư ng như truy n qua m ng, các h th ng Windows, Linux, Mac OS. . . T các mã trung gian này, máy o v i b biên d ch JIT m i b t đ u sinh ra mã th t tùy thu c vào h th ng đang cài đ t b biên d ch này. MIR8 là m t d ng mã đư c dùng cho máy o Flash, mã này đ c l p v i mã máy tính v t lý. Ưu đi m c a MIR là đơn gi n, g n v i mã máy v t lý, là thành ph n trung gian gi a bytecode và JIT, là đ u vào c a JIT. MIR đư c thi t k đ t i ưu quá trình biên d ch gi a mã chương trình v i mã máy, v i MIR, ngư i l p trình không c n quan tâm t i môi trư ng th c thi c a chương trình cu i cùng. File .abc đư c x lý trong AVM qua b n bư c chính là n p, liên k t, xác th c và thi hành [8]. 8 Mã máy Macromedia trung gian 9
  19. CHƯƠNG 2: CƠ S LÝ THUY T Hình 2.5: Quá trình chuy n mã c a công ngh Flash • Trong quá trình n p, file .abc đư c đ c vào trong b nh và gi i mã, phân tích. • Trong quá trình liên k t, m t vài tên đư c tham chi u t vùng riêng c a c u trúc file ABC đ đư c x lý và sau đó tr l i k t qu là m t c u trúc d li u ph c t p hơn r t nhi u liên k t các đ i tư ng cùng nhau. • Quá trình xác th c là tương đ i gi a các đ i tư ng, tên đ i tư ng đư c nh c đ n ph i rõ ràng, k t qu theo t p h p ph i đư c m ch l c . . . • Quá trình th c thi, th hi n mã bytecodes biên d ch trong file ABC và ch y thông d ch su t quá trình th c hi n tính toán. Trong quá trình này, vi c xác th c x y ra liên t c v i lu ng ch l nh và n i dung th c thi ch a trong stack: ch l nh không đư c bên ngoài m ng d li u bytecode đã có, ch l nh ph i ch a m t ki u phương th c chính xác. . . • Quá trình xác th c liên t c đư c th c hi n m i bư c, bư c nào có l i, AVM s đưa ra m t thông đi p là VerifyError và thông đi p này có th đư c b t trong quá trình th c thi b i chương trình. D a vào ki n trúc AVM và m c tiêu c a d án, v i m c đích chính là th c thi Flash 3D trên thi t b nhúng, tôi đ c bi t quan tâm t i các quá trình: chuy n t p SWF sang d ng .abc, chuy n t .abc vào quá trình .abc parser và đ c bi t là quá trình JIT Compiler vì nó liên h tr c ti p t i quá trình chuy n sang mã máy c a h th ng nhúng. Mã máy( Bytecode) đư c lưu tr trong d ng nh phân có ph n m r ng là SWF, đư c thông d ch b i Virtual Machine c a Flash Player. Mã máy ch a các ki u đ đ nh nghĩa nh ng thành ph n như: d li u h ng, chu i, s . . . , đ nh nghĩa không gian tên( namespace), đ nh nghĩa phương th c, đ nh nghĩa ki u, ngoài ra mã máy còn c n có kh 10
  20. CHƯƠNG 2: CƠ S LÝ THUY T năng mô t ki u, phương th c đư c đ nh nghĩa l i t nh ng ki u cơ b n đã có s n. Trong đó đi u không th thi u là b ng ngo i l , m t cơ ch đ x lý và tr l i cho chương trình nh ng hành đ ng không phù h p v i máy o. Mã máy đư c đ c vào và lưu tr trong m t ngăn x p đ nh hư ng( Stack orientd abstract machine). Ngoài ra trong mã máy còn ch a các mã như t o đ i tư ng, truy c p đ a ch ( slot access), tìm ki m thu c tính( property search). Cơ ch biên d ch th i gian ch y đó là cơ ch xác th c l i quá trình th c thi, thông ch9 d và sau đó là 2 quá trình biên d ch JIT( g m d ch t mã máy o và d ch mã máy o t i mã máy th t v t lý) và đi cùng v i cơ ch này là cơ ch d n d p b nh ( Garbage Collector)- cơ ch thu h i b nh , con tr l c, không còn đư c s d ng. 2.2.3 B d n d p b nh AVM AVM Garbage Collector[7] m t cơ ch qu n lý t đ ng thu h i b nh khi tham chi u không còn đư c dùng đ n, gi i phóng tài nguyên cho h th ng khi đ i tư ng không còn đư c s d ng. Nhi m v chính c a b d n d p b nh là tìm ki m nh ng đ i tư ng trong chương trình có th không đư c s d ng ti p các l n ch y ti p theo và thu h i tài nguyên đư c s d ng b i nh ng đ i tư ng này. • Thư vi n s d ng l i(Reusable library) – Ch thu h i rác – Thêm m i, xóa (Không qu n lý b nh ) –G l i • Đ c đi m – K th a nh ng k thu t chính đư c s d ng trong Java như: s d ng Heap, cơ ch xóa b nh khi đ i tư ng không còn đư c s d ng, cách ki m tra đ i tư ng còn đư c s d ng, đ m tham chi u. . . – S d ng thu t toán làm ch m tham chi u đ m10 : Ch duy trì RC11 cho heap này t i heap khác, b qua các Stack và các thanh ghi, đ t bi n đ m Zero trong Zero Count Table(ZCT), quét Stack khi ZCT là đ y, xóa các đ i tư ng trong ZCT khi không tìm th y trong stack – T p gia tăng12 : m i 30ms là gi i h n cho vi c làm m i t p h p, t p h p cung c p con tr thông minh, s gia tăng c a t p h p có th b ng t m t cách tr c ti p( incremental = interruptible) 9 leanerinterpreter 10 DRC: Deferred Reference Counting 11 Reference Counter: B đ m tham chi u con tr 12 Incremental Collection 11

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản