Biến đổi Fourier rời

Một phần của tài liệu Nghiên cứu kỹ thuật bảo vệ bản quyền các sản phẩm đồ họa vectơ (Trang 57)

một biến đổi trong giải tích Fourier cho các tín hiệu thời gian rời rạc. Đầu vào của biến đổi này là một chuỗi hữu hạn các số thực hoặc số phức, làm biến đổi này là một công cụ lý tưởng để xử lý thông tin trên các máy tính. Đặc biệt, biến đổi này được sử dụng rộng rãi trong xử lý tín hiệu và các ngành liên quan đến phân tích tần số chứa trong trong một tín hiệu, để giải phương trình đạo hàm riêng, và để làm các phép như tích chập. Biến đổi này có thể được tính nhanh bởi thuật toán biến đổi Fourier nhanh (FFT).

*) Định nghĩa

Dãy của Nsố phức :x0,...,xN − 1 được biến đổi thành chuỗi của N số phức X0, ..., XN−1 bởi công thức sau đây:

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

(3.24)

với e là cơ sở của log tự nhiên, là đơn vị ảo (i2 = − 1), và π là pi. Phép biến đổi

asin or or .

đôi khi được kí hiệu bởi ,

Phép biến đổi Fourier rời rạc ngƣợc được cho bởi công thức sau

(3.25)

*) Ứng dụng của biến đổi Fourier

Biến đổi Fourier có rất nhiều ứng dụng khoa học, ví dụ như trong vật lý, số học, xử lý tín hiệu, xác suất, thống kê, mật mã, âm học, hải dương học, quang học, hình học và rất nhiều lĩnh vực khác. Trong xử lý tín hiệu và các ngành liên quan, biến đổi Fourier thường được nghĩ đến như sự chuyển đổi tín hiệu thành các thành phần biên độ và tần số. Sự ứng dụng rộng rãi của biến đổi Fourier bắt nguồn từ những tính chất hữu dụng của biến đổi này:

- Tính tuyến tính : (3.26)

- Tồn tại biến đổi nghịch đảo, và thực tế là biến đổi Fourier nghịch đảo gần như có cùng dạng với biến đổi thuận.

- Những hàm số sin cơ sở là các hàm riêng của phép vi phân, có nghĩa là khai triển này biến những phương trình vi phân tuyến tính với các hệ số không đổi thành các phương trình đại số cơ bản. Ví dụ, trong một hệ vật lý tuyến tính không phụ thuộc thời gian, tần số là một đại lượng không đổi, do đó những thành phần tần số khác nhau có thể được tính toán một cách độc lập.

- Theo định lý tích tổng chập, biến đổi Fourier chuyển một tích tổng chập phức tạp thành một tích đại số đơn giản.

- Biến đổi Fourier rời rạc có thể được tính toán một cách nhanh chóng bằng

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

- Theo định lý Parseval-Plancherel, năng lượng của tín hiệu (tích phân của bình phương giá trị tuyệt đối của hàm) không đổi sau biến đổi Fourier.

3.2.1. Những biến đổi Fourier trong véc tơ

Ảnh véc tơ là loại ảnh được lưu trữ theo cách mô tả đường biên của các đối tượng trong ảnh như là các hình và các đường hình học, ví dụ như elíp (ellipse), đa giác (polygon), hình cung (arc), đường thẳng (line), chữ nhật (rectangle)... Việc lưu trữ ảnh véc tơ thực chất là lưu trữ lại các lệnh dùng để vẽ lại ảnh đó. Ảnh véc tơ được lưu trữ dưới dạng hình học nên chất lượng lưu trữ không tốt lắm, nhưng bù vào đó, kích thước file ảnh tương đối nhỏ và việc xử lý ảnh rất đơn giản, thông qua các hàm toán học. Các file ảnh véc tơ phổ biến hiện nay là WMF, CGM, CDR, GEM Metafile...

Đi sâu vào chi tiết lưu trữ, một file ảnh bao giờ cũng có ba phần cơ bản là phần đầu (header), bảng màu (palette) và dữ liệu (data). Một vài ảnh được sử dụng trong Windows hay XWindows để tạo giao diện như Icon, Cursor... thì có thêm phần nhận dạng resource (resource id).

Phần header cho biết các thông tin về bản thân ảnh như chiều dài, chiều rộng, vị trí bắt đầu hiện trên thiết bị (màn hình, máy in, máy vẽ...), số màu..., và cho biết về cấu trúc file ảnh như kiểu nén dữ liệu, vùng bắt đầu dữ liệu, vị trí bảng màu...

3.3. Kết luận chƣơng

