Đồ họa bitmap và vector
Đã giới thiệu| English | Ý nghĩa |
|---|---|
| bitmap/ˈbɪtmæp/ | bitmap |
| vector/ˈvektə/ | vector |
| pixel/ˈpɪksl/ | pixel |
| file header/faɪl ˈhedə/ | file header |
| colour depth/ˈkʌlə depθ/ | độ sâu màu |
| image resolution/ˈɪmɪdʒ ˌrezəˈluːʃn/ | độ phân giải hình ảnh |
| screen resolution/skriːn ˌrezəˈluːʃn/ | độ phân giải màn hình |
| frame/freɪm/ | khung hình |
| frame rate/freɪm reɪt/ | tốc độ khung hình |
| drawing list/ˈdrɔːɪŋ lɪst/ | danh sách vẽ |
| drawing objects/ˈdrɔːɪŋ ˈɒbdʒekts/ | đối tượng vẽ |
| primitives/ˈprɪmɪtɪvz/ | primitives |
| properties/ˈprɒpətiz/ | thuộc tính |
| render/ˈrendə/ | hiển thị |
Tại sao logo trên biển quảng cáo không phải là ảnh chụp
- Logo của một công ty xuất hiện trên danh thiếp rộng hai centimet và trên biển quảng cáo đường cao tốc rộng sáu mét. Đó là cùng một tệp, và nó sắc nét ở cả hai kích thước.
- Phóng to một bức ảnh theo cách tương tự thì nó sẽ biến thành các khối pixel. Bức ảnh không có gì sai; hai tệp này trả lời cho những câu hỏi khác nhau.
- Ảnh chụp lưu trữ màu sắc tại mỗi điểm. Logo lưu trữ các hình dạng cần vẽ. Khi phóng to ảnh chụp, số lượng điểm cố định được trải ra; khi phóng to logo, các hình dạng được vẽ lại ở kích thước mới.
- Bài học này nói về ảnh bitmap và ảnh vector, cách tính toán dung lượng tệp mà đề thi yêu cầu, và cách lập luận để chọn phương án.
Cách mã hóa ảnh bitmap
- Một bitmap (ảnh bitmap) lưu màu sắc của từng pixel trong lưới ô, lần lượt từ hàng này sang hàng khác.
- Ở đầu tệp, một file header (đầu tệp) ghi lại thông tin metadata phần mềm cần để đọc các pixel tiếp theo: chiều rộng, chiều cao và độ sâu màu.
- Độ phân giải ảnh là kích thước thực tế của ảnh theo đơn vị pixel, chiều rộng nhân chiều cao. Độ phân giải màn hình là khả năng hiển thị của thiết bị. Ảnh lớn hơn màn hình sẽ bị thu nhỏ để vừa khít; ảnh độ phân giải thấp kéo dãn lên màn hình độ phân giải cao sẽ trông rất马赛克 (khối).
- Độ sâu màu (bit depth) là số bit dùng để lưu màu sắc của một pixel: 1 bit cho đen trắng, 8 bit cho 256 màu, 24 bit cho 16,7 triệu màu, gọi là true color (màu thật).

