Asosiy mazmunga o'tish

4-dars: Matn, rasm, ovoz

1-blokHamma narsa bit1–4 darslar

Telefoningizda “Salom” so’zi, do’stingizning surati va sevimli qo’shig’ingiz bir xil joyda — bir xil xotirada — turadi. Xotira esa faqat sonlarni saqlaydi.

Demak matn ham, rasm ham, ovoz ham songa aylantirilgan. Bu darsda aynan qanday aylantirilishini ko’ramiz. Va nega ismingizdagi o' harfi ikki barobar joy egallashini ham bilib olasiz.

Bu darsdan keyin siz

  • harflar qanday songa aylanishini va Unicode nima uchun kerakligini bilasiz
  • nega o’zbekcha matn inglizchadan ko’proq joy egallashini tushuntira olasiz
  • rasm sonlar to’plami ekanligini va RGB qanday ishlashini bilasiz
  • diskretlash nima ekanligini va sifat nimaga bog’liqligini aytib bera olasiz

G’oya juda oddiy: har harfga bitta raqam beriladi va shu raqam saqlanadi.

1960-yillarda ASCII standarti shu tarzda tuzilgan: A = 65, B = 66, a = 97, 0 = 48. Jami 128 belgi — lotin alifbosi, raqamlar va tinish belgilari uchun yetarli edi.

Lekin dunyoda faqat lotin alifbosi emas. Kirill, arab, xitoy, hind yozuvlari — jami 100 mingdan ortiq belgi bor. 128 o’rin kamlik qildi.

UnicodeUnicode

Dunyodagi barcha yozuv tizimlarining belgilariga yagona raqam beruvchi standart. Hozirda 150 mingdan ortiq belgi ro’yxatga olingan.

Unicode har belgiga raqam beradi, lekin bu raqamni xotiraga qanday yozish — alohida masala. Eng keng tarqalgan usul UTF-8.

UTF-8 aqlli ishlaydi: keng tarqalgan belgilarga kam joy, kam uchraydiganlarga ko’p joy ajratadi.

  • oddiy lotin harflari (a, S, 7) — 1 bayt
  • kirill, arab, o’zbekcha tutuq belgisi — 2 bayt
  • xitoy, yapon belgilari — 3 bayt
  • emoji — 4 bayt

Shu sababli oʻzbek so’zi 6 belgidan iborat, lekin xotirada 7 bayt egallaydi — tutuq belgisi qo’shimcha bayt oladi.

Klaviaturadagi oddiy apostrof (') va o’zbek tilining tutuq belgisi (ʻ) — bu butunlay boshqa belgilar.

Belgi Unicode Bayt Nima uchun ishlatiladi
' U+0027 1 Ingliz tilidagi apostrof
ʻ U+02BB 2 O’zbekcha , uchun to’g’ri belgi
ʼ U+02BC 2 Tutuq belgisi: maʼno, sanʼat

Ko’rinishi deyarli bir xil, lekin kompyuter uchun bular umuman boshqa sonlar. Shu sababli o'zbek deb yozilgan so’z bilan oʻzbek deb yozilgan so’z qidiruvda bir-birini topmaydi.

Bu haqiqiy muammo: bir xil ismni ikki xil apostrof bilan yozgan ikki o’quvchi ma’lumotlar bazasida ikki xil odam bo’lib qoladi.

Rasm — kichik rangli kvadratchalar to’ri. Har kvadratcha piksel deb ataladi.

Har pikselning rangi uchta son bilan yoziladi: qizil, yashil va ko’k miqdori. Har biri 0 dan 255 gacha, ya’ni bitta bayt.

RGBRGB

Rangni uch komponent orqali ifodalash usuli: Red (qizil), Green (yashil), Blue (ko’k). Har komponent 0–255 oralig’ida.

Masalan: 255, 0, 0 — sof qizil. 0, 0, 0 — qora. 255, 255, 255 — oq. 250, 200, 40 — sariq.

Bitta piksel = 3 bayt. Telefon kamerasi 12 million piksel oladi, ya’ni siqilmagan holda 36 megabayt. Shu sababli rasmlar JPEG yoki PNG formatida siqiladi.

Tovush — havoning tebranishi. Bu tebranish uzluksiz: har lahzada aniq bir qiymati bor va lahzalar cheksiz ko’p.

Xotira esa cheksiz son saqlay olmaydi. Yechim: to’lqinni sekundda ko’p marta o’lchab, o’lchov natijalarini saqlash.

diskretlashsampling

Uzluksiz signalni ma’lum oraliqlarda o’lchab, alohida sonlarga aylantirish. Sekundiga qancha o’lchov olinsa, saqlangan shakl asl to’lqinga shuncha yaqin bo’ladi.

CD sifatida sekundiga 44 100 marta o’lchov olinadi. Telefon qo’ng’irog’ida esa faqat 8000 marta — shu sababli telefondagi ovoz “quvurdan kelayotgandek” eshitiladi.

Birinchi navbatda matn. O’z ismingizni yozib ko’ring — yoki harflari bo’lsa, ular sariq bilan belgilanadi.

Bayt kuzatuvchi

Matn yozing va har belgi nechta bayt egallayotganini ko'ring.

Bu simulyator yozgan matningizni baytlarga ajratib ko'rsatadi. Lotin harflari 1 bayt, o'zbek tilidagi tutuq belgisi va kirill harflari 2 bayt egallaydi.

JavaScript'siz sinash: ismingizni yozib, har harf uchun UTF-8 jadvalidan kod toping. A = 65, a = 97 dan boshlanadi.

Belgilar
0
Baytlar
0
Bitlar
0

    Endi rasm. 8×8 katakda biror shakl chizing va o’ngdagi sonlarga qarab turing.

    Piksel chizgich

    Rang tanlab kataklarni bo'yang va o'ngdagi sonlar qanday o'zgarishini kuzating.

    Bu simulyatorda 8×8 katakli rasm chizasiz. Har piksel uchta son bilan yoziladi: qizil, yashil va ko'k miqdori (har biri 0–255).

    JavaScript'siz sinash: daftarda 8×8 katak chizing, har katakni bo'yang va yoniga uchta son yozib chiqing. 64 katak × 3 son = 192 son.

    Rasm sonlar ko'rinishida

    Piksellar
    64
    Sonlar
    192
    Hajmi
    192 bayt

    Telefon kamerasi 12 million piksel oladi — ya'ni 36 million son. Shuning uchun rasmlar siqiladi.

    Oxirida ovoz. Slayderni chapga surib, saqlangan shakl asl to’lqindan qanday uzoqlashishini ko’ring.

    Tovushni sonlarga aylantirish

    Slayderni suring: namuna soni kamayganda saqlangan shakl asl to'lqindan uzoqlashadi.

    Bu simulyator tovush to'lqinini ko'rsatadi va uni necha marta "o'lchab" saqlash mumkinligini o'zgartirishga imkon beradi.

    JavaScript'siz sinash: daftarga silliq to'lqin chizing. Keyin uni 4 joyda o'lchab nuqta qo'ying va nuqtalarni chiziq bilan tutashtiring. Shakl asl to'lqinga o'xshamaydi. 16 nuqta bilan takrorlang.

    Sekundiga namuna
    16 Hz
    Bir daqiqa uchun
    960 son

    • Matn: har belgiga Unicode raqami beriladi, xotiraga UTF-8 bilan yoziladi
    • Lotin harflari 1 bayt, o’zbekcha tutuq belgisi 2 bayt, emoji 4 bayt oladi
    • Rasm: har piksel RGB — uchta bayt (qizil, yashil, ko’k)
    • Ovoz: uzluksiz to’lqin sekundda minglab marta o’lchanadi (diskretlash)
    • Uchtasi ham sonlar ketma-ketligi. Ma’noni fayl formati — o’qish qoidasi — beradi

    1ASCII yetarli bo'lmaganining sababi nima edi?

    Javobni ko'rish

    ASCII faqat 128 belgiga joy ajratgan — bu lotin alifbosi, raqamlar va tinish belgilari uchun yetarli edi. Dunyoda esa kirill, arab, xitoy va boshqa yozuvlar bor: jami 100 mingdan ortiq belgi. Shu sababli Unicode yaratildi.

    2oʻgʻil so'zi nechta belgidan iborat va xotirada necha bayt egallaydi?

    Javobni ko'rish

    6 ta belgi: o, ʻ, g, ʻ, i, l. Lotin harflari 1 bayt, ikkita tutuq belgisi esa 2 bayt oladi. Jami: 4 × 1 + 2 × 2 = 8 bayt.

    3100×100 pikselli siqilmagan rangli rasm necha bayt joy oladi?

    Javobni ko'rish

    Piksellar soni: 100 × 100 = 10 000. Har piksel RGB uchun 3 bayt oladi. 10 000 × 3 = 30 000 bayt, ya’ni taxminan 30 kilobayt.

    4Nega telefondagi ovoz musiqa yozuvidan pastroq sifatda eshitiladi?

    Javobni ko'rish

    Telefon aloqasida sekundiga taxminan 8000 marta o’lchov olinadi, CD sifatida esa 44 100 marta. Kam namuna — yo’qolgan tafsilotlar. Shakl umumiy holda tanilsa ham, yuqori chastotalar saqlanmaydi va ovoz “bo’g’iq” chiqadi.

    5Bir xil 3 bayt — 72, 101, 108 — nima bo'lishi mumkin?

    Javobni ko'rish

    Har narsa bo’lishi mumkin. Matn deb o’qilsa: Hel. Rang deb o’qilsa: to’q qizil-jigarrang piksel. Ovoz namunasi deb o’qilsa: uch lahzalik tebranish qiymati. Sonlar bir xil — ma’noni o’qish qoidasi beradi.

    Amaliy topshiriq

    ~30 daqiqao'rta

    Birinchi qism. Ismingiz va familiyangizni 16-lik ko’rinishda yozib chiqing. Yuqoridagi “Bayt kuzatuvchi” simulyatoridan foydalanishingiz mumkin, lekin natijani daftarga ko’chirib yozing va har baytni izohlang.

    Ikkinchi qism. Istalgan PNG rasmni hexed.it saytida oching (fayl brauzerdan chiqmaydi, hech qayerga yuklanmaydi).

    Birinchi 8 baytga qarang. Ular har doim bir xil bo’ladi: 89 50 4E 47 0D 0A 1A 0A. 50 4E 47 baytlarini matn deb o’qib ko’ring — nima chiqdi?

    Endi JPEG faylni ochib, uning birinchi baytlarini yozib oling va PNG bilan solishtiring.

    Topshiriladigan natija: ismingizning hex yozuvi, PNG va JPEG sarlavhalari, va “kompyuter fayl turini qanday biladi?” savoliga bir paragraf javob.

    Darsni belgilash uchun JavaScript kerak. Bu progressni saqlash uchun ishlatiladi — darslikning o'zi JavaScript'siz ham to'liq o'qiladi.