การแทนข้อมูล ในคอมพิวเตอร์ ผศ. กัลยาณี บรรจงจิตร 31/12/61
ระบบเลขฐาน 2 เรียนรู้เกี่ยวกับการสร้างคอมพิวเตอร์ เพื่อให้เข้าใจถึงการนำข้อมูลข่าวสารเก็บไว้ในคอมพิวเตอร์ 31/12/61
การใช้เลขฐาน 2 แทนระบบจำนวนและอักขระ ปกติจะแทนตัวเลขและอักขระด้วยสัญลักษณ์และวิธีการต่อไปนี้ ตัวเลขฐานสิบ 10 ตัว ได้แก่ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 เช่น 583, 421 Sign/magnitude notation มีเครื่องหมายบวกและลบอยู่ด้านซ้ายของตัวเลขฐานสิบ เช่น +58, -112 Decimal notation สำหรับจำนวนจริง โดยมีจุดทศนิยมแยกระหว่างส่วนที่เป็นจำนวนเต็มและส่วนที่เป็นเศษ ตัวอักษร 26 ตัว ได้แก่ A, B, C, … , Z สำหรับข้อความ หรือ อักขระ 31/12/61
การแทนข้อมูล การแทนข้อมูล มี 2 แบบ External represent เป็นการแสดงให้มนุษย์เข้าใจ โดยการใช้แป้นพิมพ์นำเข้าข้อมูล และใช้เครื่องพิมพ์หรือจอภาพแสดงผล Internal represent เป็นการนำข้อมูลเข้าไปเก็บไว้ในหน่วยความจำของคอมพิวเตอร์ 31/12/61
External represent คอมพิวเตอร์แทนข้อมูลโดยใช้ เลขฐานสิบ Sign/magnitude notation อักขระ A, B, C, … , Z Internal represent คอมพิวเตอร์แทนข้อมูลทุกชนิด อาทิ จำนวน ข้อความ กราฟิกส์ เสียง โดยใช้ เลขฐานสอง 31/12/61
External and Internal Represent of Information 01000001 01000010 01000011 ABC ABC ABC 31/12/61
เลขฐานสิบ ค่าของเลขฐานสิบ ขึ้นกับ ค่าของตัวเลข และค่าประจำหลักของตัวเลขในรูปของกำลังของสิบ จากขวาไปซ้ายดังนี้ 100, 101, 102,… เช่น 3456 = 3 x 103 + 4 x 102 + 5 x 101 + 6 x 100 = 3456 31/12/61
เลขฐานสอง 101001 = 1 x 25 + 0 x 24 + 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20 เลขฐานสอง ประกอบด้วยเพียง เลข 0 และ 1 เรียกว่า บิต (bit) ใช้หลักการเดียวกันกับเลขฐานสิบ ค่าของเลขฐานสอง ขึ้นกับ ค่าของตัวเลข และค่าของตำแหน่งในรูปของกำลังของสอง จากขวาไปซ้ายดังนี้ 20, 21, 22,… เช่น 101001 = 1 x 25 + 0 x 24 + 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20 = 32 + 0 + 8 + 0 + 0 + 1 = 41 31/12/61
เลขฐานแปด เนื่องจากเลขฐานสองมีจำนวนบิตมาก จึงมีการนำเลขฐานแปด และเลขฐานสิบหก แทน เลขฐานสอง เลขฐานแปดประกอบด้วยเลขโดด 0, 1, 2, 3, 4, 5, 6, 7 ค่าของเลขฐานแปด ขึ้นกับ ค่าของตัวเลข และค่าของตำแหน่งในรูปของกำลังของแปด จากขวาไปซ้ายดังนี้ 80, 81, 82,… เช่น 1437 = 1 x 83 + 4 x 82 + 3 x 81 + 7 x 80 = 512 + 256 + 24 + 7 = 799 31/12/61
เลขฐานสิบหก 1DB6 = 1 x 163 + D x 162 + B x 161 + 6 x 160 เลขฐานสิบหกประกอบด้วยเลขโดดและอักษร 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F ค่าของเลขฐานสิบหก ขึ้นกับ ค่าของตัวเลข และค่าของตำแหน่งในรูปของกำลังของสิบหก จากขวาไปซ้ายดังนี้ 160, 161, 162,… เช่น 1DB6 = 1 x 163 + D x 162 + B x 161 + 6 x 160 = 1 x 163 + 13 x 162 + 11 x 161 + 6 x 160 = 4096 + 3328 + 176 + 6 = 7606 31/12/61
Binary-to-decimal algorithm ให้ผลรวมเป็นศูนย์ อ่านค่าทีละบิต ถ้าพบบิตที่เป็น 1 ให้บวกค่าประจำหลัก เข้าไปในผลรวม ถ้าพบบิตที่เป็น 0 ไม่ต้องทำอะไร เมื่ออ่านครบทุกบิต จะได้ค่าของเลขฐานสองในรูปของเลขฐานสิบ 31/12/61
ตารางแปลง เลขฐานสอง เป็น เลขฐานสิบ เลขฐาน 2 เลขฐาน 10 1 10 2 11 3 100 4 101 5 110 6 111 7 1000 8 1001 9 1010 1011 1100 12 1101 13 1110 14 1111 15 เลขฐาน 2 เลขฐาน 10 10000 16 10001 17 10010 18 10011 19 10100 20 10101 21 10110 22 10111 23 11000 24 11001 25 11010 26 11011 27 11100 28 11101 29 11110 30 11111 31 ตารางแปลง เลขฐานสอง เป็น เลขฐานสิบ 31/12/61
Decimal-to-binary algorithm ให้นำเลขฐานสิบเป็นตัวตั้ง แล้วหารด้วย 2 จะได้ผลหารและเศษ ซึ่งจะเป็นตัวเลข 1 หรือ 0 เท่านั้น บันทึกเศษไว้ แล้วนำ 2 ไปหารผลหาร จะได้ผลหารและเศษ ให้ทำเช่นนี้เรื่อยไปจนกระทั่งได้ผลหารเป็น 0 31/12/61
ตัวอย่าง แปลง 23 เป็นเลขฐาน 2 23 ÷ 2 ผลหาร = 11 เศษ = 1 11 ÷ 2 ผลหาร = 5 เศษ = 1 5 ÷ 2 ผลหาร = 2 เศษ = 1 2 ÷ 2 ผลหาร = 1 เศษ = 0 1 ÷ 2 ผลหาร = 0 เศษ = 1 23 = 111012 31/12/61
โดยทั่วไปจะจัดเก็บเป็นเลขฐาน 2 ขนาด 16, 32, 64 บิต คอมพิวเตอร์ทุกเครื่องมีค่าสูงสุดสำหรับเลขฐาน 2 ที่สามารถใช้จัดเก็บเลขจำนวนเต็ม โดยทั่วไปจะจัดเก็บเป็นเลขฐาน 2 ขนาด 16, 32, 64 บิต เมื่อผู้ผลิตคอมพิวเตอร์ได้กำหนดขนาดสูงสุดของจำนวนบิต ซึ่งจะทำให้ได้ขนาดตัวเลขที่มีค่ามากที่สุดที่สามารถจัดเก็บในคอมพิวเตอร์ ตัวอย่าง 31 ใช้เลขฐาน 2 จำนวน 5 บิต 111112 ค่าสูงสุดที่สามารถเก็บไว้ในเลขฐานสอง จำนวน 5 บิต คือ 111112 ค่าสูงสุดที่สามารถเก็บไว้ในเลขฐานสอง จำนวน 16 บิต คือ 11111111111111112 31/12/61
เลขจำนวนเต็มไม่มีเครื่องหมาย ที่มีค่ามากกว่า 65535 ค่าสูงสุดที่สามารถเก็บไว้ในเลขฐานสอง จำนวน 16 บิต คือ 11111111111111112 ซึ่งมีค่าเท่ากับ 215 + 214 + … + 22 + 21 + 20 = 65535 เลขจำนวนเต็มไม่มีเครื่องหมาย ที่มีค่ามากกว่า 65535 ไม่สามารถแทนด้วย เลขฐานสอง 16 บิต ถ้ามีการดำเนินการในคอมพิวเตอร์เพื่อให้ผลการดำเนินการมีค่ามากกว่า 65535 จะเกิดข้อผิดพลาดขึ้น เรียกว่า Arithmetic Overflow 31/12/61
แต่อย่างไรก็ตาม คอมพิวเตอร์ก็จะมีขีดจำกัดสำหรับค่าสูงสุดที่จะจัดเก็บ ผู้ผลิตสามารถออกแบบคอมพิวเตอร์ ให้ใช้เลขฐานสองมากกว่า 16 บิต เพื่อแทนเลขจำนวนเต็มที่มีขนาดใหญ่ แต่อย่างไรก็ตาม คอมพิวเตอร์ก็จะมีขีดจำกัดสำหรับค่าสูงสุดที่จะจัดเก็บ ในขณะที่ตัวเลขในทางคณิตศาสตร์จะไม่มีขีดจำกัด ซึ่งเป็นข้อแตกต่างระหว่างคณิตศาสตร์และวิทยาการคอมพิวเตอร์ 31/12/61
คณิตศาสตร์ในเลขฐานสองค่อนข้างง่าย เพราะมีแค่บิต 1 และ บิต 0 ดังนั้น กฎในการกำหนด การดำเนินการทางคณิตศาสตร์ เช่น บวก และ ลบ มีเพียง 2 x 2 = 4 แบบ ดังนี้ 1 + -- 1 + -- 10 (0 ทด1) + -- + 1 -- 31/12/61
การบวกเลขฐานสอง 8 + 13 = 01000 + 01101 01000 +01101 ---------- 01 8 + 13 = 01000 + 01101 01000 +01101 ---------- 01 01000 +01101 ---------- 10101 1 01000 +01101 ---------- 10101 01000 +01101 ---------- 1 Carry digit 31/12/61
เลขจำนวนเต็ม ที่ไม่มีเครื่องหมาย เลขจำนวนเต็ม ที่มีเครื่องหมาย เลขฐานสองสามารถแทน เลขจำนวนเต็ม ที่ไม่มีเครื่องหมาย เลขจำนวนเต็ม ที่มีเครื่องหมาย เลขที่มีทศนิยม อักขระ 31/12/61
เลขมีเครื่องหมาย (Signed numbers) แทนด้วยเลขฐานสอง และ บิตซ้ายสุดของจำนวน เพื่อแสดงเครื่องหมายบวกหรือลบ ดังนี้ 0 แทน เครื่องหมาย + 1 แทน เครื่องหมาย – ส่วนบิตที่เหลือใช้แสดงค่าของจำนวน การแทนข้อมูลแบบนี้ เรียกว่า Sign magnitude notation 31/12/61
Sign magnitude notation 1110010 = -50 1 110010 = 25 + 24 + 21 = 32 + 16 + 2 = -50 1110010 = -50 0110010 = +50 31/12/61
คอมพิวเตอร์รู้ได้อย่างไรว่า 1110010 = 25 + 24 + 21 = -50 1110010 = 25 + 24 + 21 = -50 หรือ = 26 + 25 + 24 + 21 = 114 คอมพิวเตอร์ไม่สามารถรู้ได้ การใช้งานจะขึ้นอยู่กับการกำหนดของผู้ใช้ หรือ นักเขียนโปรแกรม 31/12/61
Sign/magnitude notation มีลักษณะการใช้ค่อนข้างง่าย แต่ในระบบการทำงานของคอมพิวเตอร์ มีการนำมาใช้น้อยมาก 1000000 = -0 0000000 = +0 กำหนดให้ A = 10000000 B = 00000000 ถ้า A = B ให้ทำงาน 1 มิฉะนั้น ให้ทำงาน 2 ถ้าพิจารณาจากตัวเลข A และ B ต่างมีค่าเป็น ศูนย์ ควรจะทำงาน 1 แต่ถ้าพิจารณาจากเลขฐานสอง จะพบว่ามีค่าไม่เท่ากัน ควรจะทำงาน 2 สถานการณ์เช่นนี้ทำให้ผลการกระทำการของโปรแกรมในฮาร์ดแวร์ที่ต่างกัน ได้ผลการทำงานที่แตกต่างกัน 31/12/61
Two’s complement representation ใช้กันแพร่หลาย ช่วยแก้ปัญหา สองศูนย์ รูปแบบบิต ค่าในฐานสิบ 000 001 +1 010 +2 011 +3 100 -4 101 -3 110 -2 111 -1 31/12/61
000 111 จำนวนบวก 001 จำนวนลบ 110 010 011 101 100 จำนวนบวกเริ่มจาก 000 หมุนไปทางขวา จำนวนลบเริ่มจาก 111 หมุนไปทางซ้าย 31/12/61
Two’s complement representation มีเพียงศูนย์เดียว คือ 11 011 +101 ------- 000 (ตัด 1 ที่อยู่ซ้ายสุดที่เป็นตัวทดทิ้ง) +3 = 011 -3 = 101 Two’s complement representation มีเพียงศูนย์เดียว คือ 000….0 31/12/61
การมีศูนย์เดียวของ Two’s complement นำไปสู่อีกสถานะการณ์ จำนวนค่าที่สามารถแทนโดยใช้ n บิต คือ 2n ซึ่งมีเป็นจำนวนคู่ เช่น 3 บิต มี 23 = 8 จำนวน จำนวนแรก คือ 0 อีก 7 จำนวนเป็นตัวเลข 1 ถึง 7 ซึ่งเป็นจำนวนคี่ ซึ่งไม่สามารถแบ่ง 7 จำนวนนี้ ให้เป็นจำนวนบวกและจำนวนลบเท่าๆกัน จึงมีจำนวนบวก 3 จำนวน จำนวนลบ 4 จำนวน ดังนั้นใน Two’s complement จึงมีจำนวนลบมากกว่าจำนวนบวก 1 จำนวน 31/12/61
Two’s complement รูปแบบบิต ค่าในฐานสิบ รูปแบบบิต ค่าในฐานสิบ 00000 00001 +1 00010 +2 00011 +3 00100 +4 00101 +5 00110 +6 00111 +7 01000 +8 01001 +9 01010 +10 01011 +11 01100 +12 01101 +13 01110 +14 01111 +15 รูปแบบบิต ค่าในฐานสิบ 10000 -16 10001 -15 10010 14 10011 -13 10100 -12 10101 -11 10110 -10 10111 -9 11000 -8 11001 -7 11010 -6 11011 -5 11100 -4 11101 -3 11110 -2 11111 -1 Two’s complement 31/12/61
จำนวนเศษส่วน (Fractional numbers) จำนวนเศษส่วน เช่น 25.68 หรือ -354.27 สามารถแทนด้วยเลขฐานสอง ด้วยการใช้เทคนิคจำนวนเต็มมีเครื่องหมาย (Signed-integer techniques) โดยจะต้องเริ่มต้นที่ แปลงจำนวนดังกล่าว ให้เป็น Scientific notation +-M x B +-E โดยที่ M คือ แมนทิสสา B คือ ฐานของเอ็กโพเนนท์ (โดยทั่วไปใช้ฐาน 2) E คือ เอ็กโพเนนท์ 31/12/61
ตัวอย่าง ใช้เลขฐานสอง 16 บิต แทน +5.75 10 บิตใช้แทน แมนทิสสา ตัวอย่าง ใช้เลขฐานสอง 16 บิต แทน +5.75 10 บิตใช้แทน แมนทิสสา 6 บิตใช้แทน เอ็กโพเนนท์ ฐานของเอ็กโพเนนท์ B = 2 ทั้งแมนทิสสาและเอ็กโพเนนท์ ต่างเป็น จำนวนที่มีเครื่องหมาย และสามารถใช้ได้ทั้งวิธี sign/magnitude และ วิธี Two’s complement +-M x B +-E โดยที่ M คือ แมนทิสสา B คือ ฐานของเอ็กโพเนนท์ (โดยทั่วไปใช้ฐาน 2) E คือ เอ็กโพเนนท์ 31/12/61
เลขเศษส่วน 0.00 บิตที่อยู่ด้านขวาของจุดทศนิยม มีค่าประจำหลักคือ ในเลขฐานสอง เลขเศษส่วน 0.00 บิตที่อยู่ด้านขวาของจุดทศนิยม มีค่าประจำหลักคือ R-1, R-2, R-3, … โดยที่ R คือ ฐานของระบบจำนวนใช้เพื่อแทนจำนวน ดังนั้น ในเลขฐานสิบ ค่าประจำหลักคือ 10-1, 10-2, 10-3, … ในเลขฐานสอง ค่าประจำหลักคือ 2-1, 2-2, 2-3, … 75 2 ------ 50 1 00 0.75 = 112 112 = 1x 2-1 + 1 x 2-2 31/12/61
แสดงในรูป Scientific notation , exponent base B = 2 5 = 1012 0.75 = ½ + ¼ = 2-1 + 2-2 (0.112) 5.75 = 101.112 แสดงในรูป Scientific notation , exponent base B = 2 และ normalize ให้อยู่ในลักษณะที่บิตแรกอยู่ด้านขวาของจุดทศนิยม = 101.11 x 20 = 10.111 x 21 = 1.0111 x 22 = .10111 x 23 = (1/2 + 1/8 + 1/16 + 1/32) * 8 = 5.75 31/12/61
+.10111 x 2+3 101110000 00011 mantissa 9 บิต exponent 5 บิต 101110000 00011 เครื่องหมายของ mantissa เครื่องหมายของ exponent 31/12/61
0.3125 x 2 ---------- 0 6250 1 2500 0 5000 X 2 1 0000 -0.3125 = -.0101 = -.0101 x 20 = -.101 x 2-1 -.101 x 2-1 mantissa 9 บิต exponent 5 บิต 1 101000000 00001 เครื่องหมายของ mantissa เครื่องหมายของ exponent 31/12/61
การแทนข้อความในคอมพิวเตอร์ เมื่อมีการป้อนอักขระต่างๆเข้าไปในคอมพิวเตอร์ จะมีการแปลงให้เป็นเลขฐานสองที่ไม่ซ้ำกัน เรียกว่า code mapping จากนั้นจะนำเลขฐานสองไปเก็บไว้ในหน่วยความจำ A 00000001 B 00000010 … Z 00011010 @ 10000000 ! 10000001 BAD! = 00000010 00000001 00000101 10000001 31/12/61
คอมพิวเตอร์แต่ละรุ่นอาจมีการแปลงอักขระเป็นตัวเลขที่แตกต่างกัน คอมพิวเตอร์ A คอมพิวเตอร์ B A 00000001 B 00000010 … Z 00011010 @ 10000000 ! 10000001 A 10000001 B 10000010 … Z 10011010 @ 00100000 ! 01100001 A BAD! = 00000010 00000001 00000101 10000001 B BAD! = 10000010 10000001 10000101 01100001 31/12/61
ASCII ใช้ 8 บิตในการแทนอักขระ 1 ตัว ดังนั้น เพื่อความสะดวกในการแลกเปลี่ยนข้อมูลข่าวสาร อาทิ เวิร์ดโพรเซสซิง จดหมายอิเล็กทรอนิส์ ระหว่างคอมพิวเตอร์แต่ละเครื่อง จึงควรใช้ code mapping ชุดที่เหมือนกัน ปัจจุบัน รหัสที่ใช้แทนอักขระภายในระบบคอมพิวเตอร์ ที่นิยมใช้กันอย่างแพร่หลายที่สุด และ เป็นมาตรฐานสากล คือ ASCII ย่อมาจาก American Standard Code ASCII ใช้ 8 บิตในการแทนอักขระ 1 ตัว สามารถเข้ารหัสได้จำนวน 28 = 256 แบบ จึงสามารถแทนอักขระที่แตกต่างกัน 256 อักขระ 31/12/61
อักขระที่แตกต่างกัน 256 อักขระถูกแทนด้วยรหัสที่ 0 ถึง 255 อักขระลำดับที่ 0-31,127-255 เป็นอักขระที่ไม่สามารถพิมพ์ออกมาได้ อักขระลำดับที่ 32-126 เป็นอักขระที่สามารถพิมพ์ได้ อักขระลำดับที่ 127-255 เป็นอักขระที่ขึ้นกับภาษาที่ใช้งาน 31/12/61
31/12/61
31/12/61
31/12/61
31/12/61
31/12/61
31/12/61
31/12/61
UNICODE ใช้เลขฐานสองจำนวน 16 บิต แทนอักขระแต่ละตัว ปัจจุบันได้มีการใช้รหัสชนิดใหม่ เรียกว่า UNICODE ซึ่งเป็นที่นิยมอย่างรวดเร็วและแพร่หลาย เพราะสามารถแทนอักขระได้จำนวนมากกว่า ASCII UNICODE ใช้เลขฐานสองจำนวน 16 บิต แทนอักขระแต่ละตัว จึงสามารถแทนอักขระที่แตกต่างกันได้ได้ 216 = 65536 อักขระ ซึ่งจะทำให้ระบบคอมพิวเตอร์ที่ใช้ UNICODE สามารถครอบคลุมอักขระต่างๆที่มีอยู่ทั่วโลก อาทิ ไทย จีน รัสเซีย ลาว กรีก เป็นต้น มาตรฐาน UNICODE แสดงไว้ที่ www.unicode.org 31/12/61
31/12/61
31/12/61
การแทนเสียงและภาพ ในช่วง 30-40 ปี แรกที่มีการใช้คอมพิวเตอร์ การใช้งานส่วนใหญ่จะเกี่ยวข้องกับข้อมูลที่มีลักษณะเป็นตัวอักษร อาทิ เวิร์ดโพรเซสเซอร์ สเปรดชีต ปัจุบัน เสียงและภาพได้มีความสำคัญมากขึ้น เนื่องจากความนิยมในการใช้เว็บ การเข้ารหัสดนตรี การจัดเก็บภาพดิจิทัล ซีดีและดีวีดีภาพยนตร์ แฟ้ม MP3 การส่งภาพผ่านอีเมล์ 31/12/61
ในการแทนค่าแบบดิจิทัล จะเลือกค่าจากเซ็ตจำกัด เสียงเป็นข้อมูลอนาลอก ซึ่งแตกต่างจากรูปแบบดิจิทัลที่ใช้แสดงข้อความและตัวเลข ในการแทนค่าแบบดิจิทัล จะเลือกค่าจากเซ็ตจำกัด อาทิ {A, B, C,…, Z} หรือ {0, 1, 2, 3, …, MAX} ในการแทนค่าแบบอนาลอก จะใช้ค่าใดๆก็ได้ ตัวอย่าง โทนเสียงจะเป็นคลื่นที่ต่อเนื่องกัน มีส่วนประกอบคือ แอมพลิจูด (ความสูง) ของคลื่นใช้วัดความดังของเสียง คาบของคลื่นเป็นเวลาที่ใช้สำหรับ 1วงรอบ ความถี่ (f) เป็นจำนวนวงรอบต่อหน่วยเวลา (รอบ/วินาที หรือ เฮิรทซ์) 31/12/61
31/12/61
Period, T 31/12/61
ซึ่งแต่ละค่าจะถูกเข้ารหัสเป็นเลขฐานสอง ในการจัดเก็บคลื่นเสียงไว้ในคอมพิวเตอร์ จะต้องแปลงสัญญาณอนาล็อกให้เป็นดิจิทัลและใช้เทคนิคสุ่มตัวอย่าง ในช่วงเวลาที่กำหนดจะวัดและจัดเก็บแอมพลิจูดของสัญญาณเป็นค่าจำนวนเต็ม ดังนั้นคลื่นเสียงในคอมพิวเตอร์จึงถูกแทนในรูปดิจิทัลเป็นชุดลำดับค่าของแอมพลิจูดที่สุ่มมา ตัวอย่าง จากรูป สัญญาณจะถูกจัดเก็บในคอมพิวเตอร์เป็นชุดของเลขจำนวนเต็มที่มีเครื่องหมาย ได้แก่ 3, 7, 7, 5, 0, -3, - 6, -6, …, ซึ่งแต่ละค่าจะถูกเข้ารหัสเป็นเลขฐานสอง 3 7 5 -3 -6 31/12/61
3 7 5 -3 -6 เมื่อนำตัวเลขที่จัดเก็บไว้ในคอมพิวเตอร์มาสร้างเป็นคลื่นอนาล็อกจะได้ดังนี้ 3 7 5 -3 -6 31/12/61
เสียงที่ได้จะใกล้เคียงความเป็นจริงขึ้นอยู่กับตัวเลขที่จัดเก็บไว้ ซึ่งจะขึ้นอยู่กับ 2 ปัจจัย ที่เป็นอิสระต่อกัน คือ อัตราการสุ่มตัวอย่าง (sampling rate) ความลึกของบิต (bit depth) 31/12/61
อัตราการสุ่มตัวอย่าง (sampling rate) ใช้วัดว่า มีการสุ่มตัวอย่างแอมพลิจูดของคลื่นเสียงกี่ครั้งต่อวินาที ยิ่งสุ่มบ่อย ยิ่งมีความถูกต้องสูง โดยทั่วไปแล้ว อัตราการสุ่ม R ตัวอย่าง/วินาทีผลิตความถี่ได้ถึง R/2 เฮริทซ์ หูมนุษย์สามารถได้ยินเสียงได้ถึง 20000 เฮริทซ์ ดังนั้นจึงต้องมีการสุ่มอย่างน้อย 40000 ตัวอย่าง เพื่อสามารถตรวจจับเสียงที่มนุษย์สามารถได้ยินได้ทุกความถี่ 31/12/61
ความลึกของบิต (bit depth) เป็นจำนวนบิตที่ใช้ในการเข้ารหัสแต่ละตัวอย่าง ในระยะแรก ใช้มาตรฐาน 8 บิตต่อตัวอย่าง ซึ่งสามารถผลิตแอมพลิจูดได้ 256 ระดับ ต่อมาเมื่อระบบเสียงมีการพัฒนามากขึ้น ทำให้ต้องเพิ่มจำนวนบิตเป็น 16 บิตหรือ 24 บิตต่อตัวอย่าง ซึ่งสามารถผลิตระดับแอมพลิจูดที่แตกต่างกันได้ถึง 65,536 หรือ 16,777,216 ระดับ 31/12/61
ปัจจุบันมีการเข้ารหัสเสียงหลายรูปแบบ อาทิ WAV, AU, Quicktime, RealAudio MP3 (ชื่อย่อของ MPEG-1) เป็นการเข้ารหัสดิจิทัลที่นิยมมากที่สุดในปัจจุบัน เป็นการเข้ารหัสเสียงระดับ 3 ซึ่งเป็นมาตรฐานการเข้ารหัสที่ให้กำเนิดโดย Motion Picture Experts Group (MPEG), คณะกรรมการขององค์กรกำหนดมาตรฐานระหว่างประเทศ (International Standards Organization (ISO) ) ของสหประชาชาติ สัญญาณเสียงของตัวอย่าง MP3 มีอัตรา 44100 ตัวอย่างต่อวินาที โดยใช้ 16 บิตต่อตัวอย่าง ทำให้สามารถผลิตเสียงที่มีคุณภาพสูงได้ อาทิ ดนตรี rock, opera, classic www.chiariglione.org/mpeg 31/12/61
www.chiariglione.org/mpeg 31/12/61
รูปภาพเป็นข้อมูลอนาล็อก แต่สามารถจัดเก็บในคอมพิวเตอร์ไว้ในรูปแบบเลขฐานสอง การจัดเก็บรูปภาพ ทำโดยการสุ่มตัวอย่างเก็บค่าความเข้มของสีที่ต่อเนื่องกันในรูปแบบดิจิทัล กระบวนการสุ่มตัวอย่าง เรียกว่า การสแกน ซึ่งทำโดย การวัดค่าความเข้มของจุดต่างๆบนรูปภาพ เรียกจุดนั้นว่า พิกเซล (Pixel) ในการจัดเก็บรูปภาพ ยิ่งเก็บจำนวนพิกเซลมาก ยิ่งทำให้การเข้ารหัสรูปภาพเหมือนจริง โดยทั่วไปสายตามนุษย์ไม่สามารถมองเห็นสิ่งที่อยู่ชิดกันน้อยกว่า 0.1 มิลลิเมตรได้ ถ้าพิกเซลหรือจุดอยู่ชิดกันมากๆ มนุษย์จะมองเห็นเป็นรูปภาพได้ 31/12/61
คำว่า "พิกเซล" (pixel) มาจากคำว่า "พิกเจอร์" (picture) ที่แปลว่า รูปภาพ เเละ "เอเลเมนต์" (element) ที่แปลว่า องค์ประกอบ จุดภาพ หรือ พิกเซล (pixel) เป็นหน่วยพื้นฐานของภาพ คือจุดภาพบนจอแสดงผล หรือ จุดภาพในรูปภาพที่รวมกันเป็นภาพขึ้น โดยภาพหนึ่งๆ จะประกอบไปด้วยจุดภาพหรือพิกเซลมากมาย และเเต่ละภาพที่สร้างขึ้นจะมีความหนาเเน่นของจุดภาพ หรือบางครั้งแทนว่าความละเอียด(ความคมชัด) ที่เเตกต่างกันไป จึงใช้ในการบอกคุณสมบัติของภาพ จอภาพ หรือ อุปกรณ์แสดงผลภาพได้ จอภาพที่มีจำนวนพิกเซลมาก จะมีความละเอียดของภาพมาก โดยมากจะระบุจำนวนพิกเซลแนวนอน x แนวตั้ง เช่น 1366 x 768 พิกเซล 31/12/61
ภาพที่ถ่ายโดยกล้องคุณภาพสูง ประกอบด้วย 3-5 ล้านพิกเซล สำหรับภาพขนาด 3 นิ้ว x 5 นิ้ว ประกอบด้วย 250,000 พิกเซลต่อตารางนิ้ว หรือ 500 พิกเซลต่อ 1 นิ้ว ดังนั้น แต่ละพิกเซลจึงอยู่ห่างกันประมาณ 1/500 นิ้ว หรือ 0.05 มิลลิเมตร 31/12/61
31/12/61
สมมติต้องการจัดเก็บภาพขาวดำ วิธีง่ายที่สุด คือ แทนพิกเซลขาวด้วยบิต 0 และแทนพิกเซลดำด้วย 1 จะได้ภาพที่มี 2 สี คือ ขาวและดำ แต่ถ้าใช้ 3 บิต เก็บสีของ 1 พิกเซล จะได้สีขาวดำที่เป็น gray scale ประกอบด้วย 23 = 8 โทนสี จากระดับ 0 ถึง 7 7 6 5 4 3 2 1 31/12/61
แต่ถ้าใช้ 8 บิต เก็บสีของ 1 พิกเซล จะได้สีขาวดำที่เป็น gray scale ประกอบด้วย 28 = 256 โทนสี จากระดับ 0 ถึง 255 31/12/61
แล้วเลื่อนไปแถวถัดไป การเข้ารหัสภาพเพื่อจัดเก็บไว้ในคอมพิวเตอร์ จึงทำได้โดยแปลงให้เป็นชุดลำดับของตัวเลขที่เป็นค่าพิกเซล แล้วเก็บทีละแถว จากซ้ายไปขวา แล้วเลื่อนไปแถวถัดไป แต่ละพิกเซลเข้ารหัสเป็นเลขฐานสองที่ไม่มีเครื่องหมายเพื่อแทนความเข้มของ gray scale การแทนภาพในรูปแบบนี้ เรียกว่า raster graphics ซึ่งถูกนำไปใช้โดย กราฟิกส์มาตรฐานต่างๆ อาทิ JPEG (Joint Photographer Experts Group) GIF (Graphics Interchange Format) BMP (Bit Map Graphics) 31/12/61
รูปแบบทั่วไปที่ใช้จัดเก็บภาพสี คือ RBG encoding scheme ในการจัดเก็บภาพสี จะใช้วิธีเข้ารหัสเป็นเซ็ตของจุด และต้องเก็บข้อมูลของแต่ละพิกเซลมากกว่าภาพขาวดำ รูปแบบทั่วไปที่ใช้จัดเก็บภาพสี คือ RBG encoding scheme (RBG : Red-Green-Blue) สีของแต่ละพิกเซล ใช้ 3 สีในการจัดเก็บ คือ แดง เขียว น้ำเงิน แต่ละสีใช้ 1 ไบต์ (8 บิต) ในการจัดเก็บ ซึ่งสามารถแทนระดับความเข้มของสีตั้งแต่ 0-255 โดย 0 หมายถึง ไม่มีส่วนผสมของสีนั้นเลย และ 255 หมายถึงมีส่วนผสมของสีนั้นมากที่สุด 31/12/61
31/12/61
การใช้ 3 ไบต์จัดเก็บสีของ 1 พิกเซล ทำให้ ได้โทนสี 224 = 16,777,216 = 16.7 ล้านสี การเข้ารหัสสีโดยใช้ 24 บิต เรียกว่า True-color เพราะได้สีใกล้เคียงของจริงมากที่สุด แต่ต้องสิ้นเปลืองหน่วยความจำมาก จึงมีการใช้เทคนิคเพื่อให้สิ้นเปลืองหน่วยความจำน้อยลง เรียกว่า color pallet โดยใช้เพียง 8 บิตจัดเตรียมสีไว้ 256 สี ช่วยลดการใช้หน่วยความจำได้เกือบ 67% 31/12/61
หนังสือนิยาย ขนาด 300 หน้า ประกอบด้วย 300,000 คำ แต่ละคำมีเฉลี่ย 5 อักขระ ใช้เลขฐานสอง 100000 x 5 x 8 = 4,000,000 บิต เสียงที่บันทึกไว้ 1 นาที โดยใช้มาตรฐาน MP3 ด้วยตัวอย่าง 44,100 ครั้งต่อวินาที ใช้ bit depth 16 บิตต่อตัวอย่าง ใช้เลขฐานสอง 44,100 x 16 x 60 = 42 ล้านบิต ภาพที่ถ่ายด้วยกล้องดิจิทัลขนาด 3 ล้านพิกเซลจัดเก็บแบบ 24 บิต True color raster graphic ใช้เลขฐานสอง = 3,000,000 x 24 = 72 ล้านบิต 31/12/61
จากการที่ต้องใช้เนื้อที่จำนวนมากในการจัดเก็บข้อมูลอนาล็อก อาทิ เสียง ภาพ วิดีโอ จึงได้มีการนำเทคนิคการบีบอัดข้อมูล (data compression) มาใช้ เพื่อลดการใช้เนื้อที่หน่วยความจำ เทคนิคการบีบอัดข้อมูลที่สามารถใช้ได้กับข้อมูลเกือบทุกชนิด คือ run-length encoding วิธีนี้ ทำโดยแทนชุดลำดับค่าที่เหมือนกันให้เหลือเพียง 2 ค่า V1, V2, ….,Vn แทนด้วย V, n ทั้ง V และ n ต่างใช้เนื้อที่เพียง 1 ไบต์ 255 255 255 0 255 0 0 255 255 255 0 0 (255, 3) (0, 1) (255, 1) (0, 2)(255, 6)(0, 2) 12 ไบต์ 15 ไบต์ 31/12/61