If you're seeing this message, it means we're having trouble loading external resources on our website.

Եթե գտնվում ես վեբ զտիչի հետևում, խնդրում ենք համոզվել, որ *.kastatic.org և *.kasandbox.org տիրույթները հանված են արգելափակումից։

Հիմնական նյութ

Պատկերի lossless (անկորուստ) սեղմում

Մեր շրջապատում կան բազմաթիվ պատկերներ՝ հավելվածների տարբերանշաններից մինչև անիմացիոն GIF-եր(graphics interchange format, գրաֆիկայի փոխանակման ձևաչափ) և լուսանկարներ: Նկարները կարող են շատ տեղ գրավել, ուստի համակարգիչները օգտագործում են մի շարք ալգորիթմներ՝ նկարները սեղմելու համար:
Ամենապարզ նկարների համար համակարգիչները կարող են օգտագործել սեղմման ալգորիթմ, որը կոչվում է run-length encoding (վազքի երկարության կոդավորում (RLE)):

Bitmap պատկերներ

Նախքան պատկերի սեղմումը ուսումնասիրելը, տեսնենք, թե ինչպես կարող ենք պատկերը ներկայացնել երկուական համակարգով առանց որևէ սեղմման:
Ահա մի պարզ 16x16 չափի սրտի տարբերանշան.
Սպիտակ ֆոնով կարմիր սրտի տարբերանշան
Եկեք խոշորացնենք և վերևում ծածկենք ցանցը, որպեսզի հեշտ լինի հստակ տեսնել, թե որ պիքսելներն են կարմիր, իսկ որ պիքսելները՝ սպիտակ:
16x16 պիքսելների ցանց՝ սրտի տարբերանշանով: Սիրտը կազմված է կարմիր պիքսելներից, իսկ ֆոնը՝ սպիտակ պիքսելներից։
Սրտի պատկերակը կազմված է ընդամենը երկու գույնից՝ կարմիր և սպիտակ, ուստի համակարգիչը կարող է այն ներկայացնել երկուական տարբերակով՝ կարմիր պիքսելները քարտեզագրելով 1-ով, իսկ սպիտակ պիքսելները 0-ով: Սա կոչվում է bitmap(bit + map, բիթ + քարտեզ) պատկերներ, քանի որ այն քարտեզագրում է պիքսելները բիթերով:
Օգտագործելով այս մեթոդը՝ սրտի պատկերակը կներկայացվի այսպես.
0001100000110000
0011110001111000
0111111011111100
1111111111111110
1111111111111110
1111111111111110
1111111111111110
1111111111111110
0111111111111100
0011111111111000
0001111111110000
0000111111100000
0000011111000000
0000001110000000
0000000100000000
Պատկերացրեք, որ պետք է կարդաք վերը նշված բիթերը մեկին, ով պատճենում է դրանք: Որոշ ժամանակ անց կարող եք ասել «հինգ զրո»՝ «զրո զրո զրո զրո զրո»-ի փոխարեն: Դե, համակարգիչը նույնպես կարող է դա անել ...

RLE սեղմման ալգորիթմ

RLE-ի դեպքում համակարգիչը փոխարինում է յուրաքանչյուր տող թվերով, որոնք ասում են, թե քանի անընդմեջ պիքսել է նույն գույնի՝ միշտ սկսելով սպիտակ պիքսելների քանակից:
Օրինակ, առաջին շարքը պարունակում է 3 սպիտակ պիքսել, 2 կարմիր պիքսել, 5 սպիտակ պիքսել, 2 կարմիր պիքսել, ապա 4 սպիտակ պիքսել.
1100000110000
Սա կներկայացվի հետևյալ կերպ.
3,2,5,2,4
Չորրորդ շարքը հետաքրքիր է, քանի որ այն սկսվում է կարմիր պիքսելից: RLE կոդավորումը սկսվում է սպիտակ պիքսելների քանակից, ուստի այն կներկայացվի հետևյալ կերպ.
0,15,1
Ստուգի՛ր գիտելիքդ
Ահա սրտի տարբերանշանի համար bitmap-ի երկրորդ շարքը.
11110001111000
Ինչպե՞ս կներկայացվի այդ շարքը RLE-ում:
Ընտրիր ճիշտ պատասխանը։

