Bỏ qua nội dung

Biểu diễn thông tin

Khoa học máy tính A-Level · Chủ đề 1

Bài học video cho chủ đề này Mở trang video
22:30

Hệ đếm & Dữ liệu

Bức ảnh này. Bài hát này. Chính video này. Tên của bạn, tin nhắn của bạn, mọi tập tin trên mọi thiết bị — bên trong máy tính, tất cả đều chỉ là những số không và một.…

Giọng đọc tiếng Anh · phụ đề tiếng Anh + 中文 được ghi trực tiếp

1.1

Hệ đếm

Chương trình
Thí sinh cần có thể: Ghi chú và hướng dẫn
Thể hiện sự hiểu biết về các đại lượng nhị phân và sự khác biệt giữa tiền tố nhị phân và tiền tố thập phân Hiểu sự khác biệt và sử dụng: • kibi và kilo • mebi và mega • gibi và giga • tebi và tera
Thể hiện sự hiểu biết về các hệ đếm khác nhau Sử dụng cơ số nhị phân, thập phân, thập lục phân và Thập phân Mã hóa Nhị phân (BCD) cũng như biểu diễn bù 1 và bù 2 cho số nhị phân
Chuyển đổi giá trị nguyên từ một cơ số/biểu diễn này sang cơ số/biểu diễn khác
Thực hiện phép cộng và trừ nhị phân Sử dụng các số nguyên nhị phân dương và âm
Thể hiện sự hiểu biết về cách tràn (overflow) có thể xảy ra
Mô tả các ứng dụng thực tế nơi Thập phân Mã hóa Nhị phân (BCD) và Thập lục phân được sử dụng
Thể hiện sự hiểu biết và có thể biểu diễn dữ liệu ký tự ở dạng nhị phân nội bộ, tùy thuộc vào bộ mã ký tự đang dùng Học sinh cần quen thuộc với ASCII (Mã tiêu chuẩn Mỹ cho Trao đổi Thông tin), ASCII mở rộng và Unicode. Học sinh không yêu cầu ghi nhớ bất kỳ mã ký tự cụ thể nào

Nguồn: Chương trình Cambridge International

Đếm trong nhị phân: 0 đến 15

Ba hệ đếm bạn cần biết:

  • denary (thập phân, cơ số 10) — sử dụng chữ số 0–9. Giá trị vị trí là lũy thừa của mười.
  • binary (cơ số 2) — sử dụng 0 và 1. Giá trị vị trí là lũy thừa của hai. Mỗi byte gồm 8 bit.
  • hexadecimal (cơ số 16) — sử dụng 0–9 rồi A–F cho 10–15. Mỗi chữ số hex biểu diễn đúng 4 bit.
Các hạt trên abacus truyền thống
Máy tính bàn biểu thị số theo giá trị vị trí — cùng ý tưởng nền tảng cho thập phân, nhị phân và thập lục phân

Chuyển đổi

Denary → binary: tiếp tục chia cho 2 và ghi lại phần dư, đọc từ dưới lên trên. Hoặc trừ đi giá trị vị trí lớn nhất (lũy thừa của 2) vừa khít.

Ví dụ: $558_{10}$: $558 = 512 + 32 + 8 + 4 + 2 = 2^{9} + 2^{5} + 2^{3} + 2^{2} + 2^{1}$. Trong 12 bit: 0010 0010 1110.

Binary → hex: nhóm các bit thành nibbles (4 bit) từ phải sang trái và chuyển đổi từng nhóm. 0010 0010 1110 → 2 2 E → 22E.

Hex → binary: thay thế mỗi chữ số hex bằng chuỗi 4-bit của nó. Hex → denary: nhân mỗi chữ số với giá trị vị trí của nó. 22E $= 2 \times 256 + 2 \times 16 + 14 = 558$.

Ví dụ có lời giải. Chuyển đổi số thập phân 200 sang nhị phân 8-bit, sau đó sang thập lục phân.

$200 = 128 + 64 + 8$, nên nhị phân là 11001000. Theo nhóm nibble, 1100 1000 $= 12$ và $8$, tức là $\text{C}$ và $8$, vậy thập lục phân là C8.

A binary place-value chart for 200: the columns 128, 64, 32, 16, 8, 4, 2, 1 hold the bits 1,1,0,0,1,0,0,0; the two 4-bit nibbles 1100 and 1000 become the hex digits C and 8, so 200 = 11001000 = C8
Đọc 200 từ các giá trị vị trí, sau đó nhóm các bit thành nibble để lấy hex C8

Bao nhiêu bit?

Câu hỏi thi cố định chiều rộng đăng ký (8, 12 hoặc 16 bit). Đổ thêm zeros ở đầu để đạt độ rộng đó: $558$ trong 12 bit là 0010 0010 1110, không bao giờ là 10 0010 1110.

Để tìm số bit tối thiểu có thể lưu trữ một giá trị, hãy hỏi xem mình cần những giá trị vị trí nào:

  • số nguyên không dấu từ $0$ đến $2^{n} - 1$ cần $n$ bit: $200$ cần 8 bit (giá trị cao nhất là $255$), $1000$ cần 10 bit (giá trị cao nhất là $1023$), $16$ cần 5 bit (4 bit dừng lại ở $15$).
  • Một số nguyên bù hai có dấu từ $-2^{n-1}$ đến $2^{n-1} - 1$ cần $n$ bit: $-200$ cần 9 bit, vì 8 bit chỉ dừng lại ở $-128$.
  • một chữ số hexadecimal cần 4 bit, một chữ số BCD cần 4 bit, và một ký tự ASCII cần 7 bit (8 bit cho extended ASCII).

Tiền tố nhị phân so với thập phân

Hai họ tiền tố trông giống nhau nhưng khác biệt — thập phân (lũy thừa của 10) và nhị phân (lũy thừa của 2):

Thập phân (SI) Nhị phân (b bộ nhớ)
kilo $= 10^{3}$ kibi (Ki) $= 2^{10} = 1024$
mega $= 10^{6}$ mebi (Mi) $= 2^{20}$
giga $= 10^{9}$ gibi (Gi) $= 2^{30}$
tera $= 10^{12}$ tebi (Ti) $= 2^{40}$

Vì vậy, tebibyte (TiB) lớn hơn một chút so với terabyte (TB). Một ổ "1 TB" chứa $10^{12}$ byte, nhưng hệ điều hành báo cáo theo TiB sẽ hiển thị con số nhỏ hơn.

Khám phá

Nhị phân, thập phân và thập lục phân

Nhập một con số và xem nó dưới dạng nhị phân, thập phân và thập lục phân cùng lúc — cũng như cách các giá trị vị trí cộng dồn.

Từ vựng Luyện tập
English Tiếng Việt
number system/ˈnʌmbə ˈsɪstəm/ hệ đếm
binary/ˈbaɪnəri/ Nhị phân
denary/ˈdiːnəri/ Thập phân
digit/ˈdɪdʒɪt/ chữ số
place value/pleɪs ˈvæljuː/ vị trí giá trị
byte/baɪt/ Byte
bit/bɪt/ Bit
hexadecimal/ˌheksəˈdesɪml/ Thập lục phân
nibble/ˈnɪbl/ Nibble (nửa byte)
register width/ˈredʒɪstə wɪtθ/ Độ rộng thanh ghi
register/ˈredʒɪstə/ Thanh ghi
BCD/ˌbiː siː ˈdiː/ mã BCD
1.1

Toán học nhị phân

Phép cộng nhị phân

Cộng từng cột từ phải sang trái, mang số giống như thập phân:

Bit A Bit B Carry in Sum bit Carry out
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 1 0 0 1
1 1 1 1 1

Overflow xảy ra khi kết quả cần nhiều bit hơn thanh ghi có thể chứa — carry-out của cột ngoài cùng bên trái chính là bit overflow.

Ví dụ có lời giải. Cộng các số nguyên không dấu 8-bit $10110101$ và $01101100$, và bình luận về kết quả.

$10110101 + 01101100 = 1\,00100001$. Đáp án cần 9 bit, nên không chứa được trong một thanh ghi 8 bit: đã xảy ra tràn số. Một câu trả lời đầy đủ phải nêu tên lỗi và giải thích lý do, sử dụng kích thước bit mà đề bài đã cho: "Tràn số: kết quả thực tế ($289$) lớn hơn giá trị tối đa mà một thanh ghi 8 bit có thể lưu trữ ($255$), nên phần carry của bit quan trọng nhất bị mất và kết quả được lưu ($00100001 = 33$) là sai."

Phép trừ nhị phân

Cách thông thường là phép cộng bù hai: để thực hiện $A - B$, tạo bù hai của $B$ (đảo ngược từng bit rồi cộng 1), sau đó cộng lại và bỏ qua phần carry cuối cùng.

Để trừ $00011110$ từ $01100100$ (không dấu 8 bit):

  • Bù hai của $00011110$: đảo → $11100001$, cộng 1 → $11100010$.
  • Cộng vào $01100100$: kết quả $1\,01000110$ (9 bit) — bỏ đi bit 1 ở đầu → $01000110 = 70_{10}$. Kiểm tra: $100 - 30 = 70$. ✓

Số nguyên có dấu bù hai

Trong một số bù hai $n$-bit:

  • Bit quan trọng nhất (MSB) là bit dấu: 0 = dương, 1 = âm.
  • Để đọc một số âm: đảo ngược từng bit, cộng 1, sau đó đổi dấu.

Vậy $11100010$ là số âm; đảo → $00011101$, cộng 1 → $00011110 = 30$, nên nó là $-30$. Đây là số nguyên có dấu (khác với không dấu). Phạm vi cho $n$ bit là $-2^{n-1}$ đến $+2^{n-1} - 1$; với 8 bit, là $-128$ ($10000000$) đến $+127$ ($01111111$).

Cùng một dãy bit có nghĩa khác nhau tùy thuộc vào quy ước đọc. Là số không dấu, mỗi bit đều là vị trí giá trị, nên 8 bit chạy từ $0$ đến $255$; là số nguyên có dấu bù hai, bit trên cùng là dấu, nên cùng 8 bit đó chạy từ $-128$ đến $+127$. Dãy $11111111$ được đọc là $255$ theo cách này và $-1$ theo cách kia — bản thân các bit không cung cấp thông tin nào về điều đó.

Bảng bốn mẫu 8-bit được đọc hai lần: 00000000 là 0 theo cả hai cách, 01111111 là 127 không dấu và +127 có dấu, 10000000 là 128 không dấu nhưng -128 có dấu, và 11111111 là 255 không dấu nhưng -1 có dấu Cùng một byte được đọc là không dấu và có dấu: chỉ có quy ước giải mã mới phân biệt được chúng Đường số bù hai 8-bit từ -128 (10000000) đến +127 (01111111); các số có bit dấu là 1 là số âm và những số có bit dấu là 0 là số dương, với -1 = 11111111 nằm ngay dưới 0 = 00000000 Bù hai 8-bit: bit dấu chia phạm vi thành số âm ($-128$ đến $-1$) và số dương ($0$ đến $127$)

Ví dụ tính toán. Giá trị thập phân nào mà số bù hai 8-bit $10110100$ biểu diễn?

