"ไม่ต้องมีเวทมนตร์ ไม่ต้องไปหาแม่มด แค่คุณทำสิ่งที่โลกระลึกถึงตลอดกาล แค่นั้นคุณก็เป็นอมตะแล้ว"
รู้ไว้ใช่ว่า มือถือจอยิ่งชัด ยิ่งมีพื้นที่เหลือให้ใช้น้อย
19 Mar 2014 01:24   [9638 views]

ว่างเว้นกับการรีวิวอาหารสักแป๊บนึงนะครับ ช่วงนี้ไม่ค่อยมีอะไรแปลกๆมาให้กินเลย กลับมาเรื่องไอทีกันบ้างละกัน

วันนี้จะมาว่ากันเรื่อง "จอชัดๆกับการซัดเนื้อที่มือถือ"

คำเตือน: Blog วันนี้ค่อนข้างเนื้อหาค่อนข้าง Geek หากอ่านเข้าใจกรุณาชม หากอ่านไม่เข้าใจ .... ห้ามด่านะ เดี๋ยวเก๊าร้องห้ายยยยย

นับวันมือถือจอก็ชัดขึ้นเรื่อยๆ ชัดเจนแบบ ไม่รู้จะชัดไปไหน

แล้วรู้หรือไม่ว่า การที่มือถือจอชัดๆนี่แหละ เป็นสาเหตุโดยตรงที่ทำให้เนื้อที่ในมือถือเหลือให้มนุษย์ใช้น้อยลง

เคยหรือไม่ ซื้อมือถือ 16GB มา อุ้ย ตาย เหลือเนื้อที่ให้ใช้ไม่ถึง 8GB !

วันนี้เราจะมาพูดถึงสาเหตุกัน

กว่าครึ่งของขนาดแอพฯ เป็น "ภาพ"

ไม่พูดพร่ำทำเพลง เวลาน้อย ลงเนื้อหาเลยละกัน ! รู้หรือไม่ว่าแอพฯทั้งหลายที่เราโหลดๆกันเนี่ย โดยเฉลี่ยแล้ว เกินครึ่งจะเป็น "ภาพ" !

อะไรคือภาพ?

ก็คือภาพอ่ะครับ ...

#โดนต่อย (*゚∀゚)=3

อ่ะๆ ตอบดีๆ ภาษาโปรแกรมเมอร์เราจะเรียกส่วนนี้ว่า Resources กันครับ

ยุคสมัยนี้ หากโปรแกรมหรือเกมกราฟฟิกส์ไม่สวย คนก็ไม่ใช้กัน เราเลยต้องยัดภาพโน่นภาพนี่ลงไปเพื่อเสริมเติมแต่งให้ User Interface สวยงาม ทุกอย่างที่คุณเห็นที่ทำให้แอพฯสวยนั่นแหละครับ เป็นไฟล์ภาพทั้งสิ้น ไม่ว่าจะเป็น JPEG, PNG24 แล้วแต่ตำแหน่งและรูปแบบ

โหลดแอพฯมา 20MB ก็นั่นแหละ ภาพปาไปแล้ว 10MB หรืออาจจะมากกว่านั้น

และแอพฯที่ติดมากับเครื่อง รวมถึงตัว OS เอง ก็ใช้หลักการเดียวกันนี้ด้วยเช่นกัน ซึ่งก็คือ กว่าครึ่งของขนาดไฟล์แอพฯที่ติดมากับเครื่อง เป็นรูปภาพ

แล้วมันมีผลอะไรอย่างไร? ต่อหัวข้อต่อไปกันเลยครับ

อยากให้แอพฯมี User Interface ที่สวยคมชัด ต้องปรับภาพให้ใหญ่ขึ้นตามขนาดจอ

มันก็ตรงตามลอจิคพื้นฐาน จอ 1920x1080 พิกเซล ถ้าเอารูป 640x480 ไปเปิดมันก็แตกยับ ไม่สวย อยากจะได้ภาพที่สวยคม ก็ต้องใช้ภาพอย่างต่ำ 1920x1080 พิกเซล ไปเปิด