Thuật toán giấu và tách tin cơ sở và Tổng quan về biến đổi Fourier, ứng dụng của Fourier được trình bày trong chương là những nội dung chính của chương.

Thuật toán giấu và tách tin cơ sở và biến đổi Fourier rời rạc trình bày ở trên được áp dụng để xây dựng chương trình thử nghiệm trong chương sau.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

CHƢƠNG 4: CHƢƠNG TRÌNH THỬ NGHIỆM 4.1. Mô tả bài toán thử nghiệm

Trong thực tế những bức ảnh nói riêng và những tệp tin Media nói chung rất dễ bị xâm phạm bản quyền tác giả, một yêu cầu cấp thiết được đặt ra là làm thế nào để bảo vệ bản quyền tác giả và chống lại việc xuyên tạc thông tin của người sử dụng như đã nói trong phần đặt vấn đề.

Luận văn này muốn đề cập đến vấn đề bảo về bản quyền tác giả của bản đồ véc tơ và giải pháp chống xuyên tạc thông tin trong bản đồ véc tơ. Đối với các bản đồ véc tơ khi muốn đánh dấu bản quyền tác giả, ta sẽ đưa vào bản đồ một khóa mật sao cho sự thay đổi của bản đồ là không đáng kể và mắt thường không thể nhận ra.

Với ý tưởng như trên ta sẽ đưa vào bản đồ một khóa gồm một vài ký tự đã được mã hóa, sau đó ta sẽ lấy lần lượt các bit của khóa đã được mã đó và đưa vào tọa độ của các điểm có trong bản đồ, sao cho sự thay đổi của tọa độ đó là nhỏ nhất. Bằng thuật toán giấu tin đơn giản biến đổi giá trị của các ký tự thành các bit nhị phân, sau đó lấy tọa độ của một số điểm và đưa vào đó từng bit của khóa, bằng cách cộng giá trị của các bit 1 vào tọa độ của các điểm được chọn để giấu tin. Và cứ như vậy cho đến khi ta đã giấu hết các giá trị của khóa vào các điểm bản đồ được lựa chọn. (adsbygoogle = window.adsbygoogle || []).push({});

Như vậy, bản đồ đã được đánh dấu ẩn, đã được khẳng định bản quyền và chống xuyên tạc thông tin. Khi muốn tách lấy khóa mật, ta chỉ việc trích lấy tọa độ của các điểm đã dấu tin, sau đó trích lấy các bit mà ta đã biến đổi là giá trị của khóa mật trong bản đồ. Sau đó biến đổi ngược lại ta sẽ được giá trị của khóa.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Tóm lại: Đầu vào của chương trình là một bản đồ véc tơ, sau quá trình giấu tin mật ta được sản phẩm đầu ra là bản đồ đã được đánh dấu ẩn mà mắt thường không phát hiện được.

Đối với bản đồ véc tơ có rất nhiều khuôn mẫu khác nhau như MIF của MapInfo hay ShapeFile của ESRI …, nhưng trong luận văn này tác giả chỉ chọn một khuôn mẫu thông dụng đó là khuôn mẫu ShapeFile của ESRI để nghiên cứu.

4.2. Định dạng cấu trúc tệp Shapefile

Shapefile là tập các tệp lưu trữ các tập hợp dữ liệu không gian (dữ liệu hình học) và dữ liệu thuộc tính (dữ liệu phi hình học) của các đối tượng trong cơ sở không gian. Dữ liệu hình học mô tả các đường biên của các đặc trưng không gian lưu trữ được trong shapefile, trong một khuôn mẫu bao gồm một tập hợp các cặp toạ độ véc tơ. Dữ liệu hình học lưu trữ trong shapefile chỉ đơn thuần là các cặp toạ độ mô tả các đặc trưng điểm, đường, vùng, chúng chưa được xây dựng topology, nên rất thuận tiện cho việc chuyển đổi sang khuôn mẫu khác. Mặt khác, shapefile hơn hẳn các dữ liệu nguồn khác ở tốc độ hiển thị và khả năng hiệu chỉnh dữ liệu và có ưu điểm là yêu cầu không gian đĩa ít hơn và dễ dàng hơn trong việc đọc và ghi bởi vì dữ liệu được lưu trữ dưới dạng các tệp nhị phân.

Shapefile có thể được tạo ra nhờ các công cụ của phần mềm GIS như ArcView …, các phần mềm này cung cấp cho ta công cụ để phát sinh ra các ứng dụng bản đồ dưới dạng khuôn mẫu Shapefile hay chuyển đổi từ các khuôn mẫu bản đồ khác như MIF của Mapinfo chẳng hạn. Tuy nhiên ta cũng có thể viết chương trình để tạo ra Shapefile một cách trực tiếp nếu như nắm vững tổ chức dữ liệu của Shapefile.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

