Dưới đây là một số thí dụ về các kiểu dữ liệu như vậy: Dữ liệu ảnh Image data: Dữ liệu hình ảnh có thể nói là một trong những kiểu dữ liệu đuợc sử dụng phổ biến và thông dụng nhất trên
Trang 3Mục lục
MỞ ĐẦU 7
Chương 1 8
TỔNG QUAN 8
1.1 Các kịch bản đa phương tiện 12
1.3 Các ứng dụng khác 18
1.3.1 Các dịch vụ đa phương tiện trong giáo dục 18
1.3.2 Ứng dụng trong hội nghị điện tử 19
1.3.3 Ngành công nghiệp giải trí 19
1.4 Kết luận 20
Chương 2 21
CẤU TRÚC DỮ LIỆU ĐA CHIỀU 21
2.1 Mở đầu 21
2.2 Cây k-d (k-d Trees) 22
2.2.1 Cấu trúc nút 22
2.2.2 Chèn và tìm kiếm trong cây 2-d 23
2.2.3 Huỷ bỏ trong cây 2-d 27
2.2.4 Truy vấn khoảng trong cây 2-d 29
2.2.5 Cây k-d với k 2 32
2.3 Cây tứ phân điểm (Point Quadtrees) 32
2.3.1 Chèn và tìm kiếm trong cây tứ phân điểm 33
2.3.2 Thao tác xoá cây tứ phân điểm 35
2.3.3 Truy vấn khoảng trong cây tứ phân điểm 37
2.4 Cây tứ phân matrix MX (MX-Quadtrees) 37
2.4.1 Chèn và tìm kiếm trong MX-Quadtree 38
2.4.2 Thao tác xoá trong MX-Quadtrees 40
2.4.3 Truy vấn khoảng trong MX-Quadtrees 41
2.4.4 PR-Quadtrees 41
2.5 Cây R (R-Trees) 41
2.5.1 Chèn và tìm kiếm trong R-Trees 43
2.5.2 Xoá cây trong R-Trees 45
2.6 Kết luận 46
Chương 3 48
CƠ SỞ DỮ LIỆU ẢNH 48
3.1 Ảnh thô 48
3.2 Biểu diễn ảnh nén 52
3.2.1 Biến đổi Fourier rời rạc (DFT–Discrete Fourier Transform) 53
3.2.2 Biến đổi cosin rời rạc (DCT–Discerte Cosine Transform) 53
3.3 Xử lý ảnh: Phân đoạn 54
3.4 Truy vấn trên cơ sở tượng tự 60
Trang 43.4.1 Tiệm cận thước đo 61
3.4.2 - Tiệm cận biến đổi 64
3.5 Các hình mẫu khác của CSDL ảnh 68
3.6 Biểu diễn IDB bằng các quan hệ 68
3.6.1 Truy vấn biểu diễn quan hệ trong IDB 70
3.7 Biểu diễn CSDL ảnh với R-Trees 77
3.7.1 Biểu diễn CSDL ảnh bằng cây R tổng quát 81
3.8 Truy vấn ảnh bằng bố trí không gian 83
3.9 Cài đặt 85
3.10 Kết luận 86
Chương 4 87
CƠ SỞ DỮ LIỆU ĐA PHƯƠNG TIỆN 87
4.1 Thiết kế và kiến trúc CSDL đa phương tiện 87
4.1.1 Các kiến trúc tổ chức nội dung 87
4.2 Tổ chức dữ liệu đa phương tiện trên cơ sở nguyên lý thống nhất 91
4.3 Trừu tượng media 92
4.4 Ngôn ngữ truy vấn dữ liệu đa phương tiện 97
4.4.1 Truy vấn SMDS (Biểu diễn thống nhất) 97
4.4.2 Truy vấn dữ liệu đa phương tiện của biểu diễn lai 100
4.5 Những đánh giá về thực trạng ứng dụng dữ liệu đa phương tiện tại Việt Nam nói chung 103
4.6 Đề xuất về việc xây dựng một hệ thống quản lý dữ liệu đa phương tiện thống nhất 103
4.7 Kết luận 104
KẾT LUẬN 106
Tài liệu tham khảo 107
Phụ lục 109
Trang 5Lời cam đoan
Tôi xin cam đoan các kết quả của luận văn là do bản thân chuẩn bị Nội dung của luận văn chƣa đƣợc xuất bản, báo cáo tại nơi đâu
Tôi xin chịu hoàn toàn về trách nhiệm, nếu có sai sót gì về nội dung trình bày trong luận văn
Trang 6Lời cảm ơn
Trước hết xin cám ơn gia đình, cha mẹ và anh em đã hỗ trợ tinh thần và vật chất cho quá trình học tập của tôi Để có được thành công nhất định như ngày hôm nay, tôi đã có được sự quan tâm, động viên, hỗ trợ to lớn cả tinh thần và vật chất trong suốt quá trình học tập của tôi
Tôi xin trân trọng cảm ơn các thầy giáo, cô giáo đã giảng dạy và hướng dẫn tôi trong quá trình học tập trong trường Đại học và chương trình sau đại học Dù rằng , trong quá trình học tập, có nhiều lúc gặp phải những khó khăn trong việc tiếp thu kiến thức cũng như sưu tầm tài liệu học tập, nhưng với sự nhiệt tình và tâm huyết của thầy cô cộng với những nỗ lực của bản thân đã giúp tôi vượt qua được những trở ngại đó
Trong quá trình thực hiện luận văn, mặc dù gặp phải nhiều khó khăn trong việc sắp xếp thời gian, công việc cũng như việc tìm kiếm tài liệu tham khảo nhưng tôi đã nhận được sự tận tình hướng dẫn, chỉ bảo của thầy giáo hướng dẫn khoa học PSG.TS Đỗ Trung Tuấn giúp tôi hoàn thành luận văn này
Tôi xin chân thành cảm ơn các bạn trong khóa học đã hỗ trợ tôi trong suốt quá trình học tập, đặc biệt là trong chương trình sau đại học
Tôi cũng xin được gửi lời cảm ơn đến ban lãnh đạo, các đồng nghiệp tại Ngân hàng TMCP Sài Gòn Công thương – Chi nhánh Hà Nội, nơi tôi đang công tác đã tạo điều kiện về thời gian và giúp đỡ tôi trong công việc giúp tôi có thể hoàn thành khóa học và thực hiện xong luận văn
Để có thể hoàn tất khoá học sau đại học tại Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội tôi đã nhận được rất nhiều sự động viên giúp đỡ của gia đình, thầy cô, đặc biệt là thầy giáo hướng dẫn khoa học PGS.TS Đỗ Trung Tuấn, đồng nghiệp và bè bạn
Một lần nữa tôi xin chân thành cảm ơn
Học viên Trần Thanh Lưu
Trang 7
Bảng các từ viết tắt
2 MMDBMS Multimedia Database Management System
Trang 826 TS Transformaion Sequence
Trang 9MỞ ĐẦU
Thế kỷ 21 hứa hẹn những bước phát triển nhảy vọt hơn nữa trong lĩnh vực công nghệ thông tin, như đã từng có trong những thập niên 90 thế kỷ trước Những ứng dụng công nghệ thông tin vào đời sống thực tiễn và nghiên cứu khoa học được đánh giá sẽ rất triển vọng, hứa hẹn mở ra những thành công to lớn
Dữ liệu đa phương tiện ngày càng đóng vai trò không thể thiếu trong cuộc sống ngày nay, các trang thiết bị hiện đại phục vụ cho đời sống, nghiên cứu khoa học, quân sự sử dụng một khối lượng khổng lồ các loại dữ liệu đa phương tiện khác nhau Việc xây dựng các hệ thống quản lý cơ sở dữ liệu đa phương tiện phục
vụ cho những mục đích đó là yêu cầu thực sự quan trọng Trong đó, việc sử dụng các cấu trúc dữ liệu hợp lý để biểu diễn các loại dữ liệu như vậy, phục vụ những yêu cầu của hệ thống cơ sở dữ liệu là vấn đề cần phải giải đáp
Trong luận văn, chủ yếu tập trung vào tìm hiểu loại dữ liệu là hình ảnh (Image Data), giới thiệu các cấu trúc dữ liệu đa phương tiện để thể hiện dữ liệu hình ảnh,
mô hình hoá cơ sở dữ liệu hình ảnh, và đề cập đến việc xây dựng cơ sở dữ liệu đa phương tiện
Trang 10Chương 1 TỔNG QUAN
Ngay từ ban đầu, máy tính đã được coi là các thiết bị xử lý biểu tượng
(symbolic) – các thiết bị có đầu vào là các biểu tượng theo luật alphabet và đầu ra là
tập các biểu tượng của cùng dạng trên Điều nay đã trở thành mô hình cho các môi trường tính toán chuẩn dựa trên cơ sở máy Turing đã quen thuộc
Tuy nhiên, trong những năm gần đây xuất hiện nhu cầu vô cùng lớn về khả năng khai thác xử lý dữ liệu với số lượng khổng lồ mà nó là điều không dễ dàng diễn tả chỉ với việc sử dụng các ký tự Dưới đây là một số thí dụ về các kiểu dữ liệu như vậy:
Dữ liệu ảnh (Image data): Dữ liệu hình ảnh có thể nói là một trong những
kiểu dữ liệu đuợc sử dụng phổ biến và thông dụng nhất trên thế giới hiện nay Rất nhiều những ứng dụng trong các lĩnh vực khoa học khác nhau sử dụng hình ảnh làm nguồn dữ liệu để thực thi công việc một cách hiệu quả Ví dụ trong lĩnh vực Y học, một ví dụ cụ thể chẳng hạn một học viên phẫu thuật ở Miami mong muốn thực hành một ca phẫu thuật trên một bệnh nhân ảo có những triệu chứng sinh lý nào đó Trên thực tế để tìm ra bệnh nhân với những triệu chứng mong muốn, học viên phẫu thuật phải truy vấn cơ sở dữ liệu (CSDL) ảnh phân tán và kích thước lớn chứa ảnh X
quang hay MRI (Magnetic Resonance Imaging) của các bệnh nhân với các triệu chứng tương tự Đôi khi các triệu chứng có thể dễ dàng mô tả bằng văn bản Tuy
nhiên trong nhiều trường hợp khác, nó có thể dễ dàng hơn cho học viên phẫu thuật
nếu có thể trình diễn hình ảnh của loại mẫu (pattern) mà anh ta đang tìm kiếm trong
các ảnh X quang của bệnh nhân Trong cả hai trường hợp này, một CSDL hình ảnh phải được duy trì Nó có thể được truy vấn trên cơ sở các tiêu chí rất khác nhau -
đầu vào là văn bản hay ảnh phù hợp [17]
Dữ liệu Video (Video data): Tương tự như vậy, cùng với sự phát triển bùng
nổ của các thiết bị nghe nhìn như hiện nay thì kiểu dữ liệu Video đang ngày càng tràn ngập trên khắp mọi nơi Bên cạnh đó khi mà công nghệ lưu trữ hiện đại ngày
Trang 11nay làm cho việc lưu trữ các dữ liệu Video không phải là bài toán khó giải thì việc truy xuất dữ liệu để tìm kiếm thông tin theo yêu cầu trong kho dữ liệu khổng lồ như thế là một vấn đề rất đáng quan tâm Trong một ngữ cảnh tương tự, giả sử học viên của một trường đại học muốn tìm kiếm những tư liệu băng hình về một chủ đề kỹ thuật nào đó trong thư viện của trường Điều này yêu cầu họ phải truy vấn để tìm tài liệu trong tập hợp vô số những tư liệu băng hình được lưu trữ, điều này có thể
dẫn tới truy vấn của học viên đòi hỏi xâm nhập số lượng lớn băng hình.[17]
Dữ liệu âm thanh (Audio data): Dữ liệu âm thanh được sử dụng trong những
ứng dụng, thiết bị như nhận dạng giọng nói, xử lý âm thanh, điều khiển thiết bị bằng giọng nói Thí dụ, nỗ lực điều tra của cảnh sát về dấu vết của kẻ đe doạ đánh bom mong muốn có khả năng nhận dạng giọng nói tương ứng với tín hiệu từ điện thoại của kẻ đó thông qua CSDL lưu giữ các mẫu giọng nói của các tổ chức khủng bố
khác nhau.[17]
Dữ liệu tài liệu (Document data): Một CSDL văn bản truyền thống bao gồm
các đoạn văn bản, các từ, câu, đoạn văn, chương… Một CSDL tài liệu khác văn bản ở chỗ nó không chỉ chứa các thông tin dạng văn bản thô mà còn chứa đựng cả cấu trúc và hình ảnh nhúng Trong các trường hợp như vậy, cấu trúc của tài liệu có thể được khai thác dựa trên mục lục dữ liệu Cách khác, giả sử xem xét một quyển sách Quyển sách không chỉ chứa dữ liệu văn bản mà còn chứa cả hình ảnh Một số hình ảnh có thể là những hình vẽ trong khi một số khác là những bức ảnh Giả sử người sử dụng muốn tìm một bức ảnh của hoàng đế Mughal tên là Akbar nhưng không thể tìm ảnh trong CSDL hình ảnh Tuy nhiên, nếu anh ta có một thư viện điện tử số để truy cập thì anh ta có thể tìm thấy bức ảnh mong muốn nhờ xem xét kỹ những cuốn sách liên quan về lịch sử ấn Độ Như vậy, dữ liệu tài liệu bao gồm phương tiện quan trọng mà trong đó các thông tin có thể được lưu trữ dưới dạng
điện tử.[17]
Dữ liệu viết bằng tay (Handwritten data): Nhiều người thường ghi những ghi
chú trên những mẩu giấy nhỏ, điều này thường gây mất thông tin khi giặt quần áo hay vì một lý do nào đó mà những gì được ghi bị mờ đi Một số ghi chú có thể là
Trang 12không quan trọng, nhưng có rất nhiều cái cần được giữ gìn Xu thế gần đây cả trên thương trường hay trong giới nghiên cứu người ta cho rằng ghi chép điện tử ngày càng phổ biến hơn trong tương lai Người sử dụng sẽ sử dụng các thiết bị điện tử để ghi chép và lưu trữ Mặc dù có rất nhiều ghi chú có thể chuyển sang được dạng mã văn bản ASCII bằng kỹ thuật phân tích viết tay, nhưng có rất nhiều ghi chú không thể thực được bởi vì các ghi chú thường chứa cả các nét loằng ngoằng hay các biểu
đồ khối…
Các kiểu dữ liệu kể trên đây chỉ là một phần trong rất nhiều hình thức biểu hiện của dữ liệu phát sinh tự nhiên trong các ứng dụng khác nhau
Một cách phi hình thức, hệ thống quản trị cơ sở dữ liệu đa phương tiện
(Multimedia Database Management System – MMDBMS) là một khung làm việc để
quản lý các kiểu dữ liệu khác nhau mà chúng được thể hiện trong rất nhiều khuôn dạng khác nhau Để làm việc thành công thì một MMDBMS phải có các khả năng sau:
Nó phải có khả năng truy vấn đồng bộ dữ liệu được thể hiện trong các định dạng khác nhau Thí dụ, một MMDBMS sẽ có khả năng truy vấn và tích hợp dữ liệu mà nó được lưu trong các CSDL quan hệ khác nhau mà có thể sử dụng các lược
đồ khác nhau, cũng như việc truy vấn tệp phẳng và dữ liệu lưu trữ trong DBMS hướng đối tượng DBMS không gian Việc xử lý các truy vấn như vậy là khá phức tạp bởi vì trên thực tế việc nhận biết được nội dung của các kiểu dữ liệu media là vấn đề thách thức và nó phụ thuộc rất nhiều vào kiểu dữ liệu và cách thức lưu trữ
chúng Cuối cùng, truy vấn có thể mở rộng đối với nhiều kiểu vật mang (media) dữ
liệu và MMDBMS phải có khả năng kết hợp các kết quả từ các nguồn dữ liệu khác nhau và các kiểu media khác nhau
Tương tự, MMDBMS phải có khả năng truy vấn dữ liệu biểu diễn trong media khác nhau MMDBMS phải có khả năng khai thác các đối tượng mang tin từ một thiết bị lưu trữ cục bộ một cách trơn tru, liên tục MMDBMS phải có khả năng
tạo ra các câu trả lời từ truy vấn (được gọi là “answer to a query”) và có khả năng
trình diễn các câu trả lời này bằng các phương tiện nghe nhìn Mặc dù vậy, hình
Trang 13thức và nội dung của trình diễn có thể khác nhau từ ứng dụng này đến ứng dụng khác, do đó người sử dụng phải xác định được cấu trúc của hình thức và nội dung của các trình diễn kết quả thu được từ hệ thống
Điều cuối cùng là mỗi một hệ thống có đầy đủ các đặc tính yêu cầu trên là chưa đủ mà còn cần phải có khả năng phân phối các trình diễn theo một cách nào đó nhằm thoả mãn các yêu cầu khác nhau về chất lượng thể hiện của các thiết bị Ví
dụ, nếu MMDBMS quyết định rằng một luồng dữ liệu âm thanh và luồng dữ liệu video phải được thể hiện cùng một lúc, để làm được việc đó MMDBMS phải đảm bảo được rằng sự thể hiện này không bị ảnh hưởng do hiện tượng như ngắt quãng hay trục trặc nào đó Một điều quan trọng hơn là MMDBMS phải quan tâm tới việc
dữ liệu đang được phân phối cho các thiết bị ra liên quan (loa, bàn phím, màn hình…) mà chúng có thể để tập trung tại các nút mạng phân tán Do đó, các nhân tố như khả năng sẵn sàng của vùng đệm và độ rộng băng thông cần được lưu tâm khi phân phát trình diễn tới người sử dụng Hơn nữa, đòi hỏi về chất lượng dịch vụ cho biết rằng các tính chất hiệu năng khác nhau cần được tối ưu theo các ràng buộc nói trên
Do những nỗ lực trong mọi lĩnh vực của loài người mà việc tạo ra và quản lý các kho lưu trữ multimedia đã được thúc đẩy từ trước, trong đó có các cố gắng của
cả giới nghiên cứu và lĩnh vực thương mại Ngày nay, các ngôn ngữ truy vấn, kỹ thuật chỉ mục, các thuật toán khai thác dữ liệu, các phương pháp cập nhật đã được phát triển cho nhiều loại CSDL như quan hệ, CSDL hướng đối tượng, CSDL không gian, thời gian và các CSDL khác Mỗi một ngôn ngữ này là sự mở rộng, cải tiến của các ngôn ngữ trước đó và các thuật toán được áp dụng cho các kiểu dữ liệu mới
và quan trọng, hay các mô hình lý luận Với dữ liệu đa phương tiện, nó cũng tương
tự theo góc độ này Những cái mới và dữ liệu nổi trội/mô hình lý luận phải phù hợp với các nghiên cứu mang tính lý thuyết và các thử nghiệm trong lĩnh vực thương mại, với sự hỗ trợ tối đa từ các công nghệ đang có Ví dụ một ngôn ngữ truy vấn CSDL hình ảnh nên quan tâm và tận dụng thành tựu của các ngôn ngữ truy vấn
Trang 14CSDL đã được nghiên cứu trong những thập niên trước, hơn là bắt đầu từ một cái tạp nham
Hoàn toàn tương tự cho các hình thức khác của dữ liệu cũng như các chủ đề nghiên cứu khác (chỉ mục, khai thác, cập nhật, phiên giao dịch,…)
1.1 Các kịch bản đa phương tiện
Giả sử, xem xét một cuộc điều tra với quy mô lớn của cảnh sát về tình hình buôn ma tuý Thông thường, để thực hiện thành công một cuộc điều tra như vậy lực lượng cảnh sát sử dụng một số lượng lớn các thiết bị điện tử để thực hiện theo dõi các đối tượng nghi ngờ dính líu đến các tổ chức ma tuý Với một cuộc điều tra như vậy có thể sử dụng các thiết bị dưới đây để thu thập thông tin
Cảnh sát có thể sử dụng camera theo dõi để ghi lại các hình ảnh về hoạt động đang diễn ra tại các địa điểm khác nhau Ví dụ mỗi camera theo dõi có thể giám sát các hoạt động đang diễn ra tại một địa điểm trong một khoảng thời gian tương đối dài (có thể là trong 6 tháng) Tại mỗi địa điểm họ thu được khoảng vài triệu hình ảnh Vì chỉ mỗi một cuộc điều tra như vậy đã đòi hỏi từ 50 đến 100 camera theo dõi đặt tại các địa điểm khác nhau, do đó số hình ảnh video cần được quản lý là nhiều đáng kể Quan trọng hơn nữa là với thúc ép của pháp luật, cần thực hiện hàng trăm cuộc điều tra như vậy tại những địa điểm trong một khoảng thời điểm tại nhiều vùng khác nhau với rất nhiều hình thức tội phạm tương tự như cuộc điều tra về ma tuý như điều tra về các đường dây lừa đảo, các tội phạm liên quan đến tài chính, các cuộc điều tra về khủng bố, các cuộc điều tra về gián điệp… Số lượng dữ liệu video thu được theo cách đó phục vụ cho các cuộc điều tra là lớn khủng khiếp
Một tình huống khác, lực lượng cảnh sát được lệnh thực hiện các cuộc nghe trộm điện thoại tại một địa điểm sau đó tập hợp lại các dữ liệu âm thanh là các cuộc đàm thoại cho là đáng ngờ Mặc dù số lượng các cú điện thoại có thể khác nhau giữa các tội phạm, nhưng các tổ chức tội phạm (như đường dây ma tuý) rất hay sử dụng liên lạc điện thoại Theo chiều hướng đó số lượng các chuỗi âm thanh thu được trong một khoảng thời gian từ các cuộc điều tra là rất lớn Do vậy việc tổ chức
và tìm kiếm dữ liệu audio này có ý nghĩa vô cùng lớn
Trang 15Ngoài tất cả những gì trình bày ở trên, lực lượng cảnh sát có thể có một số lượng lớn các bức ảnh từ các điều tra viên Hơn nữa, trong các cuộc điều tra tội phạm quy mô lớn có thể phát hiện ra số lượng đáng kể các tội phạm với tội danh nhẹ (ví dụ hình ảnh những kẻ buôn bán ma tuý lẻ bị chụp khi đang tiến hành bán ma tuý hay một hành vi liên quan đến ma tuý có thể được phát hiện mà bản thân nó có liên quan đến người trong bức ảnh) Tất cả những hình ảnh này phải được lưu lại dưới dạng kỹ thuật số, sẵn sàng cho các công việc tìm kiếm và khai thác khi cần Cảnh sát cũng có thể phải xem xét một số lượng lớn tư liệu đã tìm được tại những nơi có liên quan đến những vụ án đang điều tra hay những vụ án khác Một lượng lớn tư liệu có thể liên quan trực tiếp đến vụ án nhưng vào thời điểm ban đầu thì chúng có thể không được rõ ràng Khi một cuộc điều tra về ma tuý đang diễn ra, mọi cái trở nên minh bạch khi mà ngày càng có nhiều mối liên hệ với các chứng cứ
đã thu được trong cuộc điều tra đang diễn ra cùng thời điểm
Một tình huống khác, cảnh sát có thể xâm nhập đến các dữ liệu có quan hệ cấu trúc Dữ liệu dạng này có thể bao gồm, thí dụ như dữ liệu trong các giao dịch ngân hàng của một vài tội phạm Điều này là đặc biệt quan trọng bởi vì một số trùm
ma tuý sử dụng rất nhiều hình thức rửa tiền, việc “Lần theo dấu vết đồng tiền”
thường khám phá được rất nhiều điều thú vị Các dữ liệu khác thuộc thể loại này có thể bao gồm những thông tin như những cuốn danh bạ điện thoại để xác định, nhận dạng người bị tình nghi.[4,17]
Cảnh sát cũng có thể sử dụng hệ thống thông tin địa lý (GIS) chứa đựng những dữ liệu địa lý liên quan đến cuộc điều tra ma tuý đang được triển khai Ví dụ cảnh sát nghi ngờ rằng một tuyến đường nào đấy đang được sử dụng để vận chuyển
ma tuý Để kiểm tra giả thuyết trên, họ phong toả một trong những tuyến đường đó , theo cách đó làm tập trung hướng vận chuyển ma tuý Mẫu của luồng ma tuý sẽ cung cấp cho cảnh sát các thông tin rất quan trọng về các vị trí đầu mối của ma tuý
Để thực thi chiến dịch trên, cảnh sát có thể sử dụng các hệ thống GIS để quản lý dữ liệu địa lý Các hệ thống GIS này quản lý các thông tin bao gồm thông tin về bản đồ đường đi, cũng có thể là các thông tin thu được về địa hình của những vùng lân cận
Trang 16của những thủ phủ trên núi Nhận thức về địa hình cũng như các hình thức sử dụng các phương tiện để vận chuyển ma tuý có thể mang lại cho cảnh sát những đầu mối
có giá trị để xác định được các tuyến đường đi qua các địa hình có khả năng là vùng hoạt động của tội phạm
Hình 1.1 là sơ đồ về các kiểu khác nhau của dữ liệu và các bộ phận mềm trọn gói được sử dụng trong các mẫu về kịch bản đa phương tiện, cần chú ý rằng các nguồn về hình thức dữ liệu đề cập trên chỉ là mẫu nhỏ của nguồn dữ liệu đa dạng và phong phú, có sẵn trong một ứng dụng Với sự bùng nổ về khả năng ứng dụng dữ liệu đa phương tiện, mỗi một lĩnh vực ứng dụng (dù trong ngành công nghiệp du lịch hay trong các hoạt động luật pháp) có thể có nguồn dữ liệu và kiểu media rất lớn và đa dạng từ ứng dụng này sang ứng dụng khác
Trở lại các kịch bản đa phương tiện mẫu đã đề cập phần trên, một số câu truy vấn hay gặp mà người sử dụng hệ thống đa phương tiện cảnh sát (ở đây là lực lượng cảnh sát) có thể hay sử dụng để giải quyết công việc của mình
Query 1.1 (Image Query) Giả sử rằng một cảnh sát có bức ảnh ngay trước
mắt anh ta Thí dụ, đó là bức ảnh chụp chính diện từ các cuộc điều tra mới đây Cơ quan điều tra có thể ghi ngờ một người trong bức ảnh đang sử dụng một bí danh nào
đó Do vậy họ mong muốn giải quyết được vấn đề đặt ra là “Tìm tất cả các bức ảnh
từ thư viện ảnh trong đó có sự xuất hiện của người đang bị nghi ngờ”
Đây là một vấn đề rất thú vị bởi vì nó có thể được giải quyết bởi một trong hai khả năng Thứ nhất là cảnh sát có thể biết trước tên của người trong bức ảnh Trong trường hợp này truy vấn được thực hiện bằng việc sử dụng thông tin văn bản đã biết trước về các bức ảnh khác nhau trong thư viện ảnh để tìm ra một bức ảnh có kết hợp
Trang 17ghi chú bằng văn bản Hoặc với cách khác, cảnh sát có thể cần đến việc áp dụng các
kỹ thuật xử lý ảnh để tìm sự tương đồng giữa khuôn mặt trong bức ảnh vừa chụp với các khuôn mặt trong các bức ảnh có sẵn trong thư viện ảnh căn cước Phương án thứ 2 thường được thực hiện ngay sau khi phương án thứ nhất thất bại
Query 1.2 (Audio Query) Trong một trường hợp khác, khi có quan cảnh sát
đang nghe lại một băng nghi âm theo dõi những đối tượng tình nghi Thí dụ, nội dung băng là một cuộc đàm thoại giữa một nhân vật A (người đang bị theo dõi) với một nhân vật B (người đang tiếp xúc với A) Dựa vào nội dung của cuộc đàm thoại,
cơ quan cảnh sát mong muốn tìm kiếm thông qua CSDL các mẫu giọng nói để có thể xác định được người B Nếu yêu cầu như trên thành công thì nó có thể cung cấp cho cảnh sát những chứng cứ hay có thể là những định hướng cho quá trình điều tra tội phạm
Truy vấn trên đây chỉ bao hàm xử lý tiếng nói Đặc điểm của lời nói được lưu
trữ một cách đặc biệt trong một véctơ đặc trưng (feature vector) phản ánh các giá trị
của các tham số khác nhau là “quan trọng” và liên quan đến quá trình ghi âm vừa qua Để xác định xem một mẫu lời nói (giọng nói của nhân vật B) có tương đồng với một vector trong cơ sở dữ liệu tiếng nói hay không, phải cần một số kỹ thuật dựa vào các CSDL tiếng nói có thể được đánh giá chỉ mục để thuận tiện hơn trong
việc khai thác một cách nhanh chóng các dãy âm thanh tương tự
Query 1.3 (Text Query) Mặt khác, cơ quan cảnh sát có thể xem qua các tài
liệu như các file văn bản lưu trữ các bài báo cũ Đó là hồ sơ cảnh sát về những vụ án giết người chưa được giải quyết, về các chứng cứ… Cảnh sát mong muốn giải quyết
vấn đề đặt ra bằng cách đưa ra câu truy vấn như “Tìm tất cả các tư liệu (từ tập các tài liệu văn bản) liên quan đến mối quan hệ trong các giao dịch tài chính của tổ chức thuốc phiện XYZ với ABC Corp”
Đây thực sự là một truy vấn khá thú vị, nó hướng vào lĩnh vực CSDL văn bản Một từ khoá tìm kiếm đơn giản thông qua tập hợp các tài liệu không đảm bảo
sẽ đảm bảo cho kết quả chính xác, ngay cả khi chỉ mục cho việc tìm kiếm trong tài liệu văn bản này đã tồn tại Cuối cùng nó càng không có sự đảm bảo là các tài liệu
Trang 18sẽ đề cập đến các từ “XZY”, “finance” và “ABC Corp” Ví dụ một tư liệu nói về
việc chuyển tiền từ tài khoản ngân hàng của Jose Orojuelo sang tài khoản của John Smith có thể là một tư liệu có giá trị Nó có ý nghĩa vì Jose Orojuelo là một người đứng đầu nhóm buôn bán thuốc phiện XYZ và John Smith là một quan chức cao cấp trong ABC Corp Văn bản phải được đánh chỉ mục không chỉ theo từ khoá mà còn dựa trên nội dung ngữ nghĩa của từ khoá Chỉ khi nào thực hiện được điều đó thì mới có hy vọng thu được các kết quả một cách chính xác và cô đọng
Query 1.4 (Video Query) Hãy xem xét một ví dụ sau, cơ quan cảnh sát đang
kiểm tra một đoạn băng video theo dõi, ghi lại một nạn nhân bị tấn công nhưng đáng tiếc là kẻ tấn công đã giấu mặt trong khi gây án Trong trường hợp này cơ
quan cảnh sát mong muốn giải quyết vấn đề bằng đưa ra câu hỏi truy vấn “Tìm tất
cả các đoạn băng video mà có sự xuất hiện của nạn nhân trong vụ tấn công” Với
việc kiểm tra các đoạn băng video Cảnh sát hy vọng có thể thu được một số thông tin bổ ích cho việc nhận dạng kẻ gây án Đặc biệt là trong trường hợp kẻ gây án có quen biết với nạn nhân một kịch bản tương tự cũng có thể nảy sinh trong khi cuộc buôn bán ma tuý đang diễn ra giữa hai tổ chức buôn bán ma tuý
Cũng cần chú ý rằng trong trường hợp trên cảnh sát không đòi hỏi cung cấp
các khung (frame) video về các hành động đã xảy ra Thay vào đó họ yêu cầu các đoạn (segment) video (có lẽ là liên tiếp nhau) trong đó có hành động xảy ra Điều
này đòi hỏi MMDBMS không chỉ có khả năng tìm ra các frame video về các hành động đã xảy ra mà nó còn phải có khả năng tổng hợp các frame này thành những đoạn video liền mạch
Bây giờ, một vấn đề phức tạp hơn mà cơ quan cảnh sát phải đối phó sẽ được thảo luận Mỗi một vấn đề đặt ra ở trên chỉ tiếp cận với một hình thức dữ liệu riêng
lẻ Mặc dù khái niệm về dữ liệu đa phương tiện đã trở nên phổ biến thông qua các
dữ liệu nghe nhìn nhưng thực tế rằng dữ liệu đa phương tiện không phải chỉ có dữ liệu tiếng nói và dữ liệu audio mà còn rất nhiều kiểu dữ liệu khác nhau các dữ liệu dạng các ghi chú, dữ liệu văn bản, dữ liệu quan hệ, dữ liệu về địa lý, các bản đồ địa hình, các mô hình không gian 3 chiều Do vậy một truy vấn phức tạp hơn là việc
Trang 19trộn và tìm ra dữ liệu tương tự từ các nguồn khác nhau Làm được điều đó sẽ cho phép cơ quan cảnh sát đặt ra các yêu cầu tiếp cận các nguồn dữ liệu tập trung trong
các gói dữ liệu phức tạp và trên các phương tiện (media) khác nhau sử dụng các kỹ
thuật lưu trữ khác
Query 1.5 (Simple Heterogeneous Query) Giả sử rằng cơ quan cảnh sát đưa
ra một vấn đề “Tìm tất cả những tù nhân đã bị kết án về tội mưu sát tại Mỹ và những người này trong thời gian gần đây đã thực hiện việc chuyển tiền điện tử ABC Corp vào tài khoản riêng của họ”
Xét bề ngoài của yêu cầu trên có vẻ như đây không có gì khác biệt với các truy vấn thông thường Trước hết, nó chỉ bao hàm việc xử lý các câu truy vấn dựa vào các CSDL văn bản chuẩn ban đầu Nhưng đáng tiếc là thực tế không phải như vậy, bất kỳ ai trong cơ quan pháp luật đều hiểu rằng giải quyết vấn đề trên là một công việc hết sức khó khăn Lý do thứ nhất là để tìm được những người đã chuyển tiền điện tử ABC Corp vào tài khoản ngân hàng của họ thì phải đủ khả năng giám sát các hoạt động chuyển tiền điện tử của ABC Corp Thực tế là ABC Corp có tài khoản trong hàng trăm ngân hàng trên khắp thế giới Nếu nhìn nhận một cách lạc quan, chúng ta giả sử rằng cảnh sát đã có trong tay danh sách tài khoản của ABC Corp trong các ngân hàng trên khắp thế giới, hơn nữa, họ có quyền giám sát các giao dịch đáng ngờ dưới các hình thức khác nhau Việc thu thập danh sách tài khoản nhận tiền của ABC Corp từ các báo cáo với định dạng khác nhau Thứ hai, nhiệm
vụ còn lại là xác định những ai đã nhận tiền từ ABC Corp đã từng bị kết án với tội mưu sát lưu trữ trong kho dữ liệu tội phạm Bắc Mỹ Các dữ liệu này cũng được quản lý theo các cách khác nhau Trên thực tế chỉ xét riêng nước Mỹ tại các bang khác nhau cũng có sự khác nhau trong việc lưu trữ các hồ sơ tội phạm Một số bang thì sử dụng các file phẳng một số một số lại sử dụng những hệ quản trị dữ liệu rất khác nhau Với truy vấn có mức độ phức tạp hơn đòi hỏi tiếp cận tất cả các khuôn dạng dữ liệu văn bản nói trên, nhưng còn phải thêm vào đó là kiểu dữ liệu hình ảnh
Query 1.6 (Heterogeneous Multimedia Query) Giả thiết rằng cơ quan cảnh
sát đưa ra truy vấn “Tìm tất cả những người đã chụp ảnh với Jose Orojuelo và họ
Trang 20đã bị bắt trong vụ mưu sát tại Mỹ và gần đây họ đã nhận tiền chuyển vào tài khoản
Cơ sở dữ liệu thẻ căn cước chứa tên cũng như hình ảnh của mọi người
Cơ sở dữ liệu các hình ảnh chứa các ảnh chụp liên quan đến các vụ điều tra Các dữ liệu video theo dõi để thấy được cuộc gặp gỡ giữa một kẻ khả nghi và
Jose Orojuelo đã được ghi lại trước đó
Các thuật toán xử lý ảnh để xác định ai xuất hiện trong bức ảnh chụp hay trong băng video
Nhìn chung, các truy vấn này đòi hỏi phải tiếp cận đến các hình thức thường khác nhau của dữ liệu quan hệ, dữ liệu hình ảnh và các thuật toán xử lý ảnh
1.3 Các ứng dụng khác
Các kịch bản mẫu về ứng dụng đa phương tiện trên đây đã mô tả phần lớn các hình thức dữ liệu multimedia và các lập luận có thể bắt gặp Tuy nhiên ta còn thấy nhiều thí dụ khác về đa phương tiện từ các lĩnh vực khác nhau
1.3.1 Các dịch vụ đa phương tiện trong giáo dục
Ngày nay, nhiều trường đại học đã cung cấp chương trình giáo dục từ xa giành cho những ai không có điều kiện tham gia lớp học với những lý do khác nhau như do điều kiện địa lý hay thời gian để có thể theo các khoá học Khoá học như vậy ngày nay thông thường được tiến hành với việc gửi các tài liệu học tập như sách báo, băng ghi hình, bên cạnh đó một số nơi có thể cho phép học viên sử dụng máy tính truy cập trực tuyến các kho tài liệu dưới dạng các đoạn phim tư liệu, băng tiếng liên quan đến việc học tập Thí dụ một học viên có thể truy cập đến một trong các
dịch vụ trên máy chủ của thư viện nhà trường đưa ra câu truy vấn có thể như “Tìm tất cả các bài giảng với chủ đề PR- quadtrees có trong thư viện tài liệu” Thư viện
có thể chứa đựng thông tin về chủ đề này trong các phương tiện lưu trữ khác nhau
Trang 21(các băng video bài giảng, các tập tài liệu) liên quan đến chủ đề trên Giải pháp truy vấn đòi hỏi khả năng duyệt qua các tư liệu để tìm được các phần phù hợp, nó có thể
là một video clip Ngoài các bài giảng, người sử dụng có khả năng lựa chọn được tài liệu mà họ cho là phù hợp nhất
1.3.2 Ứng dụng trong hội nghị điện tử
Tại các nước phát triển hiện nay trên thế giới, ứng dụng hội nghị điện tử được chính phủ quan tâm đầu tư một cách nghiêm túc, và thu được những thành công nhất định Tại các tập đoàn, công ty đa quốc gia lớn trên thế giới những ứng dụng hội nghị điện tử, trực tuyến được sử dụng trong các mục đích hội họp, trao đổi với các đơn vị thành viên đặt tại các quốc gia khác nhau nhằm đưa ra các quyết định, chiến lược kinh doanh khác nhau mà không cần phải gặp mặt trực tiếp vẫn có thể cảm nhận được tầm vóc của một cuộc họp, hội nghị nhờ những công nghệ tiên tiến tạo ra, hay là trao đổi với đối tác về các thảo thuận làm ăn giữa hai bên Các tập đoàn tin học lớn đã đầu tư công nghệ vào việc sản xuất ra những sản phẩm phục vụ nhu cầu trên và thu được lợi nhuận lớn lao
1.3.3 Ngành công nghiệp giải trí
Trong một tương lai rất gần, nhu cầu về phim ảnh theo yêu cầu (on demand)
sẽ rất lớn Người sử dụng có thể dễ dàng chọn các bộ phim tại nhà và xem chúng qua TV tại nhà Trong thời gian hiện nay cách thức chọn phim mà người sử dụng mong muốn là rất phong phú Cũng như việc ứng dụng đa phương tiện trong lĩnh vực giáo dục miêu tả ở trên, trong lĩnh vực điện ảnh người sử dụng có thể lựa chọn phim mong muốn bằng cách trộn cả truy vấn tìm kiếm và duyệt Một hệ thống đa phương tiện hỗ trợ tương tác như vậy của người sử dụng thì phải có khả năng tìm kiếm hiệu quả những bộ phim thoả mãn nhu cầu của người sử dụng Hơn thế nữa, người sử dụng nên có được khả năng xem trước những mẩu phim giới thiệu mà họ mong muốn Ngoài ra, họ nên được quyền xem xét các bài phê bình về bộ phim, với
sự cân nhắc như vậy có thể giúp người sử dụng lựa chọn được những bộ phim mà người sử dụng thực sự muốn xem
Trang 221.4 Kết luận
Như vậy, với thực tế hiện nay, bên cạnh sự phát triển nhanh chóng của khoa học công nghệ nói chung và các ngành liên quan đến ứng dụng đa phương tiện nói riêng, các nguồn dữ liệu đa phương tiện được tạo ra là vô cùng lớn và đóng vai trò quan trọng trong nhiều lĩnh vực của đời sống Dẫn tới nhu cầu về việc quản lý, lưu trữ và sử dụng chúng một cách hiệu quả Với tính đa dạng về các kiểu dữ liệu nên các cấu trúc dữ liệu được sử dụng để lưu trữ hiệu quả các kiểu dữ liệu này là rất khác nhau Hơn thế nữa, để quản lý các kiểu dữ liệu này trên cùng một MMDBS cũng đòi hỏi những cách thức tổ chức dữ liệu phức tạp và rất đáng quan tâm
Trong luận văn, kiểu dữ liệu được tập trung xem xét đó là kiểu dữ liệu hình ảnh, các cấu trúc dữ liệu sử dụng để lưu trữ kiểu dữ liệu hình ảnh, giới thiệu mô hình biểu diễn CSDL hình ảnh, cuối cùng đề cập tới việc thiết kế, truy vấn CSDL đa phương tiện
Trang 23Chương 2 CẤU TRÚC DỮ LIỆU ĐA CHIỀU
Phần lớn dữ liệu đa phương tiện liên quan đến không gian và thời gian Loại
dữ liệu này còn được gọi là dữ liệu n chiều, xuất phát từ thực tế là dữ liệu có các thuộc tính kết hợp lấy từ không gian n chiều Thí dụ, không gian có hai hay ba
chiều, không gian – thời gian có 4 chiều (các trục x, y, z, t ) Do vậy, những kỹ thuật biểu diễn thông tin n chiều sẽ được tìm hiểu và trình bày
Phần lớn các kỹ thuật lưu trữ dữ liệu n – chiều thực hiện tách phân cấp không gian, biểu diễn bởi các cây Gốc cây là toàn bộ vùng Nút biểu diễn vùng, cành biểu diễn phân hoạch vùng ra tiểu vùng
Có nhiều cấu trúc dữ liệu khác nhau được sử dụng để biểu diễn việc tách phân cấp vùng như nói trên đây, trong đó có cấu trúc cây k – d, cây tứ phân điểm, cây tứ phân MX và cây R mỗi chúng có ưu điểm và nhược điểm riêng
2.1 Mở đầu
Một trong kịch bản về ứng dụng đa phương tiện là dữ liệu có nguồn gốc thông tin địa lý Một hình thức đơn giản nhất là GIS lưu trữ thông tin về vùng nào đó của trái đất như bản đồ hay ảnh chứa các đặc trưng nổi trội Trong trường hợp này, bản
đồ là hình ảnh hai chiều, một số điểm trên bản đồ được xem như các đối tượng cần quan tâm Các điểm này có thể được lưu trữ trong nhiều cấu trúc dữ liệu đặc biệt Hình 2.1a là bản đồ đơn giản có một số điểm trên bản đồ được xem như các đối
tượng cần quan tâm bằng tên của nó ( thí dụ như Banja Luka, Brcko) Thay vì điểm
quan tâm, ứng dụng có thể đòi hỏi vùng quan tâm Trong trường hợp này cấu trúc
dữ liệu phải có khả năng lưu trữ thông tin về các vùng Hình 2.1b biểu diễn cùng bản đồ nhưng chứa một số vùng quan tâm
Trang 24Chương này chỉ ra cách biểu diễn dữ liệu bản đồ trên hình 2.1b bằng các loại cấu trúc là : cây k-d, cây tứ phân và cây R
2.2 Cây k-d (k-d Trees)
Cây k-d được sử dụng để lưu trữ dữ liệu điểm k - chiều như chỉ ra trên hình 2.1a Cây k-d không sử dụng để lưu trữ dữ liệu vùng Như vậy, cây 2-d (khi k=2) lưu trữ dữ liệu điểm 2-chiều, cây 3-d lưu trữ dữ liệu điểm 3 chiều…Thí dụ này đề cập đến dữ liệu điểm 2-d, sau đó khái quát lên k-d
Trang 25Trường INFO có thể có kiểu bất kỳ do người sử dụng định nghĩa phụ thuộc và ứng dụng cụ thể Thí dụ, nó có thể là trường xâu ký tự mô tả tên địa điểm, hay nó có
thể là name:string và population:integer…
Trường XVAL, YVAL biểu thị toạ độ điểm kết hợp với nút
Các trường LLINK và RLINK chỉ đến hai cành
Giả sử T trỏ đến gốc của cây 2-d Nếu N là nút trong cây, thì mức của N được xác định qui nạp như sau:
Level(N) =
Cây 2-d là cây nhị phân bất kỳ nếu thoả mãn điều kiện sau:
1 Nếu N là nút trong cây và level(N) là chẵn thì mỗi nút M trong cành rẽ
nhánh từ N.LLINK có tính chất M.XVAL < N.XVAL, mỗi nút P trong cành rẽ nhánh từ N.RLINK có tính chất P.XVAL N.XVAL
2 Nếu N là nút trong cây và level (N) là lẻ thì mỗi nút M trong cành rẽ nhánh
từ N.LLINK có tính chất M.YVAL < N.YVAL, mỗi nút P trong cành rẽ nhánh từ N.RLINK có tính chất P.YVAL N.YVAL [17]
2.2.2 Chèn và tìm kiếm trong cây 2-d
Việc chèn nút N vào cây do T trỏ tới được phát biểu phi hình thức như sau: Kiểm tra xem N và T có thống nhất các trường XVAL và YVAL hay không Nếu thống nhất thì chỉ việc viết đè nút T và kết thúc Nếu không hãy rẽ trái nếu N.XVAL < T.XVAL và rẽ phải trong trường hợp ngược lại Giả sử P là nút con đang khảo sát Nếu N và P thống nhất trong các trường XVAL và YVAL thì chỉ cần viết đè P và kết thúc, nếu không thì rẽ trái khi N.YVAL<P.YVAL, rẽ phải trong trường hợp ngược lại Lặp thủ tục này, hãy rẽ nhánh theo XVAL khi đang ở mức chẵn trong cây, và theo YVAL khi đang ở mức lẻ
1 ) (
0
P level
Nếu N là gốc của cây Nếu cha của N là P
Trang 26Thí dụ trên hình 2.3 là lưới bản đồ Gốc (0,0) ở góc dưới trái của lưới Mỗi tế bào có kích thước 8, do vậy kích thước bản đồ là 64x64 Giả sử, phải xây dựng cây 2-d, trường INFO chỉ chứa tên địa điểm.
Danh sách các địa điểm như bảng 2.1 sau đây:
Thành phố (XVAL,YVAL) Banja Luka (19,45)
Derventa (40,50) Teslic (38,38) Tuzla (54,40)
Trang 281 Khi chèn Banja Luka vào cây có một nút với INFO = Banja Luka, XVAL =
19, YVAL = 45 Nút này biểu diễn toàn bộ vùng bản đồ Tổng quát, mỗi nút N biểu diễn vùng Reg(N) Các trường XVAL và YVAL của các nút N xác định điểm trong Reg(N) Điểm này (N.XVAL, N.YVAL) chia Reg(N) thành 2 phần bằng cách vẽ
đường thẳng đứng qua điểm trong vùng ( nếu nút ở mức chẵn) hay vẽ đường nằm ngang qua điểm trong vùng (nếu nút ở mức lẻ )
2 Khi chèn Derventa, phải so sánh các trường XVAL của Derventa với của Banja Luka, thực hiện rẽ phải vì toạ độ x (40) của Derventa lớn hơn của Banja Luka(19) Kết quả trên hình 2.4b Banja Luka chia đôi vùng bằng đường thẳng đứng (hình 2.5.a) – mọi điểm nằm bên phải có toạ độ x lớn hơn hay bằng 19, bên trái có toạ độ nhỏ hơn 19 Derventa biểu diễn vùng bên phải của đường thẳng đứng trong
vùng bằng đường thẳng nằm ngang trong hình 2.5.b Vùng phía trên đường thẳng
có toạ độ x lớn hơn hay bằng 19, toạ độ y lớn hơn hay bằng 50 Vùng phía dưới đường thẳng có toạ độ x nhỏ hơn 19, toạ độ y nhỏ hơn 50.
Trang 294 Khi chèn Tuzla, trước hết phải so sánh XVAL của Tuzla và Banja Luka Giá trị XVAL của Tuzla là 54, còn của Banja Luka là 19,vậy phải rẽ phải Sau đó so sánh YVAL của Tuzla (40) và Derventa (50), vậy phải rẽ trái Tiếp tục so sánh XVAL của Tuzla (54) và Teslic (38), vậy phải rẽ phải (hình 2.4d)
5 Cuối cùng, khi chèn thành phố Sinj, thực hiện so sánh XVAL của Sinj và Banja Luka, phải rẽ trái vì toạ độ x của Sinj nhỏ hơn của Banja Luka Kết quả được
mô tả trên hình 2.4d và 2.4e
Trong trường hợp tồi nhất thì độ cao của cây 2-d với k nút là (k-1), việc tìm kiếm nút cho trước sẽ mất O(k) lần
2.2.3 Huỷ bỏ trong cây 2-d
Công việc phức tạp nhất với cây 2-d là huỷ bỏ điểm khỏi cây Giả sử T là cây
2 chiều, điểm sẽ huỷ bỏ có toạ độ (x,y) Bước thứ nhất của việc huỷ bỏ là tìm ra nút
N trong T sao cho N.XVAL = x và N.YVAL = y Nếu N là nút lá thì huỷ N là dễ dàng, chỉ việc đặt NIL cho LLINK,RLINK trong nút cha N, giải phóng vùng nhớ N Nếu N là nút trong cây thì tình hình phức tạp hơn Trong trường hợp này, cây con
có gốc tại N.LLINK (đặt tên là T1) hay tại N.RLINK ( đặt tên là Tr) là không rỗng Yêu cầu đặt ra bây giờ là tìm nút R từ T1 hay Tr có thể thay thế nút N và có thể lần
Hình 2.5
Trang 30lượt được huỷ bỏ khỏi cây con Như vậy các bước của thuật toán huỷ bỏ nút N bên trong cây sẽ là:
Bước 1: Tìm nút ứng viên thay thế R trong Ti với i{l,r}
Bước 2: Thay thế mọi trường không có liên kết của N bởi các trường của R Bước 3: Huỷ bỏ đệ qui R khỏi Ti
Đệ qui trên có điểm dừng vì Ti với i {l,r} có độ cao nhỏ hơn cây T
Bước phức tạp nhất trong thuật toán trên là tìm ra nút ứng viên thay thế Nút
R muốn thay thế phải có quan hệ không gian với mọi nút P trong T1 và Tr sao cho
N dẫn tới P Có nghĩa cho rằng, nếu P ở phía tây nam N thì P phải ở tây nam R, nếu
P ở tây bắc N thì P phải ở tây bắc R, …Như vậy, nút mong muốn thay thế R phải thoả mãn các tính chất sau:
1 Mọi nút M trong T1 thoả M.XVAL < R.XVAL nếu level(N) là chẵn và M.YVAL < R.YVAL nếu level(N) là lẻ
2 Mọi nút M trong Tr thoả M.XVAL R.XVAL nếu level(N) là chẵn và M.YVALR.YVAL nếu level(N) là lẻ
Nếu Tr không rỗng và level(N) là chẵn, thì bất kỳ nút nào trong Tr mà có trường XVAL nhỏ nhất thì là nút ứng viên thay thế Thí dụ, trong hình 2.4e, nếu lấy
N là nút chứa Banja Luka, thì nút ứng viên thay thế từ cây con bên phải là nút liên kết với Testic vì nó có toạ độ x nhỏ nhất trong các nút của cây con phía phải Banja Luaka
Mặt khác, nếu Tr không rỗng và level(N) là lẻ thì bất kỳ nút nào trong Tr mà
có trường YVAL nhỏ nhất thì là nút ứng viên thay thế
Tổng quát thì việc tìm kiếm nút thay thế từ cây con bên trái chỉ có thể thắng lợi dưới một số điều kiện nhất định Nếu level(N) là chẵn thì nút thay thế phù hợp
trong T1 là nút bất kỳ nếu thoả mãn trường XVAL của nó có giá trị lớn nhất Tương
tự nếu level(N) là lẻ thì có thể sử dụng nút bất kỳ trong T1 mà có trường YVAL lớn nhất để làm nút thay thế
Vấn đề xảy ra là có thể có nhiều nút trong T1 cùng có XVAL (hay YVAL) lớn nhất, trong trường hợp này điều kiện thứ hai trong định nghĩa cây 2-d có thể bị vi
Trang 31phạm bởi bước 3 vừa mô tả trên Tổng quát thì, nếu N là nút trong và ta muốn huỷ
bỏ N khỏi T thì tìm thay thế từ cây con phải vì việc tìm ứng viên thay thế trong cây trái là không thể
Cái gì xảy ra nếu N có cây phải rỗng (N.RLINK=NIL)? Trong trường hợp này có thể chọn nút thay thế R từ T1 có giá trị x nhỏ nhất trong T1 (nếu level(N) là chẵn) hay có giá trị y nhỏ nhất trong T1 (nếu level(N) là lẻ) Sau đó, sửa đổi bước 2 trong thuật toán trên đây như sau:
Bước 2 (sửa đổi): Thay thế toàn bộ các trường không có liên kết của nút N
bằng nút R Đặt N.RLLNK=N.LLINK và N.LLINK=NIL
2.2.4 Truy vấn khoảng trong cây 2-d
Truy vấn khoảng trên cây 2-d có tên T là truy vấn theo chỉ định điểm (xc,xc)
và khoảng r Kết quả cho lại là tập điểm (x,y) trong cây T sao cho (x,y) nằm trong khoảng r của (xc,yc) Nói cách khác khoảng truy vấn xác định vòng tròn bán kính r
có tâm (xc,yc) và tìm mọi điểm trong cây 2-d nằm trong vòng tròn
Khi xử lý truy vấn khoảng, mỗi nút N trong cây 2-d biểu diễn vùng RN, nếu vòng tròn và vùng RN không giao nhau thì không tìm thấy điểm nào trong cây con
có gốc là nút N Hãy quan sát các vùng trong hình 2.5d
1 Nút có nhãn Banja Luka biểu diễn vùng chứa các điểm (x,y) của các số
thực
2 Nút có nhãn Derventa biểu diễn vùng chứa mọi điểm (x,y) với x19; nó có thể được thu nhận bởi biểu thức {(x,y) x19}
3 Nút có nhãn Teslic biểu diễn vùng chứa mọi điểm (x,y) với x19 và y <50;
nó có thể được thu nhận bởi biểu thức {(x,y)x19&y<50}
4 Nút có nhãn Tuzla biểu diễn vùng chứa mọi điểm (x,y) với x38 và y<50;
nó có thể được thu nhận bởi biểu thức {(x,y)x38&y<50}
5 Cuối cùng, nút nhãn Sinj biểu diễn vùng chứa mọi điểm (x,y) với x<19
Tổng quát thì mỗi nút N có nhiều nhất 4 ràng buộc kết hợp biểu diễn kết nối các vùng:
Trang 321 XLB: Ràng buộc này biểu diễn cận dưới (Lower Bound) của x và có khuôn
dạng xc1
2 XUB: Ràng buộc này biểu diễn cận trên (Upper Bound) của x và có khuôn
dạng x < c2.
3 YLB: Ràng buộc này biểu diễn cận dưới của y và có khuôn dạng yc3
4 YUB: Ràng buộc này biểu diễn cận trên của y và nó có khuôn dạng y<c4
Có thể mở rộng định nghĩa kiểu dữ liệu nodetype thành newnodetype bằng
cách gộp các trường vừa mô tả trên như sau:
Khi chèn nút khi đó chỉ phải làm như sau đây:
1 Với gốc cây: đặt - vào XLB và YLB, đặt + vào XUB và YUB
2 Nếu nút N có nút P là cha và mức level(P) là chẵn thì :
N.XLB=P.XLB nếu N=P.LLINK
N.XLB=P.XVAL nếu N=P.RLINK
N.XUB=P.XVAL nếu N=P.LLINK
N.XUB=P.XUB nếu N=P.RLINK
N.YB=P.YLB
N.YUB=P.YUB
3 Nếu nút n có nút P là cha và mức level (P) là lẻ thì:
N.YLB=P.YLB nếu N=P.LLINK
N.YLB=P.YVAL nếu N=P.RLINK
N.YUB=P.YVAL nếu N=P.LLINK
N.YUB=P.YUB nếu N=P.RLINK
N.XLB=P.XLB
Trang 33N.XUB=P.XUB
Thí dụ sau đây xem xét truy vấn khoảng trên bản đồ Bosnia (hình 2.6) Cho trước vòng tròn tâm (35, 46) và bán kính 9.5 Câu trả lời là hai điểm Testic và Derventa sẽ hoàn toàn thoả mãn
Tiến trình truy vấn như sau Vùng biểu diễn gốc cây 2-d không cắt vòng tròn,
vậy ta kiểm tra xem Banja Luka có trong vòng tròn? Câu trả lời là nó không nằm trong Tiếp tục xem xét hai cành của Banja Luka, bên trái biểu diễn mọi điểm (x, y)
thoả x<19 Vì vùng này không cắt vòng tròn nên sẽ không xem xét tiếp cành này
Mặt khác cành phía phải của Banja Luka biểu diễn mọi điểm (x, y) thoả x19, chắc
chắn nó cắt vòng tròn Kiểm tra xem cành bên phải (Derventa) có trong vòng tròn? Câu trả lời là có, vậy cho lại mã của nó Sau đó hãy khảo sát cành của Derventa
Vùng biểu diễn bởi tập điểm (x, y) thoả x19 và y<50 Vùng này cắt vòng tròn, vậy phải kiểm tra cành có trong vòng tròn? Câu trả lời là có, vậy phải trả lại cành của nó
(Testic) Hãy xem xét con của Testic (Tuzla) Vùng này được biểu diễn bởi tập điểm
(x, y) thoả x38 và y<50, và vùng này cắt đường tròn Vậy cần kiểm tra xem Tuzla
trong vòng tròn? Câu trả lời là không, do vậy có thể dừng lại tại đây
Hình2.6
Trang 342.2.5 Cây k-d với k 2
Cây 2-d để biểu diễn điểm trong không gian 2-d Cây k-d với k2 biểu diễn điểm trong không gian k-d Thí dụ, cây 3-d biểu diễn các điểm (x,y,z) và cây 4-d biểu diễn điểm dưới dạng (x,y,z,t)…Tổng quát, điểm trong không gian k-d có dạng (x1, …,xk), trong đó xi là số thực
Để biểu diễn nút cây k-d, giả sử rằng các trường XVAL, YVAL sử dụng trong
cây 2-d bị loại bỏ, thay vì nodetype hay newnodetype sẽ có trường VAL mới Nó là
mảng độ dài k của các số thực
Cây T có cấu trúc nút như vậy được gọi là cây k-d nếu với mỗi nút N trong cây T ta có:
1 Giả sử level(N) mod k=i
2 Với mỗi nút M trong cành của N ta có M.VAL[i]<N.VAL[i]
3 Với mỗi nút P trong cành phải N ta có P.VAL[i]N.VAL[i]
Mọi thuật toán của cây 2-d tổng quát hoá cho cây k-d với k2 Nếu k=1,dẫn tới có được cây tìm kiếm nhị phân chuẩn
2.3 Cây tứ phân điểm (Point Quadtrees)
Một cây tứ phân điểm giống như cây 2-d, được sử dụng để biểu diễn các điểm
dữ liệu trong không gian hai chiều Có điều không giống như cây 2-d là cây tứ phân điểm luôn chia một vùng thành 4 phần Trong cây 2-d, nút N phân một vùng thành hai phần do vẽ một đường thẳng đi qua điểm (N.XVAL, N.YVAL) Đường kẻ này
có thể là đường nằm ngang nếu cấp của N là lẻ hoặc là đường thẳng đứng trong trường hợp cấp của N là chẵn Đối với cây tứ phân điểm thì nút N phân một vùng
mà nó biểu diễn do vẽ cả đường thẳng đứng và đường nằm ngang qua điểm (N.XVAL, N.YVAL) Bốn phần được tạo ra được gọi là các góc NW (Tây Bắc),
SW (Tây Nam), NE (Đông Bắc) và SE (Đông Nam) xác định bởi nút N và mỗi góc tương ứng với một con của nút N Do đó các nút trong cây bốn nhánh có thể xác định 4 cành Trước khi thực hiện các thao tác đối với cây bốn cành định nghĩa đơn giản của cấu trúc nút cho một nút của cây tứ phân được đưa ra như sau:
Trang 352.3.1 Chèn / tìm kiếm trong cây tứ phân điểm
Thực hiện khảo sát tập 5 điểm (Banja Luka, Derventa, Teslic, Tuzla và Sinj)
đã được thể hiện với cây 2-d, nó sẽ được thể hiện như thế nào thông qua một cây tứ phân Hình 2.7 thể hiện việc chèn từng điểm vào cây, có hình 2.8 cho thấy cây tứ phân được xây dựng như thế nào
Tiến trình này được mô tả như sau:
1 Khởi đầu cây tứ phân là rỗng, việc chèn Banja Luka tạo ra nút gốc của cây
được gán nhãn với cặp (19, 45)
2 Việc chèn Derventa tạo ra vùng miêu tả bởi Banja Luka được phân thành 4
phần thông qua việc vẽ một đường thẳng nằm ngang và một đường thẳng đứng qua
(19, 45) Derventa, ở vị trí (40, 50), nằm trong góc phần tư NE, do vậy Banja Luka
có con NE là Derventa
Trang 36e) Hình 2.7
Hình 2.8
Trang 373 Việc chèn Teslic được tiến hành như sau: Teslic nằm theo hướng Đông Nam (SE) của Banja Luka Do vùng này hiện tại chưa có điểm nào nên Teslic được đặt làm con SE của Banja Luka
4 Việc chèn thêm Tuzla phức tạp hơn Nhận thấy rằng Tuzla nằm ở SE của Banja Luka Do vậy, thực hiện chuyển đến nhánh SE của Banja Luka Kết quả là
góc phần tư SE được chia bởi vẽ đường nằm ngang và đường thẳng đứng qua điểm
Teslic Với kết quả bốn phần được tạo ra, Tuzla ở góc SE và như vậy Tuzla trở thành nút con SE của Teslic
5 Cuối cùng, việc chèn Sinj là không quá phức tạp bởi vì nó nằm ở SW của Banja Luka Do hiện tại con trỏ này là rỗng vậy nên đặt nút này chứa thông tin liên quan đến Sinj
Nhìn chung chiều cao của một cây tứ phân chứa n nút có thể có giá trị lớn nhất là n-1, điều đó có nghĩa là thời gian để tìm kiếm hay chèn là nhỏ hơn số lượng nút [6,17]
2.3.2 Thao tác xoá cây tứ phân điểm
Khi xóa nút N từ cây tứ phân có gốc T cũng có những nét giống như khi thực hiện với cây 2-d để tìm một nút thay thế thích hợp cho các nút không phải là lá Đối với trường hợp các nút lá thì việc xoá không có vấn đề gì: Đặt trường liên kết tương ứng của nút cha của N trỏ tới NIL và giải phóng không gian lưu trữ
Việc xoá trong cây tứ phân là rất phức tạp Hình 2.9 chỉ ra tại sao lại phức tạp Đầu tiên mỗi nút trong cây tứ phân thể hiện trong một vùng và vùng này được định nghĩa hơi khác so với cây 2-d Đối với cây 2-d nó đủ để kết hợp 4 ràng buộc dưới dạng xc1, x<c2, yc3, y<c4 với các hằng số c1,….,c4 Do đó như trong trường hợp
Hình 2.9
Trang 38cây 2-d khi mở rộng nodetype thành cấu trúc mới newnodetype, trong trường hợp này cũng có thể mở rộng cấu trúc nút qtnodetype thành một cấu trúc mới newnodetype,với cùng với kiểu trường trên đây (XLB,YLB,XUB,YUB)
newqtnodetype = record
INFO: infotype;
XVAL, YVAL: real;
XLB, YLB, XUB, YUB: real {-, +};
NW, SW, NE, SE: newqtnodetype
end
Khi chèn nút N vào cây T phải đảm bảo những điểm dưới đây:
Nếu N là gốc của cây T, thì N.XLB=-, N.YLB=-, N.XUB=+, và N.YUB=+
2 Nếu P là cha của N thì khi đó bảng 2.2 dưới đây mô tả những giá trị của các trường XLB, YLB, XUB, YUB của N tuỳ thuộc vào việc N là con NW, SW, NE hay SE của P, trong đó sử dụng ký hiệu w=(P.XUB-P.XLB) và h=(P.YUB-P.YLB)
Bảng 2.2
Để vận dụng thành công kỹ thuật xoá trong với cây tứ phân điểm thì khi xoá một nút trong N phải tìm một nút thay thế R từ một trong các cây con của N ( từ một trong N.NW, N.SW, N.NE, N.SE) sao cho mỗi nút R1 trong N.NW là ở phía tây bắc của R, và mỗi nút R2 trong N.SW ở phía tây nam R, mỗi nút R3 trong N.NE
ở phía đông bắc của R và mỗi nút R4 trong N.SE ở phía đông nam của R
Hãy xem xét cây tứ phân trên hình 2.8 và hình 2.9 Giả sử, muốn xoá Banja Luka từ cây tứ phân này Trong trường hợp này, nút thay thế thực tế được tìm là Teslic Không nút nào khác thoả mãn những điều kiện đã đặt ra ở trên Tuy nhiên,
không phải luôn có khả năng tìm được một nút thay thế Do vậy trong trường hợp
Trang 39xấu nhất việc xoá một nút N có thể yêu cầu việc chèn lại một số nút trong cây con trỏ bởi N.NE, N.SE, N.NW và N.SW.[17]
2.3.3 Truy vấn khoảng trong cây tứ phân điểm
Các truy vấn khoảng trong cây tứ phân được thực hiện gần như cách thức thực hiện trong cây 2-d Mỗi nút trong một cây tứ phân thể hiện một vùng và phương pháp tính toán và truy vấn khoảng tránh việc tìm kiếm các cành bắt nguồn
từ những nút mà các vùng lên quan đến chúng không giao với đường tròn định nghĩa bởi truy vấn khoảng Giả thiết rằng, cần phải tìm kiếm cây tứ phân điểm bắt nguồn từ T với tất cả các điểm trong một đường tròn C, tâm (xc, yc) và có bán kính
là r, giải thuật được nêu ra như sau:[6,17]
Giải thuật 2.1
Proc RangeQueryPointQuadtrees(T: newqtnodetype, C: cirle)
1.If region(T) C = then Halt
2.4 Cây tứ phân matrix MX (MX-Quadtrees)
Trong cả hai trường hợp cây 2-d và cây tứ phân điểm, hình thù của cây phụ thuộc vào thứ tự các đối tượng được chèn vào cây Đặc biệt, thứ tự ảnh hưởng đến chiều cao của cây, do đó ảnh hưởng đến độ phức tạp của các thao tác tìm kiếm và chèn Mỗi nút N của cây 2-d và cây tứ phân điểm biểu diễn vùng và phân chia vùng thành 2 (trường hợp cây 2-d) hoặc 4 (trường hợp cây tứ phân) vùng con Việc phân chia có thể không đều vì nó phụ thuộc vào vị trí điểm (N.XVAL, N.YVAL) trong vùng biểu diễn bởi N
Trang 40Ngược lại, mục tiêu của cây MX-quadtree là để đảm bảo hình dạng ( và chiều
cao) của cây độc lập với số lượng các nút của cây, cũng như thứ tự chèn các nút
này Thêm nữa, MX-quadtree tập trung vào việc đem lại các giải thuật xoá và tìm
kiếm có hiệu quả
Một cách ngắn gọn, cây MX-quatree làm việc như sau: Đầu tiên, giả định
rằng bản đồ đang được phân thành một lưới kích thước (2k x 2k) Người phát triển ứng dụng tự do lựa chọn k và một khi nó được chọn thì nó phải cố định
MX-quadtree có cấu trúc nút tương tự như cây tứ phân điểm, đó là chúng có kiểu newqtnodetype Có một sự khác biệt là gốc của MX-quadtree miêu tả vùng xác
định bởi XLB = 0, XUB = 2k, YLB = 0, YUB = 2k Hơn nữa, khi một vùng được phân chia, nó được chia ở giữa Do vậy, nếu N là một nút, khi đó các vùng thể hiện bởi bốn cành của N được mô tả theo bảng 2.3 dưới đây Trong bảng này, w ký hiệu chiều rộng của vùng được biểu diễn bởi N và được cho bởi w = N.XUB – N.XLB
Do tất cả các vùng được biểu diễn bởi các nút trong MX-quadtree là các vùng
vuông, nên w = N.YUB – N.YLB.[4,6]
2.4.1 Chèn và tìm kiếm trong MX-Quadtree
Xem xét cách chèn điểm vào cây MX-Quadtree nhận thấy, mỗi điểm (x,y) trong cây MX-Quadtree biểu diễn vùng 1x1 mà góc dưới bên trái là (x,y) Điểm
chèn vào nút biểu diễn vùng 1x1 tương ứng với điểm này Giả sử, phải chèn thêm các điểm A, B, C và D như trên hình 2.12, các bước thực hiện sẽ được tiến hành như dưới đây: