Nghiên cứu Phương Pháp Nén Dữ Liệu Để Tăng Hiệu Quả Lưu Trữ Chuỗi DNA

Tìm hiểu phương pháp nén dữ liệu chuỗi DNA để tối ưu hiệu quả lưu trữ. Nghiên cứu các thuật toán nén tiên tiến, giảm dung lượng, tăng tốc truy xuất dữ liệu gen.

Chuyên ngành

Hệ Thống Thông Tin

Người đăng

Ẩn danh

Thể loại

Luận văn thạc sĩ

2016

80
3
0

Phí lưu trữ

30 Point

Tóm tắt

I. Giới Thiệu Nén Dữ Liệu DNA Tiềm Năng Lưu Trữ Vượt Trội

Trong kỷ nguyên big data sinh học, việc quản lý và lưu trữ hiệu quả dữ liệu chuỗi DNA trở nên vô cùng cấp thiết. Dữ liệu bộ gen khổng lồ từ các nghiên cứu giải mã bộ gen, y học cá nhân hóa và sinh tin học đòi hỏi các giải pháp lưu trữ dung lượng lớn, chi phí thấp và tốc độ truy cập nhanh chóng. Nén dữ liệu DNA nổi lên như một giải pháp đầy hứa hẹn, giúp giảm thiểu chi phí lưu trữ DNA và tăng tốc độ truyền tải dữ liệu. Bài viết này sẽ đi sâu vào các phương pháp nén dữ liệu DNA tiên tiến, đánh giá hiệu quả nén DNA và khám phá các ứng dụng lưu trữ DNA tiềm năng.

1.1. Tổng Quan Về Lưu Trữ DNA và Yêu Cầu Dung Lượng

Lưu trữ DNA không chỉ là vấn đề về dung lượng mà còn liên quan đến độ bền lưu trữ DNA và khả năng phục hồi dữ liệu DNA. Bộ gen người chứa khoảng 3 tỷ cặp base, tương đương hàng gigabyte dữ liệu. Các nghiên cứu giải mã bộ gen hàng loạt tạo ra lượng dữ liệu khổng lồ, cần được lưu trữ lâu dài để phục vụ nghiên cứu và ứng dụng trong tương lai. Theo tài liệu gốc, "Bộ gen của con người gồm khoảng 3 tỉ đặc trưng trên 23 cặp nhiễm sắc thể (NST). Cơ sở dữ liệu hệ gen là vô cùng lớn và phức tạp. Để lưu trữ, truy cập và xử lý dữ liệu này một cách hiệu quả là một nhiệm vụ rất khó khăn."

1.2. Tại Sao Nén Dữ Liệu DNA Quan Trọng Trong Sinh Tin Học

Nén dữ liệu DNA là yếu tố then chốt để xử lý và phân tích hiệu quả big data sinh học. Việc phân tích dữ liệu DNA yêu cầu tài nguyên tính toán lớn, và việc giảm kích thước dữ liệu giúp giảm tải cho hệ thống, tăng tốc độ phân tích và giảm chi phí. Ngoài ra, bảo mật dữ liệu DNA cũng là một vấn đề quan trọng, và các thuật toán nén có thể được tích hợp với các phương pháp mã hóa DNA để tăng cường an ninh. Các nhà nghiên cứu liên tục tìm kiếm các thuật toán nén DNA mới để tối ưu hiệu suất và giảm chi phí lưu trữ.

II. Vấn Đề Lưu Trữ DNA Dung Lượng và Chi Phí Nén Khổng Lồ

Mặc dù có nhiều tiềm năng, việc lưu trữ dữ liệu chuỗi DNA đối mặt với những thách thức lớn. Dung lượng lưu trữ DNA cần thiết để chứa bộ gen ngày càng tăng, vượt quá khả năng đáp ứng của các phương pháp lưu trữ truyền thống. Chi phí lưu trữ DNA cũng là một rào cản lớn, đặc biệt đối với các nghiên cứu quy mô lớn và các ứng dụng thương mại. Các phương pháp nén dữ liệu hiện tại chưa đáp ứng được yêu cầu về hiệu quả nén DNA, đặc biệt là khi xử lý các chuỗi DNA phức tạp và đa dạng.

2.1. Hạn Chế Của Phương Pháp Lưu Trữ Dữ Liệu Truyền Thống

Các phương pháp lưu trữ dữ liệu truyền thống như ổ cứng và đám mây gặp khó khăn trong việc đáp ứng nhu cầu lưu trữ big data sinh học. Dung lượng lưu trữ có giới hạn, tốc độ truy cập chậm và chi phí cao là những hạn chế chính. Hơn nữa, các phương pháp này không được thiết kế đặc biệt để xử lý dữ liệu chuỗi DNA, dẫn đến hiệu suất kém và khó khăn trong việc quản lý dữ liệu. Do đó, cần có những giải pháp lưu trữ sinh học chuyên dụng để giải quyết vấn đề này.

2.2. Tại Sao Cần Nâng Cao Hiệu Quả Nén Chuỗi DNA

Việc nâng cao hiệu quả nén DNA là yếu tố then chốt để giảm chi phí lưu trữ DNA và tăng tốc độ truyền tải dữ liệu. Các thuật toán nén dữ liệu DNA hiện tại chưa khai thác hết tiềm năng của cấu trúc và đặc tính của chuỗi DNA, dẫn đến hiệu quả nén chưa cao. Cần có những nghiên cứu và phát triển các thuật toán nén DNA mới, tận dụng các kỹ thuật tiên tiến như mã hóa DNAgiải nén dữ liệu DNA để đạt được hiệu quả nén tối ưu.

III. Thuật Toán Nén Tham Chiếu JDNA Giải Pháp Lưu Trữ Tối Ưu

Trong số các phương pháp nén dữ liệu DNA khác nhau, thuật toán nén tham chiếu JDNA nổi bật như một giải pháp lưu trữ hiệu quả. Thuật toán này tận dụng sự tương đồng giữa các chuỗi DNA khác nhau để giảm thiểu kích thước dữ liệu. JDNA sử dụng một chuỗi tham chiếu làm cơ sở để mã hóa các chuỗi DNA khác, chỉ lưu trữ sự khác biệt so với chuỗi tham chiếu. Điều này giúp đạt được hiệu quả nén DNA rất cao, đặc biệt là khi xử lý các chuỗi DNA có nguồn gốc gần nhau.

3.1. Cơ Chế Hoạt Động Của Thuật Toán Nén Tham Chiếu JDNA

Thuật toán nén tham chiếu JDNA hoạt động bằng cách so sánh chuỗi DNA cần nén với một chuỗi tham chiếu. Các đoạn giống nhau được thay thế bằng tham chiếu đến chuỗi tham chiếu, trong khi các đoạn khác nhau được mã hóa riêng. Việc lựa chọn chuỗi tham chiếu phù hợp là rất quan trọng để đạt được hiệu quả nén DNA cao. Theo tài liệu gốc, "Tương tự như thuật toán nén dựa trên bộ từ điển nhưng do các chuỗi mã hóa tham chiếu tới tập hợp chuỗi tham chiếu bên ngoài nên tốc độ nén cao hơn và giải mã cũng thuận lợi hơn."

3.2. Ưu Điểm Vượt Trội Của JDNA So Với Các Thuật Toán Khác

So với các thuật toán nén dữ liệu truyền thống và các thuật toán nén dữ liệu DNA khác, JDNA có nhiều ưu điểm vượt trội. Hiệu quả nén DNA cao, tốc độ nén và giải nén nhanh chóng, và khả năng xử lý các chuỗi DNA phức tạp là những ưu điểm chính. Ngoài ra, JDNA còn được tối ưu hóa để giảm chi phí lưu trữ DNA và tăng độ bền lưu trữ DNA. Thực nghiệm cho thấy rằng JDNA vượt trội hơn so với Huffman và Lempel-Ziv.

IV. Ứng Dụng Thực Tế Lưu Trữ DNA Trong Y Học và Khoa Học

Ứng dụng lưu trữ DNA ngày càng trở nên phổ biến trong nhiều lĩnh vực, từ y học đến khoa học pháp y. Trong y học, lưu trữ DNA được sử dụng để lưu trữ thông tin bộ gen của bệnh nhân, phục vụ cho chẩn đoán bệnh, điều trị cá nhân hóa và nghiên cứu di truyền. Trong khoa học pháp y, lưu trữ DNA được sử dụng để xác định danh tính tội phạm và nạn nhân. Ngoài ra, lưu trữ DNA còn được sử dụng để bảo tồn đa dạng sinh học và lưu trữ dữ liệu lịch sử.

4.1. Lưu Trữ DNA Tiềm Năng Trong Chẩn Đoán và Điều Trị Bệnh

