Phân Tích Đề Tài Nghiên Cứu: Thiết Kế Giải Thuật Nén Ký Tự Tối Ưu Trên MATLAB Cho Kit HCMUTE


Tóm tắt nghiên cứu

Nghiên cứu "Thiết kế giải thuật nén ký tự tối ưu trên phần mềm MATLAB và sử dụng trên kit" (Mã số đề tài: T2019-48TĐ) do PGS. Nguyễn Thanh Hải chủ nhiệm cùng ThS. Võ Đức Dũng thực hiện tại Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh (HCMUTE), tập trung giải quyết bài toán tối ưu hóa tài nguyên bộ nhớ và tốc độ truyền dữ liệu đồ họa phông chữ trong các hệ thống nhúng công nghiệp.

  • Câu hỏi nghiên cứu chính: Làm thế nào để nén và giải mã dữ liệu hình ảnh ký tự một cách tối ưu, giảm dung lượng lưu trữ trên bộ nhớ hạn chế của vi điều khiển (ARM) mà vẫn bảo toàn độ chính xác và đáp ứng yêu cầu truyền nhận thời gian thực tốc độ cao sang khối xử lý phần cứng (FPGA)?
  • Phương pháp tiếp cận: Đề tài đề xuất giải thuật nén không tổn hao dựa trên kỹ thuật phân tích và chia nhóm điểm ảnh nhị phân (Pixel-based binary grouping). Giải thuật được xây dựng, mô phỏng trên giao diện MATLAB GUI và hiện thực hóa trực tiếp trên phần cứng lai kết hợp giữa Vi điều khiển ARM và card FPGA qua giao thức SPI song công tốc độ cao.
  • Kết quả then chốt: Tỷ số tiết kiệm không gian lưu trữ đạt từ 99,76% đến 99,87% đối với các ký tự chữ cái tiêu chuẩn (ví dụ: ký tự 'E' chỉ tốn 13 bytes thay vì 11.250 bytes ở định dạng nhị phân hoặc 270.000 bytes ở định dạng bitmap). Hệ thống nhúng thực nghiệm đã in thành công 22 bản tin văn bản, mã QR, logo và các bộ đếm biến đổi trên băng tải với vận tốc lên tới 40 m/phút ở độ phân giải 300 DPI.
  • Ý nghĩa thực tiễn: Nghiên cứu đã cung cấp giải pháp toàn diện từ thuật toán phần mềm đến thiết kế phần cứng, sẵn sàng ứng dụng cho các dòng máy in phun kỹ thuật số công nghiệp, thiết bị cầm tay và hệ thống tự động hóa thời gian thực.

Bối cảnh và tầm quan trọng

Thực trạng lưu trữ và hiển thị đồ họa trong hệ thống nhúng

Trong các dây chuyền sản xuất hiện đại, nhu cầu in ấn thông tin trực tiếp lên sản phẩm (như ngày sản xuất, hạn sử dụng, số lô, mã vạch, mã QR, logo thương hiệu) trên nhiều bề mặt vật liệu (giấy, bao bì nhựa, kim loại, thủy tinh) đòi hỏi thiết bị điều khiển phải xử lý dữ liệu ký tự cực kỳ nhanh chóng và chính xác. Các hệ thống nhúng sử dụng vi điều khiển thường gặp rào cản lớn về dung lượng bộ nhớ Flash và RAM nội (thường chỉ dao động từ vài trăm Kilobyte đến 1 - 2 Megabyte).

+-------------------------------------------------------------------+
| THỰC TRẠNG: Bộ nhớ Flash/RAM của vi điều khiển rất hạn chế        |
| - Phông chữ Bitmap (Arial 27 cỡ): ~1 GB  --> KHÔNG THỂ LƯU TRỮ     |
| - Phông chữ Nhị phân thông thường: ~38 MB --> VẪN QUÁ TẢI FLASH   |
+-------------------------------------------------------------------+
                                  |
                                  v
+-------------------------------------------------------------------+
| GIẢI PHÁP ĐỀ XUẤT: Nén ký tự chia nhóm Pixel + Kiến trúc ARM-FPGA  |
| - Ký tự nén dạng tọa độ: 10 - 19 bytes/ký tự (Tiết kiệm >99.7%)    |
| - Giao tiếp SPI song công 30 Mbps + FPGA giải mã song song        |
| - In thời gian thực 40 m/phút @ 300 DPI đồng bộ Encoder           |
+-------------------------------------------------------------------+

Khoảng trống nghiên cứu (Research Gap)

  1. Hạn chế của phông chữ truyền thống: Phông chữ dạng Bitmap tuy giải mã nhanh nhưng chiếm dụng bộ nhớ khổng lồ. Để lưu trữ bộ phông Arial không dấu với 27 kích cỡ khác nhau cho đầu in, hệ thống cần tới xấp xỉ 1 Gigabyte bộ nhớ – điều bất khả thi với vi điều khiển độc lập. Định dạng nhị phân giảm dung lượng xuống khoảng 38,88 MB, nhưng việc phân tách từng bit khi giải mã tạo ra độ trễ tính toán lớn.
  2. Hạn chế của các thuật toán nén kinh điển:
    • Mã hóa Huffman tĩnh: Đòi hỏi 2 lượt quét dữ liệu, phải lưu kèm cây nhị phân hoặc bảng mã làm tăng kích thước tệp và không xử lý tốt dữ liệu phát sinh thời gian thực.
    • Mã hóa LZW: Phụ thuộc vào bảng từ điển động lớn, tiêu tốn tài nguyên RAM và băng thông tra cứu.
    • Mã hóa RLE: Kém hiệu quả đối với các ma trận điểm ảnh phức tạp hoặc phân tán.

Tính cấp thiết và tác động kỳ vọng

Việc nghiên cứu một giải thuật nén ảnh ký tự chuyên biệt dựa trên đặc trưng hình học của phông chữ La-tinh, kết hợp với kiến trúc xử lý phân tán ARM (Master - Quản lý giao diện, biên tập bản tin) và FPGA (Slave - Giải mã, điều khiển đầu in tốc độ cao) có ý nghĩa khoa học và thực tiễn sâu sắc. Giải pháp giúp loại bỏ nhu cầu sử dụng bộ nhớ ngoài dung lượng lớn đắt tiền trên bo mạch vi điều khiển, giảm chi phí sản xuất phần cứng và nâng cao năng suất in công nghiệp.


Methodology và approach

Nghiên cứu áp dụng quy trình phát triển có cấu trúc chặt chẽ từ mô hình hóa toán học, kiểm chứng mô phỏng thuật toán trên MATLAB đến thực nghiệm trên hệ thống phần cứng lai.

                    QUY TRÌNH NGHIÊN CỨU VÀ TRIỂN KHAI
                    
+-------------------+      +--------------------+      +--------------------+
| Phông TrueType    | ---> | Chuyển đổi Bitmap  | ---> | Nhị phân hóa &     |
| (TTF)             |      | & Trích xuất Pixel |      | Phân đoạn ảnh      |
+-------------------+      +--------------------+      +--------------------+
                                                                  |
                                                                  v
+-------------------+      +--------------------+      +--------------------+
| Truyền SPI        | <--- | Mã hóa tọa độ      | <--- | Loại bỏ cột trùng  |
| Khung 20 Byte     |      | [Col, Start, End]  |      | & nhóm điểm ảnh    |
+-------------------+      +--------------------+      +--------------------+
          |
          v
+-------------------+      +--------------------+      +--------------------+
| FPGA nhận vào     | ---> | Tái tạo đồ họa     | ---> | Bắn hạt mực theo   |
| SDRAM IS4216400   |      | & Co giãn cỡ chữ   |      | xung Encoder       |
+-------------------+      +--------------------+      +--------------------+

1. Thiết kế giải thuật nén chia nhóm điểm ảnh nhị phân (Thuật toán 1)

Ảnh ký tự đen trắng được trích xuất từ phông TrueType (TTF) và chuyển đổi thành ma trận nhị phân ($0$ và $1$). Nhận thấy các ký tự La-tinh cấu thành từ các đoạn thẳng liên tục và các khoảng trống, giải thuật tiến hành nén theo các bước:

  • Bước 1: Đặt ảnh ký tự vào hệ tọa độ 2D kích thước chuẩn ($255 \times 250$).
  • Bước 2: Quét từng cột dữ liệu, xác định tọa độ bắt đầu và kết thúc của các pixel mang giá trị $1$ (màu đen).
  • Bước 3: Loại bỏ các cột liền kề có cùng tham số hiển thị, gộp lại thành chuỗi tham số ngắn gọn: [Tổng số cột, Chỉ số cột, Pixel bắt đầu, Pixel kết thúc].

2. Thiết kế giải thuật giải mã và co giãn kích thước (Thuật toán 2)

