Introduction
အချက်အလက်တွေ နေရာယူတဲ့ပမာဏတွေ လျှော့ချဖို့ ချုံ့ဖို့အတွက် Compression နည်းလမ်းကိုသုံးပါတယ်။ Compression ကို ဖိုင်တဖိုင်သိမ်းဖို့လိုအပ်တဲ့ နေရာပမာဏတွေ လျှော့ချဖို့သုံးလေ့ရှိတာပါ။ နောက်တစ်ချက်က Network ပေါ်မှာ ပို့ရတဲ့ Data ပမာဏလျှော့ချဖို့အတွက်လည်း သုံးပါတယ်။
Compression ဆိုတာ Data တွေထဲမှာ ထပ်ခါထပ်ခါပါနေတဲ့ Repetitive Patterns တွေကို အစားထိုးပြောင်းလဲသွားတာပါပဲ။ English ဝတ္ထုဖိုင်တဖိုင် ဆိုကြပါတော့။ “the” လို တွေ့ရများတဲ့ စကားလုံးတွေ ကြိမ်ဖန်များစွာရှိနေတတ်ပါတယ်။ အဲ့ဒီလိုတွေ့ရများပြီး စာလုံးတွေများတဲ့ ပုံစံတွေကို စာလုံးတလုံးထဲဖြင့် အစားထိုးပြောင်းလဲပြီး File Size ကို သိသိသာသာလျှော့ချနိုင်မှာပါ။ ဥပမာ – “the” ကို စာအုပ်ထဲက အခြားနေရာမှာလည်း မသုံးတဲ့ Greek Letter တစ်လုံးဖြင့် အစားထိုးမှာမျိုးပါ။ Data Compression Algorithms တွေဟာ အဲ့ဒီလိုပုံစံခပ်ဆင်ဆင်ပေမယ့် ပိုပြီးတော့ရှုပ်ထွေးပါတယ်။
Compression တွေကို မူလနှင့် သိပ်မခြားနားတဲ့ ဆုံးရှုံးမှုနည်းတဲ့ပုံစံ Lossless နှင့် မူလနှင့်ကွာခြားလွန်းတဲ့ လျော့နည်းဆုံးရှုံးမှုရှိမယ့် Lossy ဆိုပြီး အသွင် (၂)မျိုး တွေ့ရမှာပါ။ Lossless Algorithm သုံးပြီး ချုံ့ခဲ့လျင် မူရင်းပုံစံသို့ ပြန်ဖြည်နိုင် ပြန်ပြောင်းနိုင်ပါတယ်။ Lossy Algorithm ဖြင့် ချုံ့ခဲ့လျင်တော့ ပြန်လည်ရယူနိုင်တော့မှာ မဟုတ်ပါဘူး။ Lossy Algorithms တွေကို အကြောင်းအရာဆက်စပ်မှုအားဖြင့် သိပ်မသက်ဆိုင်ဘဲ များစွာမထိခိုက်စေမယ့် လူအများလက်ခံနိုင်လောက်မယ့် (သို့) သိမ်းဆည်းရန်လိုအပ်မယ့် နေရာပမာဏ (သို့) Network ပေါ်မှာ သယ်သွားရမယ့် Data ပမာဏ လျှော့ချနိုင်မယ့် Images, Video နှင့် Audio ဖိုင်တွေအတွက် သုံးလေ့ရှိပါတယ်။
Archiving Tools တွေကတော့ ဖိုင်နှင့် Directories တွေကို ဖိုင်တဖိုင်တည်းအဖြစ် ပေါင်းစည်းဖို့ရာ သုံးတာပါ။ Backups ပြုလုပ်ဖို့၊ Software Source Code တွေစုစည်းဖို့၊ အချိန်အတော်ကြာ Data တွေသိမ်းထားဖို့ Data Retention ပြုလုပ်ဖို့တွေမှာ အသုံးများပါတယ်။
Archive နှင့် Compression ကို အတူတွဲသုံးလေ့ရှိပါတယ်။ အချို့ Archiving Tools တွေဟာ ပင်ကိုယ်မူလအားဖြင့် ပေါင်းစည်းပေးရုံသာမက ချုံ့တာပါလုပ်ပေးတာပါ။ အခြား Tools တွေကတော့ ချုံ့ဖို့ရွေးချယ်နိုင်တာမျိုးပါ။ Tools အနည်းငယ်ကတော့ ချုံ့ဖို့ Stand-alone Compression Tools တွေဖြင့် တွဲပြီးသုံးဖို့လိုအပ်မှာပါ။
Linux Systems တွေမှာ ဖိုင်တွေပေါင်းစည်းဖို့ Archive ပြုလုပ်ဖို့ အသုံးအများဆုံး Tool ကတော့ tar ပါပဲ။ Linux Distributions တော်တော်များများမှာ ဒီသင်ခန်းစာမှာ ပြောပြသွားမယ့် tar ရဲ့ GNU Version ဖြင့် တပါတည်းပါကြပါတယ်။ tar ဟာ သူ့ချည်းပဲ Options တွေ မပါဘဲ သုံးမည်ဆိုလျင် Archiving တော့လုပ်ပေးမှာပေမယ့် Compress တော့ မလုပ်ပါဘူး။
Linux မှာ Compression Tools တွေ အများအပြားပဲ ရနိုင်ပါတယ်။ တွေ့ရများတဲ့ အချို့ Lossless တွေကတော့ bzip2, gzip, နှင့် xz တို့ပါပဲ။ Systems အတော်များများမှာ အဲ့ဒီ Tools တွေကို တွေ့နိုင်ပါတယ်။ System အဟောင်း (သို့) အချို့အနည်းငယ်သော System တွေမှာ xz (သို့) bzip မပါနေတာလည်း ရှိနိုင်မှာပါ။ Linux ပုံမှန်အသုံးပြုသူဖြစ်မည်ဆိုလျင် ဒီ Tools တွေသုံးပြီး ချုံ့တာမျိုးတွေ တွေ့ကြုံရမှာပါပဲ။ Tools တွေမှာ မတူညီတဲ့ Algorithms တွေ အသုံးပြုထားမှာကြောင့် Tool တစ်ခုကိုသုံးပြီး ချုံ့ထားလျင် အခြားတစ်ခုဖြင့် ပြန်ဖြည်လို့ရမှာမဟုတ်ပါဘူး။ Compression Tools တွေမှာ အကောင်းအဆိုးလေးတွေတော့ ရှိတတ်ပါတယ်။ Size များများချုံ့လိုပါက ချုံ့ရတာ (Compression)၊ ပြန်ဖြည်ရတာ (Decompression) အချိန်ပိုကြာမှာမျိုးပါ။ ပိုမိုချုံ့ပေးနိုင်ဖို့ Higher Compression Ratio ရဖို့ ပိုမိုရှုပ်ထွေးတဲ့ ပုံစံတွေကို (Complex Patterns) ရှာဖွေရတဲ့ အလုပ်တွေပိုလုပ်ရမှာမို့ပါ။ ဒီ Tools တွေဟာ Data အချက်အလက်တွေကို ချုံ့ပေးမှာပေမယ့် ဖိုင်တွေကိုစုစည်းပေးမယ့် Archives တွေတော့ ဖန်တီးပေးမှာမဟုတ်ပါဘူး။
Windows Systems တွေပေါ်မှာ ချုံ့ပေးတာသက်သက် လုပ်ဆောင်ပေးမယ့် Stand-alone Compression Tools တွေတော့ မရှိတတ်ပါဘူး။ Windows ဘက်မှာ ဖိုင်တွေပေါင်းစည်းပေးတဲ့ Archiving နှင့် ချုံ့ပေးတဲ့ Compression Tools တွေ အတူတွဲလျက်ပဲ ရှိတတ်ပါတယ်။ Windows နှင့် Linux Systems တွေမှာ ဖိုင်တွေမျှဝေအသုံးပြုဖို့ လိုအပ်မှာတွေလည်း ရှိမှာပါ။
Windows System ပေါ်မှာသုံးလေ့ရှိတဲ့ .zip Files တွေအတွက် ဖြေရှင်းပေးမယ့် Tools တွေလည်း Linux Systems တွေမှာ ရှိနေပါတယ်။ အဲ့ဒါတွေကတော့ zip နှင့် unzip ဆိုတဲ့ Tools တွေပါ။ ဒီ Tools တွေဟာ Systems တွေအားလုံးပေါ်မှာ ထည့်သွင်းနှင့်ပြီးသား မဖြစ်တတ်တာမို့ အသုံးပြုဖို့လိုအပ်လျင်တော့ Install လုပ်ပေးဖို့လိုမှာပါ။ ကံအားလျော်စွာပဲ Distributions တွေရဲ့ Package Repositories တွေမှာ တွေ့ရတတ်ပါတယ်။