std::max

ปกติไม่ค่อยคุ้นเคยกับการเขียนโปรแกรมบน Visual Studio สักเท่าไหร่ เพราะถ้าไม่เขียนพวก script language ก็จะเขียนด้วย text editor ธรรมดา แล้วสร้าง Makefile เองเสียมากกว่า

พอดีมีเรื่องต้องใช้ C++ โปรเซสแต่ละเฟรมของไฟล์วิดีโอ ไม่มีอะไรมาก แค่เปรียบเทียบค่าของ Red และ Blue ของแต่ละ pixel ว่าอันไหนมีค่ามากกว่ากัน และดูว่ามันต่างกับค่าสี Green อยู่เท่าไหร่ แต่ละ pixel เป็น RGBTRIPLE คิดดูก็ไม่มีอะไรยาก

for (int i = 0; i < numPixels; i++, pRgb++) {
diff = pRgb->rgbtGreen - std::max(pRgb->rgbtRed, pRgb->rgbtBlue);
}

แค่เพิ่มโค้ดส่วนนี้เข้าไป ทำให้ไฟล์วิดีโอขนาด 784×576 ที่เคยเล่นได้ลื่นๆ กระตุก และเฟรมเรตลดลงไปเหลือประมาณ 10-15 fps (โดยประมาณ) ทันที
ไม่น่าเชื่อ…

ลองแก้ใหม่ เปลี่ยนบรรทัดที่เปรียบเทียบเป็น

diff = (prgb->rgbtBlue > prgb->rgbtRed)? prgb->rgbtGreen - prgb->rgbtBlue : prgb->rgbtGreen - prgb->rgbtRed;

กลายเป็นว่าวิดีโอไฟล์เดิม วิ่งฉิว ไม่มีหนืด ไม่มีกระตุก

โค้ดเดียวกันนี้ รันบน hardware เดียวกัน แต่เป็น Mac OS X ทำงานได้ว่องไว ไม่กระตุกเช่นกัน

สรุปว่า… งง…
std::max บน visual studio มัน implement มาไม่ดีหรือเปล่า ?

FACT

เชิญชวนร่วมลงชื่อสนับสนุน คำร้องต่อคณะกรรมการสิทธิมนุษยชน เรื่องของการต่อต้านการเซ็นเซอร์ โดย กลุ่มเสรีภาพต่อต้านการเซ็นเซอร์แห่งประเทศไทย (FACT - Freedom Against Censorship Thailand)

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

Imprint

โรงหนัง House RCA มีโครงการฉายหนัง Masters of Horror เป็นโปรเจ็กต์รวมตัวของผู้กำกับหนังสยองขวัญหลายคน มาทำหนังยาว 1 ชั่วโมง คนละเรื่อง ในโปรแกรมของ House มีหนังมาฉายทั้งหมด 10 เรื่อง ได้ดูไปเรื่องเดียวคือ Imprint ของผู้กำกับ Takashi Miike

บรรดาหนังในโครงการ Masters of Horror นี้ ทำออกมาเพื่อออกฉายทางทีวีเป็นตอนๆ แต่มีตอน Imprint นี่แหละ ที่ถูกแบน ห้ามฉายทางทีวี

หนังเข้าฉายบ้านเราแบบไม่มีตัด แต่คาดว่าถ้ามีโอกาสได้ลง DVD คงจะโดนหั่นเสียจนไม่เหลืออะไร ถึงแม้ว่าหนังจะไม่มีฉากโป๊เปลือย, ไม่มีถือปืนจ่อหัว, ไม่มีคนดื่มเหล้าสูบบุหรี่ ก็ตาม

Worldmapper

เวบ WorldMapper เจ๋งดี มีแผนที่โลกให้ดูหลายแบบ นอกเหนือจากแบบปกติที่วัดตามพื้นที่แล้ว ยังมีอีกหลายหมวดหมู่ เช่น GDP, ความยากจน หรืิอ อัตราป่าไม้ที่ถูกทำลาย

ดูแผนที่ของ จำนวนผู้ติดเชื้อ HIV แล้วเข้าใจเลยว่า ทำไมถึงต้องมีโครงการ (RED)

(via O’rielly Radar)