Computer >> Máy Tính >  >> Lập trình >> Lập trình

Chiều cao giới hạn Cây Huffman trong cấu trúc dữ liệu

Biểu đồ giới hạn chiều cao hoặc giới hạn chiều sâu của cây Huffman được đưa ra dưới đây

Chiều cao giới hạn Cây Huffman trong cấu trúc dữ liệu

Giới hạn độ sâu của cây là một vấn đề không nhỏ mà hầu hết các triển khai Huffman trong thế giới thực đều phải giải quyết.

Cấu trúc Huffman không giới hạn chiều cao hoặc chiều sâu. Nếu có, nó không thể là "tối ưu". Đúng là độ sâu lớn nhất của cây Huffman bị giới hạn bởi chuỗi Fibonacci, nhưng điều đó vẫn đủ chỗ cho độ sâu lớn hơn mong muốn.

Lý do hạn chế độ sâu cây Huffman là gì? Bộ giải mã Huffman nhanh chóng triển khai các bảng tra cứu. Có thể triển khai nhiều mức bảng để giảm thiểu chi phí bộ nhớ, nhưng một bộ giải mã rất nhanh như Huff0 chỉ dành cho một bảng duy nhất, cả vì sự đơn giản và tốc độ. Trong trường hợp đó, kích thước bảng được coi là tích số trực tiếp của độ sâu cây (kích thước bảng =1 <

Vì lợi ích của tốc độ và quản lý bộ nhớ, một giới hạn đã được chọn:đó là 8 KB cho bảng giải mã, vừa khít với bộ nhớ cache L1 của Intel và để lại một số chỗ để kết hợp nó với các bảng khác nếu cần. Vì bảng giải mã mới nhất sử dụng 2 byte mỗi ô nên nó chuyển thành các ô 4K, do đó độ sâu cây tối đa là 12 bit.

12 bit để nén các ký tự thường quá ngắn, ít nhất là theo cấu trúc Huffman tối ưu.

Do đó, việc xây dựng một cây giới hạn độ sâu là một vấn đề thực tế cần giải quyết.

Cây Huffman có độ sâu giới hạn đã được nghiên cứu từ những năm 1960, vì vậy có rất nhiều tài liệu nghiên cứu.