ကွန်ပျူတာများသတင်းအချက်အလက်နည်းပညာ

Huffman codes တွေကို: ဥပမာလျှောက်လွှာ

ယခုအချိန်တွင်မှာလူအနည်းငယ်ဖိုင်ချုံ့မဘယ်လိုဆိုတဲ့အချက်ကိုစဉ်းစားပါ။ ပုဂ္ဂိုလ်ရေးကွန်ပျူတာ၏ယခင်အသုံးပြုမှုနှင့်နှိုင်းယှဉ်ပါအများကြီးပိုလွယ်ဖြစ်လာသည်။ ထိုအခါဖိုင်စနစ်ဖြင့်အလုပ်လုပ်ကိုင်နီးပါးတိုင်းလူတစ်ဦးဖိုင်များကိုအသုံးပြုသည်။ ဒါပေမဲ့လူအနည်းငယ်ကသူတို့အလုပ်လုပ်ပုံကိုအကြောင်းကိုတွေနဲ့ဖိုင်ချုံ့သောအရာကိုအခြေခံပေါ်မှာစဉ်းစားပါ။ ဤလုပ်ငန်းစဉ်၏ပထမဦးဆုံးဗားရှင်း Huffman codes တွေကို ရှိ. , သူတို့လူကြိုက်များ Archive အမျိုးမျိုးအတွက်ယနေ့အသုံးပြုကြသည်။ အတော်များများကအသုံးပြုသူများအပင်ဖိုင်ချုံ့ရာအရပ်ကိုကြာဘယ်လောက်လွယ်ကူသောစဉ်းစားကြဘူးနဲ့ကအစီအစဉ်အပေါ်လုပ်ဆောင်နေသည်။ ဤဆောင်းပါး၌ကျွန်ုပ်တို့သည်ချုံ့အကူအညီနဲ့မြန်နှုန်းတက် nuances ကားအဘယ်သို့ပုံကိုကြည့်ရှု encoding က၏ဖြစ်စဉ်ကိုရိုးရှင်းအဖြစ်သစ်ပင်နိုင်တဲ့ coding အဘယ်နိယာမကိုကြည့်ပါ။

သမိုင်း algorithm ကို

အီလက်ထရောနစ်အချက်အလက်များ၏ထိရောက် code တွေရဲ့အလွန်ပထမဦးဆုံး algorithm ကို Huffman အမည်ရ 1952 ခုနှစ်, အဖြစ်စောစောနှစ်ဆယ်ရာစုအလယ်အဖြစ်အဆိုပြုထားတဲ့ကုဒ်ဖြစ်လာသည်။ ဒါဟာအခိုက်မှာသတင်းအချက်အလက်ချုံ့ဖို့ဖန်တီးအစီအစဉ်များ၏အများစု၏အခြေစိုက်စခန်း element ဖြစ်ပါတယ်သောသူမူကားခဲ့သညျ။ ယခုအချိန်တွင်, ဒီ code ကိုသုံးပြီးလူကြိုက်အများဆုံးသတင်းရင်းမြစ်တစ်ဦးမော်ကွန်းတိုက် ZIP ဖိုင်, ARJ, RAR နှင့်အခြားသောဖြစ်ကြသည်။ ဒါ့အပြင်အဆိုပါ Huffman algorithm ကိုအသုံးပြုသည် JPEG,-ပုံရိပ်တွေချုံ့ နှင့်အခြားဂရပ်ဖစ်တ္ထု။ ကောင်းပြီ, အားလုံးဖက်စ်များကိုလည်း 1952 ခုနှစ်တွင်တီထွင်ခေတ်သစ်နိုင်တဲ့ coding ကို အသုံးပြု. ရသည်။ code ကို၏ဖန်တီးမှုကတည်းကအသစ်အမြှေးပါးနှင့်ပစ္စည်းကိရိယာများအဟောင်းနှင့်ခေတ်မီအမျိုးအစားများကိုအမျိုးမျိုးအတွက်အသုံးပြုသည်ယနေ့တိုင်အောင်ဤမျှလောက်အချိန်ယူဆိုတဲ့အချက်ကိုနေသော်လည်း။

ထိရောက်နိုင်တဲ့ coding ၏နိယာမ

အဆိုပါ Huffman algorithm ကို၏အခြေခံအများဆုံးမကြာခဏသင်္ကေတများဖြစ်ပေါ်, သင်အများဆုံးယုံကြည်အစားထိုးခွင့်ပြုမယ့်အစီအစဉ်လည်းပါဝင်သည် binary coded စနစ်။ ထိုအလျော့နည်းဘုံနေသောသူတို့ကို, ကြာကြာ codes တွေကိုနှင့်အတူအစားထိုး။ ရှည်လျားသော Huffman codes တွေကို Going စနစ်အားလုံးနိမ့်ဆုံးစံတန်ဖိုးများကိုအသုံးပြုမှသာအပြီးတွေ့ရှိနိုင်ပါသည်။ ဒီနည်းပညာကိုသင်နေတဲ့မြေတပြင်လုံးအတိုင်းမူရင်းမက်ဆေ့ခ်ျကိုအသီးအသီးသင်္ကေတများအတွက်ကုဒ်ရဲ့အရှည် minimize လုပ်ဖို့ခွင့်ပြုပါတယ်။ အရေးကြီးသောအချက်စာလုံး၏ဖြစ်ပျက်မှုများ၏နိုင်တဲ့ coding ဖြစ်နိုင်ခြေရဲ့အစမှာပြီးသားလူသိများသင့်ကြောင်းဖြစ်ပါသည်။ ဒါဟာကိုပြင်ဆင်ခြင်းနှင့်နောက်ဆုံးမက်ဆေ့ခ်ျကိုရလိမ့်မည်သူတို့ထံမှဖြစ်ပါတယ်။ ဤအအချက်အလက်ပေါ်အခြေခံပြီးက archive ကိုအတွက်ဖြစ်စဉ်ကိုကုဒ်သွင်းအက္ခရာများကျင်းပလိမ့်မည်သည့်၏အခြေခံရက်နေ့တွင်, Huffman ကုဒ်သစ်ပင်များ၏ဆောက်လုပ်ရေးထွက်သယ်ဆောင်။

Huffman ကုဒ်ဥပမာ

အဆိုပါ algorithm ကိုသရုပျဖျောဖို့, code ကိုသစ်ပင်၏ဆောက်လုပ်ရေးတစ်ဦးသော graphical မူကွဲစဉ်းစားပါ။ ထိရောက်သောဖြစ်ဖို့ဒီနည်းလမ်းကိုသုံးစွဲဖို့ကလုပ်ငန်းစဉ်၏အယူအဆများအတွက်လိုအပ်သောအချို့တန်ဖိုးများအဓိပ္ပါယ်ရှင်းလင်းဖို့လိုအပ်ပေသည်။ node ကိုမှ node ကိုကနေညွှန်ကြားထားတဲ့ node များနှင့်ပြရန်၏ဗဟုများ၏အစုကို, ပုံပြမျဉ်းကိုခေါ်။ အဆိုပါသစ်ပင်သူ့ဟာသူသီးခြားဂုဏ်သတ္တိများအစုတခုနဲ့ဂရပ်သည်:

  • တစ်ခုချင်းစီကို node ကိုအတွက်ပြရန်တစ်ဦးထက်မပိုပါဝင်နိုင်ပါသည်;
  • အဆိုပါ node များထဲကတစ်ခုသည်, ကအားလုံးကိုမှာကို arc ၏အစိတ်အပိုင်းတစ်ခုဖြစ်မနေသင့်, သစ်ပင်၏အမြစ်ဖြစ်ရပါမည်,
  • ပင်စည်ဟာပြရန်တလျှောက်ရွေ့လျားစတင်လျှင်, လုပ်ငန်းစဉ် node များတွင်မဆိုလုံးဝရဖို့ခွင့်ပြုသင့်ပါတယ်။

ထိုသို့သောအမှုကိုအပင်၏အသီးကိုတစ်ဦးရွက်အဖြစ် Huffman codes တွေကို၏တစိတ်တပိုင်းလည်းဖြစ်ပါတယ်။ ဒါဟာမဆိုကို arc မသွားသင့်သောအနေဖြင့်တစ်ဦး node ကိုဖြစ်ပါတယ်။ နှစ်ခု node များတစ်ဦးကို arc ခြင်းဖြင့်ချိတ်ဆက်နေတယ်ဆိုရင်, သူတို့ထဲကတဦးတယောက်မှကို arc ထွက်ဝင် node, နှင့်အဘယ်သို့ဆိုင်ပါဝင်သည်ရာမှပေါ် မူတည်. အခြားသူငယ်၏မိဘဖြစ်ပါတယ်။ နှစ်ခု node များတူညီမိဘ node ကိုရှိပါကသူတို့အစ်မက်ဘ်ဆိုက်များဟုခေါ်ကြသည်။ , အရွက်, အအတော်ကြာပြရန်၏ node များကနေအရွက်လျှင်, က binary သစ်ပင်ဟုခေါ်သည်။ ကိုယ့်ဒါ Huffman ပင်အသီးဖြစ်၏။ ယူနစ်များ၏ဆောက်လုပ်ရေး၏ပိုင်ထိုက်သောအသီးအသီးသောမိဘများ၏အလေးချိန်အားလုံး၎င်း၏သားသမီးများ node များ၏အလေးများ၏ပေါင်းလဒ်နဲ့ညီမျှဖြစ်ပါတယ်။