Lưu trữ DNA có tiềm năng cách mạng hóa ngành y học bằng cách cung cấp thông tin di truyền toàn diện cho việc chẩn đoán và điều trị bệnh. Thông tin bộ gen có thể được sử dụng để xác định nguy cơ mắc bệnh, lựa chọn phương pháp điều trị phù hợp và theo dõi hiệu quả điều trị. Theo tài liệu gốc, "Nhiều thuật toán nén dành riêng cho chuỗi DNA đã được phát triển từ khoảng 10 năm trước. Sự thật là nén chuỗi DNA là một việc khó đối với các thuật toán nén cơ bản, nhưng từ quan điểm của lý thuyết nén thì nó là một đề tài 7 thú vị cho việc tìm hiểu thuộc tính của nhiều thuật toán nén."

4.2. Bảo Tồn Đa Dạng Sinh Học Vai Trò Của Lưu Trữ DNA

Lưu trữ DNA đóng vai trò quan trọng trong việc bảo tồn đa dạng sinh học. Bằng cách lưu trữ DNA của các loài động thực vật quý hiếm, chúng ta có thể bảo vệ nguồn gen của chúng và phục hồi chúng trong tương lai. Điều này đặc biệt quan trọng trong bối cảnh biến đổi khí hậu và suy giảm đa dạng sinh học đang diễn ra trên toàn cầu. Ngoài ra, lưu trữ DNA còn có thể được sử dụng để nghiên cứu lịch sử tiến hóa của các loài.

V. Tương Lai Của Nén Dữ Liệu DNA Hướng Nghiên Cứu và Phát Triển

Nghiên cứu về nén dữ liệu DNA vẫn còn nhiều tiềm năng phát triển. Các hướng nghiên cứu chính bao gồm phát triển các thuật toán nén DNA mới với hiệu quả nén DNA cao hơn, giảm chi phí lưu trữ DNA và tăng độ bền lưu trữ DNA. Ngoài ra, cần có những nghiên cứu về bảo mật dữ liệu DNAphục hồi dữ liệu DNA để đảm bảo an toàn và tin cậy cho các hệ thống lưu trữ DNA.

5.1. Nghiên Cứu Phát Triển Thuật Toán Nén DNA Thế Hệ Mới

Nghiên cứu và phát triển các thuật toán nén dữ liệu DNA thế hệ mới là yếu tố then chốt để khai thác hết tiềm năng của lưu trữ DNA. Các thuật toán này cần tận dụng các kỹ thuật tiên tiến như trí tuệ nhân tạo, học máy và công nghệ DNA để đạt được hiệu quả nén DNA tối ưu. Các thuật toán nén có thể được kết hợp với các phương pháp mã hóa DNA để tăng cường an ninh và bảo mật dữ liệu.

5.2. Đảm Bảo An Toàn và Bảo Mật Dữ Liệu Chuỗi DNA

Bảo mật dữ liệu DNA là một vấn đề quan trọng cần được quan tâm. Các hệ thống lưu trữ DNA cần được bảo vệ khỏi các cuộc tấn công mạng và các hành vi truy cập trái phép. Các biện pháp bảo mật bao gồm mã hóa DNA, kiểm soát truy cập và giám sát hoạt động của hệ thống. Ngoài ra, cần có các biện pháp phục hồi dữ liệu DNA để đảm bảo dữ liệu không bị mất mát trong trường hợp xảy ra sự cố.

VI. Kết Luận Nén DNA Bước Tiến Trong Lưu Trữ Dữ Liệu Sinh Học

Nén dữ liệu DNA là một giải pháp đầy hứa hẹn để giải quyết các thách thức trong việc lưu trữ big data sinh học. Các thuật toán nén DNA, đặc biệt là thuật toán nén tham chiếu JDNA, có khả năng giảm thiểu chi phí lưu trữ DNA và tăng tốc độ truyền tải dữ liệu. Với những tiềm năng to lớn, lưu trữ DNA hứa hẹn sẽ đóng vai trò quan trọng trong sự phát triển của y học, khoa học và nhiều lĩnh vực khác.

6.1. Tổng Kết Về Hiệu Quả Của Phương Pháp Nén Chuỗi DNA

Việc sử dụng các phương pháp nén dữ liệu, đặc biệt là nén dữ liệu DNA, mang lại hiệu quả rõ rệt trong việc quản lý và lưu trữ dữ liệu sinh học. Hiệu quả nén DNA cao giúp giảm chi phí và tăng tốc độ truy cập dữ liệu. Tuy nhiên, cần có những nghiên cứu và phát triển tiếp theo để tối ưu hóa các thuật toán nén và đảm bảo an toàn và bảo mật dữ liệu.