RLE կոդավորման վերծանում

Երբ համակարգիչը օգտագործում է RLE, այն պետք է կարողանա կատարելապես վերստեղծել պատկերը սեղմված իրավիճակից, և մենք նույնպես, եթե հետևենք համակարգչի ռազմավարությանը:
Եկեք փորձենք այն: Ահա սև և սպիտակ տարբերանշանի պատկերում RLE-ի միջոցով.
4, 9, 3
4, 7, 2, 1, 2
4, 7, 2, 1, 2
4, 9, 3
4, 7, 5
4, 7, 5
5, 5, 6
0, 15, 1
1, 13, 2
Առաջին շարքը ունի 4 սպիտակ պիքսել, ապա 9 սև, ապա 3 սպիտակ պիքսել: Պատկերի տեսքը կլինի այսպիսին.
16 պիքսելից բաղկացած մի շարք, որը սկսում է 4 սպիտակից, ապա 9 սև, ապա 3 սպիտակ:
Հաջորդ շարքը ունի 4 սպիտակ պիքսել, ապա 7 սև, 2 սպիտակ, 1 սև և 2 սպիտակ: Պատկերը կլինի այսպիսին.
16 պիքսելից բաղկացած մի շարք՝ որը սկսում է 4 սպիտակից, ապա 7 սև, ապա 2 սպիտակ, ապա 1 սև և վերջում՝ 2 սպիտակ:
Երբ մենք շարունակում ենք, վերջնական պատկերակը բաժակն ու ափսեն է.
Ցանց, որն ունի 16 պիքսել լայնություն և 19 պիքսել բարձրություն, որտեղ պիքսելները լցված են սև գույնով՝ բաժակի և ափսեի տեսքով:
Ստուգի՛ր գիտելիքդ
Հետևյալը 6x6 սև և սպիտակ պատկերակի սեղմումն է՝ օգտագործելով RLE:
2,2,2
2,2,2
0,6
0,6
2,2,2
2,2,2
Ի՞նչ մաթեմատիկական նշանի է նման այդ պատկերակը:
Ընտրիր ճիշտ պատասխանը։

Սեղմման հարաբերակցությունը

Մենք պնդում էինք, որ պարզ պատկերներ պահելիս RLE-ն կարող է տարածք խնայել, բայց որքա՞ն տարածք:
Պարզելու նպատակով ես գրեցի ծրագիր՝ սև և սպիտակ բիթ-քարտեզները RLE-ով կոդավորելու համար: Այս աղյուսակը ամփոփում է երեք սրտի պատկերակների արդյունքները՝ ըստ աճման կարգի.
ՊատկերՉափերըՉսեղմվածRLE-ից հետոՏարածություն խնայողություն
Սև և սպիտակ սրտի փոքր տարբերանշան
16x1625622810.9%
Սև և սպիտակ սրտի միջին չափի տարբերանշան
32x32102453248.0%
Սև և սպիտակ սրտի մեծ չափի տարբերանշան
128x12816384289882.3%
Նաիր վերջին սյունակին՝ տարածության խնայողություններին: Նկատե՞լ ես օրինաչափություն: Մենք շատ ավելի շատ տարածք ենք խնայում, քանի որ չափը մեծանում է:
Ինչ վերաբերում է նույն չափի պատկերներին: Այս աղյուսակը ամփոփում է RLE-ով երեք մեծ պատկերակները սեղմելու արդյունքները.
ՊատկերՉափերըՉսեղմվածRLE-ից հետոՏարածություն խնայողություն
Սև և սպիտակ սրտի մեծ չափի տարբերանշան
128x12816384289882.3%
Կադուկուսի (Սուրհանդակի հեղինակության նշան) սև և սպիտակ մեծ տարբերանշան (օձեր թևերով ձողի վրա)
128x12816384829849.4%
Թագի սև և սպիտակ մեծ տարբերանշան
128x12816384873046.7%
Այժմ դու կարող ես տեսնել, թե ինչու եմ որպես օրինակ ընտրել սրտի տարբերանշանը. այն շատ լավ սեղմվում է՝ շնորհիվ իր բազմաթիվ սևերի կամ սպիտակների: RLE սեղմումը կիսով չափ կրճատում է մյուս պատկերակների չափը, բայց այն չի խնայում շատ տարածք:
Իրականում, երբեմն RLE-ն ընդհանրապես չի կարողանում որևէ տեղ խնայել...