เริ่มเห็นภาพแล้วใช่ม้า ... ถูกครับ ดังนั้น แอพฯที่ติดมากับเครื่องทั้งหลาย จำต้องขยาย Resource ทั้งหมด ให้ใหญ่ขึ้นเพื่อฟิตกับหน้าจอที่ใหญ่ขึ้น

และสิ่งหนึ่งที่ผู้คนไม่รู้ตัวเลยคือ จอ 480p, 720p และ 1080p ความจริงแล้วจำนวนพิกเซลมันต่างกันมากกกกกก แต่คนไม่รู้ตัวเพราะขนาดที่เป็น Physical มันดูเหมือนๆกันไปหมด (จอ 4 นิ้วเอย 5 นิ้วเอย) มาดูเป็น Chart เลยละกันว่าต่างกันแค่ไหน และขนาดภาพ JPEG ของขนาดต่างๆ มันต่างกันแค่ไหน

ความจริงแล้วขนาดไฟล์จะต่างกันไปตามรายละเอียดของภาพและประเภทของไฟล์ สำหรับ JPEG เท่าที่ลอง ที่เฉลี่ยออกมา 1080p ขนาดไฟล์ใหญ่กว่า 720p อยู่ 2 เท่า และ 720p ขนาดไฟล์จะใหญ่กว่า 480p อยู่ 1.5 เท่า

นั่งดีดลูกคิด ณ จุดนี้ให้คูณเล่นๆแบบยังไม่ต้องคิดอะไรมาก นั่นหมายถึงว่า ถ้ามือถือจอ 1080p มีแอพฯเหมือนตัว 480p ทุกประการ มือถือจอ 1080p จะต้องใช้พื้นที่ในการเก็บ OS และแอพฯที่ติดมากับเครื่องมากขึ้น 3 เท่า สมมติว่าจอ 480p ใช้ 1GB เก็บ เจ้า 1080p จะใช้ 3GB เก็บ

แต่เอาเข้าจริงมันก็ไม่ได้ Linear ขนาดนั้น เพราะ OS มี Overhead บางส่วนที่ไม่ต้องมี Resource เช่นพวก Library ยำๆแล้วก็ดิ้นได้ระหว่าง 2-5 เท่า แต่ที่แน่ๆ กินเนื้อที่เพิ่มเยอะแน่ๆ

ความซึ้งคือกินเนื้อที่เพิ่ม แต่เนื้อที่ที่ให้มาไม่เพิ่ม .... คือให้ 16GB มายังไง ก็ให้มาอย่างงั้น ดังนั้นไม่ต้องแปลกใจที่จอ 1080p ตัว 16GB จะมีเนื้อที่เหลือให้ใช้จริงๆไม่ถึง 8GB เพราะยิ่งจอใหญ่ ขนาดไฟล์ภาพที่ใช้ก็จะยิ่งใหญ่ตามนั่นเอง

ยังไม่หมดแค่นั้น เพราะภาพ JPEG ไม่ค่อยใช่ปัญหาเท่าไหร่ แต่เจ้า png24 เจ้ากรรมนี่สิ ตัวกิน ...

ภาพชนิด png24 ตัวกินพื้นที่แห่งวงการแอพฯมือถือ

จุดเด่นของ JPEG คือขนาดไฟล์ค่อนข้างเล็ก (สำหรับภาพที่มีสีเยอะ) ถึงข้อมูลสีจะ Lose แต่ก็อยู่ในช่วงที่ยอมรับได้

แต่จุดอ่อนของ JPEG คือ มันไม่มี Alpha Channel ซึ่งสำคัญมากต่อการทำ UI มือถือ เพราะทุกอย่างไม่ใช่สี่เหลี่ยมหนิ เกินครึ่งของ UI ที่ต้องมี Alpha Channel เพื่อกำหนดความโปร่งใส ทำให้ปุ่มมีความโค้ง บลาๆๆๆ ดังนั้นไฟล์ PNG24 จึงถูกนำมาใช้บนทุก OS เพราะเป็น Type มาตรฐานเพียง Type เดียวที่ทำหน้าที่ตรงนี้ได้สมบูรณ์แบบ เรียกว่าเป็นภาคบังคับเลยหละ

