164
Har doim baytlarning butun
soni ishlatilganligi sababli,
har bir
skanerlash satrining oxirida foydalanilmagan ma’lumotlar bo‘lishi mumkin.
TotalBytes
har bir tasvir qatoriga qancha xotira kerakligini ko‘rsatadi.
Shundan keyin, haqiqiy dekodlash amalga oshirilib, ma’lumot larning
birinchi bayti fayldan o‘qiladi. Agar ushbu baytning ikkita eng katta bitlari
birga teng bo‘lsa, qolgan 6 bit fayldan o‘qilgan keyingi baytni necha marta
takrorlanishi kerakligini ko‘rsatadi. Agar bunday bo‘lmasa,
bu baytning
o‘zi bittaga teng takrorlanuvchi ma’lumotdir.
Keyin dekodlash buferiga
o‘tkazilgan baytlar sonini hisoblab, qator oxirigacha davom etadi. Har bir
tasvir qatorining oxirida kodlash algoritmining to‘xtashi
sharti mavjud,
ammo u bir qatlamdan ikkinchisiga o‘tishda mavjud emas. Qator to‘liq
shakllantirilganda, qator ichidagi har bir qatlamning oxirida qo‘shimcha
ma’lumotlar bo‘lishi mumkin. XSIZE va YSIZE
qiymatlari bu qoldiqni
topish uchun ishlatiladi. Agar ma’lumotlar ko‘p qatlamli bo‘lsa,
BytesPerLine har bir qatlam ichida tasvir qatori qayerda tugashini ko‘r-
satadi.
Qolgan qatorlarni dekodlashni shu usulda davom ettirish mumkin.
Faylda 8 yoki 16 qatorga yaxlitlangan qo‘shimcha qatorlar bo‘lishi ham
mumkin.
Izoh.
Har bir tasvir qatorining oxirida kodlash algoritmi to‘xtatiladi
ya’ni har bir tasvir qatori mustaqil ravishda
kodlangan deb taxmin
qilinadi. Lekin bu har doim ham shunday bo‘lmasligi (chunki ushbu
formatdagi fayllar nafaqat ZSoft korporatsiyasi tomonidan yozilgan)
mumkin. Har bir qatorning oxirini uning buferi to‘lganida to‘xtatish
yaxshiroqdir. Bu albatta, dekodlash dasturini biroz murakkablashtiradi,
lekin uni yanada moslashuvchan qiladi.