Giáo trình Visual Basic
Trang 1MỘT SỐ VẤN ĐỀ VỀ CÔNG NGHỆ MULTIMEDIA
I- Vài nét về lịch sử công nghệ Multimedia
Sản phẩm của công nghệ Multimedia đã và đang xâm nhập ngày càng sâu, rộng vào mọi lĩnh vực của đời sống xã hội Có thể nói các sản phẩm của công nghệ có mặt ở khắp mọi nơi, từ công sở đến gia đình Nó xuất hiện trong
nhiều lĩnh vực từ giáo dục, y tế, đến vui chơi giải trí, nghiên cứu khoa học v v
- Sức mạnh của các sản phẩm do công nghệ Multimedia mang lại là sự đa dạng phong phú của các dạng thông tin Người ta có thể thu nhận, sử lý thông tin thông qua thị giác, thính giác nhờ âm thanh , hình ảnh, văn bản mà công nghệ Multimedia mang lại Điều này làm cho hiệu quả thu nhận ,sử lý thông
tin cao hơn so với thông tin chỉ ở dạng văn bản
- Ý tưởng đặt nền móng cho lĩnh vực công nghệ này đã có từ năm 1945 Ông Vanner Brush ,giám đốc cơ quan nghiên cứu phát triển khoa học của chính phủ Mỹ lúc bấy giờ (Director ofthe office Scientific Research and Development in the US Gouverment) đã đưa ra câu hỏi là, liệu có thể chế tạo được loại thiết bị cho phép lưu trữ các dạng thông tin để thay cho sách, nói một cách khác chẳng nhẽ mọi thông tin chỉ có thể lưu trữ ở dạng sách ? Nhận thức được ý nghĩa quan trọng của loại thiết bị có tính chất trên, hàng loạt các nhà khoa học, công nghệ đã tập trung nghiên cứu Nó là cở sở hay nền tảng của công nghệ Multimedia ngày nay
- Năm 1960 Ted Nelson và Andrries Van Dam đã công bố công trình nói về
kỹ thuật truy nhập dữ liệu dưới cái tên gọi Hypertext và Hypermedia Kỹ thuật này cho đến nay vẫn được giữ nguyên tên và được sử dụng rộng rãi
trong dịch vụ Web trên Internet
- Năm 1968 Engleband đã đưa ra hệ thống sử dụng Hypertext trên máy tính
với cái tên NLS Bộ quốc phòng Mỹ thành lập tổ chức DARPA (US deference advanced Research Prọject Agency) để nghiên cứu về công nghệ
Multimedia
- Năm 1978 phòng thí nghiệm khổng lồ MIT Media Laboratory chuyên nghiên cứu về công nghệ Multimedia được thành lập Chỉ sau một thời gian ngắn hoạt động, nhận thức được tầm quan trọng và ý nghĩa xã hội của công nghệ Multimedia, người ta đã đầu tư gần 40 triệu USD cho phòng thí
Trang 2nghiệm này Một loạt các công ty, các hãng lớn đã cho ra đời các phòng thí
nghiệm về Multimedia như AT & T, BELL, Olivity
- Những kết quả này đa nhanh chóng được triển khai ứng dụng trong các lĩnh vực truyền hình, viễn thông v.v
II- MỘT VÀI KHÁI NIỆM VÀ ĐỊNH NGHĨA
1- Dữ liệu Multimedia
Thông thường chúng ta thường ghi nhận thông tin ở dạng văn bản , các văn bản này được mã hoá và lưu giữ trên máy tính, khi đó chúng ta có dữ liệu
dạng văn bản Một câu hỏi đặt ra nếu thông tin chúng
ta thu nhận được ở một dạng khác như âm thanh (voice) , hình ảnh (Image) thì
dữ liệu của nó ở dạng nào ? Chính điều này dẫn đến một khái niệm mới ta gọi
đó là dữ liệu Multimedia
Dữ liệu Multimedia là dữ liệu ở các dạng thông tin khác nhau
Ví dụ dữ liệu Multimedia là các dữ liệu ở các dạng thông tin như
- Âm thanh (Sound)
- Hình ảnh (image)
-Văn bản (text)
- Kết hợp của cả ba dạng trên
Khi nghiên cứu các dữ liệu ở các dạng thông tin trên, người ta nhận ra rằng cần phải phân chia dữ liệu Multimedia nhỏ hơn nữa Bởi vì dữ liệu ở các dạng âm thanh, hình ảnh trong quá trình "vận động" theo thời gian có những tính chất rất khác so với dạng tĩnh Điều này đòi hỏi kỹ thuật, công nghệ xử lý rất khác nhau.Vì vậy trong lĩnh vực công nghệ Multimedia người ta chia dữ
liệu multimedia ở các dạng:
1 Văn bản (Text)
2 âm thanh (sound)
3 Audio (âm thanh động ,có làn điệu)
4 Image/ Picture (Hình ảnh )
5/ Motion picture ( ảnh động)
Trang 36 Video ( ảnh động kết hợp âm thanh động)
7 Animation (hình ảnh sử dụng theo nguyên tắc chiếu phim)
8 AVI (Audio-Video Interleaved AVI )
9- Kết hợp giữa các dạng trên
2 - Công nghệ Multimedia
Một cách đơn giản công nghệ Multimedia là công nghệ xử lý dữ
liệu multimedia
Chúng ta cần lưu ý rằng khái niệm xử lý dữ liệu trong công nghệ thông tin bao hàm các công việc sau: mã hóa, lưu trữ , vận chuyển, biến đổi, thể hiện
dữ liệu Với ý nghĩa đó công nghệ Multimedia là công nghệ mã hóa, lưu trữ , vận chuyển, biến đổi, thể hiện dữ liệu multimedia
3- Đồng bộ (synchronic)
- Đồng bộ là khái niệm rất quan trọng trong công nghệ multimedia ,vì chúng ta bíết rằng dữ liệu multimedia là dữ liệu của thông tin ở các dạng khác nhau, mỗi dạng cần phải có thiết bị và công nghệ xử lý khác nhau, khi kết hợp chúng lại vấn đề đồng bộ luôn được đặt ra Chẳng hạn người ta không thể chấp nhận nghe tiếng súng nổ trước khi thấy súng bắn Khái niệm đồng bộ hay đồng bộ hóa( Sychronization) có ý nghĩa quan trọng trong công nghệ multimedia Vậy thế nào là đồng bộ ? hay đồng bộ hóa đó là quá trình sự sắp xếp các "sự kiện" theo trật tự thời gian sao cho các sự kiện ở cùng trật tự thời
gian phải xảy ra cùng một thời điểm
Các đối tượng được xem xét trong lĩnh vực Multimedia có thể là các thiết bị vật lý, cơ học và cũng có thể là các đói tượng trìu tượng được xem xét trong lĩnh vực lập trình theo hướng đối tượng Các "sự kiện" được xem xét trong lĩnh vực Multimedia có thể là âm thanh, ánh sáng, mầu sắc và thậm
chí có thể là các vận động cơ học của các thiết bị
III – CÁC LĨNH VỰC NGHIÊN CỨU ỨNG DỤNG
Chúng ta đã biết một cách tổng thể, công nghệ multimedia là công nghệ xử lý
dữ liệu multimedia, tuy nhiên chúng ta không biết trong công nghệ giải quyết những vấn đề gì? nó phân chia thành bao nhiêu lĩnh vực nghiên cứu Trong
Trang 4phần này chúng ta xem xét một cách tổng thể cấu trúc bên trong của lĩnh vực công nghệ này Sự đa dạng, phong phú và sinh động của các ứng dụng công nghệ Multimedia khiến cho các học giả quan tâm đến Multimedia, đến nay người ta vẫn còn tranh cãi về cách phân chia các lĩnh vực nghiên cứu, ứng dụng của Multimedia Dựa vào đặc thù của công nghệ và đối tượng nghiên cứu, người ta đã tạm thống nhất cách phân chia công nghệ Multimedia thành hai lĩnh vực chính sau:
Trang 5A Các hệ thống thông tin Miltimedia
(Multimedia information Systems)
B Các hệ thống viễn thông Multimedia
(Multimedia Communication Systems)
- Trong Các hệ thống thông tin Miltimedia (Multimedia information) lại bao gồm các lĩnh vực :
1.Mô hình hệ thống thông Tin Multimedia (model
information multimedia)
Trong lĩnh vực này người ta giải quyết các vấn đề sau:
- Các cấu trúc logic của các tài liệu Multimedia (logical Structure of media
document)
- Các phương thức để edit,bBrowse các tài liệu Multimedia
- Các quá trình tạo ra thông tin Multimedia
- Các dạng (Form) các công cụ (Tool) phục vụ cho xử lý dữ liệu Multimedia.
2 Mô hình dữ liệu multimedia phân tán (Multimedia distributed processing Model)
Trong lĩnh vực này người ta quan tâm đến các mục tiêu sau:
- Các ngôn ngữ lập trình thao tác trên dữ liệu là các tài liệu Multimedia
-Kết hợp các chức năng cần thiết với các khái niệm lập trình các khái niệm cho phép lập trình truy nhập vào các dữ liệu lưu trữ trên các thiết bị ngoại vi
multimedia (Media device control)
- Các dạng dữ liệu Multimedia và các dịch vụ cần trao đổi dữ liệu Multimedia
(Interchange)
- Quản trị các dịch vụ viễn thông ở mức cao
- Các mô hình dữ liệu hypermedia, các máy chủ (server) đáp ứng dịch vụ hypermedia (hypermedia engine)
- Các hệ điều hành mạng đáp ứng dịch vụ multimedia theo thời gian thực
Trang 6-Trong lĩnh vực các hệ thống viễn thông Multimedia (Multimedia
Communication Systems)
3 Mô hình các dịch vụ multimedia trên mạng
( Multiservice Network multimedia Model ) Lĩnh vực này quan tâm nghiên cứu các vấn đề sau:
- Mạng đa dịch vụ (Multiservice) trên các hệ thống dữ liệu Multimedia phân tán
- Các giao thức (protocol) đáp ứng việc giao lưu giữa các mạng
khácnhau có quản lý dữ liệu Multimedia
- Trao đổi dữ liệu Multimedia trên internet
4 Mô hình hệ thống Multimedia hội nghị
(Multimedia conferencing Model)
Mô hình này giải quyết các vấn đề kết nối máy tính với các hệ thống viễn thông , tạo nên một hệ thống mạng không thiết kế trước ,có khả năng đáp ứng
các cuộc hội thảo, hội nghị theo thời gian thực
Chú ý:
- Ngoài các mô hình đã nêu còn có mô hình pha trộn kết hợp của các lĩnh vực trên để tạo nên các mô hình đáp ứng các yêu cầu đa dạng của thực tế
- Trong lĩnh vực Multimedia còn tồn tại các bài phức tạp còn phải nghiên cứu trong tương lại như nhận dạng tiếng nói, nhận dạng ảnh v.v
II- ÂM THANH VÀ DỮ LIỆU ÂM THANH
- Âm thanh(Sound)
Âm thanh về mặt cảm giác đó là sự cảm nhận của con người thông qua thính giácc
và bộ não Âm thanh về mặt khoa học đó là sự vận động vật lý trong môi trường trung gian của các guyên tử theo dạng sóng,các sóng này có tần số thay đổi theo
Trang 7thời gian.Người ta có thể mụ tả chuyển động của sóng âm thanh bằng một đại lượng liên tục theo thời gian
- Chu kỳ và tần số
- Chu kỳ (period);
- Tần số (frequence);
- Tốc độ (speed);
-Biên độ (amplitude)
- Chu kỳ là khoảng thời gian xuất hiện liờn tiếp của đỉnh súng tại một điểm; kớ hiệu T
- Tần số là là số chu kỳ diễn ra trong một đơn vị thời gian tính theo giây Đơn vị của tần số tính bằng Hertz (Hz) Kớ hiệu là f;
giữa chu kỳ và tần số cú mối liên hệ sau :T=1/f
- Tai người nhậy cảm với một dải rộng các tần số , bình thường từ 22Hz đến 22000
Hz điều này phụ thuộc vào sức khỏe người nghe Dải tần từ 22Hz đến 22000 Hz gọi là dải nghe được.Tiếng nóii con người thường nằm trong giải tần 500Hz đến
22000 Hz
- Tốc độ âm thanh phụ thuộc vào môi trường nó lan truyền ví, ở nhiệt độ 20c sóng
âm thanh lan truyền với tốc độ 343,8 met/s
1- File dạng wav (Digitized waveform files)
a- Cách tạo
Thiết bị để tạo file wave gồm :
- Máy tính có SoundCard , mic hoặc castset, phần mềm windowplayer, hoặc SoundRecorder nối theo như sau :
Trang 8
Hình H1 mô tả qquá trình số hóa và tạo thành file *.wave Liênn quan đến qúa trinh tạo thành file wav, chúng ta làm quen với một số khỏi niệm sau :
- Tần số lấy mẫu (fs) : số mẫu lấy trong một giây, đơn vị đo là Hezt
Trang 9Ví dụ khối B hướng sang khối A lấy 1000 mẫu trong một giây, ta núi tần số lấy mẫu là 1000 Hezt Để khôi phục được mẫu cân fs>fmax/2; fmax là tần số lớn nhất của âm thanh nguồn(Ngưỡng Nyquit)
- Độ phân giải : là số bit biểu diễn mẫu
Ví dụ độ phân giải có thể 8 bit/mẫu ; 16 bit/mẫu,24 bit/mẫu Rõ ràng độ phân giải càng lớn thì sai số để biểu diễn mẫu càng nhỏ
-Độ lớn của file *.wav phụ thuộc vào các yếu tố sau : tần số lấy mẫu, độ phân giải , thời gian ghi và số kênh ghi (mono hay stereo)
Ví dụ 1
fs =1000Hezt; độ phân giải 16 bit; thời gian ghi mono T=60 giõy Khi đó độ lớn dữ liệu của file wav là
n=(1000 x 16 x60)/8 =120.000 byte ; xấp xỉ 120 Kb
Ví dụ 2
fs =1000Hezt; độ phân giải 16 bit; thời gian ghi stereo T=60 giây Khi đó độ lớn dữ liệu của file wav là
n=(1000 x 16 x 60 x2)/8 =240.000 byte ; xấp xỉ 240 Kb
Trang 10b- Cấu trục file wav
Cấu trúc file wav được Microsoft thiết kế như hình H4:
File wave gồm hai phần chínhh Header file và phần Data như hình H4.Dưới đây là một số thành phần trong Header file:
Trang 11Thứ tự byte Tên trường Giải thích
0-3 ChunkID Chứa từ "RIFF" mã ASCII
8-11 Format Chứa từ "WAVE"
12-15 Subchunk1ID Chứa từ "fmt "
16-19 Subchunk1Size 16 for PCM độ dài của một mẫu dữ liệu 20-21 AudioFormat
PCM = 1 (kiểu mã)
22-23 NumChannels Mono=1; stereo=2 ect
24-27 SampleRate Tần số lấy mẫu
28-31 ByteRate SampleRate.NumChannels BitsPerSample)/8
32-33 BlockAlign ( NumChannels x BitsPerSample)/8
(số byte/mẩu ở tất cả các kênh)
34-35 BitsPerSample Độ phân giải số bit/sample
36- 39 Subchunk2ID Chứa từ "data"
40-43 Subchunk2Size
NumSamples*NumChannels*BitsPerSample)/
8
Từ cấu trúc của header , ta suy ra n- độ lớn file wav được tính theo công thức:
N=Subchunk2Size+44 byte
Dưới đây là ví dụ mở một file wave với 72 byte đầu file được biểu diễn dưới dạng số hexa:
52 49 46 46 24 08 00 00 57 41 56 45 66 6d 74 20 10 00 00 00 01 00 02 00 22 56
00 00 88 58 01 00 04 00 10 00 64 61 74 61 00 08 00 00 00 00 00 00 24 17 1e f3 3c
13 3c 14 16 f9 18 f9 34 e7 23 a6 3c f2 24 f2 11 ce 1a 0d
- Cách ghi dữ liệu phần data cho âm thanh mono
m1m2 m3 m4 m5m6 m7 m8 mi là giá trị mẫu có thể là 1byte, 2 byte tùy thuộc độ phân giải
Trang 12- Cách ghi dữ liệu phần data cho âm thanh strereo
m1lm1r m2l m2r m3lm3r m4l m4r ; mil là giá trị mẫu bên trái, mir là giá trị mẫu bên phải
2- File dạng MID
File dạng mid còn gọi là file MIDI (Musical Instrument Digital Interface
MIDI) Loại file này khác với file wav về cơ bản File wav lưu trữ dữ liệu về
âm thanh , trong khi đó file mid chứa chương trình tạo âm thanh thanh , các lệnh trong chương trình ra lệnh cho soundcard phát ra âm thanh theo loại nhạc
cụ nào đó với trường độ và cao độ bao nhiêu Chính lý do này làm cho file mid rất bé Để tao file mid người ta phải có keyboard và thiết bị (Musical Instrument Digital) thích hợp
b/Mở và đọc file wav
Ví dụ 1
System.EventArgs) Handles Button1.Click
Dim dong_am() As Byte
Dim i As Int16
dong_am = My.Computer.FileSystem.ReadAllBytes("C:\a.wav")
For i = 0 To 10
MsgBox(Convert.ToChar(dong_am(i)))
Next i
Trang 13EndSub
Ví dụ 2 Lấy các thông số của file wave
+ Làm quen với một số hàm chuyển đổi quan trọng trong VB
a/ Chuyển dãy 4 byte thành số
n = System.BitConverter.ToInt32(mang_byte,i)
chuyển 4 byte trong mảng byte kể từ byte thứ i sang số nguyên
b/ Chuyển dãy 2 byte thành số nguyên
n = System.BitConverter.ToInt16(mang_byte,i)
chuyển 2 byte trong mảng byte kể từ byte thư i sang số nguyên
c/ Chuyển số nguyên thành dãy byte
mang_byte = System.BitConverter.GetBytes(n)
System.EventArgs) Handles Button1.Click
Dim dong_am() As Byte
Dim i As Int16
Dim n AsLong
Dim str1 AsString
dong_am = My.Computer.FileSystem.ReadAllBytes("C:\f25.wav") 'byte thứ 0-3
str1 = ""
For i = 0 To 3
str1 = str1 & Convert.ToChar(dong_am(i))
Next i
MsgBox(str1)
'byte thứ 4-7 kích thước ChunkSize
n = System.BitConverter.ToInt32(dong_am, 4)
MsgBox("ChunSize= " & Convert.ToString(n))
'byte thứ 24-27 SampleRate
n = System.BitConverter.ToInt32(dong_am, 24)
MsgBox("SampleRate= " & Convert.ToString(n))
Trang 14
' 22-23 sô kênh
n = System.BitConverter.ToInt16(dong_am, 22)
MsgBox("Numchanel= " & Convert.ToString(n))
EndSub
Ví dụ 3 Trộn - Ghép các file wave
System.EventArgs) Handles Button1.Click
Dim buffer1() AsByte
Dim buffer2() AsByte
Dim mang_byte(4) AsByte
Dim n, n1, n2 AsLong
Dim i As Long
buffer1 = My.Computer.FileSystem.ReadAllBytes("C:\tam\a.wav")
buffer2 = My.Computer.FileSystem.ReadAllBytes("C:\tam\b.wav")
n1 = buffer1.Length
n2 = buffer2.Length
n = n1 + n2 - 44
Dim buffer_ghep(n) As Byte
For i = 0 To n1 - 1
buffer_ghep(i) = buffer1(i)
Next i
For i = 0 To n2 - 45
buffer_ghep(n1 + i) = buffer2(44 + i)
Next i
mang_byte = System.BitConverter.GetBytes(n)
For i = 0 To 3
buffer_ghep(40 + i) = mang_byte(i)
Next i
For i = 0 To 3
buffer_ghep(4 + i) = mang_byte(i)
Next i
My.Computer.FileSystem.WriteAllBytes("C:\ab.wav", buffer_ghep, True)