และข้อเสียใหญ่ๆของ PNG24 คือ ... เมื่อสีเยอะไฟล์จะขนาดใหญ่มากกกกกกกกกกกกก ใหญ่ในระดับโหดสัส

สำหรับไฟล์ขนาดเล็ก ยังพอหาวิธีทำให้มันไม่ใหญ่มากได้อยู่ แต่เมื่อไฟล์ใหญ่แล้ว เราไม่สามารถเก็บซ่อนอะไรได้มากนัก ต้องยอมรับความใหญ่ไป และที่บอกว่าใหญ่เนี่ย ตัว 1080p อาจจะใหญ่กว่า 480p ถึง 6-8 เท่าได้เลยทีเดียว และบางทีใหญ่ได้ในระดับเกิน 2MB ได้ง่ายๆ (แค่ภาพเดียว)

จอที่ละเอียดขึ้น ทำให้ขนาดแอพฯบน Store ใหญ่ขึ้น

Android มี drawable แบ่งตามขนาดของจอ หรือแบ่งตาม dpi แล้วแต่ศรัทธา ดังนั้นเมื่อมีจอขนาดใหม่ที่ละเอียดขึ้นขึนมา แล้วเราต้องการให้แอพฯเราสนับสนุนบนจอนั้นๆเพิ่ม เราก็ต้องทำ Resource เพิ่มสำหรับจอขนาดนั้นๆ แต่จากประสบการณ์ที่พานพบ ผู้คนที่พัฒนาแอพฯบนแอนดรอยด์จะทำให้สนับสนุนจอ 720p แล้วที่เหลือก็จะให้ระบบปฏิบัติการ Scale เอง

ส่วน iOS มี Resource อยู่ 2 ขนาดเท่านั้นคือ 1x และ 2x โดย 1x คือสำหรับจอธรรมดาและ 2x สำหรับจอ Retina

ฟังดูไม่น่ามีปัญหาอะไร แต่วันที่ Apple ประกาศเปิดตัว iPad จอ Retina พร้อมกฏที่บอกว่าให้ทำ Universal App (ไฟล์เดียวรันบนเครื่องไหนก็ได้) ทำให้ต้องดิ้นรนพ่วง Resource 4 ขนาดไว้ใน Binary เดียวคือ 1x, 2x สำหรับ iPhone และ 1x, 2x สำหรับ iPad ขนาดไฟล์จึงใหญ่ขึ้นแบบ ตู้มมมมมมมมมมมมมมม คือการเอา 2x พ่วงเข้าไปเนี่ย บางทีกินเนื้อที่เพิ่มขึ้นจากเดิม 1.5-2 เท่าเลยนะ ไม่ใช่น้อยๆ

โชคดีที่พอ iOS 7 ออกมา ขนาดแอพฯบน Store ก็ลดลง ... ทำไมหนะหรอ?

เพราะมัน Flat ไง

Flat ช่วยชีวิต

ความสวยงามของ Flat ไม่ได้จำกัดแค่ฟากฝั่ง Designer เท่านั้น แต่ฝั่งโปรแกรมมิ่งก็ด้วยเช่นกัน

เพราะการ Flat ทำให้ลบ Resource ทิ้งไปได้จำนวนมาก แล้วแทนที่ด้วยสีทึบแทน

มีอยู่ช่วงนึงที่ iOS อัพ OS แล้วได้พื้นที่เพิ่มขึ้นมา ถามว่าเกิดขึ้นได้อย่างไร ในเมื่อจำนวนแอพฯก็เท่าเดิม?

ก็เพราะเค้าทำลาย Resource แอพฯเดิมทิ้งแล้วแทนที่ด้วยรหัสสีให้ระบบปฏิบัติการเอาไปวาดสดนั่นเองครับ