6.2. Hướng Đi Mới Trong Nghiên Cứu và Ứng Dụng Lưu Trữ DNA

Tương lai của lưu trữ DNA hứa hẹn nhiều điều thú vị. Các hướng nghiên cứu và phát triển mới bao gồm sử dụng trí tuệ nhân tạo để tối ưu hóa các thuật toán nén DNA, phát triển các phương pháp mã hóa DNA tiên tiến và khám phá các ứng dụng mới của lưu trữ DNA trong các lĩnh vực khác nhau. Với những tiến bộ này, lưu trữ DNA sẽ tiếp tục đóng vai trò quan trọng trong sự phát triển của khoa học và công nghệ.

18/05/2025
Nghiên cứu phương pháp nén dữ liệu để tăng hiệu quả lưu trữ chuỗi dna

Trích đoạn nội dung tài liệu

CHƯƠNG 1 – TỔNG QUAN VỀ THUẬT TOÁN NÉN DỮ LIỆU 1. Thuật toán mã hóa bit (Naïve Bit) Thuật toán mã hóa bit sử dụng các bit trạng thái để biểu diễn dữ liệu nén. 4 bazơ đặc trưng của DNA được mã hóa bởi 2 bit (4 trạng thái). Kỹ thuật nén thẳng dữ liệu chuỗi DNA là mã hóa 4 bazơ trong một byte theo mã hóa bit.1 [2] cho thấy một ví dụ về nén mã hóa bit Hình 1.

Ví dụ mã hóa bit Mỗi kí tự ở đầu vào được thay thế bởi 2 bit sử dụng phép thay thế {A = 00, C = 01, G = 10, T = 11}. Những cấu trúc hiện tại cung cấp các phép toán bit tốt hơn, về cơ bản cho phép một mã hóa của dữ liệu chuỗi DNA với 2 bit. Mã hóa này ảnh hưởng tới khả năng đọc dữ liệu đáng kể vì cần một bảng tìm kiếm để dịch dữ liệu nén. Do biểu diễn 4 bazơ vừa đủ chính xác trong 8 bit nên nếu xảy ra thêm giá trị biên thì sẽ phá hỏng cấu trúc này.

Mã hóa sẽ trở nên phức tạp nếu thêm một hoặc nhiều phần bù ví dụ như N vào chuỗi. Một phương pháp dùng để mã hóa 5 kí tự A, C, G, T, N là đặt 3 bazơ liên tiếp vào 1 byte. 7 bit có thể mã hóa 128 trạng thái và vì 53 < 128. Tuy nhiên, việc tăng kích thước các kí tự (nhiều kí tự được thêm vào chuỗi) sẽ khiến cho việc biểu diễn kí tự trở nên khó khăn hơn.

Tỉ lệ nén của thuật toán mã hóa bit là 4:1 nếu kích thước của chuỗi kí tự đầu vào là 4 hoặc ít hơn 4:1 nếu nhiều hơn 4 kí tự [2]. Có nhiều thuật toán được xây dựng dựa trên phương thức mã hóa bit như thuật toán mã hóa trực tiếp phần khác biệt (thuật toán 2D), thuật toán này có thể xử lý các chuỗi đầu vào ở bất kỳ định dạng nào. Với 5 kí tự thông thường của 11 DNA (A, C, G, T, N), một mã hóa 7bit cho 3 kí tự liên tiếp được sử dụng. Theo cách này thì có tới 128 kí tự bổ sung sẽ được mã hóa.

Tiếp theo là Genbit compress (GBC), một công cụ nén chuỗi viết bằng ngôn ngữ java, sử dụng mã hóa độ dài (run-length encoding) thực hiện trên 2 bit (naïve 2bit) [3]. [4] cũng đưa ra một phương thức nén các nhiễm sắc thể tương đồng, mã hóa 3 bazơ sử dụng 1 byte. Tuy nhiên, trong thuật toán này kết hợp những xử lý phức tạp cho phần lặp N, sau đó nén mã hóa đạt được bằng LZ77. Một phương thức khác thuộc lớp thuật toán này được xây dựng trên cơ sở dữ liệu Oracle [5].

