ሁፍማን ኢንኮዲንግን በመጠቀም መረጃን እንዴት ማመቅ እንደሚቻል -10 ደረጃዎች

ዝርዝር ሁኔታ:

ሁፍማን ኢንኮዲንግን በመጠቀም መረጃን እንዴት ማመቅ እንደሚቻል -10 ደረጃዎች
ሁፍማን ኢንኮዲንግን በመጠቀም መረጃን እንዴት ማመቅ እንደሚቻል -10 ደረጃዎች

ቪዲዮ: ሁፍማን ኢንኮዲንግን በመጠቀም መረጃን እንዴት ማመቅ እንደሚቻል -10 ደረጃዎች

ቪዲዮ: ሁፍማን ኢንኮዲንግን በመጠቀም መረጃን እንዴት ማመቅ እንደሚቻል -10 ደረጃዎች
ቪዲዮ: ይውለበለብ ወደ ላይ (ሻሮን የልጆች መዝሙር ኮንሰርት) ጌታ እየሱስ ይክበር ! (Jehovah Nissi ) Sharon Children Service Ethiopia 2024, ሚያዚያ
Anonim

የሃፍማን ስልተ ቀመር መረጃን ለመጭመቅ ወይም ለማቀናበር ያገለግላል። በመደበኛነት ፣ በጽሑፍ ፋይል ውስጥ ያለው እያንዳንዱ ቁምፊ ASCII የተባለ ኢንኮዲንግ በመጠቀም ለዚያ ገጸ -ባህሪ ካርታ እንደ ስምንት ቢት (አሃዞች ፣ 0 ወይም 1) ይከማቻል። ብዙውን ጊዜ ጥቅም ላይ የዋሉ ገጸ-ባህሪያት በጥቂት ቢት ውስጥ እንዲቀመጡ አንድ የ Huffman- ኮድ ያለው ፋይል ጠንካራውን 8-ቢት መዋቅር ይሰብራል (‹01100001 ›ከሚለው ASCII ይልቅ‹ ‹a›› ‹10 ›ወይም‹ 1000› ሊሆን ይችላል።). አነስ ያሉ የተለመዱ ገጸ -ባህሪዎች ብዙውን ጊዜ ከ 8 ቢት (“z” “00100011010” ሊሆን ይችላል) ይወስዳሉ ፣ ግን በጣም አልፎ አልፎ ስለሚከሰቱ ፣ ሁፍማን ኢንኮዲንግ ፣ በአጠቃላይ ፣ ከመጀመሪያው በጣም ያነሰ ፋይል ይፈጥራል።

ደረጃዎች

የ 2 ክፍል 1 ፦ ኢንኮዲንግ

ሁፍማን ኢንኮዲንግ ደረጃን በመጠቀም መረጃን ይጭመቁ
ሁፍማን ኢንኮዲንግ ደረጃን በመጠቀም መረጃን ይጭመቁ

ደረጃ 1. በፋይሉ ውስጥ የእያንዳንዱን ቁምፊ (ኢንኮዲንግ) ድግግሞሽ ይቁጠሩ።

የፋይሉን መጨረሻ ለማመልከት ዱሚ ቁምፊ ያካትቱ - ይህ በኋላ አስፈላጊ ይሆናል። ለአሁን ፣ EOF (የፋይል መጨረሻ) ብለው ይደውሉ እና የ 1 ድግግሞሽ እንዳለው ምልክት ያድርጉበት።

ለምሳሌ ፣ “ab ab cab” ን የሚነበብ የጽሑፍ ፋይል ለማመሳሰል ከፈለጉ ፣ ‹ሀ› ከ 3 ድግግሞሽ ፣ ‹ለ› ጋር ከ 3 ፣’’ (ቦታ) ከድግግሞሽ 2 ፣ ‹C› ጋር ከ 1 ጋር ፣ እና EOF ከድግግሞሽ 1 ጋር።

ሁፍማን ኢንኮዲንግ ደረጃ 2 ን በመጠቀም መረጃን ይጭመቁ
ሁፍማን ኢንኮዲንግ ደረጃ 2 ን በመጠቀም መረጃን ይጭመቁ