4.2.1. Tổ chức dữ liệu của khuôn mẫu của Shapefile

Shapefile hỗ trợ các đối tượng mang đặc trưng điểm, đường, vùng. Đường được tạo ra bằng cách nối các điểm liên tục với nhau. Vùng được mô tả như vòng khép kín của các đường. Các dữ liệu thuộc tính được lưu trữ trong tệp khuôn dạng dBASE. Mỗi một bản ghi dữ liệu thuộc tính có quan hệ 1-1 với bản ghi dữ liệu hình học có cùng quan hệ tới đối tượng địa lý.

Khuôn mẫu Shapefile bao gồm 3 tệp chính: tệp chính, tệp chỉ số và tệp cơ sở dữ liệu dBASE. Trong đó, tệp chính chứa các bản ghi có độ dài thay đổi mà mỗi bản ghi mô tả một đối tượng hình học (các điểm, đường, vùng) với một danh sách các toạ độ X,Y của các điểm mô tả đường biên của đối tượng. Tệp chỉ số chứa các bản ghi có độ dài cố định, mỗi bản ghi chứa vị trí của bản ghi tương ứng tính từ đầu của tệp chính để tăng tốc độ thâm nhập. Tệp dBASE chứa các thuộc tính của các đặc trưng địa lý với mỗi bản ghi cho một đặc trưng. Mối quan hệ 1-1 giữa đối tượng hình học và thuộc tính dựa trên số hiệu của bản ghi. Các bản ghi thuộc tính trong tệp dBASE phải có cùng thứ tự với các bản ghi trong tệp chính.

4.2.2. Quy ƣớc về tên tệp

Tên của các tệp được đặt theo quy ước 8.3 (8 kí tự dành cho tên, 3 kí tự dành cho phần mở rộng). Trong đó tệp chính (main file), tệp chỉ số (index file), tệp dữ liệu thuộc tính (dBASE file) phải có cùng tên, chỉ khác nhau phần mở rộng. Phần mở rộng của tệp chính là ".shp", của tệp chỉ số là ".shx", của tệp dBASE là ".dbf".

Ví dụ: tệp chính : country.shp

tệp chỉ số : country.shx tệp dBASE: country.dbf

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

4.2.3. Kiểu dữ liệu

Dữ liệu lưu trữ trong Shapefile là số nguyên (Integer) và số thực (Double). Trong đó:

 Integer là số nguyên có dấu 32 bit (4 byte).

 Double là kiểu dấu phẩy động 64 bit ( 8 byte )

Một chú ý quan trọng là dữ liệu trong Shapefile là các số Integer và Double được lưu trữ dưới 2 dạng khác nhau gọi là ( byte order ).

 Little endian byte order: là cách thức mã hóa mà trật tự các byte của một số Integer được sắp từ phải qua trái theo chiều giảm dần. Phương pháp này thường được sử dụng trong hệ điều hành MS-DOS, MS-Windows,…

 Big endian byte order: Là cách thức mã hoá mà trật tự các byte được sắp xếp theo từ trái qua phải. Trật tự này thường được sử dụng trong hệ điều hành UNIX.

Do đó, để có thông tin chính xác ta phải có thủ tục chuyển đổi giữa hai kiểu dữ liệu này tuỳ theo hệ điều hành được sử dụng. Sau đây là mô tả cấu trúc tổng quát của Shapefile:

4.2.4. Cấu trúc của Main file

Tệp dữ liệu chính bao gồm phần header của file có độ dài cố định, tiếp theo sau là các bản ghi có độ dài thay đổi. Mỗi bản ghi có độ dài thay đổi được tạo bởi header của bản ghi có độ dài cố định, theo sau là nội dung của các bản ghi có độ dài thay đổi (lưu trữ kiểu đối tượng, các cặp toạ độ X, Y của đối tượng).

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Header của tệp

Header của bản ghi Nội dung bản ghi

Header của bản ghi Nội dung bản ghi (adsbygoogle = window.adsbygoogle || []).push({});

Header của bản ghi Nội dung bản ghi

Header của bản ghi Nội dung bản ghi

...

Header của bản ghi Nội dung bản ghi

Hình 4.1 Cấu trúc của tệp chính.

 Cấu trúc header của tệp chính (Main file):

Phần header của tệp chính có độ dài 100 byte. Ý nghĩa, nội dung và vị trí của dữ liệu được mô tả trong bảng 1. Bảng 1 mô tả các trường cho biết thông tin về: vị trí byte được bắt đầu từ đầu tệp, ý nghĩa của dữ liệu, giá trị được sử dụng, kiểu dữ liệu byte order

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Bảng 1. Mô tả Header của tệp chính

Position Field Value Type Byte order

Byte 0 File code 9994 Integer Big

Byte 4 Unused 0 Integer Big

Byte 8 Unused 0 Integer Big

Byte 12 Unused 0 Integer Big

Byte 16 Unused 0 Integer Big

Byte 20 Unused 0 Integer Big

Byte 24 File Length File Length Integer Big

Byte 28 Version 1000 Integer Little

Byte 32 Shape Type Shape Type Integer Little

Byte 36 Bounding Box Xmin Double Little

Byte 44 Bounding Box Ymin Double Little

Byte 52 Bounding Box Xmax Double Little

Byte 60 Bounding Box Ymax Double Little

Byte 68 Unused 0 Integer Big

. . . . .

Byte 96 Unused 0 Integer Big

Trong đó : Giá trị của file length là độ dài của tệp theo đơn vị một từ (word) 16 bit, bao gồm 50 từ (100 byte) tạo ra header. Ví dụ file length = 2000 (word) tức là tệp có độ dài là 4000 byte.

 Trường file code chứa mã quy ước của shapefile, luôn bằng 9994, giá trị này được sử dụng làm mã để kiểm tra mỗi khi đọc/ghi tệp.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

 Trường ShapeType nói lên kiểu đối tượng mà tệp biểu diễn, thông thường có giá trị với các ý nghĩa như sau: (adsbygoogle = window.adsbygoogle || []).push({});

Giá trị ShapeType Kiểu đối tượng hình học mà tệp mô tả

0 Null shape

1 Point Tệp lưu trữ đối tượng là các điểm

3 Arc Tệp lưu trữ đối tượng là các cung hay polyline

5 Polygon Tệp lưu trữ đối tượng là polygon( đa giác)

8 Multipoint Tệp lưu trữ đối tượng là tập các điểm

Các giá trị ShapeType 2, 4, 6, 7 và 9 được sử dụng mô tả các đặc trưng khác hiện chưa được định nghĩa. Hiện nay shape file chỉ hạn chế trong các kiểu đối tượng kể trên. Trong tương lai shape file có thể sẽ cho phép định nghĩa thêm nhiều kiểu đối tượng không gian khác.

Trường Bounding Box chứa toạ độ của hình chữ nhật nhỏ nhất có các cạnh

vuông góc với trục X và Y bao gọn toàn bộ bản đồ.

 Header của mỗi bản ghi lưu trữ số hiệu của bản ghi và độ lớn của nội dung bản ghi đó. Header của mỗi bản ghi có độ dài cố định là 8 byte.

Giá trị độ lớn của nội dung bản ghi tính theo đơn vị 16 bitword (2 byte). Như vậy mỗi bản ghi góp một giá trị (4 + content length) vào giá trị của trường File length của File Header. Số hiệu các bản ghi của tệp chính được bắt đầu từ 1.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Bảng 2. Mô tả Header của mỗi bản ghi

Position Field Value Type

Byte order

Byte 0 Record Number Record Number Integer Big

Byte 4 Content Length Content Length Integer Big

 Nội dung các bản ghi của tệp chính:

Nội dung các bản ghi của tệp chính bao gồm kiểu của đối tượng đồ họa (Shape type), kiểu của đối tượng ở đây phải trùng với giá trị (Shape type) được lưu trữ trong header của tệp. Tiếp theo sau là dữ liệu hình học của các đối tượng đồ họa. Độ dài của nội dung các bản ghi phụ thuộc vào số lượng các thành phần và số lượng các đỉnh của đối tượng đồ họa. Đối với mỗi loại Shape file ta sẽ mô tả khuôn dạng của đối tượng và bản đồ của mỗi bản ghi trên đĩa từ như sau:

 Kiểu Point ( Điểm): Mỗi điểm là một cặp tọa độ theo thứ tự X, Y có kiểu Double. Point { Double X; // toạ độ X Double Y; // toạ độ Y }

Bảng 3. Nội dung của bảng điểm

Position Field Value Type Number Byte order

Byte 0 Shape Type 1 Integer 1 Little

Byte 4 X X Double 1 Little

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

 Kiểu MultiPoint ( Tập hợp các điểm):

MultiPoint {

Double[4] Box // Hình chữ nhật bao của đối tượng

Integer NumPoints // số lượng điểm

Point[ NumPoint ] Points // Mảng chứa danh sách các điểm (adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu Nghiên cứu kỹ thuật bảo vệ bản quyền các sản phẩm đồ họa vectơ (Trang 57)