MSB là 1, nên nó là số âm. Đảo → $01001011$, cộng 1 → $01001100 = 76$, nên giá trị là $-76$. Kiểm tra bằng vị trí giá trị: $-128 + 32 + 16 + 4 = -76$.

Ví dụ đã giải. Viết $-108$ dưới dạng số nguyên bù hai 12 bit.

Bắt đầu từ $+108$ trong 12 bit: $108 = 64 + 32 + 8 + 4$, tức là 0000 0110 1100. Đảo ngược mọi bit: 1111 1001 0011. Cộng 1: 1111 1001 0100. Kiểm tra bằng cách dùng giá trị vị trí, trong đó bit cao nhất có giá trị $-2^{11} = -2048$: $-2048 + 1024 + 512 + 256 + 128 + 16 + 4 = -108$. ✓

Đối với 12 bit, phạm vi là $-2048$ (1000 0000 0000) đến $+2047$ (0111 1111 1111). Các câu hỏi yêu cầu giá trị nhỏ nhất và lớn nhất muốn hai mẫu này, vì vậy hãy học quy tắc: số âm nhất là một 1 theo sau bởi zeros; số dương nhất là một 0 theo sau bởi ones.

Một phép dịch toán học di chuyển mọi bit sang trái hoặc phải nhưng giữ nguyên dấu: dịch phải một vị trí làm giảm một nửa giá trị và sao chép bit dấu vào khoảng trống bên trái, do đó số âm vẫn giữ nguyên âm (1111 1001 0100 dịch phải ba vị trí là 1111 1111 0010, tương đương với $-14$: $-108 / 8 = -13.5$, và việc dịch phải làm tròn xuống). Dịch trái nhân đôi giá trị. Các phép dịch thuộc về bộ lệnh assembly trong chủ đề 4, nhưng câu hỏi này được đặt ra cùng với phần xử lý số ở đây.

Tràn số trong phép toán số học có dấu xảy ra khi kết quả thực tế nằm ngoài phạm vi này — nhận biết được khi bit dấu thay đổi sai (hai số dương cho ra số âm, hoặc hai số âm cho ra số dương).

Bù một

Trước khi có bù hai, một phương pháp cũ gọi là bù một biểu diễn số âm bằng cách đơn giản là đảo ngược từng bit của số dương — không có bước "cộng 1".

  • $+30 = 00011110$, nên trong bù một là $-30 = 11100001$ (chỉ đơn thuần đảo ngược).
  • Nhược điểm: nó có hai số không — $00000000$ ($+0$) và $11111111$ ($-0$) — làm lãng phí một mẫu mã bit và khiến phép tính toán trở nên cồng kềnh.

Bù hai (đảo và cộng 1) loại bỏ số 0 âm: nó có một số 0 duy nhất và cho phép phép cộng và trừ sử dụng chung mạch điện. Đó là lý do tại sao máy tính hiện đại lưu trữ số nguyên có dấu dưới dạng bù hai, chứ không phải bù một.

Khám phá

Nhị phân & số nguyên có dấu

byte = tổng các giá trị vị trí

Xem cách một mẫu hình 8 bit ánh xạ sang một số (và nó sẽ tràn vượt quá 255 như thế nào).

Khám phá

Các bit có dấu bù hai

Bit bên trái mang giá trị vị trí âm. Đảo ngược bất kỳ bit nào — hoặc nhấn Negate (đảo ngược mọi bit, sau đó cộng 1) — và quan sát sự thay đổi của giá trị có dấu.

Từ vựng Luyện tập
English Tiếng Việt
unsigned/ʌnˈsaɪnd/ không dấu
overflow/ˌəʊvəˈfləʊ/ Vượt quá
most significant bit/məʊst sɪɡˈnɪfɪkənt bɪt/ Bit quan trọng nhất
two's complement/tuːz ˈkɒmplɪmənt/ Bù hai
signed integer/saɪnd ˈɪntɪdʒə/ số nguyên có dấu
sign bit/saɪn bɪt/ Bit dấu
arithmetic shift/ˌærɪθˈmetɪk ʃɪft/ dịch chuyển số học
one's complement/wʌnz ˈkɒmplɪmənt/ bù mã
7-segment display/ˈsevən ˈseɡmənt dɪˈspleɪ/ màn hình hiển thị 7-đoạn
memory address/ˈmeməri əˈdres/ địa chỉ bộ nhớ
1.1

Thập phân mã hóa nhị phân (BCD)

Trong BCD, mỗi chữ số thập phân được viết dưới dạng mẫu 4-bit riêng của nó. Số $93$ là 1001 0011 trong BCD — không phải số nhị phân 93 ($01011101$). Mỗi nibble chỉ sử dụng 0–9; các mẫu $1010$–$1111$ là không hợp lệ.

Đọc BCD: 0010 0111 0101 → 2, 7, 5 → 275.

Ứng dụng: máy tính bỏ túi, đồng hồ kỹ thuật số và các thiết bị hiển thị chữ số thập phân — mỗi chữ số điều khiển một màn hình 7 đoạn. Mã tiền tệ thường dùng BCD để tránh các lỗi làm tròn khi chuyển đổi phân số như 0.1 sang nhị phân.

Một câu trả lời "justify" (giải thích) phải liên kết ứng dụng với một đặc tính của BCD: mỗi chữ số thập phân có riêng 4 bit, nên một chữ số có thể gửi trực tiếp đến màn hình hiển thị của nó, hoặc được cộng từng chữ số một, mà không cần chuyển đổi toàn bộ số; và một phân số thập phân như $0.10$ được lưu trữ chính xác, điều mà phân số nhị phân không thể làm được.