Và [6] kết hợp một thuật toán bổ sung cho việc tìm kiếm nhiều đoạn trong dữ liệu nén. Sau cùng là một thuật toán tập trung vào việc phân tích cách thức lưu trữ các phần lặp với những mã hóa có kích thước biến đổi, thuật toán DNABit [7]. Do tính đặc trưng của thuật toán mã hóa bit được thể hiện khá rõ nét trong 2 thuật toán mã hóa trực tiếp phần khác biệt (2D) và DNABit nên sau đây người viết luận văn sẽ trình bày chi tiết hai thuật toán này. Mã hóa trực tiếp phần khác biệt (thuật toán 2D) Với sự phát triển ngày càng mạnh về các tập dữ liệu gen khổng lồ, nhiều phương pháp nén đã và đang được phát triển để đáp ứng khối lượng lớn gen gồm nhiều chuỗi và phần bù lớn hơn (như đầu chuỗi).

Các giao thức nén phát triển riêng cho dữ liệu chuỗi thì thường có tỉ lệ nén tốt nhưng hiệu suất thấp trên tập dữ liệu lớn mà gồm nhiều dữ liệu phụ trợ (phần bù). Để so sánh thì những ứng dụng nén thông thường có thể dễ dàng nén các tệp dữ liệu lớn không đồng nhất nhưng lại bị hạn chế đối với dải dữ liệu kí tự trong dữ liệu chuỗi. Bởi vậy, thuật toán 2D được thiết kế để cung cấp một giao thức nén chuỗi nucleotit thông thường. Giao thức này có thể phân biệt dữ liệu chuỗi và dữ liệu phần bù, từ đó đưa ra sự điều chỉnh phù hợp giữa nén dữ liệu chung chung và cụ thể.

Thuật toán 2D có những mục tiêu như sau [43]:  Thời gian thực hiện tuyến tính cho việc hỗ trợ các tập dữ liệu lớn: cả hai quá trình nén và giải nén đều phải hỗ trợ thực hiện đối với độ phức tạp thời gian thực hiện O(n).  Hỗ trợ bao gồm cả những kí tự phụ mà không phải thành phần của tập bazơ nucleotit mong đợi: các kí tự bổ sung có thể được sử dụng để biểu diễn thông tin tự do, dữ liệu chú thích hoặc các chuỗi con đặc biệt như miền chức năng hoặc các chuỗi lặp đặc biệt.  Mã hóa trực tiếp pha đơn: Pha nén yêu cầu chỉ một chiều đơn mà không có pha loại bỏ những thông tin dư thừa và không lưu trữ dữ liệu vào các tệp 12 cấu trúc phụ hoặc trung gian tạm thời. Tương tự, việc không lưu trữ dữ liệu phụ phải cho phép khôi phục một chiều đơn đối với pha giải nén.

 Nén không mất dữ liệu: Chuỗi gốc phải được khôi phục hoàn toàn sau quá trình giải nén. Việc này có thể được thực hiện chỉ dựa trên chuỗi thẳng mà không quan tâm tới định dạng hay bị ngắt dòng, hoặc dựa trên bố cục từng dòng của dữ liệu chuỗi gốc.  Không phân biệt loại chuỗi: Nén và giải nén không ưu tiên hay phân biệt chuỗi là DNA hay mRNA.  Giải nén chuỗi polipeptit (mỗi peptit gồm 10 tới 100 amino axit): Có thể lựa chọn khôi phục chuỗi nén nucleotit trực tiếp tới một chuỗi polipeptit dựa trên khung đọc xác định.

 Sử dụng được cùng với phương pháp nén khác: Một chuỗi mã hóa 2D có thể nén được bằng những ứng dụng nén khác để đưa ra khả năng nén chuỗi gốc trong tương lai. (a) Mô hình Để cho thời gian thực hiện tuyến tính, 2D sử dụng một mô hình tĩnh cho việc mã hóa dữ liệu chuỗi cùng với bất kỳ thông tin nào mà có thể được bao gồm trong đầu vào. 2D cho rằng DNA gồm {A, C, G, T} và mRNA gồm {A, C, G, U}. Đồng nhất hai tập trên, tập kí tự cho mô hình 2D gồm {A, C, G, T, U}.

Việc này giúp khai báo rõ ràng loại chuỗi. Trong trường hợp kí tự không phải nucleotit, 2D hỗ trợ tập giá trị ASCII truyền thống gồm 0 tới 127. Để hoàn thành nén, 2D cần biểu diễn nhiều bazơ sử dụng một byte đơn như khung 2-bit-mỗi-bazơ. 2D sử dụng mã hóa trực tiếp trên một bộ ba (3 bazơ nucleotit liên tiếp) vì những lý do sau.