သစ်ပင် Huffman ဆောက်လုပ်တစ်ခု algorithm ကို

အဆိုပါ Huffman ကုဒ်၏ဆောက်လုပ်ရေးအက္ခရာ၏အက္ခရာဆီက input ဖြစ်ပါတယ်။ အနာဂတ်မှာကုဒ် tree ထဲမှာအခမဲ့ဖြစ်ကြောင်းဆိုဒ်များများ၏စာရင်းကိုထုတ်ပေး။ အဆိုပါစာရင်းထဲတွင်တစ်ဦးချင်းစီ node တစ်ခု၏အလေးချိန်ဒီ node ကိုမှသက်ဆိုင်ရာစာလုံးပို့စ်ဖြစ်ပျက်မှုများ၏ဖြစ်နိုင်ခြေကဲ့သို့တူညီသောဖြစ်ရမည်။ ဤကိစ္စတွင်ခုနှစ်, အနည်းဆုံးအလေးချိန်သူတဦးတည်းအနာဂတ်မှာသစ်ပင်အများအပြားအခမဲ့က်ဘ်ဆိုက်များထဲမှရှေးခယျြထားခြင်းဖြစ်သည်။ နိမ့်ဆုံးနှုန်းတော်တော်များများက်ဘ်ဆိုက်များအတွက်စောင့်ကြည့်လေ့လာလျှင်ဤကိစ္စတွင်ခုနှစ်, သင်တို့ကိုလွတ်လွတ်လပ်လပ်အားလုံးမဆိုရွေးနိုင်သည်။ ထိုအခါ node များ၏ pair တစုံ၏လေး၏ပေါင်းလဒ်သလောက်ချိန်ပေးရမည်ဖြစ်သောမိဘ node ကို၏ဖန်တီးမှုလာပါတယ်။ ထို့နောက်မိဘများအခမဲ့အိမ်သာအတူစာရင်းပေးပို့သောကွောငျ့, သားဖယ်ရှားပြီးဖြစ်ပါသည်။ ဒီကို arc အတွက်သင့်လျော်တဲ့ညွှန်းကိန်း, သူမြားနဲ့သုညဖြစ်ကြသည်။ ဤလုပ်ငန်းစဉ်တစ်ခုသာတစ်ခုတည်း node ကိုစောင့်ရှောက်ရန်လိုအပ်သလောက်ထပ်ခါတလဲလဲဖြစ်ပါတယ်။ ထိုအခါထိပ်ကနေအောက်ခြေဖို့ binary ဂဏန်းထွက်ရေးပါ။

ချုံ့များ၏ထိရောက်မှုတိုးတက်စေူခင်း

ချုံ့ထိရောက်မှုတိုးမြှင့်နိုင်ရန်အတွက်, တကသစ်ပင်မှပူးတွဲပါတစ်ဦးအထူးသဖြင့်ဖိုင်ထဲမှာစာလုံး၏ဖြစ်ပျက်မှုများ၏ဖြစ်နိုင်ခြေပေါ်မှာရှိသမျှဒေတာကိုသုံးပါ, သူတို့စာသားကိုစာရွက်စာတမ်းများ၏ကြီးမားသောအရေအတွက်ကိုကျော်အရပ်ရပ်သို့ကွဲပြားကြသည်ဟူသောအချက်ကိုခွင့်မပြုစေရန်သစ်ပင်အဆောက်အဦကုဒ်စဉ်အတွင်းလိုအပ်ပေသည်။ ဒီဖိုင်ကနေတဆင့် Pre-လမ်းလျှောက်လျှင်, သင်ချက်ချင်းချုံ့ဖို့စက်ရုံဘာသာရပ်၏အက္ခရာများရှိပါတယ်ဘယ်လောက်မကြာခဏ၏စာရင်းဇယားတွက်ချက်နိုင်ပါတယ်။