Một linh kiện màn hình LED bảy đoạn hiển thị một chữ số đơn, thể hiện bảy thanh riêng biệt của nó
Màn hình 7 đoạn hiển thị một chữ số thập phân, thường được điều khiển bởi BCD
1.1

Hexadecimal — ứng dụng thực tiễn

Hex là cách viết gọn nhị phân (1 chữ số hex = 4 bit):

Một byte tách thành hai nibble; mỗi nibble là một chữ số hexadecimal
Một byte gồm hai nibble; mỗi nibble là một chữ số hex
  • địa chỉ bộ nhớ trong lập trình mức thấp — 0x7FFE.
  • giá trị màu trong HTML/CSS — #FF8800.
  • địa chỉ MAC — AC:DE:48:00:11:22.

Hexadecimal không thay đổi dữ liệu được lưu trữ — nó chỉ giúp con người dễ đọc dữ liệu nhị phân hơn.

1.1

Mã ký tự

Máy tính lưu văn bản dưới dạng số; mỗi ký tự có một mã điểm (code point) số học do một bộ mã ký tự quy định.

ASCII

  • ASCII sử dụng 7 bit — 128 mã điểm. Bao gồm chữ cái Latin cơ bản, chữ số, dấu câu và mã điều khiển.
  • Extended ASCII sử dụng 8 bit — 256 mã điểm; 128 mã đầu tiên giống với ASCII, 128 mã sau khác nhau tùy khu vực.
Bảng ASCII nhỏ: ký tự A là mã 65 = 01000001, a là 97 = 01100001, chữ số 0 là 48 = 00110000, và khoảng trắng là 32 = 00100000
Mỗi ký tự được lưu dưới dạng một số — một vài mã điểm ASCII ở hệ thập phân và nhị phân

Unicode

  • Unicode là bộ mã ký tự toàn cầu bao phủ hầu hết mọi hệ chữ viết, cùng các biểu tượng và emoji.
  • các phiên mã phổ biến: UTF-8 (1–4 byte, tương thích ASCII), UTF-16 (2 hoặc 4 byte), UTF-32 (cố định 4 byte).

Tại sao Unicode vượt trội hơn ASCII

  • nó đại diện cho nhiều ký tự hơn hẳn (mọi hệ chữ viết, emoji); ASCII chỉ bao phủ tiếng Anh cơ bản.
  • tệp tin di động mà không lo nhầm lẫn trang mã, và cho phép đa ngôn ngữ trong một tài liệu.
  • sự đánh đổi: tệp Unicode thường lớn hơn đối với văn bản chỉ bằng tiếng Anh.

Khi đề bài yêu cầu nêu sự khác biệt, hãy trả lời theo cặp kèm số liệu: ASCII dùng 7 bit (Extended ASCII 8 bit), nên có 128 (256) ký tự; Unicode dùng tối đa 32 bit (UTF-8 dùng từ 1 đến 4 byte), nên có hơn một triệu mã điểm. ASCII chỉ bao phủ tiếng Anh cơ bản; Unicode bao phủ mọi hệ chữ viết, và 128 mã điểm đầu của Unicode chính là ASCII. Trong UTF-8, một chữ cái tiếng Anh vẫn chiếm 1 byte, nên tên tệp 40 chữ cái tiếng Anh dài 40 byte cả trên ASCII lẫn UTF-8, trong khi một ký tự tiếng Trung chiếm 3 byte.

Khám phá

Một ký tự được lưu trữ dưới dạng một số

Mỗi ký tự có một mã số — 'A' là 65. Đảo ngược các bit để xem mã này trong nhị phân và thập lục phân, đúng như máy tính lưu giữ nó.

Từ vựng Luyện tập
English Tiếng Việt
code point/kəʊd pɔɪnt/ điểm mã
character set/ˈkærɪktə set/ bộ ký tự
encoding/enˈkəʊdɪŋ/ mã hóa
1.2

Hình ảnh bitmap

Chương trình
Thí sinh cần có thể: Ghi chú và hướng dẫn
Thể hiện sự hiểu biết về cách dữ liệu của hình ảnh điểm ảnh được mã hóa Sử dụng và hiểu các thuật ngữ: pixel, header tệp, độ phân giải hình ảnh, độ phân giải màn hình, độ sâu màu / độ sâu bit
Thực hiện tính toán để ước tính dung lượng tệp cho hình ảnh bitmap
Thể hiện sự hiểu biết về tác động của việc thay đổi các yếu tố của hình ảnh bitmap lên chất lượng hình ảnh và dung lượng tệp Sử dụng các thuật ngữ: độ phân giải hình ảnh, độ sâu màu / độ sâu bit
Thể hiện sự hiểu biết về cách dữ liệu của đồ họa vector được mã hóa Sử dụng các thuật ngữ: đối tượng vẽ, thuộc tính, danh sách vẽ
Giải thích việc sử dụng hình ảnh bitmap hay đồ họa vector cho một nhiệm vụ cụ thể
Thể hiện sự hiểu biết về cách âm thanh được biểu diễn và mã hóa Sử dụng các thuật ngữ: lấy mẫu, tần số lấy mẫu, độ phân giải lấy mẫu, dữ liệu tương tự và dữ liệu kỹ thuật số
Thể hiện sự hiểu biết về tác động của việc thay đổi tần số lấy mẫu và độ phân giải Bao gồm tác động đến dung lượng tệp và độ chính xác

Nguồn: Chương trình Cambridge International