บทสรุป: คิดอยากจอชัด ต้องซื้อรุ่นเนื้อที่เยอะๆ

สุดท้ายแล้ว ที่เขียนไว้ด้านบนนี้เป็นทฤษฎีกึ่งปฏิบัติ มีความจริงเป็นพื้น แต่ไม่สามารถใส่เป็นสมการอะไรได้ขนาดที่ว่า จอ 1080p ตัว OS จะกินพื้นที่กว่า 720p เท่านี้นะๆๆ เพราะมันไม่ได้ตรงไปตรงมาขนาดนั้น มีอยู่หลายปัจจัย พูดได้เลยว่าใหญ่กว่าแน่ อย่างมีนัยสำคัญ

จะมีก็แค่บางแบรนด์ที่ขยันหน่อย ไปใช้ไฟล์ภาพแบบ GPU Textures ขนาดไฟล์ก็เบาลงหน่อย แต่ส่วนใหญ่เท่าที่แงะดูไม่ค่อยมีใครใช้

ดังนั้นจึงเขียนให้ตระหนักว่า นาทีนี้หากคิดพิจารณาจะใช้มือถือรุ่นใหม่ๆแล้วจอละเอียดๆ พื้นที่ที่เหลือให้ใช้ตอนนี้ถือว่าเป็นสิ่งที่มองข้ามไม่ได้อีกต่อไป

อย่างที่บอก มันมีหลายปัจจัย และที่เขียนด้านบนอ่ะ ... สรุปใจความสำคัญได้อย่างเดียวคือ จอใหญ่ขึ้น ตัว OS ก็จะกินเนื้อที่เพิ่มขึ้น ส่วนที่เหลือไม่สามารถบอกอะไรได้ จะกี่เท่า จะมากน้อยแค่ไหน ต้องรอดูรีวิวจาก Blogger อย่างเดียว

อย่างเช่น S5 เหลือพื้นที่ให้ใช้ไม่ถึง 8GB ส่วน OPPO N1 เหลือให้ใช้ 12GB ทั้งๆที่ทั้งสองมีขนาดจอ 1080p เท่ากัน ถามว่าทำไม? ปัจจัยมันเยอะครับ การออกแบบต่างกันก็มีผลแล้ว และเหมือนว่า Samsung มีแอพฯติดมากับเครื่องเยอะกว่าชาวบ้านเค้าด้วย ก็เลยเหลือเนื้อที่ให้ใช้น้อยเหลือเกิน

ดังนั้นไม่ต้องแปลกใจหากเอารอมมาแงะเล่นแล้วเจอส่วนที่เป็นรูปภาพแค่ 20% ในขณะที่บางอันเจอรูปภาพถึง 50% ซึ่งตัว 50% เนี่ย ยิ่งจอชัดก็ยิ่งกินเยอะอีกต่างหาก

ย้ำอีกทีนะครับ เห็นว่าคนชอบดูว่า CPU เป็นยังไง แรมเท่าไหร่ แต่นาทีนี้ ปี 2014 ปีที่จอชัดสัด อย่าลืมเช็คก่อนคิดจะซื้อมือถือรุ่นใดก็ตามว่า "มีเนื้อที่เหลือให้ใช้เท่าไหร่" ด้วย

สำคัญนะเออ เพราะรักเธอถึงเตือน =)

จบไปอีกหนึ่งบลอค เย่ >0<

บทความที่เกี่ยวข้อง

Mar 14, 2014, 02:24
7928 views
เปิดตัวในไทยอย่างเป็นทางการ Nokia X มือถือแอนดรอยด์ที่ไม่ใช่แอนดรอยด์(เอ๊ะ) #GoNokiaX
Mar 19, 2014, 01:24
9638 views
รู้ไว้ใช่ว่า มือถือจอยิ่งชัด ยิ่งมีพื้นที่เหลือให้ใช้น้อย
0 Comment(s)
Loading