පීඑන්ජී ආකෘතිය සඳහා මූලික පෙළඹවීමක් වූයේ ජීඅයිඑෆ් සඳහා ආදේශකයක් නිර්මාණය කිරීම නොමිලේ පමණක් නොව එය සෑම අතින්ම වැඩිදියුණු කිරීමකි. එහි ප්රති As ලයක් වශයෙන්, පීඑන්ජී සම්පීඩනය මුළුමනින්ම පාඩු රහිත ය - එනම්, මුල් රූප දත්ත හරියටම ප්රතිනිර්මාණය කළ හැකිය, බිට් බිට් සඳහා - ජීඅයිඑෆ් හා බොහෝ ටීඅයිඑෆ් හි මෙන්.
PNG අදියර 2 ක සම්පීඩන ක්රියාවලියක් භාවිතා කරයි:
- පූර්ව සම්පීඩනය: පෙරීම (පුරෝකථනය)
- සම්පීඩනය: DEFLATE ( විකිපීඩියා බලන්න )
පූර්ව සම්පීඩන පියවර පෙරහන් ලෙස හැඳින්වේ, එය ප්රධාන සම්පීඩන එන්ජිමට වඩාත් කාර්යක්ෂමව ක්රියා කළ හැකි වන පරිදි රූප දත්ත ආපසු හැරවිය හැකි ලෙස පරිවර්තනය කිරීමේ ක්රමයකි.
සරල උදාහරණයක් ලෙස, 1 සිට 255 දක්වා ඒකාකාරව වැඩි වන බයිට් අනුක්රමයක් සලකා බලන්න:
1, 2, 3, 4, 5, .... 255
අනුපිළිවෙලෙහි පුනරාවර්තනයක් නොමැති බැවින්, එය ඉතා දුර්වල ලෙස හෝ කිසිසේත් සම්පීඩනය නොකරයි. නමුත් අනුක්රමයේ සුළු වෙනස් කිරීමක් - එනම්, පළමු බයිටය තනිවම තබන නමුත් පසුව එන සෑම බයිට් එකක්ම සහ එහි පූර්වගාමියා අතර වෙනස මගින් ප්රතිස්ථාපනය කිරීම - අනුක්රමය අතිශය සම්පීඩ්ය කට්ටලයක් බවට පරිවර්තනය කරයි:
1, 1, 1, 1, 1, .... 1
බයිට් කිසිවක් අතහැර දමා නැති අතර එය සම්පූර්ණයෙන්ම ආපසු හැරවිය හැකි බැවින් ඉහත පරිවර්තනය අලාභ රහිත ය. මෙම ශ්රේණියේ සම්පීඩිත ප්රමාණය බොහෝ දුරට අඩු වනු ඇත, නමුත් මුල් ශ්රේණිය තවමත් පරිපූර්ණ ලෙස ප්රතිනිර්මාණය කළ හැකිය.
තථ්ය රූප-දත්ත කලාතුරකින් එතරම් පරිපූර්ණ නොවේ, නමුත් පෙරීම මඟින් අළු පාට සහ සත්ය වර්ණ රූපවල සම්පීඩනය වැඩි දියුණු වන අතර සමහර පලත් රූප සඳහාද එය උපකාරී වේ. PNG ෆිල්ටර වර්ග පහකට සහය දක්වයි, තවද කේතයේ ඇති එක් එක් පේළිය සඳහා වෙනස් පෙරණයක් භාවිතා කිරීමට කේතන ක්රමයක් තෝරා ගත හැකිය:
ඇල්ගොරිතම බයිට් මත ක්රියා කරයි, නමුත් විශාල පික්සල් සඳහා (උදා: 24-බිට් ආර්ජීබී හෝ 64-බිට් ආර්ජීබීඒ) අනුරූප බයිට් පමණක් සැසඳේ, එනම් පික්සල් වර්ණවල රතු සංරචක හරිත හා නිල් පික්සෙල් සංරචක වලින් වෙන වෙනම හසුරුවනු ලැබේ.
එක් එක් පේළිය සඳහා හොඳම පෙරණය තෝරා ගැනීමට, හැකි සෑම සංයෝජනයක්ම පරීක්ෂා කිරීමට එන්කෝඩරයකට අවශ්ය වේ. පේළි 20 ක රූපයකට පවා ට්රිලියන 95 කට වඩා වැඩි සංයෝජනයක් අවශ්ය වන බැවින් මෙය පැහැදිලිවම කළ නොහැක්කකි. එහිදී “පරීක්ෂා කිරීම” සඳහා සම්පූර්ණ රූපය පෙරීම හා සම්පීඩනය කිරීම අවශ්ය වේ.
සම්පීඩන මට්ටම් සාමාන්යයෙන් 0 (කිසිවක්) සහ 9 (හොඳම) අතර සංඛ්යා ලෙස අර්ථ දැක්වේ. මේවා වේගය සහ ප්රමාණය අතර වෙළඳ ගනුදෙනු වලට යොමු වන අතර පේළි-පෙරහන් කොපමණ සංයෝජන අත්හදා බැලිය යුතුද යන්න සම්බන්ධ වේ. මෙම සම්පීඩන මට්ටම් සම්බන්ධයෙන් ප්රමිති නොමැත, එබැවින් රූපයේ ප්රමාණය ප්රශස්තිකරණය කිරීමේදී පෙරහන් කීයක් උත්සාහ කළ යුතුද යන්න පිළිබඳව සෑම රූප සංස්කාරකවරයකුටම තමන්ගේම ඇල්ගොරිතම තිබිය හැකිය.
සම්පීඩන මට්ටම 0 යනු පෙරහන් කිසිසේත් භාවිතා නොකරන අතර එය වේගවත් නමුත් නාස්තියකි. ඉහළ මට්ටම් වලින් අදහස් වන්නේ රූප පේළි මත වැඩි වැඩියෙන් සංයෝජන උත්සාහ කරන අතර හොඳම ඒවා පමණක් රඳවා තබා ගන්නා බවයි.
හොඳම සම්පීඩනය සඳහා ඇති සරලම ප්රවේශය නම්, එක් එක් පෙරණය සමඟ එක් එක් පේළිය වැඩි වැඩියෙන් පරීක්ෂා කිරීම, කුඩාම ප්රති result ලය සුරැකීම සහ ඊළඟ පේළිය සඳහා නැවත නැවත කිරීම ය. මෙය මුළු රූපය පස් වතාවක් පෙරීම හා සම්පීඩනය කිරීමකට සමාන වන අතර, එය බොහෝ වාරයක් සම්ප්රේෂණය කර විකේතනය වන රූපයක් සඳහා සාධාරණ වෙළඳාමක් විය හැකිය. මෙවලමෙහි සංවර්ධකයාගේ අභිමතය පරිදි අඩු සම්පීඩන අගයන් අඩු වනු ඇත.
ෆිල්ටර වලට අමතරව, සම්පීඩන මට්ටම 0 (ඩෙෆ්ලේට් නැත) සහ 9 (උපරිම ඩෙෆ්ලේට්) අතර සංඛ්යාවක් වන ස්ලිබ් සම්පීඩන මට්ටමට ද බලපායි. PNG හි ප්රධාන ප්රශස්තිකරණ ලක්ෂණය වන පෙරහන් භාවිතයට නිශ්චිත 0-9 මට්ටම් බලපාන්නේ කෙසේද යන්න තවමත් මෙවලම් සංවර්ධකයා මත රඳා පවතී.
නිගමනය වන්නේ පීඑන්ජී හි සම්පීඩන පරාමිතියක් ඇති අතර එය ගොනු ප්රමාණය ඉතා සැලකිය යුතු ලෙස අඩු කළ හැකි අතර සියල්ලම එක පික්සෙල් එකක්වත් අහිමි නොවී ය.
මුලාශ්ර:
විකිපීඩියා අතේ ගෙන යා හැකි ජාල ග්රැෆික්ස්
libpng ප්රලේඛනය 9 වන පරිච්ඡේදය - සම්පීඩනය සහ පෙරීම