Ít pixel, các khối lớn
Phòng thí nghiệm khái niệm tin học
Phân loại các ví dụ cụ thể theo ý tưởng tin học mà chúng minh họa.
Độ sâu màu (độ sâu bit) của một hình ảnh bitmap là:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Độ sâu màu là số bit trên mỗi pixel — càng nhiều bit thì càng có nhiều màu sắc khả dĩ (8 bit → 256, 24 bit → 16.7 triệu).
Cần bao nhiêu bit độ sâu màu để lưu 256 màu khác nhau?
Difficulty 2/5 · 140 coins + a small bonus on first completion today
$2^8 = 256$, do đó 8 bit trên mỗi pixel tạo ra 256 màu.
Tiêu đề file của một hình ảnh bitmap lưu trữ những gì?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Tiêu đề là metadata: nếu không có chiều rộng và độ sâu màu, các byte pixel không thể tách thành các hàng và pixel. Danh sách vẽ thuộc về một file vector.
Dung lượng tệp bitmap
- Chia cho 8 để ra byte, sau đó chia cho 1000 hoặc 1024 tùy thuộc vào họ tiền tố bạn đang sử dụng, và nêu rõ loại tiền tố nào. Thêm phần đầu tệp nếu đề bài cho kích thước của nó.
- Một ảnh $3000 \times 2000$ ở 24 bit mỗi pixel là $1.44 \times 10^8$ bits, tương đương 18,0 MB dùng tiền tố thập phân hoặc 17,2 MiB dùng tiền tố nhị phân. Cả hai đều được chấp nhận miễn là quá trình tính toán thể hiện rõ ràng việc sử dụng loại tiền tố nào.
Một hình ảnh pixel $100 \times 100$ có độ sâu màu là 24 bit. Kích thước file của nó là bao nhiêu bit?
Difficulty 2/5 · 140 coins + a small bonus on first completion today
kích thước $=$ chiều rộng $\times$ chiều cao $\times$ độ sâu $= 100 \times 100 \times 24 = 240\,000$ bits.
Ví dụ minh họa: tính dung lượng ảnh, sau đó là video
- Một bức ảnh có $4000 \times 3000$ pixel với độ sâu màu là 24 bit. Tìm dung lượng tệp của nó theo đơn vị MiB.
- $4000 \times 3000 \times 24 = 2.88 \times 10^8$ bits. Chia cho 8: $3.6 \times 10^7$ bytes. Chia cho $1024^2$: 34,3 MiB.
- Video là một chuỗi các khung hình bitmap. Kích thước chưa nén của nó bằng một khung hình $\times$ tốc độ khung hình $\times$ thời lượng. Với 30 khung hình mỗi giây, $1920 \times 1080$, 24 bit: $30 \times 1920 \times 1080 \times 24 \approx 1.5 \times 10^9$ bits, khoảng 187 MB, mỗi giây. Đó là lý do video luôn được nén.
Một video chưa nén có kích thước 1920 x 1080 pixel, màu 24-bit, 30 khung hình mỗi giây. MỘT giây cần bao nhiêu bit? Viết dưới dạng lũy thừa của 10 với hai chữ số có nghĩa, ví dụ: 1.5e9.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
1920 x 1080 x 24 = 4.98e7 bit mỗi khung hình, nhân với 30 khung hình = 1.5e9 bit, khoảng 187 MB cho mỗi giây. Đó là lý do tại sao video luôn được nén.
Thay đổi cài đặt
- Giảm độ phân giải ảnh: ít pixel hơn, nên tệp nhỏ hơn, nhưng ít chi tiết hơn; khi phóng to, hình ảnh trông马赛克 vì mỗi pixel chiếm diện tích lớn hơn trên màn hình.
- Giảm độ sâu màu: ít bit mỗi pixel, nên tệp nhỏ hơn, nhưng các tông màu mượt mà sẽ xuất hiện vệt banding (vệt sọc), các bước nhảy rõ rệt nơi lẽ ra phải là sự chuyển tiếp mượt mà.
- Tăng một trong hai tham số: tạo tệp lớn hơn và chất lượng tốt hơn. Trả lời bằng các thuật ngữ chương trình này, không phải "bức ảnh bị xấu đi".
Ghép mỗi thay đổi với tác động lên hình ảnh.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
Trả lời bằng thuật ngữ trong chương trình, banding (vệt màu) và blockiness (hiện tượng马赛克), không phải "bức ảnh trở nên kém chất lượng".
Cách mã hóa đồ họa vector
- Một đồ họa vector lưu lệnh hướng dẫn để vẽ ảnh, dưới dạng danh sách vẽ: một danh sách có thứ tự gồm các đối tượng vẽ, là các thông số hình học cơ bản như đường thẳng, đường cong, hình chữ nhật, đa giác và hình tròn.
- Mỗi đối tượng vẽ mang thuộc tính: vị trí hoặc tọa độ, màu và độ dày đường kẻ, màu fills, bán kính, v.v.
- Để hiển thị, chương trình render (vẽ lại) danh sách vẽ ở bất kỳ kích thước nào cần thiết, do đó nó co giãn mà không mất chất lượng. Nó không thể mô tả chi tiết pixel tùy ý, nên không phù hợp cho ảnh chụp.

Danh sách các hình dạng và thuộc tính của chúng, không phải lưới các chấm pixel
A logo vector trở nên mờ khi bạn phóng to nó rất nhiều.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Vectors được tái dựng lại từ các hướng dẫn ở bất kỳ kích thước nào, nên chúng vẫn sắc nét. Chính bitmap mới bị mờ khi phóng to.
Lợi thế chính của đồ họa vector là nó:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Vì nó được vẽ từ các hướng dẫn, vector có thể thay đổi kích thước mà không bị mờ — lý tưởng cho logo và sơ đồ (nhưng không phải ảnh chụp).
Ví dụ minh họa: lập luận cho lựa chọn
- Logo phải xuất hiện trên danh thiếp và trên biển quảng cáo. Nên chọn định dạng nào và tại sao? [3]
- Đồ họa vector. Nó được lưu dưới dạng các đối tượng vẽ có thuộc tính, nên chương trình sẽ render lại ở bất kỳ kích thước nào yêu cầu và các cạnh vẫn sắc nét.
- Bitmap có số lượng pixel cố định, nên khi phóng to lên kích thước biển quảng cáo, mỗi pixel sẽ trở nên rõ ràng và logo sẽ trông马赛克.
- Và đối với ảnh chụp? Bitmap: ảnh chụp không có các hình dạng hình học để mô tả, nên màu sắc của từng pixel phải được lưu trữ riêng lẻ.
Những thuật ngữ nào mô tả cách mã hóa đồ họa vector? Chọn tất cả các đáp án đúng.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
Một danh sách vẽ có thứ tự gồm các đối tượng vẽ, mỗi đối tượng có các thuộc tính. Độ sâu màu là thuật ngữ bitmap, bit trên mỗi pixel.
Chọn giữa hai loại
| Nhiệm vụ | Lựa chọn | Lý do |
|---|---|---|
| ảnh chụp | bitmap | chi tiết từng pixel không thể mô tả bằng hình dạng |
| logo, biểu tượng, biển báo giao thông | vector | sắc nét ở mọi kích thước, tệp nhỏ |
| bản vẽ kỹ thuật | vector | hình học chính xác, co giãn hoàn hảo |
| tranh vẽ, kết cấu | bitmap | chi tiết tông màu mượt mà trên diện rộng |
Định dạng nào tốt hơn để lưu trữ một bức ảnh chụp?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Một bức ảnh có chi tiết phức tạp trên từng pixel không thể mô tả dưới dạng hình dạng, vì vậy bitmap là lựa chọn đúng.
Điểm số dễ mất
- Tính toán bằng bits, chia cho 8 đúng một lần, và nêu rõ bạn đã dùng 1000 hay 1024. Việc trộn lẫn bits và bytes giữa chừng là lỗi mất điểm thường gặp.
- Độ phân giải ảnh là số pixel của ảnh; độ phân giải màn hình là của thiết bị hiển thị. Đề bài sẽ chỉ ra một trong hai.
- Vector là danh sách vẽ các đối tượng có thuộc tính, không phải "bức tranh làm từ các đường thẳng". Sử dụng đầy đủ ba thuật ngữ này.
- Câu trả lời "justification" (lập luận) phải liên kết định dạng với nhiệm vụ cụ thể: biển quảng cáo, ảnh chụp. Chỉ đưa ra định nghĩa thôi thì không đủ để lập luận.
Bạn đã nắm vững
- Một bitmap lưu màu của từng pixel sau file header; độ phân giải ảnh là kích thước pixel, độ sâu màu là số bit mỗi pixel
- kích thước theo bits = chiều rộng $\times$ chiều cao $\times$ độ sâu màu; video còn cộng thêm $\times$ tốc độ khung hình $\times$ thời lượng
- giảm độ phân giải gây马赛克, giảm độ sâu màu gây banding; cả hai đều dẫn đến tệp nhỏ hơn
- Một đồ họa vector là một danh sách vẽ các đối tượng vẽ với các thuộc tính, được vẽ lại ở bất kỳ kích thước nào, vì vậy nó có thể co giãn mà không bị mất chất lượng nhưng không thể lưu trữ ảnh chụp