RLE-ի սահմանները

Ի՞նչ կասես այս 16x16 պատկերակի մասին:
Տարբերանշան, որը կազմված է յուրաքանչյուր պիքսելի համար պատահական գույներից :
Եկեք խոշորացնենք, որպեսզի կարողանանք պատկերացնել յուրաքանչյուր պիքսելը.
16x16 պիքսելների ցանց: Յուրաքանչյուր պիքսել պատահական գույն է:
Այդ պատկերակի յուրաքանչյուր պիքսել տարբեր գույն է, և չկա կրկնություն:
RLE-ն ընդհանրապես չի կարող նման պատկերը սեղմել: Սա օրինակ է, որը ես պատրաստել եմ հենց այս հոդվածի համար (ստեղծվել է այս ծրագրի) կողմից, ուստի այն կարող է այդքան էլ սովորական չթվալ:
Ինչպես պարզվում է, լուսանկարները նման են այդ տարբերանշանին՝ իրական աշխարհը լի է դետալներով, որոնք ընդհատում են կրկնությունը:
Քան ակադեմիաի թիմի էջը ներառում է շան այս գեղեցիկ լուսանկարը, որը նայում է համակարգչի էկրանին.
Շան լուսանկար, որը ուշադիր նայում է համակարգչի էկրանին:
Նորմալ չափով, թվում է, թե կան նմանատիպ գույնի բլոկներ, ինչպես շան մորթին կամ համակարգչի էկրանի մոխրագույնը:
Եկեք մեծացնենք պիքսելները.
Համակարգչի էկրանին նայող շան մռութի մեծացված պիքսելացված ցանց: Փիքսելները կապույտ և նարնջագույն են, բայց դրանք կապույտի և նարնջագույնի մեծ թվով երանգներ են:
Այժմ դուք կարող եք տեսնել, որ նույնիսկ պարզ թվացող համակարգչի էկրանը նման, բայց ոչ նույն գույների հսկայական զանգված է: Փիքսելների RLE-ն շատ չի կարող նվազեցնել ֆայլի չափը:

RLE-ի կիրառությունը

RLE սեղմումը շատ տարածված տեխնիկա էր, երբ համակարգչային պատկերների մեծ մասը տարբերանշաններ էին՝ սահմանափակ գունային գունապնակներով:
Այս օրերին մեր պատկերներն ավելի բարդ են և չեն պարունակում նույն գույնի նույնքան կրկնություններ:
Որտե՞ղ է օգտագործվում RLE-ն այսօր: Ֆաքսային սարքերը դեռ օգտագործում են RLE՝ ֆաքսով ուղարկված փաստաթղթերը սեղմելու համար, քանի որ դրանք պետք է ներկայացնեն միայն սև և սպիտակ տառերը: JPEG պատկերներն իսկապես օգտագործում են RLE՝ սեղմման վերջին փուլում, բայց նրանք նախ օգտագործում են ավելի բարդ ալգորիթմ՝ լուսանկարչական մանրամասները սեղմելու համար: Մենք շուտով կուսումնասիրենք դա:

🙋🏽🙋🏻‍♀️🙋🏿‍♂️Ունե՞ք հարցեր այս թեմայի վերաբերյալ: Մենք կցանկանայինք պատասխանել, պարզապես հարցրեք ստորև ներկայացված հարցերի տարածքում:

Ուզո՞ւմ ես միանալ խոսակցությանը։

Առայժմ հրապարակումներ չկան։
Անգլերեն հասկանո՞ւմ ես: Սեղմիր այստեղ և ավելի շատ քննարկումներ կգտնես «Քան» ակադեմիայի անգլերեն կայքում: