1. Trang chủ
  2. » Giáo án - Bài giảng

Bài giảng Công nghệ đa phương tiện Multimedia

143 3,3K 26

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 143
Dung lượng 6,91 MB

Nội dung

Công nghệ đa phương tiện Tổng quan về môn học  Multimedia và các khái niệm cơ bản  Các giải thuật nén dữ liệu dùng trong công nghệ Multimedia  Giới thiệu một số kỹ thuật lập trình ứng dụng với công nghệ Multimedia  Phát triển ứng dụng với công nghệ Multimedia 2 Trần Nguyên Ngọc 2010 Multimedia là gì?  Media – phương tiện truyền thông  Multimedia – tổ hợp các phương tiện truyền thông  Tại sao cần tổ hợp các phương tiện truyền thông?  Vấn đề Internet và toàn cầu hóa 3 Trần Nguyên Ngọc 2010 Multimedia bao gồm những nội dung gì? 1. Văn bản – Text 2. Âm thanh – Audio 3. Ảnh tĩnh – still images 4. Ảnh động – Animation 5. Phim – video 6. Môi trường tương tác – interactivity 7. Truyền tải thông tin – networking 4 Trần Nguyên Ngọc 2010 Các ứng dụng theo nội dung  Text: Tìm kiếm thông tin (Search), Lọc nội dung (Content filter), Mã hóa thông tin, OCR…  Audio: Nén âm thanh (các chuẩn wav, mp3…), Lọc nhiễu, nhận dạng tiếng nói (speech to text), tổng hợp tiếng nói…  Ảnh tĩnh: Nén ảnh (các chuẩn bmp, gif, jpeg…), Xử lý ảnh (image processing), giấu tin trong ảnh, nhận dạng đối tượng trong ảnh…  Ảnh động: tạo ảnh động, nén ảnh động…  Phim: dựng phim, xử lý video, nhận dạng từ video  Môi trường tương tác: GUI, NUI  Truyền thông: gửi nhận thông tin qua mạng, một số chuẩn giao tiếp thông tin, các thiết bị kết nối ngoài (máy đọc thẻ RFID, BARCODE, IPCamera, CCTV Camera…)

Trang 1

Công nghệ đa phương tiện

Trang 2

Tổng quan về môn học

 Multimedia và các khái niệm cơ bản

 Các giải thuật nén dữ liệu dùng trong công nghệ

Trang 3

Multimedia là gì?

 Media – phương tiện truyền thông

 Multimedia – tổ hợp các phương tiện truyền thông

 Tại sao cần tổ hợp các phương tiện truyền thông?

 Vấn đề Internet và toàn cầu hóa

3 Trần Nguyên Ngọc - 2010

Trang 4

Multimedia bao gồm những nội

6 Môi trường tương tác – interactivity

7 Truyền tải thông tin – networking

4 Trần Nguyên Ngọc - 2010

Trang 5

Các ứng dụng theo nội dung

filter), Mã hóa thông tin, OCR…

nhận dạng tiếng nói (speech to text), tổng hợp tiếng nói…

(image processing), giấu tin trong ảnh, nhận dạng đối

tượng trong ảnh…

giao tiếp thông tin, các thiết bị kết nối ngoài (máy đọc thẻ RFID, BARCODE, IPCamera, CCTV Camera…)

Trang 6

Lập trình với Multimedia

 Yêu cầu: xử lý khối lượng thông tin lớn, trong nhiều

trường hợp chương trình ứng dụng phụ thuộc vào

thiết bị, xử lý cùng lúc nhiều dạng thông tin khác

nhau, phục vụ nhiều đối tượng khác nhau.

 Giải pháp: sử dụng các công cụ lập trình mạnh, khai

thác các thư viện sẵn có(Open Source), phát triển và

tối ưu hóa thuật toán phù hợp với thiết thiết bị.

 Các kỹ thuật cần trang bị: OpenMP, MMX/SIMD,

Multithreading, làm việc với tài liệu SDK(software

development kit) và các thư viện lập trình.

Trang 7

Các bài tập

 Xây dựng ứng dụng Webcrawler phục vụ cho việc lọc

tin tự động.

 Xây dựng ứng dụng nhận dạng văn bản sử dụng công

nghệ OCR của Microsoft Office.

 Sử dụng thư viện Text to Speech của Microsoft để xây

dựng ứng dụng đọc báo trên mạng.

 Xây dựng ứng dụng đọc báo Vnexpress tự động bằng

tiếng việt.

 Xây dựng ứng dụng hỗ trợ hiển thị thông tin về trận

đấu trên các đoạn Video cho các biên tập viên bóng đá.

Trang 8

Các bài tập (tiếp theo)

 Nghiên cứu bộ thư viện OCR Tesseract của Google và

xây dựng ứng dụng xử lý văn bản tiếng việt.

 Xây dựng phần mềm tự động hướng dẫn sử dụng máy

tính bằng việc mô phỏng tương tác của chuột và bàn phím thông qua hệ thống thông điệp của HĐH

Windows.

 Xây dựng ứng dụng cho phép điều khiển máy tính từ

xa (Remote Desktop)

 Tìm hiểu và nghiên cứu các chuẩn nén video Viết

chương trình minh họa.

 Xây dựng chương trình hỗ trợ biên tập Karaoke

Trang 9

Khai thác thông tin

Information Retrieval

Trang 10

Tài liệu tham khảo

Trang 11

Information Retrieval là gì?

• Information retrieval (IR) là quá trình tìm kiếm

dữ liệu (thường là tìm dưới dạng một đoạn

văn bản) từ một tập hợp lớn các đối tượng

không có cấu trúc tường minh (thường là text

lưu trữ trong máy tính) nhằm đáp ứng một

nhu cầu về thông tin.

• Data-> information -> knowledge

Trang 12

Thực trạng nhu cầu

Trang 13

Ví dụ hàng ngày

Trang 14

Thực chất google làm gì?

• Gửi đi một yêu cầu (query)?

Nhìn thấy:

http://www.google.com.vn/search?hl=vi&q=mul timedia+c%C3%B3+ngh%C4%A9a+l%C3%A0+g

%C3%AC&oq=multimedia+c%C3%B3+ngh%C4

%A9a+l%C3%A0+g%C3%AC&aq=f&aqi=&aql=

&gs_sm=e&gs_upl=205202l207268l0l15l6l0l0l 0l0l0l0l

Xử lý tiếp theo là gi?

Trang 15

Làm thế nào để máy tính hiểu yêu

cầu?

• Boolean retrieval: thiết kế và cấu trúc dữ liệu cho một hệ thống thu thập thông tin đơn giản Quy trình Hoạt động:

1 Xây dựng Boolean model, mô hình logic dùng

để thu thập thông tin.

2 Biểu diễn yêu cầu dưới dạng biểu thức logic

3 Search engine trả về tất cả các tài liệu thỏa

mãn biểu thức logic

Trang 16

Quá trình tìm kiếm

•Multimedia là gì?

Multimedia + là + gì + ? là=l +a + \

gì=g +I +\

Trang 17

Chỉ số hóa

Vnexpress IR

book

Forum IT

Dân trí

Trang 18

• Trung bình k|h|o|ả|n|g| 6 bytes cho một từ

tách rời ra (tính cả dấu cách dấu biểu cảm)

• Suy ra kho dữ liệu khoảng 6GB

• Giả sử chỉ có khoảng 500K từ -> cần lập bảng thống kê với số lượng:

500000*1000000=5*10^11

Trang 20

• Phân loại mức độ “tốt” của thông tin tìm

được, thế nào là giống với yêu cầu tìm kiếm nhất?

Trang 21

Tìm kiếm

• Tìm Multimedia trong từ điển

• Đưa ra các chỉ số file văn bản (danh sách 1)

chứa từ Multimedia

• Tìm từ là trong từ điển

• Đưa ra các chỉ số file (danh sách 2) chứa từ là

• Tìm điểm chung giữa 2 danh sách 1 &2

Trang 22

Algorithms

Trang 23

Vấn đề cấu trúc dữ liệu text

• HTML (Hyper text markup language)

• XML (Extensible Markup language)

• SIML (Synchronized Multimedia Integration Language) http://www.w3.org/Audio

Trang 24

• HTML là chữ viết tắt của Hyper Text Markup Language (Ngôn ngữ hiển thịsiêu văn bản)

• - Một file HTML là một file text bao gồm những tag nhỏ

• - Những tag hiển thị nói cho trình duyệt biết nó phải hiển thị trang đó nhưthế nào

• - Một file HTML phải có phần mở rộng là htm hoặc html

• - Một file HTML có thể được tạo bởi một trình soạn thảo đơn giản

• <p>Đây là đoạn văn</p>

<p>Đây là một đoạn văn khác</p>

• Vấn đề của HTML là nó được thiết kế như trong ý nghĩ của con người Cho

dù thông tin trên HTML không được thể hiện trên một trình duyệt thì

chúng ta vẫn đoán biết

• Con người chúng ta đều có trí thông minh để hiểu được ý nghĩa và mụcđích của hầu hết các văn bản Tuy nhiên một cỗ máy lại không như thế Khicác thẻ trong tài liệu này chỉ cho một trình duyệt cách thể hiện thông tin, thì bản thân các thẻ lại không chỉ cho trình duyệt thông tin đó là gì

Trang 25

• Lớp XML Extensible Markup Language là một mở

rộng của ngôn ngữ đánh dấu cho các các cấu trúc tài liệu bất kỳ

• I just got a new pet dog.

Trang 26

Search engine

Trang 27

Giới thiệu công cụ tìm kiếm

trong văn bản

Regular Expression

Trang 28

Khái niệm

• Regular Expression là một biểu thức dùng

để mô tả một tập các chuỗi ký tự theo một quy tắc nào đó.

• Ví dụ: trong lệnh dir *.exe của DOS, *.exe

mô tả tập tất cả các file có phần mở rộng

là exe.

Trang 29

Một số quy tắc

: đại diện cho một ký tự bất kỳ trừ ‘ ’.

? : ký tự đứng trước xuất hiện 0 hoặc 1 lần.

+ : ký tự đứng trước xuất hiện từ 1 đến nhiều lần.

* : ký tự đứng trước xuất hiện từ 0 đến nhiều lần.

Trang 30

Ví dụ

• t.a : tea, tia, toa, tua, …

colou?r : color, colour.

goo+gle : google, gooogle, gooooogle, … 0*42 : 42, 042, 0042, 00042, …

Trang 31

gr[ae]y : gray, grey.

[hc]+at : hat, cat, chat, hcat, hhat, ccat, … (grand)?father : father, grandfather.

([dD]og)|([cC]at) : dog, Dog, cat, Cat.

Trang 33

Học Matlab thế nào?

• Dữ liệu lớn? File text 20M

Trang 34

Handling Multiple Strings

•Any of the MATLAB regular expression functions can be used

•Any or all of the input parameters (the string, expression, or replacement string) can be a cell array of strings

arrays have the same number of elements if both are

vectorised (i.e., if they have dimensions greater than 1-by-N)

replacement arrays have the same number of elements if the replacement array is vectorised (The cell arrays do not have to have the same shape.)

•Whenever the first input parameter to a regular expression

same size

Trang 35

Finding a Single Pattern in Multiple Strings

array of strings cstr It searches each string of the cell array for consecutive matching letters (e.g., 'oo') The function

