Mã hoá (hay Mã hóa thông tin, Mã hóa dữ liệu, tiếng Anh . Coding, Information Coding, Data Codding) là việc sử dụng một tập hữu hạn các dấu hiệu để biểu diễn thông tin.
Thông tin là phi vật chất. Để có thể thu thập, lưu trữ, xử lý và truyền hay phân phối thông tin, thông tin phải được vật chất hóa. Vật chất hóa chuyển thông tin thành một dạng vật chứa chứa hay thể hiện thông tin. Nguồn tin thường được ký hiệu bằng một chữ cái viết hoa, ví dụ S, và nó là tập các tin (ký hiệu bằng một chữ cái viết thường) mà nguồn có thể có {s1, s2,.., sn}.
Khi mã hóa, mỗi tin của nguồn sẽ được biểu diễn một chuỗi (tổ hợp) các ký hiệu mã từ một tập hữu hạn các ký hiệu mã X = {x1, x2,…, xm}. Số ký hiệu mã trong tập các ký hiệu mã, m, được gọi là cơ số mã. Chuỗi các ký hiệu mã biểu diễn một tin si của nguồn sẽ được gọi là từ mã ứng với tin si, C (si).
Để mã hóa, cần phải: (1) xác định tập ký hiệu mã X; (2) xác định luật liên kết các ký hiệu này thành tổ hợp mã (gọi là luật tạo từ mã) và (3) xác định luật gán mỗi tin vào một tổ hợp mã để tạo thành từ mã (luật mã hóa).
Số tổ hợp có thể tạo ra được từ một luật tạo từ mã được gọi là số tổ hợp có thể của mã, thường ký hiệu là M.
Để đảm bảo giải mã chính xác, 1 tổ hợp có thể chỉ được dùng biểu diễn cho duy nhất 1 tin. Mã này được gọi là mã duy nhất và các hệ thống truyền thông kỹ thuật chỉ sử dụng mã này.
Số ký hiệu mã trong có mỗi tổ hợp mã dùng mã hóa được gọi là độ dài từ mã, thường ký hiệu là l. Giá trị trung bình của độ dài các từ mã tính cho một nguồn tin gọi là độ dài trung bình của từ mã.
Nếu mã có các từ mã đều có cùng một độ dài l thì mã được gọi là mã đều hay mã có độ dài cố định. Nếu mã mà các từ mã có độ dài khác nhau sẽ được gọi là mã không đều hay mã có độ dài thay đổi
Với mã duy nhất, số từ mã để mã hóa các tin của một nguồn đúng bằng số tin trong tập tin của nguồn, N. Số tổ hợp có thể M của mã ít nhất bằng số tin N của nguồn (M>=N). Khi M=N thì mã được gọi là mã đầy.
Nếu M>N thì mã được gọi là mã không đầy, Các tổ hợp có thể không dùng để mã gọi là tổ hợp cấm hay tổ hợp thừa.
Luật mã hóa thường được biểu diễn ở dạng một bảng đối chiếu giữa tin và từ mã tương ứng với tin được gọi là bảng mã hay bảng đối chiếu mã. Các từ điển ngôn ngữ hoặc chuyên môn là các dạng bảng mã...
Quá trình mã hóa là quá trình bộ mã hóa nhận một tin của nguồn và chuyển nó thành 1 từ mã tương ứng. Kết quả của mã hóa sẽ chuyển bản tin (chuỗi tin tạo ra từ nguồn) thành chuỗi từ mã hay chuỗi các ký hiệu mã. Chuỗi ký hiệu mã kết quả được gọi là bản mã.
Mã hóa theo từ là sử dụng một tổ hợp có thể để biểu diễn một từ thông tin. Quá trình mã hóa theo từ thì bộ mã hóa sẽ nhận mỗi từ thông tin và chuyển nó thành từ mã.
Quá trình giải mã bao gồm hai quá trình con: (1) quá trình phân tách mã: tách chuỗi mã nhận được thành chuỗi các từ mã, và (2) quá trình giải mã: chuyển mỗi từ mã thành một tin của nguồn.
Quá trình giải mã sẽ không gây sai nếu (1) mã là mã duy nhất, và (2) mã là mã phân tách được. Mã phân tách được là mã mà từ chuỗi ký hiệu mã nhận được chỉ tồn tại duy nhất một cách tách nó thành chuỗi từ mã..
Một lớp mã thỏa mãn tính phân tách được và cho phép tách từ mã nhanh nhất là mã có tính prefix.
Mã có tính prefix (còn gọi là mã có tính phần đầu) là mã mà trong bộ mã không tồn tại một từ mã là prefix (phần đầu) của từ mã.
Prefix (phần đầu) của từ mã được định nghĩa là chuỗi ký hiệu mã của từ mã tính từ ký hiệu đầu (hay ký hiệu già nhất) của nó
Ví dụ, từ mã 1011101 sẽ có các prefix 1, 10, 101, 1011, 10111, 101110, 1011101.
Chú ý theo định nghĩa prefix của từ mã thì bản thân từ mã là prefix của nó nên mã có tính prefix không tồn tại 2 từ mã giống nhau.
Các hệ thống truyền tin trong kỹ thuật luôn dùng mã có tính prefix.
Tuy nhiên mã có tính prefix khá nhạy cảm với nhiễu làm thay đổi giá trị của ký hiệu mã và làm phân tách sai các mã.
Để tránh nhạy cảm với nhiễu khi phân tách mã, mã có tính prefix như định nghĩa chỉ được dùng cho đường truyền không nhiễu hay cự ly rất ngắn. Truyền ở cự ly có phát sinh nhiễu thì cần phải có những hiệu chỉnh cho mã có tính prefix. Hai biến dạng được dùng trong các hệ thống truyền thông là mã đều và mã có dấu phân tách.
Mã đều là mã mà mọi từ mã có cùng độ dài.
Mã có dấu phân tách là thêm vào sau mỗi từ mã (có thể không thỏa mãn tính phân tách) một dấu đặc biệt được gọi là dấu phân tách. Ví dụ của dấu phân tách là dấu bỏ trống trong các văn bản của mọi ngôn ngữ.
Mã hệ thống có tính prefix là mã được xây dựng từ một bộ mã gốc có tính prefix. Một từ mã của bộ mã gốc được chọn làm tổ hợp cuối (dấu phân tách) cho mọi từ mã của mã hệ thống. Các từ mã của mã hệ thống là một chuỗi của các từ mã gốc.
Nhiều giao thức truyền thông như HDLC, IP có các khung tin là từ mã sử dụng bộ mã gốc là mã đều dài 1 Byte. Byte 7E (01111110) được dùng làm tổ hợp cuối. Việc giải mã cho mã hệ thống sẽ là tách từ mã của bộ mã gốc. Tìm từ mã gốc là dấu phân tách hay tổ hợp cuối của từ mã hệ thống và xác định các từ mã hệ thống
Mã hoá thông tin và mã hoá dữ liệu[sửa]
Cần phân biệt mã hóa thông tin và mã hóa dữ liệu
- Mã hóa thông tin là mã hóa chuyển thông tin vào dạng vật chất chứa nó và tạo ra dữ liệu. Mã hóa thông tin chính là biểu diễn hay thể hiện thông tin ở dạng vật chất Ví dụ, quá trình viết của con người chuyển thông tin người có vào văn bản. Mã hóa thông tin là vật chất hóa thông tin để có thể truyền thông tin phi vật chất trong hệ thống truyền thông vật lý. Dư liệu có thể phù hợp hay không phù hợp môi trường truyền.
- Mã hóa dữ liệu chuyển dữ liệu từ dạng vật chất chứa thông tin không phù hợp với môi trường truyền sang dạng vật chất chứa thông tin phù hợp với môi trường lan truyền. Ví dụ mã hóa các chữ cái trong văn bản thành mã nhị phân để truyền trên các đường truyền số. Mã hóa dữ liệu cho phép giải quyết các yêu cầu của hệ thống truyền
Quá trình nói, viết, vẽ để con người trao đổi thông tin với nhau đã xuất hiện từ khi con người biết sử dụng ngôn ngữ để trao đổi thông tin với nhau.
Lý thuyết mã hóa nghiên cứu các đặc tính của mã và sự phù hợp của mã cho những ứng dụng khác nhau bắt đầu được Shannon khởi xướng từ bài báo của ông vào năm 1948 [1] đề cập đến mã nào là tốt nhất cho truyền tin. Sau đó mã Golay sửa sai 3 bit ra đời 1949. Năm 1968, Hamming đã phát triển các hệ thống mã hóa tự động, đề xuất quãng cách |hamming, mã Hamming. Năm 1972, Ahmed đề xuất phép biến đổi cosine rời rạc được ứng dụng trong rất nhiều thuật toán nén dữ liệu.
Hiện nay, ngoài chức năng biểu diễn thông tin, trong một hệ thống truyền thông có thể có đến 4 lớp mã:
- Mã hóa nguồn (hay thuật toán nén dữ liệu) tối thiểu hóa số ký hiệu mã để mã hóa bản tin. Mã nguồn tối thiểu hóa chi phí truyền bản tin sử dụng mã. Các ký hiệu mã của mã nguồn có xác suất xuất hiện xấp xỉ nhau nên làm cho việc thám mã khó khăn hơn.
- Mã hóa chống nhiễu (hay mã hóa kênh) phát hiện sai và có thể sửa các ký hiệu mã bị sai khi truyền. Mã chống nhiễu cho phép truyền tin tin cậy trên kênh có nhiễu
- Mã đường truyền (line code) cho phép truyền mã trên những đường truyền có những khiếm khuyết ảnh hưởng đến việc truyền mã.
- Mật mã che giấu nội dung của bản tin và ngăn chặn truy cập trái phép đến thông tin.
Cùng với điều chế, mã hóa có ứng dụng bắt buộc trong truyền thông để vật chất hóa thông tin để có thể thực hiện được việc thu thập, lưu trữ, xử lý và phân phối thông tin đến người nhận. Mã hóa giúp mọi hệ thống truyền thông đạt được hiệu quả và độ chính xác
Tài liệu tham khảo[sửa]
- Thomas M. Cover, Joy A. Thomas. Elements of Information Theory. Jone Wiley and Sons Inc, 1991, ISBN 0-471-20061-1
- Norman Abramson. Information Theory and Coding. McGRAW-HiLL ELECTRONIC SCIENCES SERIES, 1963
- C. E. Shannon. A Mathematical Theory of Communication. The Bell System Technical Journal, Vol. XXVII, No 3, July 1948