Compression — ma’lumotni kamroq bit bilan ifodalash uchun undagi takrorlanish va statistik qonuniyatlardan foydalanish jarayonidir. Siqilgan ma’lumot disk joyi va tarmoq trafikini kamaytiradi, biroq kodlash hamda ochish uchun protsessor, xotira va vaqt talab qiladi. Natijaning xususiyati algoritmga, ma’lumot turiga, blok hajmiga va tanlangan siqish darajasiga bog‘liq.
Yo‘qotishsiz va yo‘qotishli usullar
Lossless compression ochilganda dastlabki baytlarni aynan tiklaydi. Matn, dastur fayli, ma’lumotlar bazasi sahifasi va arxiv uchun bu talab odatda majburiy. DEFLATE, LZ4, Zstandard va Brotli turli tezlik hamda nisbat muvozanatiga ega. Takroriy bo‘laklarga havola berish, belgilar chastotasidan foydalanish va lug‘at qurish keng tarqalgan tamoyillardir.
Lossy compression inson sezgisi yoki vazifa uchun kam ahamiyatli qismlarni olib tashlaydi. JPEG tasvir, AAC audio va ko‘plab video kodeklar shunday ishlaydi. Bir marta yo‘qotilgan axborot to‘liq qaytmaydi; faylni qayta-qayta lossy formatda saqlash artefaktlarni kuchaytirishi mumkin. Tibbiy, huquqiy yoki ilmiy ma’lumotda qabul qilinadigan yo‘qotish alohida talab bilan belgilanadi.
Siqilish nisbati va entropiya
Compression ratio turlicha yoziladi. asl hajm / siqilgan hajm ko‘rinishida katta qiymat yaxshiroq, siqilgan / asl ko‘rinishida esa kichik qiymat yaxshiroq bo‘ladi. Hisobot qaysi ta’rifdan foydalanganini ko‘rsatishi zarur. Oldindan siqilgan yoki shifrlangan ma’lumot statistik jihatdan tasodifiy ko‘ringani uchun odatda yana yaxshi siqilmaydi.
Matn korpusi, log yoki ustun bir xil qiymatlarni ko‘p takrorlasa, yaxshi natija beradi. Juda kichik obyektlarda sarlavha va lug‘at xarajati foydani yutib yuborishi mumkin. Katta blok ko‘proq naqsh topadi, lekin bitta kichik qiymatni o‘qish uchun butun blokni ochishga majbur qiladi.
Tizimdagi o‘rni
HTTP server Content-Encoding orqali javobni gzip yoki Brotli bilan yuborishi mumkin. Mijoz Accept-Encoding orqali qo‘llaydigan usullarni bildiradi. Rasmlar allaqachon JPEG, WebP yoki AVIF kabi siqilgan formatda bo‘lsa, ularni yana gzip qilish ko‘pincha foydasiz.
Ma’lumotlar bazasida sahifa, ustun yoki segment siqiladi. Ustunli saqlash dictionary encoding, run-length encoding va umumiy kompressorni birlashtirishi mumkin. Siqish disk I/O ni kamaytirib tezlikni oshiradi, hatto protsessor qo‘shimcha ishlasa ham. Biroq tasodifiy yangilanish siqilgan blokni qayta yozishga olib kelishi mumkin.
Xavfsizlik va boshqaruv
Maxfiy va hujumchi boshqaradigan matn bir oqimda siqilib, siqilgan hajm tashqaridan kuzatilsa, takrorlanish darajasi sir haqida signal berishi mumkin. Shu tamoyilga asoslangan yon kanal hujumlari sabab xavfsizlik tokenlarini begona kiritma bilan bir kompressiya kontekstida aralashtirmaslik kerak.
Arxivni ochishda compression bomb juda kichik fayldan ulkan natija hosil qiladi. Qabul qiluvchi ochilgan hajm, fayllar soni, rekursiya chuqurligi va vaqtga limit qo‘yadi. Algoritm tanlashda faqat eng kichik fayl emas, ochish tezligi, xotira, moslik va ish yukidagi yuqori percentil kechikishi sinovdan o‘tkaziladi.
Tasodifiy o‘qish va indeks
Siqilgan oqimning kerakli joyidan o‘qish uchun mustaqil bloklar va ularning offset indeksi zarur. Bitta ulkan uzluksiz oqim boshidan ochilsa, oxirdagi kichik recordga murojaat qimmatlashadi. Seekable format blok chegarasi, siqilmagan uzunlik va checksumni metadata da saqlaydi. Blok kichrayishi random accessni yaxshilaydi, lekin compression ratio hamda sarlavha ulushini yomonlashtirishi mumkin. Tanlov real access pattern bilan belgilanadi.
Bog‘liq tushunchalar
Lossless compression, Lossy compression, Codec, Entropy, Dictionary encoding, Archive, Content-Encoding