Hình ảnh bitmap (còn gọi là hình ảnh bitmapped) lưu màu sắc của từng pixel trong một lưới. Ở đầu tệp, header tệp ghi lại thông tin metadata của hình ảnh — chiều rộng, chiều cao và độ sâu màu — để phần mềm biết cách đọc dữ liệu pixel theo sau.

  • độ phân giải hình ảnh: kích thước thực tế của bitmap, chiều rộng × chiều cao tính theo pixel (ví dụ: 1920 × 1080).
  • độ phân giải màn hình: chiều rộng × chiều cao mà màn hình hiển thị có thể thể hiện. Nếu độ phân giải hình ảnh lớn hơn màn hình, nó sẽ bị thu nhỏ để vừa vặn; hình ảnh độ phân giải thấp trông bị khối (blocky) khi kéo dãn lên màn hình độ phân giải cao.
  • độ sâu màu (độ sâu bit): số bit mỗi pixel. 1 bit → đen/trắng; 8 bit → 256 màu; 24 bit → 16,7 triệu màu ("màu thật").
Cùng một đĩa được lưu trên ba lưới pixel, từ A đến C, trở nên khối hơn khi các pixel to ra và ít đi
Cùng một hình ảnh được lưu ở ba độ phân giải khác nhau, từ cao (A) xuống thấp (C): càng ít pixel và pixel càng to thì chi tiết càng giảm

Kích thước tệp

$$\text{size in bits} = \text{width} \times \text{height} \times \text{bit depth}.$$

Chia cho 8 để ra byte, chia cho 1024 để ra KiB, v.v. Ví dụ: một ảnh $3000 \times 2000$ ở 24 bpp là $3000 \times 2000 \times 24 = 1.44 \times 10^{8}$ bit $\approx 17.2\ \text{MiB}$.

Lưới 6 x 4 pixel với chiều rộng và chiều cao được ghi nhãn; số pixel = 6 nhân 4 = 24, và ở 8 bit mỗi pixel, kích thước = 24 nhân 8 = 192 bit
Công thức tương tự với các con số nhỏ: đếm số pixel, sau đó nhân với độ sâu màu

Nêu đơn vị bạn đã sử dụng. Chấm điểm chấp nhận $1\ \text{MB} = 10^{6}$ bytes (tiền tố SI) hoặc $1\ \text{MiB} = 1024 \times 1024$ bytes (tiền tố nhị phân), miễn là lời giải của bạn chỉ rõ đơn vị nào; cùng một ảnh sẽ là $18.0\ \text{MB}$ hoặc $17.2\ \text{MiB}$. Cộng thêm kích thước header tệp nếu đề bài cung cấp.