ደረጃ 2. ገጸ -ባህሪያትን እንደ የዛፍ አንጓዎች ያከማቹ እና ቅድሚያ ወዳለው ወረፋ ውስጥ ያስገቡዋቸው።

እያንዳንዱ ገጸ -ባህሪ እንደ ቅጠል ያለው አንድ ትልቅ የሁለትዮሽ ዛፍ ይገነባሉ ፣ ስለዚህ ገጸ -ባህሪያቱን የዛፉ አንጓዎች ሊሆኑ በሚችሉበት ቅርጸት ማከማቸት አለብዎት። እያንዳንዱን ገጸ -ባህሪ ድግግሞሽ እንደ መስቀለኛ መንገድ ቅድሚያ በመስጠት እነዚህን አንጓዎች ወደ ቀዳሚ ወረፋ ያስቀምጡ።

  • የሁለትዮሽ ዛፍ እያንዳንዱ የውሂብ ቁራጭ እስከ አንድ ወላጅ እና ሁለት ልጆች ሊኖረው የሚችል የመስቀለኛ ክፍል ነው። ብዙውን ጊዜ እንደ ቅርንጫፍ ዛፍ ይሳባል ፣ ስለሆነም ስሙ።
  • ወረፋ ወደ ወረፋው የሚገባው የመጀመሪያው ነገር እንዲሁ የሚወጣበት የመጀመሪያው ነገር (ልክ እንደ ወረፋ መጠበቅ) በትክክል የተሰየመ የውሂብ አሰባሰብ ነው። በቀዳሚ ወረፋ ውስጥ ፣ ውሂቡ ቅድሚያ በሚሰጣቸው ቅደም ተከተል መሠረት ተከማችቷል ፣ ስለሆነም የመጀመሪያው የሚወጣው በጣም አስቸኳይ ነገር ፣ ትንሽ ቅድሚያ የሚሰጠው ነገር ነው ፣ ከመጀመሪያው ነገር ይልቅ።
  • በ “ab ab cab” ምሳሌ ውስጥ ፣ ቅድሚያ የሚሰጠው ወረፋዎ እንደዚህ ይመስላል - {'c': 1 ፣ EOF: 1 ፣ '' 2 ፣ 'a' 3 ፣ 'b' 3)
ሁፍማን ኢንኮዲንግን ደረጃ 3 በመጠቀም መረጃን ይጭመቁ
ሁፍማን ኢንኮዲንግን ደረጃ 3 በመጠቀም መረጃን ይጭመቁ

ደረጃ 3. ዛፍዎን መገንባት ይጀምሩ።

ሁለቱን በጣም አጣዳፊ ነገሮችን ከቀዳሚ ወረፋ አስወግድ (ወይም አስወግድ)። የእነዚህን ሁለት አንጓዎች ወላጅ ለመሆን አዲስ የዛፍ መስቀለኛ መንገድ ይፍጠሩ ፣ የመጀመሪያውን መስቀለኛ መንገድ እንደ ግራ ልጅ እና ሁለተኛውን እንደ ትክክለኛ ልጅ በማከማቸት። የአዲሱ መስቀለኛ መንገድ ቅድሚያ የልጁ ቅድሚያ የሚሰጣቸው ነገሮች ድምር መሆን አለበት። ከዚያ ይህንን አዲስ መስቀለኛ መንገድ በቀዳሚ ወረፋ ውስጥ ያስገቡ።

ቅድሚያ የሚሰጠው ወረፋ አሁን ይህን ይመስላል ፦ {'': 2 ፣ አዲስ መስቀለኛ መንገድ 2 ፣ 'ሀ' 3 ፣ 'ለ': 3}

ሁፍማን ኢንኮዲንግን ደረጃ 4 በመጠቀም መረጃን ይጭመቁ
ሁፍማን ኢንኮዲንግን ደረጃ 4 በመጠቀም መረጃን ይጭመቁ

ደረጃ 4. ዛፍዎን መገንባት ይጨርሱ