returns a cell array of the same size as the input array Each row of the return array contains the indices for which there was a match against the input cell array.

•The input cell array

•In the input cell array (cstr), find consecutive matching

letters by capturing a letter as a token (.) and then repeating that letter as a token reference, \1:

Trang 36

idx = regexp(cstr, '(.)\1');

whos idx

•To return substrings instead of indices, use the 'match' parameter:

mat = regexp(cstr, '(.)\1', 'match');

mat{3}

ans =

Trang 37

Finding Multiple Patterns in Multiple Strings

A cell array of strings in both the input string and the expression will be used The two cell arrays are of different shapes: cstr is 4-by-1 while expr is 1-by-4 The command is valid as long as they both have the same number of cells

•Find uppercase or lowercase 'i' followed by a white-space character in str{1}, the sequence 'hou' in str{2}, two consecutive matching letters in str{3}, and words beginning with 'w' followed by a vowel in str{4}

expr = {'i\s', 'hou', '(.)\1', '\<w[aeiou]'};

idx = regexpi(cstr, expr);

Trang 38

Replacing Multiple Strings

•When replacing multiple strings with regexprep, use a single

replacement string if the expression consists of a single string

•This example uses a common replacement value (' ') for all matches found in the multiple string input cstr

•The function returns a cell array of strings having the same dimensions

as the input cell array:

s = regexprep(cstr, '(.)\1', ' ', 'ignorecase')

s =

‘Whose w ds these are I think I know.' 'His house is in the vi age though;' 'He wi not s me sto ing here' 'To watch his w ds fi up with snow.'

•Multiple replacement strings can be used if the expression consists of multiple strings

•In this example, the input string and replacement string are both 4-by-1 cell arrays, and the expression is a 1-by-4 cell array

•As long as the expression and replacement arrays contain the same number of elements, the statement is valid

Trang 39

Replacing Multiple Strings

•The dimensions of the return value match the dimensions of the input string:

expr = {'i\s', 'hou', '(.)\1', '\<w[aeiou]'};

Trang 40

Characters and Strings

•In MATLAB, the term string refers to an array of Unicode

characters.

•MATLAB represents each character internally as its

corresponding numeric value

•Unless you want to access these values, however, you can simply work with the characters as they display on screen.

•You can use char to hold an m-by-n array of strings as long

as each string in the array has the same length (This is

because MATLAB arrays must be rectangular.)

•To hold an array of strings of unequal length, use a cell

Trang 41

Creating Character Arrays

•Specify character data by placing characters inside a pair of single quotes For example, this line creates a 1-by-13 character array called

name:

name = 'Thomas R Lee';

•In the workspace, the output of whos shows

•You can see that each character uses two bytes of storage internally

array:

class(name) ans =

char ischar(name) ans =

1

Trang 42

•You can also join two or more character arrays together to create a new character array

the input arrays:

name = 'Thomas R Lee';

title = ' Sr Developer'; strcat(name,',',title) ans =

Thomas R Lee, Sr Developer

•strvcat can be used to concatenate strings vertically

–S = strvcat(t1, t2, t3, ) forms the character array S containing the text strings (or string matrices) t1,t2,t3, as rows

–Spaces are appended to each string as necessary to form a valid matrix

–Empty arguments are ignored

–The command strvcat('Hello','Yes') is the same as ['Hello';'Yes '], except that strvcat performs the padding automatically

Trang 43

Creating Two-Dimensional Character Arrays

•When creating a two-dimensional character array, be sure that each row has the same length For example, this line is legal because both input rows have exactly 13 characters:

name = ['Thomas R Lee' ; 'Sr Developer']

name = Thomas R Lee

Sr Developer

•When creating character arrays from strings of different lengths, you can pad the shorter strings with blanks to force rows of equal length:

name = ['Thomas R Lee '; 'Senior Developer'];

