ZIP කරනකොට RAR කරනකොට 7Zip කරනකොට Files compress වෙන්නේ කොහොමද?

· 1 min read
ZIP කරනකොට RAR කරනකොට 7Zip කරනකොට Files compress වෙන්නේ කොහොමද?

ඔයාලා Repack කරපු ගේම්ස් ඩවුන්ලෝඩ් කරලා ඇති. ඒවා ඩවුන්ලෝඩ් කරනකොට තියෙන්නෙ 4GB වගේ ෆයිල් එකක් වුණත් Extract කළාට පස්සෙ ගේම් එක 20GB විතර වෙනවා දැකලා ඇති. මේ මැජික් එක කරන්නෙ කොහොමද? අද අපි කතා කරමු ඒ ගැන.

මේක කරන්නෙ Compression කියන ටෙක්නික් එකෙන්. අන්තර්ජාලය භාවිතයට පැමිණීමත් එක්ක වගේම ඊටත් කලින් storage capacity එකේ ප්‍රශ්න නිසා පරිගණක විද්‍යාඥයන් ට ඕන වුණා විශාල ගොණු කුඩා කරලා ගබඩා කරන්න සහ ට්‍රාන්ස්ෆර් කරන්න ක්‍රමයක්. ඔයාලට මේ ගැටළුව තේරෙනව ඇතිනෙ, අපි ෆිල්ම් එකක් බාන්න ගියා කියමුකො, එතකොට ඒක 10GB ක් විතර සයිස් නම් ඒක හෙන අවුලක්. අපේ සල්ලිත් යනව, බාන්න වරු ගාණක් කාලයත් යනව. මෙතනදි තමයි Compression කියන දේ භාවිතයට එන්නෙ.

Compression ප්‍රධාන වශයෙන් අපි කොටස් දෙකකට බෙදනවා.

1. Lossy Compression

මේක වැඩ කරන්නෙ මෙහෙමයි, කන්ටෙන්ට් එකේ කොලිටි එක අඩු කරලා, අත්‍යවශ්‍ය නොවන බිට්ස් මකලා දාලා තමයි මේ ක්‍රමයෙදි ෆයිල් සයිස් එක අඩු කරන්නෙ. මේ විදියට කම්ප්‍රෙස් කරන ෆයිල් ෆෝමැට් එකකට තියෙන හොඳම උදාහරණය තමයි JPEG ෆෝමැට් එක. අපි දන්නව JPEG වලදි සේව් කරන්නෙ ෆොටෝ එකක්/ පිංතූරයක් නෙ. JPEG ෆයිල් කම්ප්‍රෙස් වෙද්දි පිංතූරයේ සියුම් පාටවල් පෙන්නන බිට්ස් මකලා දානවා. එතකොට ඒ ෆයිල් එකේ සයිස් එක අඩු කරගන්න පුළුවන්.

මේ JPEG කම්ප්‍රෙෂන් වැඩේ වෙන සරල උදාහරණයක් ඔයාලා ලඟම තියෙනවා. WhatsApp වල ඔයාලා යවන ඉමේජස් මෙහෙම Lossy compression එකකට පස්සෙ තමයි යවන්නෙ. ඒක ඔයාට තේරිලා ඇති, කොලිටි එකේ අඩු වීමක් වෙන බව. මෙහෙම කරන්නෙ ඔයාගෙ ෆෝන් එකේ වගේම ඉමේජ් එක ගන්න කෙනාගෙ ඩේටා පාවිච්චිය අවම කරන්න. මෑතකදි එහෙම කොලිටිය අඩු නොවී යවන්න පුළුවන් පහසුකමක් WhatsApp එකට ඇඩ් කරලා තිබුණා.

මේ compression ටෙක්නික් එකේදිත් Compression algorithms පාවිච්චි වෙනවා. ඒවා වැඩිය සංකීර්ණ නැහැ. නමුත් Lossless compression වලදි නම් සංකීර්ණ algorithms පාවිච්චි වෙනවා.

2. Lossless Compression

Lossless කම්ප්‍රෙෂන් වලට හොඳ උදාහරණයක් තමයි Rar සහ 7zip ෆයිල්ස්. අපි මේවයින් කම්ප්‍රෙස් කළාම සයිස් අඩු වෙනවා, ආයෙ එක්ස්ට්‍රෑක්ට් කළාම අපේ ෆයිල්ස් කලින් තිබුණා වගේම බලාගන්න පුළුවන්.

මේ මැජික් එක කරන්නෙ කොහොමද? මේ ප්‍රශ්නෙ මීට කලින් පරිගණක විද්‍යාඥයන්ටත් ආව එකක්. "අපි කොහොමද ෆයිල් එකක කෑලි අඩු නොකර සයිස් එක විතරක් අඩු කරගන්නෙ?" මේ ගැටළුවට විසඳුම් ලෝකෙ ඉන්න සුපිරි ගණිතඥ්ඥයන් එකතු වෙලා කල්පනා කළා. ඒකෙ ප්‍රතිඵලයක් විදියට විවිධ ඇල්ගොරිදම් ඉදිරිපත් වුණා. ඒවා බොහොම සංකීර්ණ ඒවා. නමුත්, අපි අතිශය සරල උදාහරණයක් අරගෙන මේක පැහැදිලි කරගනිමු.

මේ පහළ තියෙන වචනය ගනිමුකො.

1) aaddddooooonnooooo

මේ වචනයෙ රිපීට් වෙන අකුරු තියෙනවනෙ. අපි ඒවා මෙහෙම ලියමු.

2) a2d4o5n2o5

a අකුරු දෙකක් තියෙන නිසා a2 කියලා, d අකුරු 4ක් තියෙන නිසා d4 කියලා ආදී වශයෙනුයි මේ ලියලා තියෙන්නෙ. 1 වෙනි වචනය ගබඩා කරන්න යන ඉඩ වැඩි බවත්, දෙවෙනි වචනය ගබඩා කරන්න යන ඉඩ අඩු බවත් බැලූ බැල්මටම ඔයාට පේනව ඇති. 1 වෙනි වචනය කම්ප්‍රෙස් කළාමයි ඔය දෙවෙනි වචනය ආවෙ. දෙවෙනි වචනය එක්ස්ට්‍රෑක්ට් කරලා අපිට ආයෙ පළමු වචනය හදාගන්න පුළුවන් නේද? ආ... අන්න එහෙම තමයි මේක සරලව පැහැදිලි කරන්න වෙන්නෙ.

එතකොට ඔයාලා අහයි මෙහෙම රිපීට් වෙන වචන කොයි ලෝකෙද තියෙන්නෙ කියලා. ඔව් ඇත්ත, එහෙම වචන නම් නෑ. අන්න ඒ නිසා තමයි මේ වගේ ලිපියක පැහැදිලි කරන්න අමාරු මට්ටමේ ගණිතමය ක්‍රම පාවිච්චි කරලා ෆයිල් කම්ප්‍රෙස් කරන්නෙ. අන්න ඒ ගණනය කිරීම් කරන්න තමයි ෆයිල් කම්ප්‍රෙස් කිරීමේදී වගේම එක්ස්ට්‍රෑක්ට් කිරීමේදී යම් කාලයක් ගත වෙන්නෙ. (දැකලා ඇතිනෙ Winrar එකේ බාර් එකක් ටික ටික පිරෙනව) මං හිතන්නෙ දැන් වැඩේ පැහැදිලි ඇති.

ඔයාලා දැන් දන්නව Lossless compression කියන්නෙ ගණිතමය විදියට කරන මැජික් එකක් කියලා.


කම්ප්‍රෙෂන් කියන්නෙ අතිශය වැදගත් සංකල්පයක්. මේක නොතිබුණා නම් ඉන්ටනෙට් එකෙන් ෆිල්ම්, ගේම් විතරක් නෙවෙයි සිංදුවක් වුණත් බාන එක බොහොම කටුක අත්දැකීමක් වෙන්න තිබුණා. ඒ විතරක් නෙවෙයි, අපේ හාඩ් ඩිස්ක්, ෆෝන් මෙමරි ඉක්මනින් පිරිලා යන්න තිබුණා

ඔයාලා මේ ලිපියෙන් යමක් ඉගෙනගන්න ඇති කියලා හිතනවා. ඔයාලා ෆයිල් කම්ප්‍රෙෂන් ගැන දන්න දේවල් අපිටත් කියන්න, ප්‍රශ්න අහන්න අපේ Community එකට එන්න. තවම අකවුන්ට් එකක් නැද්ද? හපොයි. දැන්ම හදාගන්න. ඔයාට විතරක් නෙවෙයි මමත් හැමදාම ඒකෙ පෝස්ට් කියවලා ගොඩක් දේවල් ඉගෙනගන්නව. ඉතින් තවත් කල්පනා කරන්න දෙයක් නෑ, අදම රෙජිස්ටර් වෙන්න.

තව ලිපියකින් මුණගැහෙමු, ඔබට ජය!