Đầu tiên, việc này cho phép 3 bazơ nucleotit hợp lại trong một byte đơn mà không phải là nhiều byte. Thứ hai, bằng việc nén bộ ba (thay vì bộ hai) thì các kí tự không mong muốn có thể được mã hóa trực tiếp. Do đó giúp bỏ được pha loại các kí tự thừa và lưu trữ dữ liệu thừa trong cấu trúc thứ cấp. Điều này có lợi cho cả thời gian nén và giải nén.

Sau cùng, biểu diễn theo bộ ba giúp 2D giải nén các chuỗi polipeptit bằng cách biên dịch bộ ba như các codon (chuỗi liên kết 3 nucleotit của DNA hoặc RNA). (b) Mã hóa Ở mức thấp nhất, 2D sử dụng một byte được gán có dải giá trị từ -128 tới 127. Về mặt khái niệm, 7 bit của mỗi byte được sử dụng cho mã hóa và bít quan trọng nhất được sử dụng như một cờ nén. Khung nén này được mô tả ở Hình 1.

Ít nhất 7 bit được sử dụng để mã hóa dữ liệu. Bit quan trọng nhất được sử dụng như cờ để cho biết ngữ cảnh của byte là dữ liệu nén hay giải nén. Các kí tự được chuyển thành các bộ ba liên tiếp nếu mỗi thành phần là một bazơ nucleotit hợp lệ. Một bộ ba hợp lệ được gán một giá trị đơn trong dải từ 1 tới 125 và cờ nén là một tập hợp ngang hàng với giá trị gán trong khoảng -1 và - 125.

2D sẽ phân biệt dữ liệu chuỗi và các kí tự khác, nếu một giá trị không mong muốn xảy ra thì nó có thể được biên dịch như một giá trị ASCII trong dải từ 0 tới 127, sau đó giá trị này sẽ được lưu nguyên bản và không được gán cờ nén. Trong trường hợp xảy ra giá trị không mong muốn thì các thành phần khác của bộ ba hiện tại vẫn được mã hóa và giải nén độc lập dù có bazơ nucleotit hay không, việc này để duy trì khung đọc hiện tại cho việc hỗ trợ biên dịch một polipeptit chính xác. Mặc định là sự thực hiện có thể giả sử một khung đọc mong muốn bắt đầu cùng với phần bắt đầu của chuỗi. Tuy nhiên, nhiều khung đọc cũng được hỗ trợ dễ dàng bằng việc mã hóa một hoặc hai kí tự đầu tiên khi dữ liệu chưa được nén và sau đó mới bắt đầu thực hiện 2D.

Sau cùng, trong trường hợp kí tự không-biết, 2D biểu diễn nó bằng việc lưu ở dạng chưa nén với giá trị byte được gán nhỏ nhất -128. (c) Thuật toán Đoạn mã giả sau đây mô tả lõi của thuật toán nén 2D, nhận một chuỗi đầu vào và trả về mã hóa 2D dưới dạng mảng byte. begin byte list = new List char triplet = new Array int baseCount = 0 int nonCompressCount = 0 foreach character c in input string if nonCompressCount = 0 then if c is a nucleotide base then triplet at position baseCount = c baseCount = baseCount + 1 14 if baseCount = 3 then convert triplet to byte b and add b to list reset triplet baseCount = 0 else foreach character t in triplet convert t to byte b and add b to list endfor convert c to byte b and add b to list reset triplet nonCompressCount = 2 - baseCount baseCount = 0 else convert c to byte b and add b to list nonCompressCount = nonCompressCount - 1 endfor return list as byte Array end Dữ liệu giải mã được khôi phục theo dòng với độ dài chia hết cho 3. Ví dụ, nếu chuỗi trong tệp nguồn được chia thành dòng, mỗi dòng 70 kí tự thì chuỗi trong tệp khôi phục sẽ có độ dài dòng là 69, 69, 72, 69, 69, 72….

Việc này thực hiện để tăng tính nén toàn bộ mà vẫn duy trì được khả năng đọc. Tuy nhiên, nếu yêu cầu thì có thể thực hiện được phiên bản đọc từng dòng chính xác nhưng sẽ bị giảm tính nén toàn bộ.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