Video là một chuỗi các hình ảnh bitmap, mỗi hình là một khung hình. Trước khi nén, kích thước của video bằng kích thước của một khung hình $\times$ tốc độ khung hình (khung hình mỗi giây) $\times$ thời lượng tính bằng giây: 30 khung hình mỗi giây với $1920 \times 1080$ pixel ở 24 bit là $30 \times 1920 \times 1080 \times 24 \approx 1.5 \times 10^{9}$ bit, khoảng $187\ \text{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 → tệp nhỏ hơn, ít chi tiết (trông bị khối khi phóng to).
  • giảm độ sâu màu → tệp nhỏ hơn, nhưng các sắc thái mượt mà sẽ bị hiện tượng banding.
  • tăng bất kỳ tham số nào → tệp lớn hơn, chất lượng tốt hơn.
Từ vựng Luyện tập
English Tiếng Việt
bitmap/ˈbɪtmæp/ bitmap
pixel/ˈpɪksl/ pixel
file header/faɪl ˈhedə/ file header
bit depth/bɪt depθ/ bitness
frame/freɪm/ khung hình
Xem bài học
1.2

Đồ họa vector

Đồ họa vector lưu lệnh vẽ hình ảnh dưới dạng danh sách vẽ — một danh sách có thứ tự các đối tượng vẽ (các nguyên tố hình học: đường thẳng, đường cong, đa giác, hình tròn). Mỗi đối tượng vẽ có các thuộc tính như màu sắc, màu đổ, độ dày đường kẻ và vị trí ( tọa độ). Để hiển thị, chương trình sẽ vẽ lại (render) danh sách vẽ ở bất kỳ độ phân giải nào cần thiết.

Vẽ một ngôi nhà đơn giản gồm thân hình chữ nhật, mái tam giác, cửa sổ hình tròn, cửa hình chữ nhật và một đường kẻ, mỗi phần được gắn nhãn với loại hình dạng và thuộc tính của nó
Một hình ảnh vector được xây dựng từ các hình dạng hình học có nhãn, mỗi hình có các thuộc tính

Bitmap so với Vector

Nhiệm vụ Lựa chọn tốt hơn Lý do
Ảnh chụp Bitmap Chi tiết mức pixel phức tạp không thể mô tả thành các hình dạng.
Logo, biểu tượng, biển báo Vector Viền sắc nét; co giãn mọi kích cỡ mà không bị mờ.
Bản vẽ kỹ thuật Vector Hình học chính xác và khả năng scaling.
Tranh vẽ, kết cấu Bitmap Chi tiết tông màu mượt mà theo vùng.

Ưu điểm của Vector: nó co giãn mà không mất chất lượng — logo vector giữ độ sắc nét ở mọi kích cỡ, trong khi bitmap bị mờ khi phóng to. Nhược điểm của Vector: nó không thể mô tả chi tiết pixel tùy ý (như ảnh chụp).

Câu trả lời "justification" (bình luận) liên kết lựa chọn với yêu cầu bài toán. "Logo phải xuất hiện trên danh thiếp và bảng quảng cáo, vì vậy nó nên là đồ họa vector: được lưu dưới dạng đối tượng vẽ và được tái tạo sắc nét ở mọi kích thước, trong khi bitmap sẽ hiển thị các pixel khi phóng to." Đối với ảnh chụp, lập luận ngược lại: không có hình dạng nào để mô tả, vì vậy màu sắc của từng pixel phải được lưu trữ.

Cạnh nhau, cả hai đều được phóng to: đường chéo bitmap là bậc thang gợn sóng của các pixel, trong khi đường chéo vector vẫn giữ nguyên là đường thẳng mượt mà
Phóng to, các pixel bitmap trở nên gợn sóng; vector vẫn mượt mà ở mọi kích thước
Khám phá

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.

Từ vựng Luyện tập
English Tiếng Việt
vector graphic/ˈvektə ˈɡræfɪk/ hình ảnh vector
drawing list/ˈdrɔːɪŋ lɪst/ danh sách vẽ
drawing objects/ˈdrɔːɪŋ ˈɒbdʒekts/ đối tượng vẽ
primitive/ˈprɪmɪtɪv/ thông tin cơ bản
properties/ˈprɒpətiz/ thuộc tính
render/ˈrendə/ hiển thị
analogue data/ˈænəlɒɡ ˈdeɪtə/ dữ liệu tương tự
digital data/ˈdɪdʒɪtl ˈdeɪtə/ dữ liệu kỹ thuật số
1.2

Âm thanh

Sóng liên tục của dữ liệu tương tự (âm thanh) được chuyển đổi thành dữ liệu kỹ thuật số thông qua quá trình lấy mẫu:

  • tốc độ lấy mẫu — số mẫu mỗi giây (Hz). Chất lượng CD là $44.1\ \text{kHz}$.
  • độ phân giải lấy mẫu (độ sâu bit) — số bit cho biên độ của mỗi mẫu. Chất lượng CD là 16 bit.
Một sóng âm tương tự mượt mà với các thanh mẫu dọc tại các khoảng thời gian đều đặn, mỗi thanh đọc biên độ của sóng
Lấy mẫu sóng âm: biên độ được đọc tại mỗi khoảng thời gian

Kích thước tệp

$$\text{size in bits} = \text{sampling rate} \times \text{resolution} \times \text{duration} \times \text{channels}.$$

Đoạn ghi âm stereo CD dài 10 giây: $44100 \times 16 \times 10 \times 2 = 14\,112\,000$ bits $\approx 1.68\ \text{MiB}$.

Thay đổi cài đặt

  • tốc độ lấy mẫu cao hơn → thu được tần số cao hơn, dung lượng file lớn hơn.
  • độ phân giải mẫu cao hơn → bước biên độ mịn hơn, ít nhiễu lượng tử hóa hơn, file lớn hơn.
  • thấp hơn ở bất kỳ yếu tố nào → file nhỏ hơn, chất lượng giảm rõ rệt.

(Tốc độ lấy mẫu phải ít nhất gấp đôi tần số cao nhất mà bạn muốn giữ lại.)

Sóng âm bị cắt ngang bởi các đường mẫu cách đều nhau, một điểm mỗi mẫu, được ghi chú là tốc độ lấy mẫu = số mẫu mỗi giây và Nyquist ít nhất gấp đôi tần số cao nhất
Tốc độ lấy mẫu là số mẫu mỗi giây; quy tắc Nyquist là lý do tại sao nó phải ít nhất gấp đôi tần số cao nhất được giữ lại
Khám phá

Lấy mẫu âm thanh

y = a sin(bt + c)

Lấy mẫu đo một sóng âm tại các khoảng thời gian đều đặn — tốc độ cao hơn sẽ sao chép chân thực hơn.

Từ vựng Luyện tập
English Tiếng Việt
sampling/ˈsæmplɪŋ/ lấy mẫu
sampling rate/ˈsæmplɪŋ reɪt/ tần số lấy mẫu
sampling resolution/ˈsæmplɪŋ ˌrezəˈluːʃn/ độ phân giải lấy mẫu
amplitude/ˈæmplɪtjuːd/ biên độ
sample resolution/ˈsæmpl ˌrezəˈluːʃn/ độ phân giải mẫu
quantisation/ˌkwɒntaɪˈzeɪʃn/ lượng tử hóa
bandwidth/ˈbændwɪdθ/ băng thông
lossless/ˈlɒsləs/ không mất dữ liệu
lossy/ˈlɒsi/ mất dữ liệu
run-length encoding/rʌn leŋθ enˈkəʊdɪŋ/ mã hóa theo độ dài chuỗi
dictionary methods/ˈdɪkʃənəri ˈmeθədz/ phương pháp từ điển
1.3

Nén dữ liệu

Chương trình
Thí sinh cần có thể: Ghi chú và hướng dẫn
Thể hiện sự hiểu biết về nhu cầu và ví dụ về việc sử dụng nén
Thể hiện sự hiểu biết về nén mất mát và không mất mát và giải thích việc sử dụng một phương pháp trong một tình huống cụ thể
Thể hiện sự hiểu biết về cách nén tệp văn bản, hình ảnh bitmap, đồ họa vector và tệp âm thanh Bao gồm việc sử dụng mã hóa độ dài chuỗi (RLE)

Nguồn: Chương trình Cambridge International

Nén làm giảm kích thước file, tiết kiệm bộ nhớ và băng thông truyền tải. Hai loại:

  • không mất dữ liệu — dữ liệu gốc được khôi phục chính xác (văn bản, chương trình, ZIP/PNG).
  • mất dữ liệu — một số chi tiết bị bỏ đi để tạo ra file nhỏ hơn nhiều (JPEG, MP3, video).

Khi nào sử dụng loại nào

  • không mất dữ liệu cho tài liệu, mã nguồn, ảnh y tế — bất cứ thứ gì cần dữ liệu chính xác.
  • mất dữ liệu cho phát trực tuyến phương tiện. Phát trực tuyến video theo thời gian thực sử dụng nén mất dữ liệu vì nó phải gửi lượng dữ liệu khổng lồ theo thời gian thực qua băng thông hạn chế; nén không mất dữ liệu sẽ không làm giảm đủ kích thước. Video HD thô có thể lên đến gigabytes mỗi phút, vì vậy nếu không nén, hình ảnh sẽ liên tục bị giật.

Câu trả lời "justification" nêu phương pháp, sau đó là lý do từ tình huống: "Không mất dữ liệu, vì bảng tính phải được khôi phục chính xác; một giá trị thay đổi duy nhất sẽ khiến sổ sách sai." Hoặc: "Mất dữ liệu, vì những bức ảnh được xem trên màn hình điện thoại nơi chi tiết bị loại bỏ không nhìn thấy được, và file nhỏ hơn tải lên nhanh hơn và chiếm ít bộ nhớ hơn."

Các phương pháp không mất dữ liệu

  • mã hóa độ dài chuỗi (RLE): lưu "$n$ giá trị tiếp theo là $x$" thay vì lặp lại $x$. Rất tốt cho các vùng phẳng; vô dụng cho dữ liệu nhiễu.
  • phương pháp từ điển (ZIP, PNG): thay thế các chuỗi byte lặp lại bằng tham chiếu ngắn. Tốt cho văn bản và mã code.
  • mã Huffman: gán mã ngắn cho ký hiệu thường gặp và mã dài cho ký hiệu hiếm, đưa độ dài mã trung bình tiến gần đến nhiễu loạn của dữ liệu.

Cách mỗi loại file được nén:

  • file văn bản: phương pháp từ điển và mã Huffman biến các từ lặp lại và ký hiệu phổ biến thành mã ngắn. Văn bản phải giữ nguyên không mất dữ liệu, vì một ký tự thay đổi sẽ làm thay đổi ý nghĩa.
  • ảnh bitmap: RLE cho chuỗi pixel giống nhau (biểu tượng, sơ đồ, scan đen trắng); JPEG mất dữ liệu cho ảnh chụp, hoặc giảm độ sâu màu hoặc độ phân giải.
  • đồ họa vector: danh sách vẽ đã nhỏ; loại bỏ các đối tượng vẽ không cần thiết, lưu tọa độ với ít chữ số thập phân hơn, hoặc áp dụng phương pháp không mất dữ liệu như ZIP cho file.
  • file âm thanh: MP3 hoặc AAC mất dữ liệu loại bỏ những gì tai người không nghe thấy; tốc độ hoặc độ phân giải lấy mẫu thấp hơn cũng là mất dữ liệu; định dạng không mất dữ liệu giữ lại mọi mẫu nhưng làm giảm kích thước file ít hơn nhiều.
Một hàng gồm 16 ô: 6 ô trắng, 4 ô đen và 6 ô trắng; ba chuỗi được đóng ngoặc và gắn nhãn 6W, 4B, 6W, vậy 16 pixel được lưu dưới dạng 3 chuỗi 6W 4B 6W
Mã hóa độ dài chuỗi trên một hàng: 16 pixel trở thành 3 chuỗi
Một lưới đen-trắng kích thước 8 × 8 hiển thị chữ F, bên cạnh mỗi hàng là mẫu mã nhị phân và mã độ dài chuỗi rút gọn ngắn hơn của nó
Mã hóa độ dài chuỗi của chữ F trong lưới đen trắng $8\times8$
Minh họa mã hóa từ điển: nguồn ABC ABC XYZ, từ điển trong đó 1 đại diện cho ABC và 2 đại diện cho XYZ, và luồng mã hóa 1 1 1 2
Mã hóa từ điển: mỗi chuỗi lặp lại được lưu một lần, và mọi sự xuất hiện trở thành chỉ mục ngắn
Minh họa mã hóa Huffman trên từ BANANA: đếm ký tự A 3, N 2 và B 1, cây mã được xây dựng từ chúng, và các mã thu được A = 0, B = 10, N = 11
Mã Huffman: ký hiệu phổ biến nhất nhận mã ngắn nhất, vậy BANANA cần 10 bit thay vì 12

Các phương pháp mất dữ liệu

  • ảnh (JPEG): bỏ đi chi tiết tinh vi và sự khác biệt màu sắc mà mắt người khó nhận thấy.
  • âm thanh (MP3, AAC): bỏ đi tần số mà ta nghe kém hơn, và âm thanh nhỏ bị che khuất bởi âm thanh lớn hơn.
  • video kết hợp nén không gian (trong mỗi khung hình, giống như JPEG) với nén thời gian (hầu hết các khung hình chỉ lưu sự khác biệt so với khung hình trước).
Cây phân loại nén thành không mất dữ liệu (RLE, từ điển/ZIP/PNG, Huffman) và có mất dữ liệu (hình ảnh JPEG, âm thanh MP3/AAC, video) với các ví dụ dưới mỗi nhánh
Các phương pháp nén: không mất dữ liệu so với có mất dữ liệu, kèm theo các ví dụ phổ biến

Dịch chuyển logic và số học; Kích thước địa chỉ IP

A dịch chuyển logic di chuyển mẫu bit và điền các vị trí trống bằng 0. Trong dịch chuyển cộng hưởng phải của số nguyên bù hai, bit dấu được sao chép vào các vị trí mới bên trái cùng. Đối với 11110100 tám-bit (−12), dịch chuyển cộng hưởng logic hai lần cho 00111101 (61); dịch chuyển cộng hưởng phải hai lần cho 11111101 (−3). Các bit bị loại bỏ sẽ mất; tràn số và làm tròn có thể ngăn việc dịch chuyển hoạt động giống như phép nhân hoặc chia chính xác.

A địa chỉ IPv4 có 32 bit, thường được hiển thị dưới dạng bốn nhóm số thập phân tám-bit. Một địa chỉ IPv6 có 128 bit, thường được hiển thị dưới dạng tám nhóm bốn chữ số thập phân trước khi cho phép rút gọn. Đây là độ dài địa chỉ, không phải số lượng ký tự trong địa chỉ in.

Khám phá

Mã hóa độ dài chuỗi

Quan sát chuỗi ký hiệu lặp lại bị nén thành một con đếm — nén không mất dữ liệu đơn giản.

Từ vựng Luyện tập
English Tiếng Việt
compression/kəmˈpreʃn/ nén
frame rate/freɪm reɪt/ tốc độ khung hình
Huffman coding/ˈhʌfmən ˈkəʊdɪŋ/ mã hóa Huffman
entropy/ˈentrəpi/ entropy
spatial/ˈspeɪʃl/ theo không gian
temporal/ˈtempərəl/ theo thời gian
Xem bài học
1.3

Các định nghĩa mà giám khảo chấp nhận

Câu hỏi định nghĩa được chấm dựa trên văn phong cố định. Hãy học thuộc những định nghĩa này và chỉ đưa ra một đáp án duy nhất.

Thuật ngữ Định nghĩa
bit một chữ số nhị phân đơn lẻ, 0 hoặc 1
byte một nhóm gồm 8 bit
tiền tố nhị phân một thừa số là lũy thừa của 2 (kibi = 1024) thay vì lũy thừa của 10 (kilo = 1000)
bổ sung hai cách biểu diễn số nguyên có dấu trong đó bit quan trọng nhất mang giá trị vị trí âm
tràn kết quả của phép tính quá lớn để được biểu diễn trong số bit có sẵn
Mã hóa thập phân nhị phân mỗi chữ số thập phân được lưu trữ dưới dạng mẫu nhị phân 4-bit riêng biệt của nó
bộ ký tự tập hợp các ký tự mà máy tính có thể biểu diễn, mỗi ký tự đều có mã nhị phân riêng
điểm ảnh phần tử nhỏ nhất của hình ảnh bitmap, lưu trữ một giá trị màu
độ phân giải hình ảnh số lượng điểm ảnh trong một hình ảnh, được biểu thị theo chiều rộng x chiều cao
độ phân giải màn hình số lượng điểm ảnh mà màn hình hiển thị có thể hiển thị, được biểu thị theo chiều rộng x chiều cao
độ sâu màu số bit được sử dụng để lưu trữ màu sắc của một điểm ảnh
tần số lấy mẫu số lượng mẫu âm thanh được lấy mỗi giây
độ phân giải lấy mẫu số bit được sử dụng để lưu trữ biên độ của một mẫu
nén không mất dữ liệu quá trình nén cho phép khôi phục lại dữ liệu gốc một cách chính xác
nén có mất dữ liệu quá trình nén loại bỏ vĩnh viễn một phần dữ liệu, do đó không thể khôi phục lại dữ liệu gốc
mã hóa độ dài chuỗi thay thế một chuỗi các giá trị lặp lại bằng một giá trị và một đếm số
1.3

Mẹo làm bài thi

  • Trình bày bài toán chuyển đổi cơ số: thập phân → nhị phân theo giá trị vị trí, nhị phân → thập lục phân trong nibble (nhóm 4 bit).
  • Đối với complement hai, bit MSB mang dấu âm; để đảo dấu, hãy đảo ngược và cộng 1; chú ý tràn số khi bit dấu chuyển hướng sai.
  • Phân biệt bitmap (point ảnh; dung lượng file $=$ width $\times$ height $\times$ colour depth) và vector (lệnh vẽ; co giãn mà không bị suy giảm chất lượng).
  • Dung lượng file âm thanh phụ thuộc vào tần số lấy mẫu $\times$ độ sâu bit $\times$ thời gian — càng nhiều các yếu tố này thì chất lượng càng tốt nhưng dung lượng file cũng càng lớn.
  • So sánh nén không mất dữ liệu vs có mất dữ liệu và nêu một ứng dụng cho từng loại.

Lỗi thường gặp

  • Giải thích hiện tượng tràn bằng câu "đáp án lớn hơn 255" hoặc "nó có 9 bit". Hãy nêu kích thước từ bit mà đề bài đã cung cấp, sau đó nói rằng kết quả không thể được biểu diễn trong đó.
  • Tạo ra một số âm bằng cách đặt bit đầu tiên là 1 và giữ nguyên phần còn lại (dấu và độ lớn). Bổ sung hai yêu cầu phải đảo ngược mọi bit của giá trị dương, sau đó cộng thêm 1.
  • Quên việc chèn thêm zeros để mở rộng số vừa chuyển đổi cho phù hợp với độ rộng thanh ghi mà đề bài yêu cầu.
  • Trộn lẫn bit và byte trong tính toán dung lượng file. Hãy làm việc bằng bit, chia cho 8 một lần, và nêu rõ bạn đã dùng 1000 hay 1024.
  • Trả lời câu "mô tả" bằng ngôn ngữ đời thường ("bức tranh trở nên tệ hơn"). Sử dụng các thuật ngữ chương trình học: ít màu hơn, xuất hiện dải màu, độ phân giải hình ảnh thấp hơn, điểm ảnh lớn hơn.
Từ vựng Luyện tập
English Tiếng Việt
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

Bài học tương tác về chủ đề này

Làm theo từng bước, kèm theo bài tập kiểm tra ngay lập tức.

Đề thi cũ

Nhiều chủ đề hơn trong Khoa học máy tính A-Level

Đăng nhập hoặc tạo tài khoản

IGCSE, A-Level & AP