Wednesday, March 14, 2012

ความหมายสูตรคำนวณ Retina Display ของแอปเปิล : a = 2 arctan ( h / 2d )



"พี่จะรู้ไปทำแมวอะไรครับ ?"

คือคำตอบกึ่งคำถามของรุ่นน้องคนหนึ่ง หลังจากที่ผมขอให้เขาช่วยอธิบายสูตร a = 2 arctan ( h / 2d ) ที่แอปเปิลโชว์บนสไลด์ในงานเปิดตัว "The new iPad" รุ่นใหม่ ซึ่งจะว่าไปแล้วผมก็ไม่รู้เหมือนกันว่าจะรู้ไปทำแมวอะไร แต่ก็คนมันอยากรู้อ๊าาาาาาา

เมื่อ 7 มีนาคมที่ผ่านมา ระหว่างที่ Phil Schiller กำลังพูดถึงความละเอียดของหน้าจอ ที่แอปเปิลเรียกมันว่า Retina Display บนไอโฟนและไอแพดตัวใหม่ อยู่ดีๆ พี่แกก็เอา สูตรคณิตศาสตร์ ขึ้นมาโชว์ ซึ่งจะว่าไปผมก็ไม่เคยเห็นแอปเปิลเอาเรื่องซับซ้อนอะไรขนาดนั้นมาขึ้นจอเลย

มันก็เลยน่าสนใจ (เป็นการส่วนตัว) ว่าไอ้สูตรเนี่ย มันหมายความว่ายังไงกันแน่ จากปากคำของน้องคนนี้ ซึ่งเป็นถึงอาจารย์สอนคณิตศาสตร์ที่มหาลัยชื่อดัง และการนั่งหาข้อมูลจากหลายเว็บ ก็ได้ความดังนี้

คำเตือน: Geek + Math มาก

พิสูจน์สูตร

แอปเปิลต้องการคำนวณว่าต้องทำจอไอโฟนให้จุดหนึ่งจุด (Pixel) มีความสูงซักเท่าไหร่ มันถึงจะเล็กพอที่คนเราจะแยกไม่ออกว่ามันคือ "จุด" ตามชื่อ Retina Display

จากรูปนี้ถ้าทางซ้ายคือตาของคนเรา ทางขวาคือ 1 pixel เราให้ตัวแปลต่างๆ คือ

  • h = ความสูงของหนึ่ง pixel
  • d = ระยะห่างระหว่างตากับอุปกรณ์
  • a = มุมในการมองเห็น


ถ้าตาคนเรามองไปที่กลางจอพอดี และแสงที่ตกกระทบกลับมาที่ตาตรงกลางพอดีเช่นกัน เราก็ควรจะตัดรูปข้างบนออกครึ่งหนึ่ง แล้วสร้างเป็นรูปเป็นสามเหลี่ยมมุมฉากดังภาพ

มุม a เมื่อถูกหักออกครึ่งหนึ่งจึงเหลือ a / 2
ความสูงของ pixel ถูกหักออกครึ่งหนึ่งเหลือ h / 2
ระยะทางระหว่างตากับอุปกรณ์เท่าเดิมคือ d

จากนั้นใช้สูตร sin, cos, tan สามเหลี่ยมอย่างที่เราเคยเรียนกันมาตั้งแต่มัธยม กรณีนี้ต้องใช้ tan

tan ( a / 2 ) = ( h / 2 ) / d

tan ( a / 2 ) = ( h / 2d )

a / 2 = arctan ( h / 2d )

a = 2 * arctan ( h / 2d )

ซึ่งก็ได้ตามสูตรที่แอปเปิลโชว์ในสไลด์พอดีเลย เย๊ๆ



รูปจาก Wikipedia
มุมที่ตาคนเรามองเห็น

มุมเล็กที่สุดที่ตาคนเราจะสามารถแยกออกว่าสีสองสีนี้ เป็นสีที่ต่างกันคือมุม 0.000291 Radians (อ้างอิง: Jones Blog) หรือที่บางคนเรียกว่า 1' arc

ที่เราเคยเรียนมาเราจะเรียกมุมในหน่วยองศา (Angle) แต่พอดีว่าตาคนเราเป็นทรงกลม เค้าเลยใช้มุมเป็นหน่วยเรเดียน (Radians)

เพราะงั้นค่า a ตอนนี้เราก็ได้แล้ว ว่ามันคือ a = 0.000291 นะจ๊ะ

ระยะห่างระหว่างอุปกรณ์กับตาคนเรา

แอปเปิลบอกว่า ระยะห่างโดยเฉลี่ยระหว่างโทรศัพท์กับตาของคนเราคือ 10 นิ้ว (25.4 เซ็นติเมตร) ซึ่งไม่แน่ใจว่าอ้างอิงจากที่ไหน แต่คงเป็นค่าที่หามาแน่ชัดแล้วล่ะ

ส่วนระยะห่างระหว่างแท็บเล็ตกับตาคนเราโดยเฉลี่ยคือ 15 นิ้ว (38.1 เซ็นติเมตร) ก็น่าจะโอเค เพราะเราก็วางแท็บเล็ตไว้ไกลตากว่าการดูโทรศัพท์มือถืออยู่แล้ว

เพราะงั้นตอนนี้เราได้ค่า d สำหรับโทรศัพท์มือถือ คือ d1 = 10, สำหรับแท็บเล็ตคือ d2 = 15 (ใช้หน่วยเป็นนิ้ว)



แล้วหนึ่งพิกเซลควรใหญ่แค่ไหน ?

ถ้าเราเอาค่าคงที่ทั้งหมดมาลองคำนวณดู ทั้งค่า a และค่า d1 เพื่อหาค่า h เราจะได้ว่า

tan ( a / 2 ) = ( h / 2d )

h / 2d  = tan ( a / 2 )  [กลับทาง]

h = 2d * tan ( a / 2 )   [ได้สูตรใหม่]

h = 2 (10) * tan ( 0.000291 / 2 )

h = 0.00291

เราจะได้ว่าความสูงของ 1 พิกเซลควรจะเท่ากับ  0.00291 นิ้ว แต่โดยทั่วไปเราใช้หน่วย Pixel Per Inch (ppi) ในการอธิบายความละเอียดของหน้าจอ เพราะงั้น ..

จำนวนพิกเซลต่อขนาด 1 นิ้วเท่ากับ = 1 / 0.00291 =~ 343 ppi

จอไอโฟน 4 ทำความละเอียดได้ 326 ppi ซึ่งก็ใกล้เคียงกับค่าที่คำนวณได้ (343 ppi)  จึงสามารถเรียกได้ว่าจอโทรศัพท์มือถือที่ความละเอียด 326 ppi เป็น Retina Display ได้เช่นเดียวกัน



ทีนี้ถ้าทำแบบเดียวกันกับแท็บเล็ต ก็แค่เปลี่ยนค่า d ให้ไกลขึ้นเป็น 15 นิ้ว เราก็สามารถคำนวณหาค่า h สำหรับแท็บเล็ตได้ดังนี้

h = 2d * tan ( a / 2 )     [สูตรใหม่]

h = 2 (15) * tan ( 0.000291 / 2 )

h =~ 0.004365

1 นิ้วก็จะได้ = 1 / 0.004365 =~ 229 ppi

จอไอแพดใหม่ (The new iPad) มีความละเอียดที่ 264 ppi ซึ่งละเอียดกว่าค่าที่คำนวณได้ซะอีก (229 ppi) เพราะงั้นก็เรียกได้ว่าจอไอแพดรุ่นใหม่นี้ มีความละเอียดพอที่จะเรียกว่า Retina Display ได้เช่นกัน

รู้แล้วได้อะไร ?

ได้สนองความอยากรู้ครับ (ฮะๆ) .. นั่นสิ รู้แล้วได้อะไรนะ แต่ก็เอาเหอะ ถือซะว่าสนองนี๊ดส์คนเขียนบล็อกละกัน

เอาเป็นว่าอย่างน้อยเราก็ได้เข้าใจหลักการคำนวณค่าที่แอปเปิลใช้คำนวณความกว้างยาวของหน้าจอไปแล้ว ซึ่งเราก็อาจจะได้เห็นในสินค้าตัวอื่นของแอปเปิลก็เป็นได้ ..​ Macbook Pro จอ Retina Display ? หรือแม้แต่ทีวีตัวใหม่ ?

อะไรก็เป็นไปได้ ใครจะรู้ แต่ตอนนี้ประโยคที่น้องคนนั้นบอกเริ่มกลับมาดังอีกครั้งนึง ..

"พี่จะรู้ไปทำแมวอะไรครับ ?"

ภาพแบบซุมเข้าไปที่จอของ iPad 1, iPhone 1, iPhone 3G, iPhone 4
ที่มาภาพ Jones Blog