Quá trình giải mã trên FPGA diễn ra trực tiếp thông qua việc diễn dịch chuỗi mã hóa thành các lệnh vẽ đồ họa:

  • Nếu độ chênh lệch giữa các byte dữ liệu lớn hơn $1$, giải thuật tái tạo một hình chữ nhật đặc qua 4 đỉnh tọa độ tương ứng.
  • Nếu không, giải thuật vẽ đoạn thẳng nối hai điểm cực biên.
  • Co giãn linh hoạt: Hệ thống chỉ lưu một bộ phông duy nhất ở kích cỡ lớn nhất. Khi cần in ở cỡ chữ nhỏ hơn ($\beta$ lần), FPGA chỉ cần thực hiện phép chia tọa độ các điểm mút cho $\beta$ trước khi xuất ra vòi phun, loại bỏ hoàn toàn nhu cầu lưu trữ nhiều bộ font cỡ khác nhau.

3. Kiến trúc phần cứng và giao thức truyền thông

Hệ sinh thái phần cứng thực nghiệm bao gồm:

  • Khối xử lý trung tâm (ARM Cortex): Kết nối màn hình cảm ứng TFT phục vụ giao diện người dùng (HMI), soạn thảo nội dung in, đóng gói dữ liệu nén thành khung 20 byte chuẩn hóa (bao gồm mã lệnh điều khiển M, T, P, R, S, thông số DPI, điện áp in $V_{base}$, $V_{step}$, độ rộng xung $HFIRE$).
  • Khối điều khiển thời gian thực (FPGA): Tích hợp chip SDRAM IS4216400, giao tiếp với ARM qua chuẩn SPI song công tốc độ cao (lên đến 30 Mbps) cùng cổng UART phụ trợ; kết nối mạch driver điều khiển đầu in phun (11 tín hiệu điều khiển, 7 đường dữ liệu).
  • Khối đồng bộ tốc độ: Bộ mã hóa vòng quay (Encoder quang) gắn trực tiếp vào trục băng tải, truyền tín hiệu hồi tiếp về FPGA ($a = 10.378$ xung/m) để tự động điều chỉnh chu kỳ bắn hạt mực tuyến tính theo thời gian thực:

$$\Delta t = \frac{84,67 \times 10^{-6}}{V}$$


Phát hiện chính

Quá trình nghiên cứu và thử nghiệm thực tế đã mang lại 4 phát hiện khoa học và kỹ thuật nổi bật:

+-------------------------------------------------------------------------------+
| SO SÁNH DUNG LƯỢNG LƯU TRỮ VÀ HIỆU SUẤT NÉN KÝ TỰ (Mẫu chuẩn 255x250)        |
+----------+--------------------+-------------------+---------------+-----------+
| Ký tự    | Dung lượng gốc (S) | Dung lượng nén CS | Tỷ lệ nén CR  | Tiết kiệm |
+----------+--------------------+-------------------+---------------+-----------+
| Ký tự I  | 7.969 Bytes        | 19 Bytes          | 419,42 lần    | 99,76%    |
| Ký tự L  | 7.969 Bytes        | 10 Bytes          | 796,90 lần    | 99,87%    |
| Ký tự F  | 7.969 Bytes        | 13 Bytes          | 613,00 lần    | 99,84%    |
| Ký tự E  | 11.250 Bytes (Bin) | 13 Bytes          | 865,38 lần    | 99,88%    |
| Space    | 7.969 Bytes        | 3 Bytes           | 2656,00 lần   | 99,96%    |
| Ký tự @  | 7.969 Bytes        | 2.562 Bytes       | 3,11 lần      | 67,85%    |
+----------+--------------------+-------------------+---------------+-----------+

1. Tỷ lệ nén vượt trội đối với các ký tự có tính quy luật hình học

Đối với hầu hết các chữ cái và chữ số thông dụng, thuật toán nén dựa trên chia nhóm pixel đạt hiệu suất vượt trội, tiết kiệm trên 99,7% không gian lưu trữ:

  • Chữ 'I': Kích thước ban đầu 7.969 bytes được nén xuống chỉ còn 19 bytes (1 byte tổng số cột, 18 bytes chứa tọa độ các mảng pixel).
  • Chữ 'L': Nén thành công xuống còn 10 bytes (1 byte tổng số cột và 9 bytes dữ liệu tọa độ).
  • Chữ 'F': Nén xuống chỉ còn 13 bytes.
  • Ký tự khoảng trắng (Space) đạt tỷ lệ nén kỷ lục lên tới 2656 lần.

2. Sự phụ thuộc của tỷ lệ nén vào độ phức tạp đường nét

Nghiên cứu chỉ ra rằng tỷ số nén tỷ lệ nghịch với số lượng nét uốn lượn và vùng chuyển tiếp màu sắc bất định của ký tự. Ký tự đặc biệt như @ có tỷ lệ nén thấp nhất (3,11 lần) do mật độ các đường cong không đồng trục cao, dẫn tới số lượng cột rời rạc cần mã hóa tăng lên. Tuy nhiên, mức tiết kiệm không gian bộ nhớ tổng thể trên toàn bộ bảng mã ASCII vẫn vượt xa các phương pháp truyền thống.

3. Tối ưu hóa thời gian giải mã và phân phối tải hệ thống

Khác với phương pháp Huffman đòi hỏi duyệt cây nhị phân phức tạp hoặc LZW cần tra cứu mảng từ điển lớn, cấu trúc dữ liệu theo định dạng tọa độ hình chữ nhật giúp FPGA giải mã trực tiếp với độ phức tạp thuật toán $O(N)$ (trong đó $N$ là số đoạn thẳng cấu thành). Nhờ vậy, FPGA giải phóng hoàn toàn bộ đệm tính toán và xuất dữ liệu in ngay lập tức theo từng xung nhịp đồng hồ.

4. Kiểm chứng in thực nghiệm đạt độ chuẩn xác cao ở tốc độ công nghiệp

Hệ thống phần cứng lai ARM-FPGA vận hành ổn định trên dây chuyền in thử nghiệm:

  • In thành công bản tin phức tạp gồm 22 chuỗi ký tự khác nhau và 3 bộ đếm (counter) thời gian thực.
  • Chất lượng in ở độ phân giải 300 DPI, 150 DPI và 75 DPI giữ nguyên độ sắc nét của logo và mã QR.
  • Tần số xung hồi tiếp từ Encoder đạt đỉnh $f_{max} = 9.620\text{ Hz}$ ở vận tốc băng tải $40\text{ m/phút}$, hoàn toàn nằm trong khả năng đáp ứng xung nhịp của FPGA (hoạt động ở tần số $> 50\text{ MHz}$), triệt tiêu hiện tượng chữ bị méo hoặc giãn nét khi băng tải thay đổi tốc độ.

Đóng góp khoa học

1. Đóng góp về mặt lý thuyết

Nghiên cứu đã xây dựng mô hình toán học hoàn chỉnh cho bài toán phân tích điểm ảnh nhị phân trong không gian 2D dành riêng cho phông chữ văn bản. Đề tài đã thiết lập công thức tính toán tương quan giữa độ phân giải hiển thị, kích thước ký tự, tốc độ băng tải và chu kỳ phát xung của đầu in phun công nghiệp.

2. Đổi mới về phương pháp luận

Đề tài đề xuất giải pháp kỹ thuật tích hợp liên tầng: Thiết kế & mô phỏng giải thuật trên MATLAB $\rightarrow$ Đóng gói giao thức truyền dữ liệu Master-Slave (ARM-FPGA) $\rightarrow$ Hiện thực hóa phần cứng giải mã trực tiếp trên FPGA. Phương pháp này loại bỏ nhược điểm nghẽn cổ chai dữ liệu khi truyền ảnh qua mạng nhúng.

3. Giá trị ứng dụng thực tiễn

  • Thương mại hóa thiết bị in công nghiệp: Cung cấp nền tảng công nghệ lõi để chế tạo các dòng máy in date, in mã vạch, mã QR nội địa hóa với giá thành cạnh tranh hơn nhiều so với thiết bị nhập ngoại.
  • Chuyển giao giáo dục & nghiên cứu: Toàn bộ báo cáo, mã nguồn MATLAB, code nhúng ARM và cấu hình phần cứng FPGA đã được bàn giao cho Phòng thí nghiệm Xử lý tín hiệu và hình ảnh (Khoa Điện - Điện tử, HCMUTE), phục vụ đào tạo kỹ sư và học viên cao học ngành Kỹ thuật Điện tử, Tự động hóa và Cơ điện tử.

Đối tượng quan tâm

+------------------------------------------------------------------------------+
|                    NHÓM ĐỐI TƯỢNG VÀ LỢI ÍCH ỨNG DỤNG                        |
+------------------------------------+-----------------------------------------+
| Đối tượng                          | Lợi ích & Giá trị thực tế                |
+------------------------------------+-----------------------------------------+
| Kỹ sư Hệ thống nhúng & FPGA        | - Tham khảo kiến trúc giao tiếp ARM-FPGA|
|                                    | - Ứng dụng giải thuật nén tọa độ điểm   |
+------------------------------------+-----------------------------------------+
| Doanh nghiệp Chế tạo Máy in &      | - Tối ưu hóa chi phí phần cứng MCU      |
| Thiết bị Tự động hóa bao bì        | - Nâng cao tốc độ in đạt 40 m/phút      |
+------------------------------------+-----------------------------------------+
| Nhà nghiên cứu Xử lý ảnh số        | - Nền tảng phát triển nén không tổn hao |
|                                    | - Kỹ thuật nhị phân hóa phông chữ vector|
+------------------------------------+-----------------------------------------+
| Giảng viên, Học viên Cao học       | - Tài liệu tham khảo đồ án chuyên sâu   |
| & Sinh viên ngành Điện tử/IoT      | - Giáo trình thực hành DSP và FPGA      |
+------------------------------------+-----------------------------------------+