–S = char(X) converts the array X that contains positive integers representing character codes into a MATLAB character array (the first 127 codes are ASCII) The actual characters displayed depend on the character set encoding for a given font The result for any elements of X outside the range from 0 to 65535 is not defined (and can vary from platform to platform) Use double to convert a character array into its numeric codes

–S = char(C), when C is a cell array of strings, places each element of C into the rows of the character array s Use cellstr to convert back.

–S = char(t1, t2, t3, ) forms the character array S containing the text strings T1, T2, T3, as rows, automatically padding each string with blanks to form a

valid matrix Each text parameter, Ti, can itself be a character array This allows

the creation of arbitrarily large character arrays Empty strings are significant.

Trang 44

Creating Two-Dimensional Character Arrays

Lee' with three trailing blanks so that it will be as long as the second

string:

name = char('Thomas R Lee','Senior Developer') name =

Thomas R Lee Senior Developer

remove any trailing blanks:

trimname = deblank(name(1,:)) trimname =

Thomas R Lee size(trimname)

Trang 45

Cell Arrays of Strings

•Creating strings in a regular MATLAB array requires that all strings in the array be of the same length This often means that you have to pad blanks at the end of strings to equalize their length However, another type of MATLAB array, the cell array, can hold different sizes and types

of data in an array without padding

•Cell arrays provide a more flexible way to store strings of varying

length

strings

•Let’s consider the following character array

•Each row of the matrix is padded so that all have equal length (in this case, 13 characters)

•Now use cellstr to create a column vector of cells, each cell containing one of the strings from the data array:

Trang 46

Cell Arrays of Strings

Note that the cellstr function strips off the blanks that pad the rows of the

input string matrix:length(celldata{3})

ans =

7 The iscellstr function determines if the input argument is a cell array of strings

It returns a logical 1 (true) in the case of celldata:

iscellstr(celldata) ans =

1

strings = char(celldata) strings =

Allison JonesDevelopmentPhoenix

length(strings(3,:)) ans =

13

Trang 47

Functions for Cell Arrays of Strings

Function Description

char Convert a cell array of strings to a character array.

sort Sort elements in ascending or descending order.

MATLAB functions for working with cell arrays

Trang 48

Functions for Cell Arrays of Strings

Function Description

intersect Set the intersection of two vectors

ismember Detect members of a set

setdiff Return the set difference of two vectors

setxor Set the exclusive OR of two vectors

union Set the union of two vectors

unique Set the unique elements of a vector

set functions with cell arrays of strings

http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_prog/ch2_ch15.html

Trang 49

String Comparisons

Comparing Strings for Equality

Any of the following four functions can be used to determine if two input strings are identical:

they ignore case

Example:

str1 = 'hello';

str2 = 'help';

Strings str1 and str2 are not identical, so invoking strcmp returns logical 0

(false) For example,

C = strcmp(str1,str2)

C =

0 The first three characters of str1 and str2 are identical, so invoking strncmp with any value up to 3 returns 1:

C = strncmp(str1, str2, 2)

C =

1

Trang 50

String Comparisons (cont.)

Comparing Strings for Equality (cont.)

These functions work cell-by-cell on a cell array of strings Let’s consider the two cell arrays of strings

A = {'pizza'; 'chips'; 'candy'};

B = {'pizza'; 'chocolate'; 'pretzels'};

Now apply the string comparison functions:

strcmp(A,B) ans =

1

0

0 strncmp(A,B,1) ans =

1

1

0

Trang 51

String Comparisons (cont.)

Comparing for Equality Using Operators

You can use MATLAB relational operators on character arrays, as long as the arrays you are comparing have equal dimensions, or one is a scalar For

example, you can use the equality operator (==) to determine which characters

in two strings match:

A = 'fate';

B = 'cake';

A == B ans =

All of the relational operators (>, >=, <, <=, ==, ~=) compare the values of

corresponding characters.

Ngày đăng: 11/06/2014, 16:48

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w