Đối tượng nghiên cứu của kỹ thuật đồ hoạ Từ khi máy tính ra đời các ứng dụng phi số ngày càng rộng rãi, một trong các ứng dụng là xử lý thông tin bằng hình ảnh.. ứng dụng của kỹ thuật đ
Trang 1Chương 1
Mμn hình của máy tính
$1 Bμi Mở đầu
I Đối tượng nghiên cứu và ứng dụng của kỹ thuật đồ hoạ
1 Đối tượng nghiên cứu của kỹ thuật đồ hoạ
Từ khi máy tính ra đời các ứng dụng phi số ngày càng rộng rãi, một trong các ứng dụng là xử lý thông tin bằng hình ảnh Trong lĩnh vực xử lý thông tin hình ảnh lại
được chia thành 2 lĩnh vực:
- Kỹ thuật đồ hoạ
- Xử lý ảnh Trong khi xử lý ảnh quan tâm đến cách thu nhận, khôi phục lưu trữ các hình ảnh (các hình ảnh này có thể có từ bất kỳ nguồn nào như video, camera ) thì kỹ thuật
đồ hoạ tập trung vào vấn đề sử dụng máy tính để tạo ra hình ảnh Rõ ràng kỹ thuật
đồ hoạ và xử lý ảnh đều xử lý thông tin hình ảnh cho nên nó có quan hệ rất mật thiết với nhau nhưng mục đích nghiên cứu của chúng rất khác nhau
2 ứng dụng của kỹ thuật đồ hoạ
Kỹ thuật đồ hoạ có ứng dụng rất rộng rãi từ khi tốc độ máy tính tăng, khả năng hiển thị của màn hình tốt, khả năng lưu trữ thông tin tăng Kỹ thuật đồ hoạ được sử dụng trong 2 lĩnh vực chính:
- Vẽ kỹ thuật
- Mô phỏng
II Màn hình máy vi tính
1 Các chế độ làm việc
Màn hình là nơi thể hiện các thông tin, nó phản ảnh các kết quả tính toán, xử lý Thông tin hiển thị có thể ở dạng văn bản, có thể ở dạng hình ảnh, tương ứng với các dạng thông tin cần hiển thị màn hình có 2 chế độ làm việc:
Chế độ văn bản (Text mode)
Chế độ đồ hoạ (Graphics mode)
ở chế độ văn bản màn hình được chia thành 80 cột, 25 dòng, mỗi ô là giao của các dòng các cột tạo thành hộp ký tự (text box)
ở chế độ đồ hoạ màn hình được chia thành số dòng, số cột lớn hơn tuỳ thuộc vào chất lượng của màn hình, số cột x số dòng y gọi là độ phân giải của màn hình, người
ta dựa vào phân giải và số màu mà màn hình có thể hiển thị để phân chia màn hình thành các loại khác nhau như
Trang 2- CGA (Color Graphics Adapter)
- EGA (Enhance Graphics Adapter)
- VGA (Video Graphics Array)
- SVGA (Supper Video Graphics Array) Mỗi màn hình có thể hoạt động ở một chế độ nào đó tuỳ thuộc vào chất lượng của
màn hình - hiện nay các màn hình của họ PC có các chế độ sau tính theo hệ cơ số
16 Riêng Mode từ 13 trở đi chỉ dùng cho VGA trở lên
Dưới đây là bảng các mode của màn hình
Mode (Hexa) Chế độ Độ phân giải Số lượng màu
Dưới đây để phục vụ cho mục đích đồ hoạ chúng ta chỉ khảo sát các chế độ đồ hoạ
16 và 256 màu
Để thiết lập chế độ đồ hoạ ta dùng thủ tục sau đây
Procedure set_mode(mode: integer);
Var
Trang 3R : registers;
Begin
R.ax:=$4f02;
R.bx:=mode;
intr($10,R);
End;
Còn để đọc Mode màn hình ta dùng hàm sau đây
Function Get_mode: integer;
Var
R : registers;
Begin
R.ax:=$4f03;
intr($10,R);
Get_mode:=R.bx;
End;
Ví dụ : Đặt chế độ màn hình
Program Set_Get_Mode;
Uses crt,Graph,dos;
Var
R : registers;
mode,gd,gm : Integer;
Procedure set_mode(mode: integer);
Begin
R.ax:=$4f02;
R.bx:=mode;
intr($10,R);
End;
Function Get_mode: integer;
Begin
R.ax:=$4f03;
intr($10,R);
Get_mode:=R.bx;
End;
Begin
mode:= Get_mode;
gd:=0;
Set_mode(mode);
directvideo:=false;
Writeln('mode la : ',Get_mode);
InitGraph(gd,gm,' ');
directvideo:=false;
Writeln('mode la : ',Get_mode);
Readkey;
Set_mode(mode);
End
Trang 42 Hệ toạ độ hiển thị trên màn hình
Khi thực hiện các chế độ đồ hoạ người ta quy ước gắn trên màn hình hệ toạ độ Decac theo quy ước sau:
Trục X gọi là tọa độ cột, Y gọi là toạ độ hàng
Ô có toạ độ X,Y là đơn vị đồ hoạ nhỏ nhất gọi là pixel - một pixel trên màn hình là hình ảnh của một điểm trong hệ toạ độ thực Khó khăn cơ bản trong kỹ thuật đồ hoạ
vi tính là người ta phải sử dụng các pixel có toạ độ nguyên để biểu diễn tất cả các
điểm trong hệ toạ độ thực
Số pixel có được trên màn hình phụ thuộc vào độ phân giải của màn hình
Ví dụ:
CGA: 320x200 EGA: 640x350 VGA: 640x480
Trang 53 Nguyên tắc tạo màu của màn hình:
Để thể hiện màu của mỗi pixel trên màn hình người ta sử dụng 3 màu cơ bản: Red,
Green, Blue Loại màn hình tạo màu theo 3 màu cơ bản trên gọi là loại màn hình
RGB Từ 3 màu cơ bản này người ta tạo ra các màu khác bằng cách thay đổi cường
độ sáng (Intensity) của các màu cơ bản trên
Chẳng hạn để có 16 màu từ 3 màu cơ bản trên người ta sử dụng 4 bit, 3 bit ứng với 3
màu cơ bản, một bit dùng để thay đổi cường độ sáng theo bảng sau:
Color Itensity
bit
bit
Blue bit IRGB
Value
Để tạo ra 256 màu trên màn hình VGA có 3 nhóm bit kích hoạt, mỗi nhóm gồm 6
bit để thay đổi cường độ sáng của 3 màu cơ bản, các nhóm bit này được tạo thành 3
byte riêng biệt
Ví dụ:
Trang 6
Blue Green Red Value
Rõ ràng với cách tổ hợp này với màn hình VGA có thể tạo được
64 x 64 x 64 =262.144 màu khác nhau, màn hình VGA cho phép hiển thị cùng một
lúc 256 màu trong số 262.144 màu có thể
Số màu có thể hiển thị của một pixel phụ thuộc vào số bit dùng để biểu diễn nó
1 2
2 4
4 16
8 264
4 Bộ nhớ màn hình (Display memory)
Bộ nhớ màn hình là vùng bộ nhớ dùng để chứa dữ liệu trực tiếp hiện ra màn hình, dữ
liệu trong bộ nhớ màn hình thay đổi sẽ trực tiếp thay đổi trên màn hình
ở chế độ văn bản (text mode) bộ nhớ chủ dành cho bộ nhớ màn hình được bắt đầu
từ địa chỉ B800:0000
ở chế độ đồ hoạ (graphics mode) bộ nhớ chủ dành cho bộ nhớ màn hình được bắt
đầu từ địa chỉ A000:0000
Với màn hình VGA kích thước chuẩn của bộ nhớ màn hình là 256Kb
Bộ nhớ màn hình có 2 cách tổ chức
Tổ chức dạng gói (packed format)
Tổ chức dạng mảng (bit plane)
Trang 7Trong cách tổ chức dạng gói cả bộ nhớ màn hình là một mảng một chiều, mọi phần
từ của mảng là 1 byte
Trong cách tổ chức bit plane bộ nhớ của màn hình được tổ chức logic thành các mảng hai chiều Trong các chế độ đồ hoạ 16 màu bộ nhớ màn hình được tổ chức
thành 4 mảng gọi là 4 bit plane đánh số từ 0 đến 3
Tất cả các bit plane đều được truy nhập từ cùng một địa chỉ A000
Người lập trình có thể truy nhập vào các bit plane bằng các lệnh thông qua cổng hoặc bằng các ngắt của Rom Bios
Chỉ có thể đọc/ghi một byte trên cùng một bit plane Một byte trên một bit plane
chứa thông tin của 8 pixel lân cận theo hàng ngang
Muốn đọc thông tin của một pixel nào đó ta phải đọc 4 byte và tách 4 bit plane từ 4 byte này Còn muốn ghi một pixel ta phải ghi 4 byte và do đó cũng có nghĩa là phải ghi 8 pixel
5 Trang màn hình (Display page)
Trang màn hình là vùng bộ nhớ màn hình ứng với lượng thông tin hiển thị trên một màn hình Vì vùng bộ nhớ màn hình chuẩn đạt tới 256Kb trong khi lượng thông tin
để hiển thị trên một màn hình lại nhỏ hơn, để tạo ra tốc độ hiển thị nhanh, bộ nhớ màn hình cho phép tổ chức thành từng trang màn hình, các trang được đánh số từ 0 trở đi Trang được hiển thị trên màn hình gọi là trang đang làm việc (active page) Tuỳ thuộc vào chế độ làm việc của màn hình mà bộ nhớ màn hình có số trang khác nhau Dưới đây là số trang ở một số mode của EGA/VGA
Mode độ phân giải số trang số mμu kích thước ký tự
Trang 8
12 640*480 1 16 8*16
- Chúng ta có thể tự hạn chế về số trang cho mỗi chế độ của màn hình
Ví dụ:
- Mode E có tất cả 128000 pixel/page Vì 8 pixel ứng với một byte trên một bit plane do đó cần 16000 byte/bit plane/ page - một trang cần 64000 byte xấp xỉ 64 kb
Do vậy tối đa chỉ có thể hiển thị được 4 trang
- Mode D: có 64000 pixel/ page Vì pixel ứng với một byte trên một bit plane do
đó cần 8000 byte/ bit plane/ page - một trang cần 32000 byte xấp xỉ 32kb/page do
đó tối đa chỉ có thể có 8 trang
- Người ta cũng có thể biết được địa chỉ đầu của mỗi trang trong từng chế độ làm việc của màn hình
Mode D: A000 - A1F3F
A200 - A3F3F
A400 - A5F3F
A600 - A7F3F
A800 - A9F3F
AA00 - ABF3F
AC00 - ADF3F
AE00 - AFF3F
Mode E: A000 - A3E7F
A400 - A7E7F
A800 - ABE7E
AC00 - AFE7E
$2 Truy cập vμo bộ nhớ mμn hình
Về nguyên tắc có 2 cách để truy cập bộ nhớ màn hình và các thanh ghi
+ Cách 1: Sử dụng các dịch vụ ngắt của ROM BIOS, ROM BIOS cung cấp
tương đối đầy đủ các chương trình con ứng với các ngắt để phục
vụ cho công việc này
+ Cách 2: Truy cập trực tiếp đưa vào các địa chỉ của các cổng (port) thông
qua các ngôn ngữ lập trình Cách 1 đơn giản tuy nhiên có nhược điểm tốc độ truy nhập chậm
I Sử dụng các dịch vụ ngắt Int 10H của ROM BIOS
Dưới đây là một vài ngắt của ROM BIOS
1 Đưa một pixel vμo bộ nhớ mμn hình
input AH=0Ch AL=mμu BH=trang