Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 14 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
14
Dung lượng
388,85 KB
Nội dung
Cơ sở liệu đa phương tiện: Oracle Multimedia Võ Tấn Khoaa *, Phan Thế Duyb ** Học Viên Cao Học, ĐH Công Nghệ Thông Tin ĐH Quốc Gia TP HCM,Ngành CNTT, MSHV: CH1301094 Học Viên Cao Học, ĐH Công Nghệ Thông Tin ĐH Quốc Gia TP HCM,Ngành CNTT, MSHV: CH1302006 a b Tóm tắt Mục đích báo tìm hiểu đặc điểm, tính chất sở liệu (CSDL) đa phương tiện, tập trung vào cấu trúc nguyên lý làm việc Oracle sở liệu đa phương tiện tiện hình ảnh, audio, video; vào trọng điểm cách thức lưu trữ xử lý đối tượng liệu hình ảnh Mục tiêu nắm bắt kiểu liệu đa phương tiện hỗ trợ đồng thời khai thác cách sử dụng hàm, phương thức Oracle Multimedia (Oracle interMedia) để xây dựng ứng dụng lưu trữ, xử lý liệu đa phương Song song với việc bao quát đặc điểm, cấu trúc tính phương thức Oracle Multimedia (OM) kiểu liệu đa phương tiện, báo đưa đánh giá khả hỗ trợ Oracle so với nhu cầu, địi hỏi cần có CSDL đa phương tiện Keywords: Oracle interMedia; multimedia database; CSDL đa phương tiện, oracle multimedia database; Oracle 10g Mở đầu Sự bùng nổ khối lượng lớn kiểu liệu đa dạng dẫn đến nhu cầu lưu trữ xử lý liệu ngày tăng Đặc biệt, với tính chất liệu lớn khó xử lý, thao tác loại liệu đa phương tiện hình ảnh, âm thanh, video nhiều loại ứng dụng đặt vấn đề cần có CSDL có khả hỗ trợ mạnh mẽ việc lưu trữ xử lý loại liệu Với phát hành phiên Oracle 10g, hệ quản trị sở liệu Oracle cung cấp tính Oracle interMedia, thao tác với liệu đa phương tiện đáp ứng nhu cầu lưu trữ, xử lý phân tích dạng liệu đa phương tiện người dùng Trong nội dung trình bày này, nhóm chúng tơi đưa nhìn tổng quan dạng kiểu liệu khác dùng để lưu trữ liệu đa phương tiện, cách thức hoạt động phương thức, hàm xử lý liệu đa phương tiện hỗ trợ Oracle thao tác kiểu liệu Các yêu cầu hệ quản trị CSDL đa phương tiện Dữ liệu sinh ngày nhiều, không bao gồm liệu số, chuỗi mà cịn liệu có cấu trúc, khơng có cấu trúc đặc biệt liệu đa phương tiện (văn bản, hình ảnh, video, audio,…): - Một số lượng lớn ảnh video Internet phát sinh hàng ngày, hàng - Rất nhiều tranh vẽ, ảnh chụp chuyển sang dạng số để dễ xử lý, bảo quản - Các ảnh từ tin truy vấn báo chuyển sang dạng số để dễ dàng quản lý - Lượng lớn ảnh y tế, ảnh vệ tinh thu thập hàng ngày Các đặc trưng CSDL đa phương tiện: Do CSDL đa phương tiện tổng hợp nhiều liệu đa phương tiện khác nên có đặc trưng bật sau: - Thiếu cấu trúc (lack of structure): CSDL đa phương tiện thường khơng có cấu trúc, tác vụ chuẩn CSDL truyền thống số hóa, tìm kiếm nội dung, truy xuất liệu khơng thực - Tính thời gian (temporality): vài kiểu liệu multimedia video, âm (audio), hoạt hình (animation) phụ thuộc vào yếu tố thời gian liên quan mật thiết đến việc lưu trữ, thao tác mô tả chúng - Dung lượng lưu trữ lớn (massive volume): liệu video âm thường địi hỏi thiết bị lưu trữ có dung lượng lớn - Các ứng dụng, chế hỗ trợ (logistics): kiểu liệu phi chuẩn địi hỏi quy trình, cơng cụ xử lý phức tạp việc sử dụng thuật toán nén liệu ứng dụng CSDL đa phương tiện * Tel.:+84985.144.476 E-mail address: khoavt@uit.edu.vn ** Tel.:+84168.3456.056 E-mail address: phantheduy.ptd@gmail.com Võ Tấn Khoa, Phan Thế Duy Hiện tại, loại CSDL hỗ trợ đầy đủ việc lưu trữ rút trích thơng tin tất dạng liệu vừa đề cập Thông qua hệ quản trị CSDL, phải đạt mục đích tổ chức cấu trúc liệu để lưu trữ đảm bảo khả xử lý, truy vấn, thực giao dịch đồng thời khối liệu lớn cách hiệu Tuy nhiên, muốn lưu trữ thực truy vấn xử lý bao gồm kiểu liệu đa phương tiện, CSDL gặp số trở ngại định như: khối lượng lớn đa dạng, liệu đa phương tiện có cấu trúc hồn toàn khác so với kiểu cấu trúc liệu bản, khơng thích hợp với việc truy vấn, tìm kiếm cách rõ ràng dựa nội dung Do đó, tương tự hệ CSDL thông thường, hệ quản trị CSDL đa phương tiện cần đáp ứng số yêu cầu sau: - Đầy đủ khả hệ quản trị CSDL truyền thống - Khả lưu trữ lớn: đối tượng liệu đa phương tiện lưu trữ sử dụng lại giao tác khác - Tính bảo mật: phân cấp quyền truy cập kiểm sốt - Đảm bảo tính tồn vẹn liệu: đảm bảo tính thống sở liệu giao tác - Khả phục hổi, rollback liệu - Hỗ trợ truy vấn đa phương tiện: cho phép dễ dàng truy vấn liệu đa phương tiện - Có giao diện đa phương tiện tương tác Các kiểu liệu đa phương tiện số phương thức Oracle interMedia 10g Oracle Multimedia (OM) hay gọi Oracle interMedia, tính cho phép CSDL Oracle lưu trữ, quản lý truy xuất hình ảnh, video, âm thanh, liệu media hỗn hợp OM thừa kế độ tin cậy, tính sẵn có, khả quản lý liệu CSDL Oracle nội dung đa phương tiện OM khơng kiểm sốt thiết bị ghi nhận media (media capture) thiết bị đầu ra, chức đảm nhiệm phần mềm ứng dụng cụ thể Hệ quản trị CSDL Oracle hệ quản trị CSDL quan hệ - đối tượng Điều có nghĩa là, ngồi vai trị truyền thống việc quản lý an tồn hiệu liệu quan hệ, cịn cung cấp hỗ trợ cho khái niệm nhiều loại đối tượng khác nhau, bao gồm tất liệu liên quan với đối tượng phương thức thực chúng Cơng nghệ quan hệ - đối tượng bao gồm việc hỗ trợ tích hợp BLOBs (Binary Large Objects) để cung cấp sở cho việc bổ sung đối tượng phức tạp, chẳng hạn âm thanh, hình ảnh video số hóa vào CSDL OM hỗ trợ lưu trữ định dạng tập tin thơng dụng, bao gồm hình ảnh tạo máy tính, định dạng âm thanh, video CSDL OM cung cấp chế để them cột hay đối tượng chứa liệu hình ảnh, âm thanh, video hay liệu media hỗn hợp khác vào bảng sẵn có, chèn vào lấy liệu đa phương tiện Điều cho phép nhà thiết kế CSDL mở rộng CSDL có với liệu đa phương tiện xây dựng ứng dụng CSDL đa phương tiện dành cho người dùng cuối OM sử dụng loại đối tượng, tương tự lớp Java hay C++ để mô tả liệu đa phương tiện Những loại đối tượng gọi ORDAudio, ORDImage, ORDVideo, ORDDoc Một thể loại đối tượng bao gồm thuộc tính, siêu liệu metadata, liệu media, phương thức Dữ liệu media liệu âm thanh, hình ảnh, video loại liệu hỗn hợp khác Siêu liệu thông tin liệu, chẳng hạn độ dài lưu trữ đối tượng, kiểu nén, định dạng Các phương thức thủ tục mà thực đối tượng, chẳng hạn getContent() hay setProperties() Các đối tượng OM có mơ hình lưu trữ liệu media chung Các thành phần liệu media đối tượng lưu trữ CSDL, đối tượng kiểu BLOB kiểm soát giao dịch (transaction) Các liệu media lưu trữ bên ngồi CSDL mà khơng nằm quản lý giao dịch Trong trường hợp này, trỏ lưu trữ CSDL quản lý giao dịch liệu media lưu trữ trong: - Đối tượng lớn dựa tập tin (kiểu BFILE) - Một đường dẫn URL - Một nguồn người dùng xác định máy chủ liệu đa phương tiện chuyên biệt, máy chủ khác Siêu liệu (metadata) lưu trữ CSDL kiểm soát OM Dù cho liệu media lưu trữ bên hay bên CSDL, OM quản lý siêu liệu cho tất loại media tự động trích xuất siêu liệu cho âm thanh, hình ảnh video Siêu liệu bao gồm thuộc tính sau: - Lưu trữ thơng tin âm thanh, hình ảnh, video hay kiểu liệu multimedia hỗn hợp khác, bao gồm loại nguồn, đường dẫn, tên nguồn liệu lưu trữ cục (trong CSDL) hay bên - Cập nhật thơng tin nhãn thời gian cho hình ảnh, âm thanh, video liệu media hỗn hợp - Mô tả liệu âm thanh, video (description) - Định dạng liệu đa phương tiện - Kiểu MIME ((Multi-Purpose Internet Mail Extension) liệu đa phương tiện - Các đặc trưng âm thanh: kiểu mã hóa, số kênh, tỉ lệ mẫu, kiểu nén, thời gian phát (duration) - Các đặc trưng hình ảnh: kích thước chiều cao chiều rộng, định dạng nội dung hình ảnh, định dạng nén, độ dại nội dung hình ảnh Võ Tấn Khoa, Phan Thế Duy Các đặc trưng video: chiều rộng chiều cao khung, độ phâ giải khung, tỉ lệ khung, thời gian phát, kiểu nén, số khung, số lượng màu sắc tỉ lệ bitrate - Các diêu liệu trích xuất từ cấu trúc XML, đạo diễn, nhà sản xuất phim, video Oracle Multimedia tập hợp tính dành cho liệu đa phương tiện bao gồm số loại đối tượng ORDAudio, ORDDoc, ORDImage, ORDImageSignature, ORDVideo với tập hợp nhiều phương thức để có thể: - Lưu trữ, thực nhiều thao tác loại liệu đa phương tiện - Trích xuất thơng tin, đặc điểm, thuộc tính hay liệu metadata từ liệu đa phương tiện - Truy vấn, quản lý kiểu liệu đa phương tiện từ Oracle interMedia, hay máy chủ web Trong đó, loại đối tượng ORDSource phương thức đưa cách tiếp cận tập trung xử lý, thao tác trực tiếp nguồn liệu đa phương tiện Các kiểu đối tượng ORDAudio, ORDDoc, ORDImage, ORDImageSignature, ORDVideo chứa thuộc tính kiểu liệu ORDSource - ORDAudio: loại đối tượng cho liệu âm thanh, audio - ORDVideo: loại đối tượng dành cho liệu phim, video - ORDDoc: kiểu đối tượng hỗ trợ việc lưu trữ quản lý dạng thông tin đa phương tiện hình ảnh, audio video - ORDImage: kiểu liệu đặc trưng việc lưu trữ, thao tác liệu hình ảnh - ORDImageSignature: hỗ trợ việc nhận dạng tìm kiếm hình ảnh/ đối tượng dựa nội dung - content-based retrieval (image matching) - 3.1 ORDSource: Kiểu đối tượng ORDSource “gắn” vào loại đối tượng ORDAudio, ORDDoc, ORDVideo thuộc tính ORDSource hỗ trợ truy cập đến nhiều loại liệu đa phương tiện, truy cập tới nguồn liệu như: - BLOB cục (local) Oracle Database - truy cập BFILE hệ thống file cục (local file system), từ URL HTTP server - truy cập bên từ nguồn liệu định nghĩa người dùng (user-defined source) server khác Các thuộc tính ORDSource: - localData: lưu trữ cục liệu đa phương tiện BLOB Có thể lưu trữ GB/ BLOB - srcType: loại nguồn liệu - srcLocation: nơi lưu trữ nguồn liệu dựa srcType - srcName: tên đối tượng nguồn liệu - updateTime: thời điểm cập nhật nguồn liệu gần - local: thuộc tính “cờ” (flag) để liệu cục - local (1 NULL) hay bên - external (0) Một số phương thức: - clearLocal(): dùng để gán giá trị biến cờ local thành 0, nghĩa liệu lưu trữ bên phạm vi sở liệu - getContentLength(): trả số byte chiều dài nguồn liệu - getLocalContent(): phương thức cho kết giá trị nội dung hay BLOB chứa liệu localData - getUpdateTime(): trả thời điểm cuối mà đối tượng bị tác động hay thay đổi 3.2 ORDImage: Kiểu đối tượng ORDImage hỗ trợ việc lưu trữ, xử lý, thao tác liệu hình ảnh CSDL Các thuộc tính: - source: nguồn liệu hình ảnh lưu trữ - height: kích thước chiều cao hình ảnh, tính pixel - width: độ dài chiều rộng hình ảnh, tính pixel - contentLength: kích thước tập tin hình ảnh đĩa lưu trữ, tính bytes - fileFormat: định dạng tập tin hình ảnh lưu trữ - contentFormat: dạng nội dung hình ảnh - compressionFormat: thuật toán nén dung liệu hình ảnh - mimeType: thơng tin MIME hình ảnh Võ Tấn Khoa, Phan Thế Duy Một số phương thức chính: - Hàm init(): khởi tạo đối tượng ORDImage Cấu trúc: init( ) RETURN ORDImage; Ví dụ: Khởi tạo thể kiểu liệu ORDImage BEGIN INSERT INTO pm.online_media (product_id, product_photo) VALUES (3501, ORDSYS.ORDImage.init()); COMMIT; END; / - Hàm khởi tạo init(srcType,srcLocation,srcName): sử dụng khởi tạo đối tượng kiểu liệu hình ảnh ORDImage Cấu trúc: init(srcType IN VARCHAR2, srcLocation IN VARCHAR2, srcName IN VARCHAR2) RETURN ORDImage; Trong đó, tham số: + srcType: dạng nguồn hình ảnh + srcLocation: vị trí nguồn hình ảnh + srcName: tên nguồn hình ảnh Ví dụ: BEGIN INSERT INTO pm.online_media (product_id, product_photo) VALUES (3515, ORDSYS.ORDImage.init('FILE', 'FILE_DIR','speaker.jpg')); COMMIT; END; / - Hàm import() / importFrom(): Chuyển liệu hình ảnh từ nguồn liệu ảnh bên ngồi vào thuộc tính localData (embedded ORDSource object) bên CSDL Cấu trúc: import(ctx IN OUT RAW); - Hàm import(ctx) có tham số ctx giá trị source plugin context, thường khởi tạo có giá trị NULL importFrom(ctx IN OUT RAW, source_type IN VARCHAR2, source_location IN VARCHAR2, source_name IN VARCHAR2); - Các tham số hàm importFrom(), chuyển liệu ảnh định rõ ràng bên vào thuộc tính ORDSource.localData: source_type: dạng ảnh nguồn, source_name: tên ảnh nguồn, source_location: vị trí mà ảnh nguồn lưu trữ Ví dụ: Import liệu ảnh từ nguồn liệu ảnh bên vào local source CSDL: Võ Tấn Khoa, Phan Thế Duy DECLARE obj ORDSYS.ORDImage; ctx RAW(64) :=NULL; BEGIN SELECT p.product_photo INTO obj FROM pm.online_media p WHERE p.product_id = 3515 FOR UPDATE; DBMS_OUTPUT.PUT_LINE('getting source'); DBMS_OUTPUT.PUT_LINE(' '); Get source information DBMS_OUTPUT.PUT_LINE(obj.getSource()); Import data obj.import(ctx); Check size DBMS_OUTPUT.PUT_LINE('Length is ' || obj.getContentLength); UPDATE pm.online_media p SET p.product_photo = obj WHERE p.product_id = 3515; COMMIT; END; / - Hàm getFileFormat(): lấy giá trị thuộc tính kiểu định dạng file hình ảnh Cấu trúc: getFileFormat( ) RETURN VARCHAR2; Ví dụ: lấy giá trị định dạng file đối tượng hình ảnh DECLARE image ORDSYS.ORDImage; file_format VARCHAR2(4000); BEGIN SELECT p.product_photo INTO image FROM pm.online_media p WHERE p.product_id = 3515; Get the image file format: file_format := Image.getFileFormat(); DBMS_OUTPUT.PUT_LINE('File format is ' || file_format); COMMIT; END; / - Hàm getCompressionFormat(): Trả giá trị thuộc tính compressionFormat đối tượng hình ảnh Cấu trúc: getCompressionFormat( ) RETURN VARCHAR2; Ví dụ: Lấy giá trị kiểu định dạng compression hình ảnh Võ Tấn Khoa, Phan Thế Duy DECLARE image ORDSYS.ORDImage; compression_format VARCHAR2(4000); BEGIN SELECT p.product_photo INTO image FROM pm.online_media p WHERE p.product_id = 3515; Get the image compression format: compression_format := image.getCompressionFormat(); DBMS_OUTPUT.PUT_LINE('Compression format is ' || compression_format); COMMIT; END; / - Hàm getWidth() / getHeight(): Trả giá trị kích thước chiều cao/ rộng hình ảnh Cấu trúc: getHeight( ) RETURN INTEGER; getWidth( ) RETURN INTEGER; Ví dụ: Lấy giá trị kích thước chiều cao ảnh DECLARE image ORDSYS.ORDImage; height INTEGER; BEGIN SELECT p.product_photo INTO image FROM pm.online_media p WHERE p.product_id = 3515; Get the image height: height := image.getHeight(); DBMS_OUTPUT.PUT_LINE('Height is ' || height); COMMIT; END; / - Hàm processCopy(): thực chép hình ảnh lưu trữ bên hay nằm bên ngoài, đgiá trị ảnh chép giữ nội nơi chứa nguồn ảnh Cấu trúc: processCopy(command IN VARCHAR2, dest IN OUT ORDImage); Ví dụ: Tạo ảnh thumbnail cho ảnh gốc: Võ Tấn Khoa, Phan Thế Duy DECLARE obj_1 ORDSYS.ORDImage; obj_2 ORDSYS.ORDImage; BEGIN SELECT product_photo, product_thumbnail INTO obj_1, obj_2 FROM pm.online_media WHERE product_id = 3515 FOR UPDATE; obj_1.processCopy('maxScale=32 32', obj_2); UPDATE pm.online_media SET product_thumbnail = obj_2 WHERE product_id=3515; COMMIT; EXCEPTION WHEN ORDSYS.ORDImageExceptions.NULL_DESTINATION THEN DBMS_OUTPUT.PUT_LINE('The destination is null'); WHEN ORDSYS.ORDImageExceptions.DATA_NOT_LOCAL THEN DBMS_OUTPUT.PUT_LINE('Data is not local'); WHEN ORDSYS.ORDImageExceptions.NULL_LOCAL_DATA THEN DBMS_OUTPUT.PUT_LINE('dest.source.localData attribute is null'); COMMIT; END; / 3.3 ORDImageSignature: ORDImageSignature kiểu đối tượng dùng để hỗ trợ vấn đề tìm kiếm, so khớp liệu hình ảnh dựa nội dung (content-based retrieval) Các thuộc tính: - source: nguồn liệu hình ảnh lưu trữ - height: kích thước chiều cao hình ảnh, tính pixel - width: độ dài chiều rộng hình ảnh, tính pixel - contentLength: kích thước tập tin hình ảnh đĩa lưu trữ, tính bytes - fileFormat: định dạng tập tin hình ảnh lưu trữ - contentFormat: dạng nội dung hình ảnh - compressionFormat: thuật toán nén dung liệu hình ảnh - mimeType: thơng tin MIME hình ảnh Một số phương thức chính: - init(): phương thức dùng để khởi tạo đối tượng ORDImageSignature, kiểu liệu trả ORDImageSignature - generateSignature( ) : dùng để tạo signature cho đối tượng hình ảnh, kết signature ảnh trả dùng để đánh giá độ khác biệt ảnh Cấu trúc: generateSignature (image IN ORDImage); Ví dụ: Phát sinh signature cho đối tượng hình ảnh lưu trữ CSDL Võ Tấn Khoa, Phan Thế Duy DECLARE t_image ORDSYS.ORDImage; image_sig ORDSYS.ORDImageSignature; BEGIN SELECT p.product_photo, p.product_photo_signature INTO t_image, image_sig FROM pm.online_media p WHERE p.product_id = 2402 FOR UPDATE; Generate a signature: image_sig.generateSignature(t_image); UPDATE pm.online_media p SET p.product_photo_signature = image_sig WHERE product_id = 2402; END; - evaluateScore(): phương thức cung cấp cách xác định khoảng cách khác biệt signature đầu vào, dựa trọng số định Cấu trúc: evaluateScore( sig1 IN ORDImageSignature, sig2 IN ORDImageSignature, weights IN VARCHAR2) RETURN FLOAT; - Hàm evaluateScore() trả giá trị kiểu FLOAT, mang giá trị khoảng từ 0.0 đến 100.0; 0.0 nghĩa hình ảnh đồng hay giống nhau, ngược lại 100.0 chúng hoàn toàn khác biệt Chuỗi trọng số weights chuỗi giá trị tên thuộc tính dùng để đánh giá gán giá trị khoảng 0.0 1.0, không định người dùng, mang giá trị mặc định 0.0 Nếu thuộc tính gán giá trị 0.0 tức khơng xem xét đên thuộc tính đánh giá, ngược lại giá trị 1.0 độ ưu tiên cao Ngoài ra, điều kiện bắt buộc phải có thuộc tính định mang giá trị lớn 0.0 Có thuộc tính để đánh giá trọng số: color: mang giá trị từ 0.0 đến 1.0, mức độ quan trọng yếu tố màu sắc đánh giá, so sánh hình ảnh texture: mang giá trị từ 0.0 đến 1.0, mức độ quan trọng yếu tố texture đánh giá, so sánh hình ảnh shape: mang giá trị từ 0.0 đến 1.0, mức độ quan trọng yếu tố hình dạng - shape đánh giá, so sánh hình ảnh location: mang giá trị từ 0.0 đến 1.0, mức độ quan trọng yếu tố vị trí vùng khác hình ảnh đánh giá, so sánh hình ảnh Thuộc tính sử dụng cách độc lập, mà bắt buộc phải dùng kèm yếu tố thuộc tính khác Ví dụ: Đánh giá độ khác biệt đối tượng hình ảnh DECLARE t_image ORDSYS.ORDImage; c_image ORDSYS.ORDImage; image_sig ORDSYS.ORDImageSignature; compare_sig ORDSYS.ORDImageSignature; score FLOAT; BEGIN SELECT p.product_photo, p.product_photo_signature INTO t_image, image_sig FROM pm.online_media p WHERE p.product_id = 1910 FOR UPDATE; Generate a signature: image_sig.generateSignature(t_image); UPDATE pm.online_media p SET p.product_photo_signature = image_sig WHERE product_id =1910; SELECT p.product_photo, p.product_photo_signature INTO c_image, compare_sig FROM pm.online_media p Võ Tấn Khoa, Phan Thế Duy WHERE p.product_id = 1940 FOR UPDATE; Generate a signature: compare_sig.generateSignature(c_image); UPDATE pm.online_media p SET p.product_photo_signature = compare_sig WHERE product_id = 1940; SELECT p.product_photo, p.product_photo_signature INTO t_image, image_sig FROM pm.online_media p WHERE p.product_id = 1910; SELECT p.product_photo, p.product_photo_signature INTO c_image, compare_sig FROM pm.online_media p WHERE p.product_id = 1940; Compare two images for similarity based on image color: score:=ORDSYS.ORDImageSignature.evaluateScore(image_sig, compare_sig,'color=1.0,texture=0,shape=0,location=0'); DBMS_OUTPUT.PUT_LINE('Score is ' || score); END; / - isSimilar( ): hỗ trợ so khớp mức độ giống đối tượng hình ảnh Cấu trúc: isSimilar( sig1 IN ORDImageSignature, sig2 IN ORDImageSignature, weights IN VARCHAR2, threshold IN FLOAT) RETURN INTEGER; Trọng số weights chuỗi giá trị tên thuộc tính ưu tiên để đánh giá gán giá trị khoảng 0.0 1.0, không định người dùng, mang giá trị mặc định 0.0 Nếu thuộc tính gán giá trị 0.0 tức không xem xét đên thuộc tính đánh giá, ngược lại giá trị 1.0 độ ưu tiên cao Có thuộc tính để đánh giá trọng số: color: mang giá trị từ 0.0 đến 1.0, mức độ quan trọng yếu tố màu sắc đánh giá, so sánh hình ảnh texture: mang giá trị từ 0.0 đến 1.0, mức độ quan trọng yếu tố texture đánh giá, so sánh hình ảnh shape: mang giá trị từ 0.0 đến 1.0, mức độ quan trọng yếu tố hình dạng - shape đánh giá, so sánh hình ảnh location: mang giá trị từ 0.0 đến 1.0, mức độ quan trọng yếu tố vị trí vùng khác hình ảnh đánh giá, so sánh hình ảnh Thuộc tính sử dụng cách độc lập, mà bắt buộc phải dung kèm yếu tố thuộc tính khác Tham số threshold: mức độ mà người dùng việc xác định ngưỡng giá trị trả giới hạn để xác định ảnh giống nhau, chẳng hạn threshold 10, có ảnh có khoảng cách khác biệt signature không vượt 10 trả Ví dụ: So sánh hình ảnh dựa đặc điểm màu sắc Ở ví dụ này, hình ảnh kết luận tương tự, hay giống khoảng cách khác biệt trả chúng có giá trị không vượt 10 DECLARE image_sig1 ORDSYS.ORDImageSignature; image_sig2 ORDSYS.ORDImageSignature; value INTEGER; BEGIN SELECT product_photo_signature INTO image_sig1 FROM pm.online_media WHERE product_id = 1910; SELECT product_photo_signature INTO image_sig2 FROM pm.online_media WHERE product_id = 1940; Võ Tấn Khoa, Phan Thế Duy Compare the images: value := ORDSYS.ORDImageSignature.isSimilar(image_sig1, image_sig2,'color=1.0,texture=0,shape=0,location=0',10); IF value = THEN DBMS_OUTPUT.PUT_LINE('The images are similar'); ELSIF value = THEN DBMS_OUTPUT.PUT_LINE('The images are not similar'); END IF; END; / 3.4 ORDVideo: ORDVideo tích hợp lưu trữ, trích xuất quản lý liệu video số hóa CSDL Video tạo đầu thu video, máy quay phim, video hoạt hình số hóa, thiết bị quay video chuyên dụng khác chí dựa thuật tốn chương trình ORDVideo lưu trữ truy xuất liệu video định dạng liệu hỗ trợ ORDVideo có thể: - Tự động trích xuất siêu liệu từ liệu video nhiều dạng video phổ biến - Trích xuất thuộc tính lưu trữ chúng thuộc tính “comments” đối tượng dạng XML - Được thiết kế để nhận hỗ trợ thêm định dạng video Các thuộc tính: - source: giá trị ORDSource, nơi mà đối tượng video tìm thấy - description: mơ tả, thích thơng tin video - format: định dạng video - height: kích thước chiều cao khung hình- frame video, tính pixel - width: độ dài chiều rộng khung hình- frame video, tính pixel - comments: thơng tin metadata video - frameResolution: độ phân giải video - frameRate: tỉ lệ frame video - videoDuration: tổng thời gian kéo dài video - numberOfFrames: số lượng khung hình video - compressionType: định dạng nén dùng liệu video - numberOfColors: số lượng màu sắc liệu video - bitRate: bit rate video, thuật ngữ khối lượng liệu truyền khoảng thời gian định, đơn vị dùng để đo lường bitrate thường kbit/s (kilobit giây) Mbps (megabit giây) Dù sử dụng đơn vị nào, số bitrate cao tốt, đem lại tốc độ chất lượng cao Bitrate lượng liệu chuyển từ file film lên CPU giây để xử lý giải mã thành hình ảnh âm Bitrate cao phim đẹp, âm hay đồng nghĩa với việc CPU phải giải nhiều công việc - mimeType: thông tin MIME hình ảnh Một số phương thức chính: - Hàm init(): dung để khởi tạo đối tượng ORDVideo Cấu trúc hàm: init( ) RETURN ORDVideo; Ví dụ: BEGIN INSERT INTO pm.online_media (product_id, product_video) VALUES (2004, ORDSYS.ORDVideo.init()); COMMIT; END; / - Hàm getBitRate(): lấy giá trị thuộc tính bitrate video Cấu trúc: 10 Võ Tấn Khoa, Phan Thế Duy getBitRate( ) RETURN INTEGER - Ví dụ: DECLARE obj ORDSYS.ORDVideo; res INTEGER; BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id = 2030; res := obj.getBitRate(); DBMS_OUTPUT.PUT_LINE('bit rate : ' || res ); COMMIT; END; / Hàm getVideoDuration(): lấy giá trị thời gian để phát hết đối tượng video Cấu trúc: getVideoDuration( ) RETURN INTEGER; Ví dụ: DECLARE obj ORDSYS.ORDVideo; res INTEGER; BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id = 2030; res := obj.getVideoDuration(); DBMS_OUTPUT.PUT_LINE('video duration : ' ||res); COMMIT; END; / - Hàm getFormat(): lấy giá trị định thuộc tính định dạng đối tượng video Cấu trúc: getFormat( ) RETURN VARCHAR2; Ví dụ: DECLARE obj ORDSYS.ORDVideo; BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id = 2030; DBMS_OUTPUT.PUT_LINE('writing format'); DBMS_OUTPUT.PUT_LINE(' '); DBMS_OUTPUT.PUT_LINE(obj.getFormat()); COMMIT; END; / 11 Võ Tấn Khoa, Phan Thế Duy - Hàm importFrom(): Chuyển liệu video từ nguồn liệu định sẵn bên ngồi vào thuộc tính localData (embedded ORDSource object) bên CSDL Cấu trúc: importFrom(ctx IN OUT RAW, source_type IN VARCHAR2, source_location IN VARCHAR2, source_name IN VARCHAR2); Các tham số hàm importFrom(), chuyển liệu video định rõ ràng bên ngồi vào thuộc tính ORDSource.localData: source_type: dạng file video nguồn, source_name: tên video nguồn, source_location: vị trí mà video nguồn lưu trữ Ví dụ: DECLARE obj ORDSYS.ORDVideo; ctx RAW(64) :=NULL; BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id = 2004 FOR UPDATE; DBMS_OUTPUT.PUT_LINE('setting and getting source'); DBMS_OUTPUT.PUT_LINE(' '); Import data: obj.importFrom(ctx,'file','FILE_DIR','speakers.rm'); Check size: DBMS_OUTPUT.PUT_LINE('Length is ' ||TO_CHAR(obj.getContentLength(ctx))); UPDATE pm.online_media p SET p.product_video = obj WHERE p.product_id = 2004; COMMIT; EXCEPTION WHEN ORDSYS.ORDSourceExceptions.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.put_line('Source METHOD_NOT_SUPPORTED caught'); WHEN ORDSYS.ORDSourceExceptions.SOURCE_PLUGIN_EXCEPTION THEN DBMS_OUTPUT.put_line('SOURCE PLUGIN EXCEPTION caught'); WHEN ORDSYS.ORDVideoExceptions.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.put_line('VIDEO METHOD_NOT_SUPPORTED EXCEPTION caught'); WHEN ORDSYS.ORDVideoExceptions.VIDEO_PLUGIN_EXCEPTION THEN DBMS_OUTPUT.put_line('VIDEO PLUGIN EXCEPTION caught'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('EXCEPTION Caught'); END; / - Hàm getFrameSize(): lấy giá trị thuộc tính chiều cao chiều rộng khung video: Cấu trúc: getFrameSize(retWidth OUT INTEGER, retHeight OUT INTEGER); Ví dụ: Lấy kích thước chiều cao chiều rộng video: 12 Võ Tấn Khoa, Phan Thế Duy DECLARE obj ORDSYS.ORDVideo; width INTEGER; height INTEGER; BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id = 2030; obj.getFrameSize(width, height); DBMS_OUTPUT.PUT_LINE('width :' || width); DBMS_OUTPUT.PUT_LINE('height :' || height); COMMIT; END; / Lưu trữ, truy vấn nạp liệu đa phương tiện Dữ liệu đa phương tiện nên nạp vào CSDL để tận dụng ưu độ tin cậy, khả mở rơng, tính sẵn có khả quản lý liệu Để đưa liệu multimedia vào CSDL với số lượng lớn, dung SQL* Loader, tiện ích Oracle cho phép nạp liệu, trường hợp này, liệu đa phương tiện từ tập tin multimedia bên đưa vào bảng CSDL chứa cột thuộc kiểu đối tượng tương ứng OM Ưu điểm SQL* Loader dễ dàng tạo kiểm tra tập tin kiểm soát hoạt động nạp liệu người sử dụng Các đối tượng OM ORDAudio, ORDImage, ORDVideo, ORDDoc cung cấp tập phương thức bao gói để thực vấn đề lưu trữ liệu đa phương tiện: - Thiết lập nguồn liệu cục hay bên - Sửa đổi thời gian lần cập nhật đối tượng - Thiết lập thông tin kiểu nguồn bên ngồi, vị trí tên liệu - Chuyển liệu vào khỏi CSDL - Lấy thông tin nội dung liệu cục chiều dài, vị trí nó; đưa nội dung vào BLOB tạm thời xóa - Truy cập nguồn liệu cách mở, đọc, ghi, cắt xén hay đóng lại Khi lưu trữ CSDL, liệu multimedia truy vấn cách sử dụng cột chữ số khác thuộc tính đối tượng bảng để tìm hàng có chứa liệu mong muốn Dữ liệu đa phương tiện truy vấn theo siêu liệu trích xuất, theo cột bảng khác theo nội dung chẳng hạn truy xuất dựa vào nội dung hình ảnh 13 Võ Tấn Khoa, Phan Thế Duy Kết luận Cho đến thời điểm tại, chưa khai thác hết liệu đa phương tiện đặc tính dung lượng lớn khó trích xuất đặc trưng từ dạng liệu này; trình đánh mục gây khó khăn; thao tác đồng thời khối liệu lớn, tốn nhiều tài nguyên thời gian Ở thời điểm này, lưu trữ multimedia CSDL quan hệ gây vấn đề giảm tốc độ xử lý, thao tác nhiều chi tiết liệu đa phương tiện CSDL Tuy nhiên, sử dụng mơ hình CSDL quan hệ đối tượng mơ hình CSDL hướng đối tượng để thao tác lưu trữ, truy vấn dễ dàng phần làm việc với liệu đa phương tiện Hệ quản trị CSDL Oracle với tính interMedia sản phẩm điển hình vấn đề lưu trữ xử lý hiệu dạng liệu multimedia với khối lượng lớn Oracle Multimedia lưu trữ kiểu định dạng đa phương tiện nào, nhiên xử lý thơng tin media (trên hình ảnh), trích xuất metadata kiểu định dạng mà qui định trước Oracle Tài liệu tham khảo [1] Marcelle Kratochvil, Managing Multimedia and Unstructured Data in the Oracle Database, Packt Publishing (March 21, 2013), ISBN-13: 978-1849686921 [2] Multimedia Databases: An Object Relational Approach, by Lynne Dunckley, 2002 [3] Oracle 10g Developing Media Rich Applications, by Lynne Dunckley, 2006 [4] Oracle Multimedia Documentation: http://oracle.com/technetwork/products/multimedia/documentation/multimedia-155068.html [5] Oracle Database Library: https://web.stanford.edu/dept/itss/docs/oracle/10g/appdev.101/b10829/toc.htm 14