Câu hỏi thường gặp (FAQ)

1. Phát hiện quan trọng nhất của nghiên cứu này là gì?

Trả lời: Phát hiện quan trọng nhất là việc chứng minh phương pháp phân nhóm điểm ảnh nhị phân theo tọa độ hình học có thể nén ảnh ký tự lên tới hơn 99,8% dung lượng gốc (chỉ tốn từ 10 - 19 bytes cho mỗi ký tự), vượt trội hơn nhiều so với việc lưu trữ Bitmap hoặc nén Huffman/LZW truyền thống trong các ứng dụng nhúng bộ nhớ nhỏ.

2. Phương pháp nén này có gì đặc biệt so với các giải thuật nén chuẩn như JPEG, PNG hay LZW?

Trả lời: JPEG là nén tổn hao (không phù hợp cho văn bản/mã vạch vì gây nhòe nét), còn PNG hoặc LZW yêu cầu bộ nhớ đệm lớn để duy trì bảng từ điển. Phương pháp của đề tài là nén không tổn hao cấu trúc hình học, biến đổi ma trận điểm ảnh thành các tọa độ đoạn thẳng, giúp FPGA giải mã trực tiếp bằng phần cứng mà không cần cấp phát tài nguyên RAM cho bảng tra.

3. Kết quả của nghiên cứu có thể khái quát hóa (generalize) cho ngôn ngữ có dấu như tiếng Việt không?

Trả lời: Hoàn toàn có thể. Mặc dù báo cáo tập trung thử nghiệm trên bảng mã ASCII La-tinh, thuật toán phân tích pixel hoàn toàn tương thích với các ký tự có dấu thanh của tiếng Việt (như ấ, ở, ệ...) bằng cách bổ sung các nhóm tọa độ cho phần dấu phụ mà không làm thay đổi cấu trúc lõi của giải thuật.

4. Làm thế nào hệ thống đảm bảo chữ in không bị méo khi băng tải thay đổi tốc độ?

Trả lời: Hệ thống sử dụng cảm biến Encoder quang học gắn trên trục băng tải để đếm xung ($10.378\text{ xung/m}$). Xung hồi tiếp được đưa thẳng vào FPGA để tính toán tốc độ tức thời, từ đó điều chỉnh thời gian trễ giữa các lần phát xung đầu in ($\Delta t$) theo hàm tuyến tính đồng biến với vận tốc băng tải, đảm bảo khoảng cách giữa các cột in luôn chuẩn xác ở 300 DPI.

5. Những bước phát triển tiếp theo (Next Steps) của đề tài là gì?

Trả lời: Hướng phát triển tiếp theo bao gồm: mở rộng thư viện phông chữ đa ngôn ngữ (tiếng Việt, tiếng Nhật, tiếng Trung), tối ưu hóa nén cho các hình ảnh đồ họa phức tạp (grayscale/color logo), và nâng cao tốc độ in lên mức công nghiệp nặng ($>100\text{ m/phút}$).


Kết luận

Công trình nghiên cứu khoa học cấp trường trọng điểm T2019-48TĐ của nhóm tác giả tại Đại học Sư phạm Kỹ thuật TP.HCM đã giải quyết xuất sắc bài toán tối ưu hóa tài nguyên trong hệ thống nhúng điều khiển in ấn. Bằng việc kết hợp sáng tạo giữa thuật toán nén ký tự nhị phân trên MATLAB và kiến trúc phần cứng lai ARM-FPGA, đề tài không chỉ đạt được hiệu suất tiết kiệm bộ nhớ ấn tượng trên 99,8% mà còn khẳng định tính khả thi cao qua các bản in thực nghiệm tốc độ cao 40 m/phút tại độ phân giải 300 DPI. Đây là tiền đề công nghệ vững chắc, mở ra tiềm năng ứng dụng và chuyển giao rộng rãi trong lĩnh vực sản xuất thiết bị in ấn công nghiệp tự động hóa tại Việt Nam.