Representing Data (ဒေတာကို binary နဲ့ ဖော်ပြခြင်း)
A1.2.2 - Explain how binary can be used to represent different types of data, including integers, characters, images, audio, and video.
မြန်မာလို: integer (ကိန်းပြည့်)၊ character (စာလုံး ဒါမှမဟုတ် သင်္ကေတ)၊ ပုံ၊ အသံနဲ့ ဗီဒီယို အပါအဝင် မတူတဲ့ ဒေတာ အမျိုးအစားတွေကို binary (0 နဲ့ 1 ကိုပဲ သုံးတဲ့ ဂဏန်းစနစ်) နဲ့ ဘယ်လို ဖော်ပြနိုင်သလဲ ဆိုတာကို ရှင်းပြနိုင်ရပါမယ်။
အဓိက အယူအဆများ
Characters (စာလုံးနဲ့ သင်္ကေတများ၊ A1.2.2)
Keyboard ပေါ်မှာ ရိုက်တဲ့ character တိုင်း (စာလုံး၊ ဂဏန်း၊ ပုဒ်ဖြတ် သင်္ကေတ၊ space bar တောင် ပါပါတယ်) ကို ကွန်ပျူတာထဲမှာ binary ကိန်း တစ်ခုအဖြစ် သိမ်းရပါတယ်။ Character encoding (စာလုံးနဲ့ သင်္ကေတတွေကို ဂဏန်းတွေအဖြစ် သတ်မှတ်ပေးတဲ့ စနစ်) ဆိုတာ character တွေနဲ့ ကိန်းတွေကြား အားလုံး သဘောတူ သတ်မှတ်ထားတဲ့ တွဲဖက်ပုံ ဖြစ်ပါတယ်။
ASCII (American Standard Code for Information Interchange၊ character 128 လုံးအတွက် code စနစ်)
ASCII က အဟောင်းဆုံးနဲ့ အခြေခံအကျဆုံး character encoding ဖြစ်ပါတယ်။ မတူတဲ့ character 128 လုံးကို ဖော်ပြဖို့ 7 bit (bit တစ်ခု = binary digit၊ binary ဂဏန်း တစ်လုံး) ကို သုံးပါတယ် (2^7 = 128)။
မှတ်ထားသင့်တဲ့ အဓိက ASCII တန်ဖိုးများ:
| Character | Decimal (အခြေ 10 ဂဏန်းစနစ်) | Binary (7-bit) |
|---|---|---|
'0' (ဂဏန်း သုည) | 48 | 0110000 |
'A' (စာလုံးကြီး A) | 65 | 1000001 |
'Z' (စာလုံးကြီး Z) | 90 | 1011010 |
'a' (စာလုံးသေး a) | 97 | 1100001 |
'z' (စာလုံးသေး z) | 122 | 1111010 |
| Space (ကွက်လပ်) | 32 | 0100000 |
အရေးကြီးတဲ့ ပုံစံများ:
- စာလုံးကြီး A-Z က decimal တန်ဖိုး 65-90 ကို ယူထားပါတယ်
- စာလုံးသေး a-z က decimal တန်ဖိုး 97-122 ကို ယူထားပါတယ်
- စာလုံး တစ်လုံးတည်းရဲ့ စာလုံးကြီးနဲ့ စာလုံးသေး ကွာခြားချက်က အမြဲ 32 ပါ (ဥပမာ ‘A’=65, ‘a’=97)
- ဂဏန်း character ‘0’-‘9’ က decimal တန်ဖိုး 48-57 ကို ယူထားပါတယ်
Extended ASCII (ASCII ကို 8 bit အထိ ချဲ့ထားတဲ့ ပုံစံ) က character 256 လုံးကို ဖော်ပြဖို့ 8 bit (byte (memory ကို တိုင်းတဲ့ ယူနစ်) အပြည့် 1 ခု) ကို သုံးပါတယ် (2^8 = 256)။ ထပ်တိုးလာတဲ့ character 128 လုံးထဲမှာ အသံထွက် အမှတ်အသား ပါတဲ့ စာလုံးတွေ၊ မျဉ်းဆွဲ သင်္ကေတတွေနဲ့ တခြား အထူး character တွေ ပါပါတယ်။ Extended ASCII က standard ASCII နဲ့ backward-compatible (ရှိပြီးသား အဟောင်းနဲ့ ကိုက်ညီ အလုပ်လုပ်နိုင်တဲ့) ဖြစ်ပါတယ်: ပထမ character 128 လုံးက အတူတူပဲ ဖြစ်ပါတယ်။
Unicode (ကမ္ဘာ့ စာလုံး အားလုံးအတွက် code စနစ်)
ASCII ကို English အတွက် ဒီဇိုင်းဆွဲထားလို့ တခြား စာရေးစနစ်တွေ (တရုတ်၊ အာရဗီ၊ ဟိန္ဒီ၊ ဂျပန်၊ ကိုရီးယား စသဖြင့် အများကြီး) ရဲ့ character တွေကို မဖော်ပြနိုင်ပါဘူး။ ဒီပြဿနာကို ဖြေရှင်းဖို့ Unicode ကို ဖန်တီးခဲ့ပါတယ်။
- Unicode က စာရေးစနစ် အားလုံးထဲက character တိုင်းကို ကိုယ်ပိုင် code point (character တစ်လုံးချင်းစီကို ပေးထားတဲ့ နံပါတ်) တစ်ခုစီ သတ်မှတ်ပေးပါတယ်
- Script (စာရေးစနစ်) 150 ကျော်က character 143,000 ကျော် နဲ့ emoji တွေကိုပါ ထောက်ပံ့ပါတယ်
- အဓိက encoding format (encode လုပ်ပုံ ပုံစံ) သုံးမျိုး ရှိပါတယ်:
| Encoding | Character တစ်လုံးအတွက် byte | မှတ်ချက် |
|---|---|---|
| UTF-8 | 1 ကနေ 4 byte အထိ (အရေအတွက် ပြောင်းနိုင်) | ASCII နဲ့ backward-compatible ဖြစ်တယ်၊ web ပေါ်မှာ အသုံးအများဆုံး |
| UTF-16 | 2 ဒါမှမဟုတ် 4 byte | Java နဲ့ Windows က အတွင်းပိုင်းမှာ သုံးတယ် |
| UTF-32 | 4 byte (ပုံသေ) | အရိုးရှင်းဆုံး ဖြစ်ပေမယ့် storage (ဒေတာ သိုလှောင်ရာ နေရာ) ကို အဖြုန်းဆုံး |
UTF-8 က အင်တာနက်ပေါ်မှာ အဓိက သုံးတဲ့ encoding ဖြစ်တာက:
- ASCII character တွေ (English စာ) က တစ်လုံးကို 1 byte ပဲ သုံးလို့ပါ၊ ASCII နဲ့ အတူတူပါပဲ
- တခြား script တွေက character တွေက လိုသလို 2-4 byte သုံးလို့ပါ
- ဒါကြောင့် အများအားဖြင့် English ဖြစ်တဲ့ စာတွေအတွက် storage ချွေတာပြီး ရှိသမျှ character အားလုံးကိုလည်း ထောက်ပံ့ပေးနိုင်ပါတယ်
Character တစ်လုံးကို Binary ပြောင်းခြင်း
Character တစ်လုံးကို binary ပြောင်းဖို့:
- ASCII ဇယားမှာ အဲဒီ character ရဲ့ decimal တန်ဖိုးကို ရှာပါ
- Decimal တန်ဖိုးကို binary ပြောင်းပါ
- လိုအပ်တဲ့ bit အရေအတွက် ပြည့်အောင် ရှေ့မှာ 0 တွေ ဖြည့်ပါ (extended ASCII အတွက် အများအားဖြင့် 8 bit)
ဥပမာ: ‘B’ ကို 8-bit binary ပြောင်းပါ။
- ASCII မှာ ‘B’ = 66
- 66 ကို binary နဲ့: 64 + 2 = 1000010
- 8 bit ပြည့်အောင် ဖြည့်ရင်: 01000010
Integers (ကိန်းပြည့်များ၊ A1.2.2)
ကွန်ပျူတာတွေက ကိန်းပြည့်တွေ (integer) ကို binary နဲ့ ဖော်ပြပါတယ်။ Negative number (အနုတ်ကိန်း) တွေကို ဖော်ပြဖို့ လိုမလို ပေါ်မူတည်ပြီး နည်းလမ်း အမျိုးမျိုး ရှိပါတယ်။
Unsigned Binary (အပေါင်း၊ အနုတ် လက္ခဏာ မပါတဲ့ binary)
Unsigned binary က အနုတ် မဟုတ်တဲ့ integer တွေ (0 နဲ့ အပေါင်းကိန်းတွေ) ကိုပဲ ဖော်ပြပါတယ်။ n bit နဲ့ 0 ကနေ 2^n - 1 အထိ တန်ဖိုးတွေကို ဖော်ပြနိုင်ပါတယ်။
- 8-bit unsigned: 0 ကနေ 255 အထိ
- 16-bit unsigned: 0 ကနေ 65,535 အထိ
ဒါကို Number Systems (ဂဏန်းစနစ်များ) စာမျက်နှာမှာ အသေးစိတ် ရှင်းပြထားပါတယ်။
အောက်မှာ ပါတဲ့ sign-and-magnitude နဲ့ two’s complement က ကွန်ပျူတာက သုညထက် ငယ်တဲ့ ကိန်းကို ဘယ်လို သိမ်းသလဲ ပြပါတယ်။ ဒါတွေက IB syllabus (နိုင်ငံတကာ ကျောင်းတွေမှာ သင်တဲ့ IB Computer Science သင်ရိုး) ထက် ကျော်လွန်တာကြောင့် IB စာမေးပွဲတွေမှာ မစစ်ဆေးပါဘူး။
Sign-and-Magnitude (လက္ခဏာ bit နဲ့ ပမာဏကို ခွဲသိမ်းတဲ့ နည်း)
Sign-and-magnitude က byte တစ်ခုကို အပိုင်း နှစ်ပိုင်း ခွဲပါတယ်။ ဘယ်ဘက်အစွန်ဆုံး bit (most significant bit၊ တန်ဖိုး အကြီးဆုံး bit) က sign bit (အပေါင်း၊ အနုတ် လက္ခဏာကို ပြတဲ့ bit) ဖြစ်ပါတယ်: သုညထက် ငယ်တဲ့ ကိန်းအတွက် 1 ဖြစ်ပြီး ကျန်တဲ့ အခြေအနေမှာ 0 ဖြစ်ပါတယ်။ ကျန်တဲ့ bit ခုနစ်ခုက magnitude ကို သိမ်းပါတယ်။ Magnitude ဆိုတာ ကိန်းရဲ့ လက္ခဏာကို ဖယ်လိုက်ပြီးနောက် ကျန်တဲ့ အရွယ်အစားဖြစ်ပြီး ပုံမှန် unsigned binary နဲ့ ရေးပါတယ်။
ဖြေရှင်းပြထားတဲ့ ဥပမာ: -19 ကို 8 bit နဲ့ သိမ်းပါ။
- Magnitude က 19 ဖြစ်ပြီး bit ခုနစ်ခုနဲ့ဆိုရင်
0010011ပါ (16 + 2 + 1)။ - ကိန်းက သုညထက် ငယ်လို့ sign bit က
1ပါ။ - Sign bit ကို ရှေ့ဆုံးမှာ ထည့်ပါ:
10010011။
Sign bit ကိုပဲ ပြောင်းလိုက်ရင် 00010011 ရပြီး ဒါက +19 ပါ။ Magnitude bit ခုနစ်ခုက အများဆုံး 127 အထိပဲ ရောက်နိုင်လို့ 8-bit sign-and-magnitude က -127 ကနေ +127 အထိ ဖော်ပြနိုင်ပါတယ်။
Sign-and-magnitude ရဲ့ ပြဿနာများ:
- သုညအတွက် bit ပုံစံ နှစ်မျိုး ရှိပါတယ်:
00000000နဲ့10000000(“negative zero”၊ အနုတ် သုည) ပါ။ ကိန်းတွေကို နှိုင်းယှဉ်တဲ့ circuit (လျှပ်စစ် ပတ်လမ်း) က အဲဒီ နှစ်ခုကို တူတယ်လို့ သတ်မှတ်ရပြီး ပုံစံ 256 ခုထဲက တစ်ခုကို ထပ်နေတဲ့ ပုံစံအတွက် ဖြုန်းလိုက်ရပါတယ်။ - လက္ခဏာ မတူတဲ့အခါ ပုံမှန် binary ပေါင်းနည်းက အဖြေ မှားပါတယ်။ +3 (
00000011) နဲ့ -3 (10000011) ကို bit တစ်ခုချင်း ပေါင်းရင်10000110ရပြီး ဒါကို 0 မဟုတ်ဘဲ -6 လို့ ဖတ်ရပါတယ်။ ဒါကြောင့် hardware (ကွန်ပျူတာရဲ့ ကိုင်တွယ်လို့ရတဲ့ ရုပ်ပိုင်း အစိတ်အပိုင်းများ) မှာ magnitude တွေကို နှိုင်းယှဉ်ပြီး ပေါင်းမယ့်အစား နုတ်ပေးတဲ့ အပို logic circuit လိုအပ်ပါတယ်။
Two’s Complement (အနုတ်ကိန်းတွေကို binary နဲ့ ဖော်ပြတဲ့ စံနည်း)
Two’s complement က ကွန်ပျူတာတွေမှာ signed integer (အပေါင်း၊ အနုတ် လက္ခဏာ ပါတဲ့ ကိန်းပြည့်) တွေကို ဖော်ပြဖို့ အသုံးအများဆုံး နည်းပါ။ Sign-and-magnitude ရဲ့ ပြဿနာတွေကို ဖြေရှင်းပေးပါတယ်။
- သုညအတွက် ပုံစံ တစ်မျိုးတည်း ပဲ ရှိပါတယ် (
00000000) - တွက်ချက်မှုတွေ (ပေါင်း၊ နုတ်) က လက္ခဏာကို သီးသန့် ကိုင်တွယ်တဲ့ logic မလိုဘဲ အလုပ်လုပ်ပါတယ်
- n bit နဲ့ဆိုရင် range (ဖော်ပြနိုင်တဲ့ တန်ဖိုး အပိုင်းအခြား) က -2^(n-1) ကနေ 2^(n-1) - 1 အထိ ဖြစ်ပါတယ်
- 8-bit two’s complement: -128 ကနေ +127 အထိ
Two’s complement ကို ရှာဖို့ (ကိန်း တစ်ခုကို အနုတ် ပြောင်းဖို့):
- Positive number (အပေါင်းကိန်း) ကို binary နဲ့ ရေးပါ
- Bit အားလုံးကို ပြောင်းပြန်လှန်ပါ (0 က 1 ဖြစ်၊ 1 က 0 ဖြစ်)။ ဒါက “one’s complement” (bit တွေကို ပြောင်းပြန်လှန်ထားတဲ့ ပုံစံ) ပါ
- ရလဒ်ကို 1 ပေါင်းပါ
ဥပမာ: -6 ကို 8-bit two’s complement နဲ့ ဖော်ပြပါ။
- +6 ကို binary နဲ့:
00000110 - Bit အားလုံး ပြောင်းပြန်လှန်ရင်:
11111001 - 1 ပေါင်းရင်:
11111010 - ဒါကြောင့် -6 =
11111010
Enrichment (အပို လေ့လာရန်): Binary ပြောင်းနည်းတွေကို ပိုနက်နက် ရှင်းပြထားတာနဲ့ two’s complement ဖြေရှင်းပြထားတဲ့ ဥပမာတွေအတွက် Number Systems စာမျက်နှာကို ကြည့်ပါ။
Images (ပုံများ၊ A1.2.2)
Digital ပုံတွေကို pixel (picture element၊ ပုံထဲက အစက် တစ်စက်) လို့ ခေါ်တဲ့ အရောင်ပါ အစက်လေးတွေနဲ့ ဖွဲ့စည်းထားပါတယ်။ ပုံတွေကို ဘယ်လို သိမ်းသလဲ နားလည်ဖို့ အဓိက အယူအဆ သုံးခုကို သိရပါမယ်: resolution၊ colour depth နဲ့ RGB model ပါ။
Pixel နဲ့ Resolution (ပုံထဲက pixel စုစုပေါင်း အရေအတွက်)
Pixel ဆိုတာ digital ပုံ တစ်ပုံထဲမှာ သီးသန့် ညွှန်းလို့ရတဲ့ အသေးဆုံး အစိတ်အပိုင်းပါ။ Pixel တစ်ခုစီက အရောင် တစ်ရောင်တည်း ဖြစ်ပါတယ်။
Resolution ဆိုတာ ပုံ တစ်ပုံထဲက pixel စုစုပေါင်း အရေအတွက်ဖြစ်ပြီး width x height (အကျယ် x အမြင့်) နဲ့ ဖော်ပြပါတယ်။ ဥပမာ Full HD ပုံ တစ်ပုံရဲ့ resolution က 1920 x 1080 pixel ပါ (pixel 2.07 သန်းခန့်၊ ဒါမှမဟုတ် 2.07 megapixel (pixel တစ်သန်း))။
Resolution မြင့်လေ အသေးစိတ် ပိုပါလေ ဖြစ်ပေမယ့် file size (file အရွယ်အစား) လည်း ပိုကြီးပါတယ်။
Colour Depth (pixel တစ်ခုရဲ့ အရောင်အတွက် bit အရေအတွက်)
Colour depth (bit depth လို့လည်း ခေါ်ပါတယ်) ဆိုတာ pixel တစ်ခုချင်းရဲ့ အရောင်ကို ဖော်ပြဖို့ သုံးတဲ့ bit အရေအတွက် ပါ။ Pixel တစ်ခုအတွက် bit များလေ ဖြစ်နိုင်တဲ့ အရောင် များလေ ဖြစ်ပါတယ်။
| Colour Depth | အရောင် အရေအတွက် | အသုံးများတဲ့ နေရာ |
|---|---|---|
| 1-bit | 2 (အမည်းနဲ့ အဖြူ) | ရိုးရှင်းတဲ့ icon တွေ၊ fax စာရွက်စာတမ်းတွေ |
| 8-bit | 256 | GIF ပုံတွေ၊ indexed colour (အရောင် ဇယားထဲက နံပါတ်နဲ့ ညွှန်းတဲ့ အရောင်) |
| 16-bit | 65,536 | “High colour” (အရောင် များများ) |
| 24-bit | 16,777,216 | “True colour” (သဘာဝ အရောင်အတိုင်း)၊ ဓာတ်ပုံတွေ |
| 32-bit | 16,777,216 + transparency (ဖောက်ထွင်း မြင်ရမှု) | alpha channel (pixel ရဲ့ ဖောက်ထွင်း မြင်ရမှုကို သိမ်းတဲ့ အပို အပိုင်း) ပါတဲ့ true colour |
RGB Colour Model (အနီ၊ အစိမ်း၊ အပြာ ပေါင်းပြီး အရောင် ဖော်ပြတဲ့ နည်း)
RGB model က channel (အရောင် တစ်မျိုးချင်းရဲ့ တန်ဖိုးကို သိမ်းတဲ့ အပိုင်း) သုံးခုဖြစ်တဲ့ Red (အနီ)၊ Green (အစိမ်း) နဲ့ Blue (အပြာ) ကို ပေါင်းစပ်ပြီး အရောင်တွေကို ဖော်ပြပါတယ်။ Channel တစ်ခုစီက အများအားဖြင့် 8 bit (တန်ဖိုး 0-255) သုံးလို့ စုစုပေါင်း pixel တစ်ခုကို 24 bit ရပါတယ်။
- (255, 0, 0) = အနီ သက်သက်
- (0, 255, 0) = အစိမ်း သက်သက်
- (0, 0, 255) = အပြာ သက်သက်
- (255, 255, 255) = အဖြူ
- (0, 0, 0) = အမည်း
- (255, 255, 0) = အဝါ (အနီ + အစိမ်း)
Bitmap (pixel ဇယားကွက်နဲ့ သိမ်းတဲ့ ပုံ) သိမ်းဆည်းပုံ
Bitmap ပုံ တစ်ပုံမှာ pixel တိုင်းရဲ့ အရောင် တန်ဖိုးကို တစ်ခုချင်း သီးခြားစီ သိမ်းပါတယ်။ အခြေခံအားဖြင့် ပုံက ကိန်းဂဏန်း ဇယားကွက် တစ်ခုပါပဲ။
RGB တန်ဖိုးတွေ ပါတဲ့ 4x4 pixel ပုံ ရိုးရိုး ဥပမာ တစ်ခုက ဒီမှာပါ:
ပုံထဲက စာတွေမှာ RED က အနီ၊ BLUE က အပြာ၊ GREEN က အစိမ်း၊ YELLOW က အဝါ ဖြစ်ပြီး ကွင်းထဲက ဂဏန်းတွေက အဲဒီ pixel ရဲ့ RGB တန်ဖိုးပါ။
ဒီ 4x4 ပုံမှာ pixel 16 ခု ပါပြီး pixel တစ်ခုစီကို 3 byte (24 bit) နဲ့ သိမ်းလို့ စုစုပေါင်း 16 x 3 = 48 byte ဖြစ်ပါတယ်။
ပုံ File Size တွက်နည်း
Uncompressed (မချုံ့ထားတဲ့) bitmap ပုံရဲ့ file size ကို တွက်တဲ့ ပုံသေနည်း:
File size (bits) = width x height x colour depth
ဆိုလိုတာက file size (bit နဲ့) = width (အကျယ်) x height (အမြင့်) x colour depth ပါ။
Byte ပြောင်းဖို့ 8 နဲ့ စားပါ။ Kilobyte ပြောင်းဖို့ 1,024 နဲ့ စားပါ။ Megabyte ပြောင်းဖို့ 1,024 နဲ့ ထပ်စားပါ။
Overview of compression techniques used in images, audio, and video - run-length encoding, Huffman coding, and perceptual compression.
Audio (အသံ၊ A1.2.2)
Enrichment (အပို လေ့လာရန်): Analog နဲ့ Digital: လက်တွေ့ ကမ္ဘာက အသံဟာ continuous analog signal (အဆက်မပြတ် ပြောင်းလဲနေတဲ့ analog အချက်ပြမှု) ဖြစ်ပါတယ်: လေဖိအား အပြောင်းအလဲတွေရဲ့ ချောမွေ့တဲ့ လှိုင်း တစ်ခုပါ။ ကွန်ပျူတာတွေက အဆက်မပြတ် signal တွေကို မသိမ်းနိုင်ပါဘူး၊ discrete digital value (သီးခြားစီ ဖြစ်တဲ့ digital တန်ဖိုး) တွေ (ကိန်း တစ်ခုချင်း) ကိုပဲ သိမ်းနိုင်ပါတယ်။ Analog အသံကို digital ဒေတာ ပြောင်းဖို့ sampling လိုပါတယ်: လှိုင်းကို ပုံမှန် အချိန်ခြားပြီး တိုင်းကာ တိုင်းတာမှု တစ်ခုစီကို ကိန်း တစ်ခုအဖြစ် သိမ်းတာပါ။
Sampling (အသံလှိုင်းကို ပုံမှန် အချိန်ခြားပြီး တိုင်းယူခြင်း)
Sampling ဆိုတာ analog အသံလှိုင်း တစ်ခုရဲ့ amplitude (လှိုင်းရဲ့ အမြင့်) ကို ပုံမှန် အချိန်ခြားပြီး တိုင်းတဲ့ လုပ်ငန်းစဉ်ပါ။ တိုင်းတာမှု တစ်ခုစီကို sample (နမူနာ) လို့ ခေါ်ပါတယ်။
Sample ကို မကြာခဏ ယူလေ digital ပုံစံက မူရင်း analog အသံကို ပိုတိကျအောင် ဖော်ပြလေ ဖြစ်ပေမယ့် storage နေရာလည်း ပိုလိုလေ ဖြစ်ပါတယ်။
Sample Rate (တစ်စက္ကန့်မှာ အသံ နမူနာ ယူတဲ့ အကြိမ်ရေ)
Sample rate (sampling frequency လို့လည်း ခေါ်ပါတယ်) ဆိုတာ တစ်စက္ကန့်မှာ ယူတဲ့ sample အရေအတွက် ဖြစ်ပြီး Hertz (Hz) (တစ်စက္ကန့်မှာ ဖြစ်တဲ့ အကြိမ်ရေကို တိုင်းတဲ့ ယူနစ်) နဲ့ တိုင်းပါတယ်။
| Sample Rate | အရည်အသွေး အဆင့် | အသုံးများတဲ့ နေရာ |
|---|---|---|
| 8,000 Hz | တယ်လီဖုန်း အရည်အသွေး | ဖုန်းခေါ်ဆိုမှု |
| 22,050 Hz | FM ရေဒီယို အရည်အသွေး | Podcast၊ စကားပြော |
| 44,100 Hz | CD အရည်အသွေး | သီချင်း CD၊ အရည်အသွေးမြင့် အသံ |
| 48,000 Hz | ပညာရှင်အဆင့် အရည်အသွေး | DVD၊ ပညာရှင်အဆင့် အသံသွင်းခြင်း |
| 96,000 Hz | Studio အရည်အသွေး | Resolution မြင့် အသံ |
CD အရည်အသွေး မှာ sample rate 44,100 Hz ကို သုံးပါတယ်၊ ဆိုလိုတာက အသံလှိုင်းကို တစ်စက္ကန့်တိုင်း 44,100 ကြိမ် တိုင်းပါတယ်။
Nyquist theorem (Nyquist သီအိုရီ) အရ အသံ တစ်ခုကို တိကျစွာ ဖမ်းယူဖို့ sample rate က အဲဒီ အသံထဲက အမြင့်ဆုံး frequency (တစ်စက္ကန့်မှာ လှိုင်း တုန်ခါတဲ့ အကြိမ်ရေ) ရဲ့ အနည်းဆုံး နှစ်ဆ ရှိရပါမယ်။ လူ့နားက 20,000 Hz လောက်အထိ ကြားနိုင်လို့ CD အရည်အသွေး (44,100 Hz) က ကြားနိုင်တဲ့ frequency အားလုံးကို ဖမ်းယူနိုင်ပါတယ်။
Bit Depth (sample တစ်ခုကို သိမ်းဖို့ သုံးတဲ့ bit အရေအတွက်)
Bit depth (sample size ဒါမှမဟုတ် resolution လို့လည်း ခေါ်ပါတယ်) ဆိုတာ sample တစ်ခုချင်းကို သိမ်းဖို့ သုံးတဲ့ bit အရေအတွက် ပါ။ Bit များလေ ဖြစ်နိုင်တဲ့ amplitude အဆင့် များလေ ဖြစ်ပြီး ပိုတိကျလေ ဖြစ်ပါတယ်။
| Bit Depth | Amplitude အဆင့် အရေအတွက် | အသုံးများတဲ့ နေရာ |
|---|---|---|
| 8-bit | 256 | အရည်အသွေး နိမ့်၊ အစောပိုင်း game တွေ |
| 16-bit | 65,536 | CD အရည်အသွေး |
| 24-bit | 16,777,216 | ပညာရှင်အဆင့် studio |
CD အရည်အသွေး အသံမှာ 16-bit depth ကို သုံးပါတယ်၊ ဆိုလိုတာက sample တစ်ခုစီက မတူတဲ့ amplitude အဆင့် 65,536 ခုထဲက တစ်ခု ဖြစ်နိုင်ပါတယ်။
Channels (သီးခြား အသံ လမ်းကြောင်းများ)
အသံကို အောက်ပါ ပုံစံတွေနဲ့ အသံသွင်းနိုင်ပါတယ်:
- Mono (channel 1 ခု): အသံ လမ်းကြောင်း တစ်ခုတည်း
- Stereo (channel 2 ခု): ဘယ်ဘက်နဲ့ ညာဘက် သီးခြား အသံ လမ်းကြောင်းများ
- Surround sound (ပတ်ပတ်လည်က ကြားရတဲ့ အသံ၊ 5.1 = channel 6 ခု၊ 7.1 = channel 8 ခု)
Stereo မှာ sample တိုင်းကို ဘယ်နဲ့ ညာ channel နှစ်ခုလုံးအတွက် သီးခြားစီ အသံသွင်းရလို့ mono ထက် storage နှစ်ဆ လိုပါတယ်။
PCM (Pulse Code Modulation၊ အသံကို မချုံ့ဘဲ digital အဖြစ် သိမ်းတဲ့ စံနည်း)
PCM က uncompressed digital အသံကို encode (သတ်မှတ်ထားတဲ့ code ပုံစံအဖြစ် ပြောင်း) လုပ်တဲ့ စံ နည်းလမ်းပါ။ Sample ယူထားတဲ့ မူရင်း တန်ဖိုးတွေကို တိုက်ရိုက် သိမ်းပါတယ်: sample တစ်ခုစီက အဲဒီ အချိန်လေးမှာ ရှိတဲ့ amplitude ကို ဖော်ပြတဲ့ binary ကိန်း တစ်ခုပါ။
PCM ကို အောက်ပါတို့မှာ သုံးပါတယ်:
- အသံ CD (CD-DA)
- WAV file (.wav)
- AIFF file (.aiff)
ဒါတွေက lossless (ဒေတာ မဆုံးရှုံးတဲ့) ဖြစ်ပေမယ့် file ကြီးပါတယ်။ MP3 နဲ့ AAC လို compressed (ချုံ့ထားတဲ့) format တွေက lossy compression (ဒေတာ တချို့ကို ဖယ်ပြီး ချုံ့ခြင်း) ကို သုံးပြီး အရွယ်အစားကို လျှော့ပါတယ် (Compression စာမျက်နှာကို ကြည့်ပါ)။
အသံ File Size တွက်နည်း
Uncompressed အသံ file size ကို တွက်တဲ့ ပုံသေနည်း:
File size (bits) = sample rate x bit depth x channels x duration (seconds)
ဆိုလိုတာက file size (bit နဲ့) = sample rate x bit depth x channel အရေအတွက် x ကြာချိန် (စက္ကန့်) ပါ။
Byte ပြောင်းဖို့ 8 နဲ့ စားပါ။ Megabyte ပြောင်းဖို့ 1,024 နဲ့ နှစ်ကြိမ် စားပါ။
How files store data, file systems organise storage, and audio compression (MP3 vs WAV).
Video (ဗီဒီယို၊ A1.2.2)
ဗီဒီယို ဆိုတာ ပုံ frame (ဗီဒီယိုထဲက ပုံ တစ်ပုံချင်း) တွေကို အလျင်အမြန် ဆက်တိုက် ပြပြီး လှုပ်ရှားနေသလို ထင်ရအောင် လုပ်ထားတာပါ။ Digital ဗီဒီယိုမှာ ပုံတွေနဲ့ အချိန်ကိုက် ညှိထားတဲ့ အသံ track (အသံ လမ်းကြောင်း) လည်း ပါပါတယ်။
Frame Rate (တစ်စက္ကန့်မှာ ပြတဲ့ frame အရေအတွက်)
Frame rate က တစ်စက္ကန့်မှာ ပုံ frame ဘယ်နှစ်ခု ပြသလဲ တိုင်းပြီး frames per second (fps) (တစ်စက္ကန့်အတွင်း frame အရေအတွက်) နဲ့ တိုင်းပါတယ်။
| Frame Rate | အသုံး |
|---|---|
| 24 fps | ရုပ်ရှင်ရုံ / ရုပ်ရှင် |
| 25 fps | PAL ရုပ်မြင်သံကြား (ဥရောပ၊ အာရှ) |
| 30 fps | NTSC ရုပ်မြင်သံကြား (အမေရိကတိုက်များ၊ ဂျပန်) |
| 60 fps | ချောမွေ့တဲ့ လှုပ်ရှားမှု၊ game ဆော့ခြင်း၊ အားကစား |
| 120+ fps | Slow-motion (အနှေး ပြကွက်) ရိုက်ကူးခြင်း၊ VR (virtual reality၊ headset နဲ့ ဝင်ရောက်ရတဲ့ ကွန်ပျူတာ ကမ္ဘာ) |
Frame rate မြင့်လေ လှုပ်ရှားမှု ပိုချောမွေ့လေ ဖြစ်ပေမယ့် storage နဲ့ processing power (တွက်ချက် လုပ်ဆောင်နိုင်စွမ်း) ပိုလိုပါတယ်။
ဗီဒီယို File Size တွက်နည်း
Uncompressed ဗီဒီယို file မှာ ပုံ ဒေတာနဲ့ အသံ ဒေတာ ပေါင်းပါဝင်ပါတယ်:
Video file size = (image size per frame x frame rate x duration) + audio size
ဆိုလိုတာက ဗီဒီယို file size = (frame တစ်ခုရဲ့ ပုံ အရွယ်အစား x frame rate x ကြာချိန်) + အသံ အရွယ်အစား ပါ။
ဒီမှာ frame တစ်ခုရဲ့ ပုံ အရွယ်အစား = width x height x colour depth / 8 (byte နဲ့) ပါ။
ဗီဒီယိုအတွက် Compression (file အရွယ်အစားကို ချုံ့ခြင်း) ဘာကြောင့် မရှိမဖြစ် လိုအပ်သလဲ
Uncompressed ဗီဒီယိုက အလွန်ကြီးမားတဲ့ file size တွေကို ဖြစ်စေပါတယ်။ 30 fps နဲ့ 1080p ဗီဒီယို 1 မိနစ်ကို စဉ်းစားကြည့်ပါ:
- Frame တစ်ခု: 1920 x 1080 x 24 / 8 = 6,220,800 byte (~5.93 MB)
- တစ်စက္ကန့်ကို frame 30 x 60 စက္ကန့် = frame 1,800
- စုစုပေါင်း: 6,220,800 x 1,800 = 11,197,440,000 byte (10.43 GB ခန့်)
အသံ မထည့်ရသေးခင်မှာတောင် ဗီဒီယို 1 မိနစ် စာအတွက် 10 GB ကျော် ဖြစ်ပါတယ်။ ဒီနှုန်းနဲ့ဆိုရင် 2 နာရီ ရုပ်ရှင် တစ်ကားအတွက် storage 1.2 terabyte ကျော် လိုပါလိမ့်မယ်။
ဒါကြောင့် လက်တွေ့မှာ သိမ်းထားတဲ့ ဗီဒီယိုနဲ့ stream (အင်တာနက်ကနေ တိုက်ရိုက် ပို့ပြ) လုပ်တဲ့ ဗီဒီယိုတွေကို compress လုပ်ထားပါတယ်။ H.264 နဲ့ H.265 လို ခေတ်သစ် codec (ဗီဒီယိုနဲ့ အသံကို ချုံ့ပေးပြီး ပြန်ဖြည်ပေးတဲ့ software) တွေက မြင်ရတဲ့ အရည်အသွေး ကောင်းကောင်း ထိန်းထားရင်း ဗီဒီယိုကို 100 ဆ ဒါမှမဟုတ် ပိုပြီး ချုံ့နိုင်ပါတယ်။ ဗီဒီယို compression နည်းစနစ်တွေကို Compression စာမျက်နှာမှာ လေ့လာနိုင်ပါတယ်။
ကြည့်ရန်: ဗီဒီယို အရင်းအမြစ်များ
Key video concepts explained simply - how frame rate, bitrate, and resolution affect file size and quality.
Fundamentals of digital video - pixels, frames, codecs, and containers.
အနှစ်ချုပ် ဇယား
| Data Type (ဒေတာ အမျိုးအစား) | အဓိက parameter (တွက်ဖို့ လိုတဲ့ တန်ဖိုး) များ | File Size ပုံသေနည်း |
|---|---|---|
| Image (ပုံ) | Width၊ height၊ colour depth | width x height x colour depth / 8 |
| Audio (အသံ) | Sample rate၊ bit depth၊ channels၊ duration (ကြာချိန်) | sample rate x bit depth x channels x duration / 8 |
| Video (ဗီဒီယို) | Resolution၊ colour depth၊ frame rate၊ duration | (width x height x colour depth / 8) x frame rate x duration + audio size |
ဖြေရှင်းပြထားတဲ့ ဥပမာများ
ဥပမာ 1: “HELLO” ကို ASCII နဲ့ Encode လုပ်ခြင်း
ပြဿနာ: String (စာသား) “HELLO” ကို 8-bit ASCII binary နဲ့ encode လုပ်ပါ။
အဆင့် 1: Character တစ်လုံးချင်းရဲ့ ASCII decimal တန်ဖိုးကို ရှာပါ။
| Character | ASCII Decimal |
|---|---|
| H | 72 |
| E | 69 |
| L | 76 |
| L | 76 |
| O | 79 |
အဆင့် 2: Decimal တန်ဖိုး တစ်ခုချင်းကို 8-bit binary ပြောင်းပါ။
| Character | Decimal | Binary (8-bit) |
|---|---|---|
| H | 72 | 01001000 |
| E | 69 | 01000101 |
| L | 76 | 01001100 |
| L | 76 | 01001100 |
| O | 79 | 01001111 |
Binary ပြောင်းထားတာတွေကို ပြန်စစ်ခြင်း:
- H = 72: 64 + 8 = 01001000
- E = 69: 64 + 4 + 1 = 01000101
- L = 76: 64 + 8 + 4 = 01001100
- O = 79: 64 + 8 + 4 + 2 + 1 = 01001111
String “HELLO” ကို ဒီလို သိမ်းပါတယ်: 01001000 01000101 01001100 01001100 01001111 (40 bit = 5 byte)
ဥပမာ 2: ပုံ File Size ကို တွက်ခြင်း
ပြဿနာ: 24-bit colour depth ရှိတဲ့ 1920 x 1080 ပုံ တစ်ပုံရဲ့ file size ကို တွက်ပါ။
အဆင့် 1: Pixel စုစုပေါင်း အရေအတွက်ကို တွက်ပါ။
- 1920 x 1080 = pixel 2,073,600
အဆင့် 2: Bit စုစုပေါင်း အရေအတွက်ကို တွက်ပါ။
- 2,073,600 x 24 = 49,766,400 bit
အဆင့် 3: Byte ပြောင်းပါ (8 နဲ့ စားပါ)။
- 49,766,400 / 8 = 6,220,800 byte
အဆင့် 4: Megabyte ပြောင်းပါ (1,024 နဲ့ နှစ်ကြိမ် စားပါ)။
- 6,220,800 / 1,024 = 6,075 KB
- 6,075 / 1,024 = 5.93 MB (ခန့်)
ဥပမာ 3: အသံ File Size ကို တွက်ခြင်း
ပြဿနာ: CD အရည်အသွေး stereo အသံ 3 မိနစ် (44,100 Hz၊ 16-bit၊ channel 2 ခု) ရဲ့ file size ကို တွက်ပါ။
အဆင့် 1: ကြာချိန်ကို စက္ကန့် ပြောင်းပါ။
- 3 မိနစ် = 180 စက္ကန့်
အဆင့် 2: Bit စုစုပေါင်း အရေအတွက်ကို တွက်ပါ။
- 44,100 x 16 x 2 x 180 = 254,016,000 bit
အဆင့် 3: Byte ပြောင်းပါ။
- 254,016,000 / 8 = 31,752,000 byte
အဆင့် 4: Megabyte ပြောင်းပါ။
- 31,752,000 / 1,024 = 31,007.81 KB
- 31,007.81 / 1,024 = 30.28 MB (ခန့်)
ဥပမာ 4: ဗီဒီယိုအတွက် Compression ဘာကြောင့် မရှိမဖြစ် လိုအပ်သလဲ
ပြဿနာ: 30 fps နဲ့ 1080p ဗီဒီယို 1 မိနစ်ရဲ့ uncompressed file size ကို တွက်ပြီး compression ဘာကြောင့် မရှိမဖြစ် လိုအပ်သလဲ ရှင်းပြပါ။
အဆင့် 1: Frame တစ်ခုရဲ့ အရွယ်အစားကို တွက်ပါ။
- 1920 x 1080 x 24 / 8 = frame တစ်ခုကို 6,220,800 byte
အဆင့် 2: Frame စုစုပေါင်း အရေအတွက်ကို တွက်ပါ။
- တစ်စက္ကန့်ကို frame 30 x 60 စက္ကန့် = frame 1,800
အဆင့် 3: ဗီဒီယို စုစုပေါင်း အရွယ်အစားကို တွက်ပါ (ပုံ ဒေတာ သက်သက်)။
- 6,220,800 x 1,800 = 11,197,440,000 byte
အဆင့် 4: Gigabyte ပြောင်းပါ။
- 11,197,440,000 / 1,024 / 1,024 / 1,024 = 10.43 GB (ခန့်)
နိဂုံး: Uncompressed 1080p ဗီဒီယို 1 မိနစ်စာ အတွက်တောင် 10 GB ကျော် လိုပါတယ်။ 2 နာရီ ရုပ်ရှင် တစ်ကားလုံးအတွက် 1.2 TB ကျော် လိုပါလိမ့်မယ်။ ဒါကြောင့် uncompressed ဗီဒီယိုကို သိမ်းဖို့နဲ့ ပို့လွှတ်ဖို့ လုံးဝ လက်တွေ့ မကျပါဘူး။ လက်တွေ့ ဗီဒီယိုတွေက လက်ခံနိုင်တဲ့ မြင်ရတဲ့ အရည်အသွေးကို ထိန်းထားရင်း file size ကို 100 ဆ ဒါမှမဟုတ် ပိုပြီး လျှော့ဖို့ compression (ဥပမာ H.264, H.265) ကို သုံးပါတယ်။
Quick Check (အမြန် စစ်ဆေးမေးခွန်း)
Q1. Character 'A' ရဲ့ ASCII decimal တန်ဖိုးက ဘာလဲ။
Q2. 24-bit colour ပုံ တစ်ပုံက colour channel (အနီ၊ အစိမ်း၊ အပြာ) တစ်ခုစီအတွက် bit ဘယ်နှစ်ခု သုံးသလဲ။
Q3. အသံ file တစ်ခုရဲ့ sample rate က ဘာကို တိုင်းသလဲ။
Q4. Uncompressed bitmap ပုံ တစ်ပုံရဲ့ file size ကို ဘယ်အချက်က တိုက်ရိုက် သက်ရောက်မှု မရှိ သလဲ။
Q5. Uncompressed ဗီဒီယိုကို သိမ်းဖို့နဲ့ ပို့လွှတ်ဖို့ ဘာကြောင့် လက်တွေ့ မကျသလဲ။
တစ်ဆင့်ချင်း Encode လုပ်ကြည့်ပါ
String “CAB” ကို 8-bit ASCII binary နဲ့ encode လုပ်ပါ။ Character တစ်လုံးချင်းအတွက် ASCII decimal တန်ဖိုးကို ရှာပြီး 8-bit binary ပြောင်းပါ။
| Character | ASCII Decimal | Binary (8-bit) |
|---|---|---|
| C | ||
| A | ||
| B |
Spot the Error (အမှား ရှာခြင်း)
ကျောင်းသား တစ်ယောက်က 30 စက္ကန့် stereo အသံ အပိုင်း (44,100 Hz၊ 16-bit) ရဲ့ file size ကို တွက်ပါတယ်။ အမှားပါတဲ့ line ကို ရွေးပါ၊ ပြီးရင် ပြင်နည်းကို ရွေးပါ။
Line တွေထဲမှာ Duration က ကြာချိန်၊ seconds က စက္ကန့်၊ approx က ခန့် လို့ ဆိုလိုပါတယ်။
ဒီ line အတွက် မှန်ကန်တဲ့ ပြင်နည်းကို ရွေးပါ:
Fill in the Blanks (ကွက်လပ် ဖြည့်ခြင်း)
Data representation (ကွန်ပျူတာထဲမှာ ဒေတာကို ဖော်ပြ သိမ်းဆည်းပုံ) နဲ့ ပတ်သက်တဲ့ အောက်ပါ စာကြောင်းတွေကို ဖြည့်ပါ။ စာကြောင်းတွေက English နဲ့ ဖြစ်ပြီး အစဉ်လိုက် ဒီလို ဆိုလိုပါတယ်: ASCII က ...... bit ကို သုံးပြီး မတူတဲ့ character ...... လုံးကို ဖော်ပြတယ်။ RGB colour model မှာ pixel တစ်ခုက colour channel တစ်ခုစီကို ...... bit သုံးတယ်။ ပုံ file size = width x height x ...... / 8။ အသံ file size = sample rate x bit depth x ...... x duration (ကြာချိန်) / 8။ CD အရည်အသွေး အသံက sample rate ...... Hz ကို သုံးတယ်။ (Character Encoding၊ Image Representation၊ Audio Representation က ခေါင်းစဉ်တွေဖြစ်ပြီး character encoding၊ ပုံကို ဖော်ပြပုံ၊ အသံကို ဖော်ပြပုံ လို့ ဆိုလိုပါတယ်။) စကားလုံး ကွက်လပ်တွေကို English term နဲ့ ရိုက်ပါ။
Character Encoding
==================
ASCII uses bits to represent different characters.
Image Representation
====================
In the RGB colour model, each pixel uses bits per colour channel.
Image file size = width x height x / 8
Audio Representation
====================
Audio file size = sample rate x bit depth x x duration / 8
CD-quality audio uses a sample rate of Hz. Predict the Output (output ကို ကြိုခန့်မှန်းခြင်း)
24-bit colour depth ရှိတဲ့ 800 x 600 ပုံ တစ်ပုံရဲ့ file size ကို megabyte (MB) နဲ့ တွက်ပါ။ ဒသမ နောက် 2 လုံးအထိ အနီးစပ်ဆုံး ယူပါ။ အောက်က အချက်တွေမှာ Width က အကျယ်၊ Height က အမြင့်၊ bits per pixel က pixel တစ်ခုကို bit၊ round to 2 d.p. က ဒသမ နောက် 2 လုံးအထိ အနီးစပ်ဆုံး ယူ လို့ ဆိုလိုပါတယ်။
Width: 800 pixels
Height: 600 pixels
Colour depth: 24 bits per pixel
File size = width x height x colour depth / 8
= ? bytes
= ? MB (round to 2 d.p.)File size က MB နဲ့ ဘယ်လောက်လဲ။
Practice Exercises (လေ့ကျင့်ခန်းများ)
Core (အခြေခံ အဆင့်)
-
“CODE” ကို ASCII နဲ့ Encode လုပ်ပါ။ “CODE” ထဲက character တစ်လုံးချင်းအတွက် ASCII decimal တန်ဖိုးနဲ့ 8-bit binary ပုံစံကို ပေးပါ။ (C=67, O=79, D=68, E=69)
- ပုံ file size။ 8-bit colour depth ရှိတဲ့ 640 x 480 ပုံ တစ်ပုံရဲ့ file size ကို kilobyte နဲ့ Calculate (တွက်တဲ့ အဆင့်တွေကို ပြပြီး ဂဏန်း အဖြေ ရှာပါ) လုပ်ပါ။
- အကြံပြုချက်: 640 x 480 = pixel 307,200။ 8 bit နဲ့ မြှောက်ပါ၊ byte ရဖို့ 8 နဲ့ စားပါ၊ KB ရဖို့ 1,024 နဲ့ စားပါ။
- အဓိက term တွေကို Define (အဓိပ္ပာယ်ကို တိတိကျကျ ဖော်ပြပါ) လုပ်ပါ။ အောက်ပါ တစ်ခုချင်းအတွက် စာကြောင်း တစ်ကြောင်းနဲ့ အဓိပ္ပာယ် ရေးပါ:
- Sample rate
- Bit depth
- Resolution
- Colour depth
- Frame rate
Extension (တိုးချဲ့ အဆင့်)
-
Colour depth နှိုင်းယှဉ်ချက်။ 8-bit နဲ့ 24-bit colour ပုံတွေကြား မြင်ရတဲ့ အရည်အသွေး ကွာခြားချက်ကို Compare (နှစ်ခုလုံးကို ထည့်ပြီး တူတာနဲ့ ကွာတာကို ဖော်ပြပါ) လုပ်ပါ။ တစ်ခုစီက မတူတဲ့ အရောင် ဘယ်နှစ်မျိုး ဖော်ပြနိုင်သလဲ။ ဘယ်အချိန်မှာ တစ်ခုကို နောက်တစ်ခုထက် ရွေးမလဲ။
-
Sample rate ရဲ့ trade-off (တစ်ခု ရဖို့ တစ်ခု အလျှော့ပေးရတာ) များ။ အသံရဲ့ sample rate ကို တိုးလိုက်ရင် အရည်အသွေး ဘာကြောင့် ကောင်းလာသလဲ Explain (ရှင်းပြပါ) လုပ်ပါ။ Trade-off က ဘာလဲ။ ကိုယ့်အဖြေထဲမှာ Nyquist theorem ကို ကိုးကားပါ။
-
Streaming အရည်အသွေး။ သီချင်း streaming service (အင်တာနက်ကနေ တိုက်ရိုက် နားထောင်ရတဲ့ ဝန်ဆောင်မှု) တစ်ခုက “standard quality” (ပုံမှန် အရည်အသွေး၊ 128 kbps) နဲ့ “high quality” (အရည်အသွေး မြင့်၊ 320 kbps) ကို ပေးပါတယ်။ သီချင်း တစ်ပုဒ်က 4 မိနစ် ကြာရင် အရည်အသွေး setting တစ်ခုစီအတွက် file size ကို Calculate လုပ်ပါ။
- အကြံပြုချက်: kbps = kilobits per second (တစ်စက္ကန့်ကို kilobit)။ မိနစ်ကို စက္ကန့် ပြောင်းပါ၊ bit rate (တစ်စက္ကန့်မှာ သုံးတဲ့ bit အရေအတွက်) နဲ့ မြှောက်ပါ၊ megabyte ပြောင်းပါ။
Challenge (စိန်ခေါ်မှု အဆင့်)
-
4K ဗီဒီယို သိမ်းဆည်းခြင်း။ Streaming service တစ်ခုက 60 fps နဲ့ 4K ဗီဒီယို (3840 x 2160) 1 နာရီစာကို သိမ်းပါတယ်။ Uncompressed file size ကို terabyte နဲ့ ခန့်မှန်း တွက်ပါ။ ပြီးရင် compression ဘာကြောင့် မရှိမဖြစ် လိုအပ်သလဲ Explain လုပ်ပြီး ဗီဒီယိုအတွက် lossy compression နဲ့ lossless compression (ဒေတာ မဆုံးရှုံးဘဲ ချုံ့ခြင်း) ကို Compare လုပ်ပါ: ဘယ်ဟာကို အကြံပြုမလဲ၊ ဘာကြောင့်လဲ။
-
Unicode နဲ့ ကမ္ဘာတစ်ဝှမ်း ဆက်သွယ်ရေး။ Unicode က ကမ္ဘာ့ script အားလုံးက character 143,000 ကျော်ကို ထောက်ပံ့ပါတယ်။ ASCII ရဲ့ character 128 လုံးက ကမ္ဘာတစ်ဝှမ်း ဆက်သွယ်ရေးအတွက် ဘာကြောင့် မလုံလောက်သလဲ Explain လုပ်ပါ။ UTF-8၊ UTF-16 နဲ့ UTF-32 ကို storage ချွေတာမှုနဲ့ compatibility (တခြား စနစ်တွေနဲ့ ကိုက်ညီ အလုပ်လုပ်နိုင်မှု) အရ Compare လုပ်ပါ။ Encoding တစ်ခုစီက ဘယ်အချိန်မှာ အသင့်တော်ဆုံး ဖြစ်မလဲ။
ဆက်စပ် ခေါင်းစဉ်များ
- အရင် လေ့လာထားရမယ့် ခေါင်းစဉ်များ: Number Systems: binary နဲ့ hexadecimal (အခြေ 16 ဂဏန်းစနစ်) ကို အရင် နားလည်ထားရပါမယ်
- ဆက်စပ် ခေါင်းစဉ်: Compression: compression က ဒီမှာ တွက်ခဲ့တဲ့ ကြီးမားတဲ့ file size တွေကို လျှော့ပေးပါတယ်
- ဆက်စပ် ခေါင်းစဉ်: Secondary Storage (ပါဝါ ပိတ်လည်း ဒေတာ မပျောက်တဲ့ သိုလှောင်ရာ): ဒီဒေတာတွေကို ရုပ်ပိုင်းအရ သိမ်းထားတဲ့ နေရာ
- နောက်ထပ် လေ့လာမယ့် ခေါင်းစဉ်: File Processing (file တွေကို ဖတ်ခြင်းနဲ့ ရေးခြင်း): program တွေထဲမှာ ဒေတာကို ဖတ်ခြင်းနဲ့ ရေးခြင်း