በወረፋው ውስጥ አንድ መስቀለኛ መንገድ እስኪኖር ድረስ ከላይ ያለውን ደረጃ ይድገሙት። ለቁምፊዎቹ እና ለእነሱ ድግግሞሽ ከፈጠሯቸው አንጓዎች በተጨማሪ እርስዎም እንዲሁ ዛፎች በመለወጥ እና የወላጅ አንጓዎችን ፣ ቀድሞውኑ እራሳቸው ዛፎች የሆኑትን ኖዶች እንደገና እንደሚለቁ ልብ ይበሉ።

  • ሲጨርሱ ፣ በወረፋው ውስጥ ያለው የመጨረሻው መስቀለኛ ክፍል ሁሉም ሌሎች አንጓዎች ከእሱ ተለያይተው ፣ የኢኮዲንግ ዛፍ ሥር ይሆናል።
  • በጣም በተደጋጋሚ ጥቅም ላይ የዋሉ ገጸ -ባህሪዎች ከዛፉ አናት ጋር ቅርበት ያላቸው ቅጠሎች ይሆናሉ ፣ እምብዛም ጥቅም ላይ ያልዋሉት ገጸ -ባህሪዎች ከሥሩ ርቀው በዛፉ ግርጌ ላይ ይቀመጣሉ።
ሁፍማን ኢንኮዲንግ ደረጃን በመጠቀም መረጃን ይጭመቁ
ሁፍማን ኢንኮዲንግ ደረጃን በመጠቀም መረጃን ይጭመቁ

ደረጃ 5. የኢኮዲንግ ካርታ ይፍጠሩ። እያንዳንዱን ቁምፊ ለመድረስ በዛፉ ውስጥ ይራመዱ። የአንዱን የግራ ልጅ በሄዱ ቁጥር ያ ‹0› ነው። የአንጓውን ትክክለኛ ልጅ በሄዱ ቁጥር ፣ ያ ‹1› ነው። ወደ አንድ ገጸ -ባህሪ ሲደርሱ ገጸ -ባህሪያቱን እዚያ ለመድረስ በወሰደው የ 0 እና 1 ዎች ቅደም ተከተል ያከማቹ። ይህ ቅደም ተከተል ቁምፊው በተጨመቀ ፋይል ውስጥ እንደሚቀመጥበት ነው። ገጸ -ባህሪያቱን እና ቅደም ተከተሎቻቸውን በካርታ ውስጥ ያከማቹ።

  • ለምሳሌ ፣ ከሥሩ ይጀምሩ። የግራውን ግራ ልጅ ይጎብኙ ፣ ከዚያ ያንን የመስቀለኛ ክፍል ግራ ልጅ ይጎብኙ። አሁን ያለዎት መስቀለኛ ክፍል ምንም ልጆች ስለሌሉት ገጸ -ባህሪ ላይ ደርሰዋል። ይሄ ' '. እዚህ ለመድረስ ሁለት ጊዜ ወደ ግራ ስለሄዱ ፣ ለ '' ኢንኮዲንግ '' 00 '' ነው።
  • ለዚህ ዛፍ ካርታው እንደዚህ ይመስላል ፦ {'': "00" ፣ 'a': '10' ፣ 'b': '11' ፣ 'c': '010' ፣ EOF: '011'}።
ሁፍማን ኢንኮዲንግ ደረጃ 6 ን በመጠቀም መረጃን ይጭመቁ
ሁፍማን ኢንኮዲንግ ደረጃ 6 ን በመጠቀም መረጃን ይጭመቁ

ደረጃ 6. በውጤቱ ፋይል ውስጥ ፣ እንደ አርዕስት የኢኮዲንግ ካርታውን ያካትቱ።

ይህ ፋይሉ ዲኮዲ እንዲደረግ ያስችለዋል።

ሁፍማን ኢንኮዲንግ ደረጃ 7 ን በመጠቀም መረጃን ይጭመቁ
ሁፍማን ኢንኮዲንግ ደረጃ 7 ን በመጠቀም መረጃን ይጭመቁ

ደረጃ 7. ፋይሉን ኢንኮድ ያድርጉ።