ချုံ့လုပ်ငန်းစဉ်၏ acceleration

အဆိုပါ algorithm ကိုအရှိန်မြှင့်ရန်, စာလုံး၏အဓိပ်ပါယျတစ်ဦးအထူးသဖြင့်အက္ခရာ၏ဖြစ်ပျက်မှုများ၏ဖြစ်နိုင်ခြေများနှင့်ယင်း၏ဖြစ်ပျက်မှု၏ကြိမ်နှုန်း၏စည်းကမ်းချက်များ၌မလုပ်ဆောင်သင့်ပါတယ်။ ဒီ algorithm နှင့်အတူပိုမိုလွယ်ကူဖြစ်လာသည်နှင့်အများကြီးပိုမြန်သူတို့နှင့်အတူအလုပ်လုပ်ကြသည်။ ဒါကြောင့်လည်း floating-point ကွဲပြားခြင်းနှင့်အတူဆက်စပ်စစ်ဆင်ရေးကိုရှောင်။ ထို့အပြင်, ဒီ mode ကို, အပြောင်းလဲနေသော Huffman ကုဒ်, ဒါမှမဟုတ်အစား algorithm ကိုသူ့ဟာသူအလုပ်လုပ်မဆိုပြောင်းလဲဘာသာရပ်မဟုတ်ပါဘူး။ ဤသည်အဓိကအားဖြင့်ဖြစ်နိုင်ခြေ frequency ကိုတိုက်ရိုက်အချိုးကျဖြစ်ကြသည်ဟူသောအချက်ကိုကြောင့်ဖြစ်သည်။ ဒါဟာဖိုင်၏နောက်ဆုံးအလေးချိန်, ဒါမှမဟုတ်ဒါခေါ်အမြစ် node ကိုကုသခံရဖို့အရာဝတ္ထုများတွင်ဇာတ်ကောင်များအရေအတွက်၏ပေါင်းလဒ်နဲ့ညီမျှကြောင်းဆိုတဲ့အချက်ကိုမှသတိထားရမှာကျိုးနပ်သည်။

ကောက်ချက်

Huffman codes တွေကို - နေတုန်းပဲအများကြီးကိုကောင်းကောင်းသိအစီအစဉ်များနှင့်ကုမ္ပဏီများကအသုံးပြုခဲ့သောသောရိုးရှင်းပြီးရှည်လျား-ထူထောင် algorithm ကို။ ၎င်း၏ရိုးရှင်းများနှင့်ရှင်းလင်းပြတ်သားထိရောက်သောရလဒ်များကိုမဆိုပမာဏ၏ဖိုင်တွေချုံ့နှင့်သိသိသာသာ disk ကိုသိုလှောင်မှုပေါ်မှအာကာသလျှော့ချအောင်မြင်ရန်နိုင်ပါတယ်။ တစ်နည်းမှာ Huffman algorithm ကို - တာရှည်စုံစမ်းစစ်ဆေးခြင်းနှင့်အရေးတကြီးဤသည်နေ့ရက်လျှော့ချမထားအလုပ်ကိုပုံထားသည်။ နှင့်အညီ, ဖိုင်တွေကို၏အရွယ်အစားလျှော့ချကွန်ယက်ကျော်ကသူတို့ကိုလွှဲပြောင်းသို့မဟုတ်အခြားအားဖြင့်နိုင်စွမ်းနှင့်အတူကပိုရိုးရှင်းပြီးအစာရှောင်ခြင်းနှင့်အဆင်ပြေဆိုလိုသည်။ အဆိုပါ algorithm ကိုအတူလုပ်ကိုင်, သင်အလေးချိန် file ကိုလျှော့ချရန်၎င်း၏ဖွဲ့စည်းပုံနှင့်အရည်အသွေးမှထိခိုက်မှုမရှိဘဲ, ဒါပေမယ့်အများဆုံးသက်ရောက်မှုနှင့်အတူလုံးဝမဆိုသတင်းအချက်အလက်ချုံ့နိုင်ပါတယ်။ တစ်နည်းမှာ Huffman code တွေရဲ့နိုင်တဲ့ coding ခဲ့နှင့်ဖိုင်အရွယ်အစားချုံ့၏လူကြိုက်အများဆုံးနှင့်သက်ဆိုင်ရာနည်းလမ်းဖြစ်နေဆဲဖြစ်ပါတယ်။

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 my.unansea.com. Theme powered by WordPress.