al_zatv ([info]al_zatv) wrote,
Это худший случай. Классически, мы должны были бы:
1. Найти наименее используемый символ
(положим, они все одинаково используются и это будет символ A)
2. Закодировать.
Вышло бы:

AA2BBCCDDEE...

Что в буфер бы не полезло, не говоря уж о перехлёсте.



С этим надо бороться, думаю, так.
RLE_Encoder всё равно работает в два прохода (хотя мне это и не нравится). Раз так, на первом проходе считаем ещё и размер, который будет у буфера после сжатия - PrognosedSize.
Ну а потом:
ежели (PrognosedSize>=BufferSize)
Ничего_Сжимать_Не_надо;


Advertisement


(Read 6 comments)

Post a comment in response:

From:
Help
Identity URL: 
Username:
Password:
Don't have an account? Create one now.
Subject:
No HTML allowed in subject
   Help
Message:
 
Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…