በፋይሉ ውስጥ ያለው እያንዳንዱ ቁምፊ በኮድ እንዲቀመጥ በካርታው ውስጥ ያከማቹትን የሁለትዮሽ ቅደም ተከተል ይፃፉ። አንዴ ፋይሉን ኢንኮዲንግ ከጨረሱ በኋላ EOF ን እስከመጨረሻው ማከልዎን ያረጋግጡ።

  • ለፋይሉ “ኣብ ኣብ ካብ” ኢንኮዲድ ፋይል “1011001011000101011011” ይብል።
  • ፋይሎች እንደ ባይት (8 ቢት ወይም 8 ሁለት አሃዞች) ይከማቻሉ። ሁፍማን ኢንኮዲንግ አልጎሪዝም ባለ 8-ቢት ቅርጸት ስለማይጠቀም ፣ ኢንኮዲድ የተደረጉ ፋይሎች ብዙውን ጊዜ የ 8 ብዜቶች ርዝመት የላቸውም። ቀሪዎቹ አሃዞች በ 0 ዎች ይሞላሉ። በዚህ ሁኔታ ፣ በፋይሉ መጨረሻ ላይ ሁለት 0 ዎች ይታከላሉ ፣ ይህም ሌላ ቦታ ይመስላል። ይህ ችግር ሊሆን ይችላል - ዲኮደር ማንበብን መቼ ማቆም እንዳለበት እንዴት ያውቃል? ሆኖም ፣ እኛ የፋይሉን መጨረሻ ገጸ-ባህሪ ስላካተትን ፣ ዲኮደር እዚህ ይደርሳል እና ከዚያ በኋላ የተጨመረውን ማንኛውንም ነገር ችላ ይላል።

ክፍል 2 ከ 2 ዲኮዲንግ

ሁፍማን ኢንኮዲንግ ደረጃ 8 ን በመጠቀም መረጃን ይጭመቁ
ሁፍማን ኢንኮዲንግ ደረጃ 8 ን በመጠቀም መረጃን ይጭመቁ

ደረጃ 1. በ Huffman-encoded ፋይል ውስጥ ያንብቡ።

በመጀመሪያ ፣ ራስጌውን ያንብቡ ፣ ይህም የኢኮዲንግ ካርታ መሆን አለበት። ፋይሉን ለማቀናበር የተጠቀሙበትን ዛፍ በተመሳሳይ መንገድ ዲኮዲንግ ዛፍ ለመገንባት ይህንን ይጠቀሙ። ሁለቱ ዛፎች ተመሳሳይ መሆን አለባቸው።

ሁፍማን ኢንኮዲንግ ደረጃን በመጠቀም መረጃን ይጭመቁ
ሁፍማን ኢንኮዲንግ ደረጃን በመጠቀም መረጃን ይጭመቁ

ደረጃ 2. በሁለትዮሽ ውስጥ አንድ አሃዝ በአንድ ጊዜ ያንብቡ።

በሚያነቡበት ጊዜ ዛፉን ይራመዱ - በ ‹0› ውስጥ ካነበቡ ፣ ወደሚገኙት የመስቀለኛ ክፍል ግራ ልጅ ይሂዱ ፣ እና በ ‹1› ውስጥ ካነበቡ ወደ ትክክለኛው ልጅ ይሂዱ። ቅጠል ሲደርሱ (ያለ ልጆች ያለ መስቀለኛ መንገድ) ፣ አንድ ገጸ -ባህሪ ላይ ደርሰዋል። ቁምፊውን በዲኮድ ፋይል ውስጥ ይፃፉ።

ገጸ -ባህሪያቱ በዛፉ ውስጥ በሚከማቹበት መንገድ ምክንያት ፣ የእያንዳንዱ ገጸ -ባህሪያት ኮዶች ቅድመ -ቅጥያ ንብረት አላቸው ፣ ስለዚህ የሌላ ገጸ -ባህሪ ኢንኮዲንግ መጀመሪያ ላይ የትኛውም ቁምፊ የሁለትዮሽ ኢንኮዲንግ በጭራሽ ሊከሰት አይችልም። ለእያንዳንዱ ቁምፊ ኢንኮዲንግ ሙሉ በሙሉ ልዩ ነው። ይህ ዲኮዲንግን በጣም ቀላል ያደርገዋል።

ሁፍማን ኢንኮዲንግ ደረጃ 10 ን በመጠቀም መረጃን ይጭመቁ
ሁፍማን ኢንኮዲንግ ደረጃ 10 ን በመጠቀም መረጃን ይጭመቁ

ደረጃ 3. EOF እስኪደርሱ ድረስ ይድገሙት።

እንኳን ደስ አላችሁ! ፋይሉን ዲኮዲ አድርገዋል።

የሚመከር: