Հիմնական նյութ
Համակարգիչներ և համացանցը
Դասընթաց․ (Համակարգիչներ և համացանցը) > Բաժին 1
Դաս 5: Տվյալների սեղմումՏեքստի lossless (անկորուստ) սեղմում
Ինչպե՞ս կարող է համակարգիչը սեղմել տեքստը: Ահա մի հուշում. շատ մարդիկ ամեն օր սեղմում են տեքստը, երբ նրանք գրում են տեքստային հաղորդագրություններ և չեն ցանկանում շատ տպել:
Օրինակ․ եթե ես ուզում եմ ասել «Great, see you later!», կարող եմ մուտքագրել «Gr8, see u l8r!»։
Ես կրճատեցի այդ տեքստը՝ փնտրելով կրկնվող հաջորդականություններ և այդ հաջորդականությունները փոխարինելով ավելի կարճ հաջորդականություններով («8»և «u»)։
Սեղմման ալգորիթմ
Համակարգիչները կարող են սեղմել տեքստը նույն կերպ՝ գտնելով կրկնվող հաջորդականություններ և դրանք փոխարինելով ավելի կարճ պատկերումով: Ի տարբերություն մարդկանց՝ համակարգիչները կարիք չունեն անհանգստանալու, որ վերջնական արդյունքը նույնը հնչի, այնպես որ նրանք կարող են ավելի սեղմվել:
Փորձենք դա Ուիլյամ Շեքսպիրի այս մեջբերումով.
to be or not to be, that is the question
Առավել ակնհայտ կրկնվող հաջորդականություններն են «to»-ն և «be»-ն, այնպես որ համակարգիչը կարող է դրանք ներկայացնել բնօրինակ տեքստի մաս չհանդիսացող նիշով, օրինակ՝
⊜ ⬗ or not ⊜ ⬗, that is the question
Ցանկացած կրկնվող հաջորդականություն կարող է փոխարինվել, նույնիսկ եթե դա ամբողջ բառ չէ, այնպես որ համակարգիչը կարող է փոխարինել նաև «th»-ը.
⊜ ⬗ or not ⊜ ⬗, ⟡at is ⟡e question
Համակարգիչը նաև պետք է պահի իր կատարած փոխարինումների աղյուսակը, որպեսզի կարողանա վերարտադրել բնօրինակը:
փոխարինում | բնօրինակ |
---|---|
⊜ | to |
⬗ | be |
⟡ | th |
Սեղմման չափը
Ինչպես տեսնում ես, տեքստը կարող է բավականին սեղմվել․ ավելի շատ կրկնություն նշանակում է ավելի շատ սեղմում:
Որոշ տեքստեր ընդհանրապես չեն կարող սեղմվել, ինչպես այբուբենը.
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Փաստորեն, այբուբենի «սեղմված» տարբերակը կարող է ավելի շատ բայթ ներկայացնել, քան սկզբնական տարբերակը, կախված այն հանգամանքից, թե ալգորիթմը լրացուցիչ մետատվյալներ դնում է ֆայլում, թե ոչ:
🤔Կարո՞ղ ես մտածել այլ օրինակներ, որոնք չեն փոքրանա սեղմումից: Ի՞նչ կասես այն օրինակների մասին, որոնք իսկապես լավ կսեղմվեն:
Մենք համաձայն ենք այն փաստի հետ, որ սեղմումը չի երաշխավորում ավելի փոքր ֆայլ, այնուամենայնիվ ընդհանուր առմամբ, ֆայլերի մեծ մասը պարունակում է կրկնվող հաջորդականություններ և սեղմման արդյունքում շահում են:
🔍 Եթե ցանկանում ես ավելին իմանալ այս տեսակի սեղմման մասին, կարող ես ուսումնասիրել Lempel-Ziv-Welch (LZW) ալգորիթմը:
🙋🏽🙋🏻♀️🙋🏿♂️Ունե՞ք հարցեր այս թեմայի վերաբերյալ: Մենք կցանկանայինք պատասխանել, պարզապես հարցրեք ստորև ներկայացված հարցերի տարածքում:
Ուզո՞ւմ ես միանալ խոսակցությանը։
Առայժմ հրապարակումներ չկան։