คิวอาร์โค้ดในโฆษณาวิดีโอต้องกินพื้นที่หนึ่งในสามของจอ แต่ได้แค่มุมจอ

โดยทีม KoloQRงานวิจัย

โทรทัศน์ที่ติดผนังในห้องนั่งเล่นกำลังฉายโฆษณากีฬา ด้านขวาเป็นภาพนักฟุตบอลโอบไหล่กันเป็นวงใต้ไฟสปอตไลต์ของสนาม ส่วนด้านซ้ายเป็นพาดหัว "Join a Team. Be Part of Something Greater." เหนือบรรทัด "Scan to find teams" และ QR Code ทรงกลมสีเหลืองกับดำ

มือถือที่อ่านคิวอาร์โค้ดจากจอทีวีไม่ได้กำลังมองอาร์ตเวิร์กของคุณ มันมองพิกเซลไม่กี่สิบพิกเซลจากเฟรมกล้องหนึ่งเฟรม และจำนวนที่มันได้ถูกกำหนดด้วยสิ่งเดียว คือมุมที่โค้ดกินพื้นที่เมื่อมองจากโซฟา เราสร้างชุดทดสอบที่ไล่ทั้งสายงาน ตั้งแต่มาสเตอร์ 1080p การบีบอัด กล้องมือถือที่ถือด้วยมือและเอียงเล็กน้อยที่ระยะรับชมจริง ไปจนถึงรอยลากจากการเคลื่อนไหว แล้ววัดว่าอัตราการอ่านพังลงตรงจุดไหน ที่ระยะห้องนั่งเล่นปกติ โค้ดที่สูงหนึ่งในห้าของจอถอดรหัสสำเร็จ 6% ของความพยายาม ส่วนหนึ่งในสี่ของความสูงจอได้ 95% การวางไว้ที่มุมจอแบบที่โฆษณาวิดีโอทุกชิ้นใช้ วัดได้ศูนย์ และไม่มีเวลาออกอากาศ ระดับการแก้ไขข้อผิดพลาด หรือความคิดสร้างสรรค์ใดแก้ได้ เพราะความล้มเหลวเกิดขึ้นก่อนที่เฟรมแรกจะถูกอ่านเสียอีก

ประเด็นสำคัญ

  • เราวัดขีดล่างของการอ่านได้ที่ 2.5 พิกเซลต่อโมดูล สำหรับภาพนิ่งที่ถูกบีบอัดและเอียงเล็กน้อย โดยความสำเร็จประปรายครั้งแรกอยู่ที่ 2.0 และเกินครึ่งแล้วที่ 2.25 เอกสารของ ML Kit ของ Google เองก็ขออย่างน้อย 2 พิกเซลต่อโมดูล ชุดทดสอบกับผู้ผลิตจึงตรงกันในระยะห่างหนึ่งในสี่พิกเซล
  • ขนาดจอตัดกันหายไปจากสมการ เพราะคนนั่งไกลจากทีวีที่ใหญ่กว่า คำตอบจึงเป็นสัดส่วนของความสูงจอไม่ใช่ขนาดเป็นเซนติเมตร และเป็นสัดส่วนเดียวกันทั้งบนจอ 43 นิ้ว จอ 77 นิ้ว และโน้ตบุ๊ก
  • ที่ระยะห้องนั่งเล่นปกติ คือทีวี 55 นิ้วห่างราว 2.7 ม. โค้ดที่สูง 20% ของจออ่านได้ 6% ของครั้ง ที่ 25% อ่านได้ 95% และที่ 30% อ่านได้ทุกครั้ง ต่ำกว่า 15% ไม่มีอะไรอ่านได้เลยในทุกระยะที่เราทดสอบ
  • การบีบอัดแทบไม่มีผล ส่วนการเคลื่อนไหวมีผลมหาศาล การบีบมาสเตอร์ลงเหลือคุณภาพ JPEG 40 ทำให้อัตราการอ่านขยับหนึ่งถึงสองจุด แต่รอยลากเพียงครึ่งพิกเซลของกล้องระหว่างการเปิดรับแสงหนึ่งครั้ง ทำให้โค้ดที่เคยอ่านได้ 99% เหลือศูนย์
  • สองสิ่งที่โฆษณาทำกับโค้ดของตัวเองโดยไม่รู้ตัวคือการเติมพารามิเตอร์ UTM และการเพิ่มระดับการแก้ไขข้อผิดพลาด ทั้งสองอย่างเพิ่มโมดูลโดยที่ขนาดจริงเท่าเดิม สตริงติดตามแบบเต็มพาโค้ดจาก 100% ลงมาที่ 48% ส่วนระดับการแก้ไข H พาโค้ดตัวเดียวกันจาก 99% ลงมาที่ 74%

โค้ดที่มุมจอล้มเหลวก่อนที่ใครจะเอื้อมหยิบมือถือด้วยซ้ำ

ตำแหน่งมาตรฐานคือมุมขวาล่างของเอนด์การ์ด กำหนดขนาดให้วางอย่างสุภาพข้างโลโก้และบรรทัดข้อความทางกฎหมาย คือราวแปดถึงสิบสองเปอร์เซ็นต์ของความสูงจอ ปรากฏอยู่สามถึงห้าวินาทีเท่าที่เอนด์การ์ดกินเวลา เรื่องนี้ถูกมองเป็นการตัดสินใจเรื่องเลย์เอาต์ ถกกันในแง่ความรกและลำดับความสำคัญของแบรนด์ และอนุมัติโดยคนที่สแกนโค้ดนั้นสำเร็จกันหมดแล้วบนจอมอนิเตอร์ในห้องตัดต่อ

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

เหตุผลที่เรื่องนี้ถูกมองข้ามเรื่อยมาคือการตรวจทุกครั้งระหว่างการผลิตทำที่ระยะผิด โค้ดถูกสแกนบนจอตัดต่อที่ระยะแขนเอื้อม บนลิงก์รีวิวผ่านโน้ตบุ๊กที่ 60 ซม. และบนมือถือที่ถือห่างจากมือถืออีกเครื่อง 30 ซม. ในเชิงเรขาคณิตทั้งสามกรณีไม่มีอะไรเหมือนโซฟาเลย และทั้งสามผ่านหมด เงื่อนไขเดียวที่โฆษณาจะถูกดูจริงคือเงื่อนไขที่ไม่มีใครทดสอบ เพราะการทดสอบมันแปลว่าต้องไปยืนอยู่ในห้องนั่งเล่น

บทความนี้จึงคำนวณก่อน แล้วค่อยวัดผล คำถามไม่ใช่ว่าคิวอาร์โค้ดควรอยู่ในโฆษณาวิดีโอหรือไม่ นั่นเป็นเรื่องรสนิยม และคำตอบคงขึ้นกับแบรนด์ คำถามคือโค้ดต้องใหญ่แค่ไหน การถกเรื่องรสนิยมจึงจะคุ้มค่าที่จะเริ่มต้น

เราวัดอะไร และมันบอกอะไรคุณไม่ได้บ้าง

ชุดทดสอบไล่ทั้งสายงานด้วยซอฟต์แวร์ โค้ดถูกวาดที่ 12 พิกเซลต่อโมดูลพร้อมโซนเงียบสี่โมดูลตามที่ ISO/IEC 18004 กำหนด ย่อลงในมาสเตอร์ 1080p ให้เท่าขนาดที่มันจะกินพื้นที่ในโฆษณาที่เสร็จแล้ว บีบอัด เติมขอบ หมุนออกจากแนวฉาก สุ่มตัวอย่างใหม่ให้เท่าจำนวนพิกเซลที่กล้องมือถือจะเก็บได้จากมันที่ระยะรับชมหนึ่ง ๆ ลากให้เบลอเพื่อจำลองการเคลื่อนไหวระหว่างเปิดรับแสง แล้วส่งให้ตัวถอดรหัส ทุกตัวเลขข้างล่างคือสัดส่วนของความพยายามที่ถอดรหัสสำเร็จ

แต่ละช่องคือ 216 ครั้ง ได้แก่เพย์โหลดสิบสองแบบ มุมหกค่าระหว่างหนึ่งถึงสิบเอ็ดองศาจากแนวฉาก และการขยับขนาดที่จับได้ทีละหนึ่งพิกเซลสามแบบ จำนวนนี้มีอยู่เพราะความผิดพลาดหนึ่งที่ควรยอมรับ ชุดทดสอบเวอร์ชันแรกป้อนภาพที่ตั้งฉากสมบูรณ์และเรียงตรงกับตารางให้ตัวถอดรหัส แล้วมันก็อ่านโค้ดที่หนึ่งพิกเซลต่อโมดูลได้อย่างสบายใจ ผลลัพธ์นั้นเป็นเลขคณิตจริงและเป็นเรื่องไร้สาระสิ้นดีในเวลาเดียวกัน เพราะมันวัดความบังเอิญของการสุ่มตัวอย่างที่มือซึ่งถือมือถือจะไม่มีวันทำซ้ำได้ การหมุนคือสิ่งที่วางทุกโมดูลไว้ที่เฟสย่อยพิกเซลแบบสุ่ม และมันขยับขีดล่างไปมากกว่าสองเท่า

ตัวถอดรหัสเป็นตัวที่อ่อนที่สุด และเลือกแบบนั้นตั้งใจ

ตัวถอดรหัสคือ jsQR ซึ่งเป็นการพอร์ตแกนของ ZXing มาเป็น JavaScript เป็นตัวถอดรหัสตระกูลเดียวกับที่เราอ่านซอร์สโค้ดส่วนแปลงภาพเป็นขาวดำเอาไว้ตอนทำการวัดคอนทราสต์ เฟรมเวิร์ก Vision ของ Apple และ ML Kit ของ Google คือสิ่งที่อ่านโค้ดส่วนใหญ่จริง ๆ ทั้งคู่ปิดซอร์ส และตัวเลขที่ได้จากอันใดอันหนึ่งเป็นตัวเลขที่ผู้อ่านคนไหนก็ตรวจสอบไม่ได้ อีกทั้ง jsQR แทบแน่นอนว่าเป็นตัวที่ความสามารถต่ำที่สุดในสามตัว ไม่มีขั้นตอนแมชชีนเลิร์นนิง ไม่มีการสะสมหลายเฟรม ไม่มีซูเปอร์เรโซลูชัน

เพราะแบบนั้นจึงมีการเทียบมาตรฐานหนึ่งที่ควรพูดถึง ขีดล่างของเราบนภาพสะอาดออกมาที่ 2.5 พิกเซลต่อโมดูล ขณะที่เอกสารการอ่านบาร์โค้ดของ ML Kit ขอโค้ดที่ "หน่วยเล็กที่สุดที่มีความหมาย" นั้น "กว้างอย่างน้อย 2 พิกเซล และสำหรับโค้ดสองมิติ สูงอย่างน้อย 2 พิกเซล" การที่ตัวถอดรหัสซึ่งอ่อนกว่าไปหยุดอยู่เหนือค่าต่ำสุดที่ผู้ผลิตประกาศไว้เพียงหนึ่งในสี่พิกเซล ถือเป็นความสอดคล้องที่ดีที่สุดเท่าที่การประกอบแบบนี้จะหวังได้ และเป็นเหตุผลที่ตารางขนาดข้างล่างควรอ่านว่าถูกต้องโดยประมาณ ไม่ใช่มองโลกในแง่ร้ายเกินจริงเป็นเท่าตัว

สิ่งที่ชุดทดสอบไม่ได้รวมไว้

  • มือถือจริง ๆ งานวัดนี้ไม่มีการเอา iPhone หรือ Android ไปเล็งจอทีวีเลย ระบบกันสั่นแบบออปติคัล การรวมหลายเฟรม และตัวถอดรหัสปิดซอร์สทั้งสองตัว ล้วนทำงานเข้าข้างคนอ่าน และไม่มีอันใดถูกจำลอง
  • การเข้ารหัสวิดีโอข้ามเฟรม การบีบอัดในที่นี้คือ JPEG บนเฟรมเดียว ซึ่งทำหน้าที่แทนเฟรมแบบอินทรา โค้ดที่นิ่งอยู่บนช็อตที่นิ่งแทบไม่กินบิตของตัวเข้ารหัสจริงหลังเฟรมแรก ส่วนโค้ดที่ซ้อนอยู่บนภาพเคลื่อนไหวถูกเข้ารหัสใหม่ตลอดเวลา แต่เมื่อการบีบอัดกลับกลายเป็นแทบไม่เกี่ยวในทั้งสองกรณี เรื่องนี้จึงสำคัญน้อยกว่าที่เห็น
  • แผงจอกับเซนเซอร์ที่ตีกันเอง กล้องที่ถ่ายจอภาพอาจเกิดลายมัวเร และมาสเตอร์ 24p ที่ถูกแปลงลงแผงจอ 60 Hz แล้วสุ่มตัวอย่างด้วยชัตเตอร์แบบโรลลิงอาจเกิดแถบ ทั้งสองอย่างมีจริง ทั้งสองอย่างเป็นผลเสีย และไม่มีอันใดถูกจำลอง
  • แสงสะท้อน แสงในห้อง และการมองจากมุมเฉียง ทั้งสามอย่างหักลบออกไป และทั้งสามอย่างเป็นเรื่องของบทความว่าด้วยคอนทราสต์ ไม่ใช่บทความนี้
  • คน เวลาที่คนคนหนึ่งใช้ในการสังเกตเห็นโค้ด หามือถือ แล้วเล็ง ไม่ใช่สิ่งที่ชุดทดสอบวัดได้ หัวข้อที่ว่าด้วยเรื่องนี้ข้างล่างจึงระบุไว้ว่าเป็นการประมาณ

การละเว้นทั้งหมดนี้ไปในทางเดียวกันหมด ยกเว้นข้อแรก คือชุดทดสอบโหดกับโค้ดมากกว่าภาพถ่ายนิ่ง และใจดีกว่าห้องนั่งเล่นจริง สรุปอย่างซื่อตรงคือ ตัวเลขเหล่านี้ระบุตำแหน่งของหน้าผา และขั้นตอนสิบนาทีท้ายบทความคือวิธีหาว่าแคมเปญของคุณอยู่ฝั่งไหนของหน้าผานั้น

ขีดล่างอยู่ที่สองพิกเซลครึ่งต่อโมดูล

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

พิกเซลต่อโมดูลภาพสะอาดผ่านการบีบอัด (JPEG q40)
1.500%0%
1.750%0%
2.008%7%
2.2569%68%
2.5099%100%
2.75100%100%
3.00100%100%
อัตราการอ่านจาก 216 ครั้งต่อช่อง ที่หนึ่งถึงสิบเอ็ดองศาจากแนวฉาก หน้าผากว้างไม่ถึงครึ่งพิกเซล คือ 2.0 พิกเซลต่อโมดูลคือความล้มเหลว ส่วน 2.5 คือความแน่นอน

มีสองสิ่งในตารางนั้นที่มีค่ามากกว่าตัวขีดล่างเอง อย่างแรกคือช่วงเปลี่ยนผ่านแคบแค่ไหน ไม่มีหางยาว ๆ ของโค้ดก้ำกึ่งที่ผู้ใช้ใจเย็นจะสแกนติดในที่สุด ระหว่าง 2.0 กับ 2.5 พิกเซลต่อโมดูล อัตราการอ่านกระโดดจาก 8% เป็น 99% แปลว่าโค้ดหนึ่งมีความหนาแน่นของการสุ่มตัวอย่างพอ หรือไม่พอ เท่านั้น และสิ่งที่คั่นสองสถานะนี้คือหนึ่งในสี่พิกเซลต่อโมดูล

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

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

ขนาดจอตัดกันหายไป เหลือแต่มุมเท่านั้น

กล้องมือถือเป็นการฉายภาพแบบเส้นตรง แปลว่าระยะตามขวางที่ระยะห่างซึ่งรู้ค่าแล้ว จะแปลงเป็นพิกเซลด้วยค่าคงที่เพียงค่าเดียว สำหรับมุมมองแนวนอน 70 องศา ซึ่งเลนส์เทียบเท่า 26 มม. คือ 69.4 องศา และกล้องหลักของมือถือก็ออกมาห่างจากค่านั้นไม่เกินหนึ่งองศามาหลายปีแล้ว ค่าคงที่นั้นเท่ากับ 1,371 พิกเซลต่อเรเดียนบนเฟรมกว้าง 1920 พิกเซล ทั้งสายงานจึงยุบลงเหลือเลขคณิตบรรทัดเดียว

พิกเซลต่อโมดูล = 1371 × f ÷ (k × N) โดย f คือความสูงของโค้ดเป็นสัดส่วนของความสูงจอ k คือระยะรับชมในหน่วยความสูงจอ และ N คือจำนวนโมดูลตามด้านของโค้ดรวมโซนเงียบสี่โมดูลแล้ว

สิ่งที่น่าสนใจในสมการนั้นคือสิ่งที่หายไปจากมัน ไม่มีขนาดจอและไม่มีระยะเป็นเมตร มีแต่อัตราส่วนของทั้งสอง นี่ไม่ใช่การลดรูป แต่เป็นฟิสิกส์จริง ๆ ทีวี 77 นิ้วกินมุมเท่ากับทีวี 43 นิ้วเมื่อมองจากท้ายห้องใหญ่กับห้องเล็กตามลำดับ และกล้องก็ไม่รู้และไม่สนใจว่ากำลังมองเครื่องไหนอยู่ คำตอบของ "โค้ดต้องใหญ่แค่ไหน" จึงเป็นเปอร์เซ็นต์ของจอ และเปอร์เซ็นต์เดียวกันนี้ใช้ได้ทุกที่

มันยังแปลว่า k กำหนดได้จากคำแนะนำเรื่องมุมมองที่มีการเผยแพร่ไว้ แทนที่จะเดา THX แนะนำมุมมองแนวนอนราว 40 องศา ซึ่งสำหรับจอ 16:9 คิดออกมาได้ระยะ 2.4 เท่าของความสูงจอ ส่วนคำแนะนำของ SMPTE ที่ 30 องศาได้ 3.3 เท่าของความสูงจอ ทั้งสองเป็นคำแนะนำสำหรับคนที่ใส่ใจคุณภาพของภาพ ห้องนั่งเล่นทั่วไปนั่งไกลกว่าทั้งสองค่านั้น ตารางข้างล่างจึงลากยาวไปถึงสี่เท่าของความสูงจอ คือทีวี 55 นิ้วที่ระยะราว 2.7 ม.

เลข 1920 ในค่าคงที่นั้นก็ควรมีหมายเหตุของตัวเอง เพราะมันคือสมมติฐานฝั่งที่เข้าข้างเรา สตรีมสำหรับวิเคราะห์คือบัฟเฟอร์วิดีโอความละเอียดต่ำที่ตัวตรวจจับโค้ดของมือถือทำงานอยู่บนนั้นจริง ๆ ซึ่งไม่ใช่ภาพถ่ายความละเอียดเต็มที่กล้องถ่ายได้ เอกสารของ ML Kit ของ Google แนะนำให้ป้อน "1280x720 หรือ 1920x1080" และระบุว่าการลดต่ำกว่านั้นทำได้ก็ต่อเมื่อ "กำหนดให้บาร์โค้ดกินพื้นที่ส่วนใหญ่ของภาพที่ป้อนเข้าไป" ทุกอย่างข้างล่างนี้ใช้ค่าที่ดีกว่าในสองค่านั้น ถ้าเป็น 1280 x 720 ตัวเลขทุกตัวในตารางถัดไปจะแย่ลงหนึ่งในสาม

จริง ๆ แล้วโค้ดต้องใหญ่แค่ไหน

เมื่อเลขคณิตลงตัวแล้วก็ถึงการวัด แต่ละแถวคือความสูงของโค้ดเป็นเปอร์เซ็นต์ของความสูงจอ แต่ละคู่คอลัมน์คือระยะรับชมในหน่วยความสูงจอ พร้อมความหนาแน่นของการสุ่มตัวอย่างที่ได้และอัตราการอ่านที่ออกมาจากชุดทดสอบ เพย์โหลดคือ URL ยาว 25 ตัวอักษรที่ระดับการแก้ไขข้อผิดพลาด M ซึ่งคือเวอร์ชัน 3 เท่ากับ 29 โมดูล หรือ 37 ตามด้านเมื่อรวมโซนเงียบ ทุกอย่างนิ่ง ผ่านการบีบอัด และเอียงจากแนวฉากหนึ่งถึงสิบเอ็ดองศา

ความสูงโค้ด (% ของจอ)บนมาสเตอร์ 1080pk = 2 px/โมดูลk = 2 อัตราk = 3 px/โมดูลk = 3 อัตราk = 4 px/โมดูลk = 4 อัตรา
8%86 px1.490%1.000%0.730%
10%108 px1.862%1.240%0.920%
12.5%135 px2.3282%1.540%1.160%
15%162 px2.78100%1.864%1.380%
17.5%189 px3.24100%2.1670%1.620%
20%216 px3.70100%2.4691%1.866%
25%270 px4.62100%3.0899%2.3295%
30%324 px5.57100%3.70100%2.78100%
35%378 px6.49100%4.32100%3.24100%
216 ครั้งของการถอดรหัสต่อหนึ่งช่อง k คือระยะรับชมในหน่วยความสูงจอ โดย k = 2.4 คือคำแนะนำของ THX, k = 3.3 คือของ SMPTE และ k = 4 คือห้องนั่งเล่นธรรมดา คือทีวี 55 นิ้วที่ 2.7 ม. คอลัมน์ตรงกลางคือขนาดของโค้ดบนมาสเตอร์ 1080p ซึ่งไม่เคยเป็นข้อจำกัดที่ตัดสินผลเลย

อ่านคอลัมน์ k = 4 เพราะนั่นคือที่ที่คนส่วนใหญ่นั่งอยู่ โค้ดที่สูงหนึ่งในห้าของจออ่านได้หกครั้งจากร้อย โค้ดที่สูงหนึ่งในสี่ของจออ่านได้เก้าสิบห้าครั้งจากร้อย ช่วงที่ใช้งานได้จริงทั้งหมดของการตัดสินใจออกแบบนี้อยู่ระหว่าง 20% ถึง 30% ของความสูงจอ และการวางไว้ที่มุมจอตามธรรมเนียมไม่ได้แค่อยู่ปลายล่างของช่วงนั้น แต่หลุดออกนอกตารางไปสองถึงสามเท่า

สังเกตด้วยว่าคอลัมน์มาสเตอร์กำลังทำอะไรอยู่ คำตอบคือไม่ได้ทำอะไรเลย โค้ดที่สูง 20% ของจอกว้าง 216 พิกเซลในไฟล์ 1080p ซึ่งสูงกว่าขีดล่างอย่างสบาย โค้ดไม่ได้ถูกทำลายในห้องตัดต่อ ในการปรับสี หรือในการเข้ารหัส สิ่งที่ทำลายมันคือระยะระหว่างโซฟากับทีวี ซึ่งเป็นปริมาณที่ไม่มีกระบวนการโพสต์โปรดักชันใดปรับปรุงได้ นี่คือข้อโต้แย้งเดียวกับที่การกำหนดขนาดโค้ดสิ่งพิมพ์ให้เหมาะกับระยะสแกน พูดถึงกระดาษ และที่นี่เข้มงวดกว่า เพราะผู้ชมเดินเข้าไปใกล้จอไม่ได้

ข้อสรุปจากคอลัมน์ k = 2 ก็ควรเก็บไว้เช่นกัน เพราะมันอธิบายภาพลวงตาของห้องตัดต่อได้อย่างแม่นยำ ที่ระยะสองเท่าของความสูงจอ คือทีวี 55 นิ้วที่ 1.4 ม. ซึ่งกินมุมพอ ๆ กับจอมอนิเตอร์บนโต๊ะที่ระยะแขนเอื้อม โค้ดที่สูง 12.5% ของจออ่านได้ 82% ของครั้ง นั่นคือการตรวจที่ทุกคนทำ และมันผ่าน ความหนาแน่นของการสุ่มตัวอย่างลดลงแปรผันตรงกับระยะ และโซฟาอยู่ถัดจากจุดที่ทดสอบไปอีกหนึ่งถึงสองเมตร

การเคลื่อนไหวปิดเกมเร็วกว่าขนาดเสียอีก

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

ความสูงโค้ด (% ของจอ)พิกเซลต่อโมดูลนิ่ง0.25 px0.5 px0.75 px1.0 px1.5 px
25%3.0899%86%0%0%0%0%
30%3.70100%97%0%0%0%0%
40%4.95100%100%100%0%0%0%
60%7.41100%100%100%100%1%0%
ที่ k = 3 ผ่านการบีบอัด หัวคอลัมน์คือระยะที่โค้ดไถลไปบนเซนเซอร์ของกล้องระหว่างการเปิดรับแสงหนึ่งครั้ง ทั้งสี่แถวจุดที่พังลงตกอยู่ตำแหน่งเดียวกันเมื่อวัดด้วยหน่วยของโค้ดเอง คือราวหนึ่งในแปดโมดูล นั่นคือเหตุผลที่โค้ดใหญ่กว่าซื้อความเผื่อได้จริง ไม่ใช่แค่ภาพลวง

ความเผื่ออยู่ที่ราวหนึ่งในแปดโมดูล เมื่อคิดเป็นพิกเซลของกล้องก็อยู่ระหว่างหนึ่งในสี่พิกเซลถึงหนึ่งพิกเซลแล้วแต่ว่าโค้ดใหญ่แค่ไหน เรื่องนี้ควรแปลงให้เป็นสิ่งที่ผู้กำกับลงมือทำได้ หนึ่งพิกเซลของกล้องเท่ากับ 0.042 องศา ที่การเปิดรับแสง 1/60 วินาที คือมือถือในห้องสลัวที่วัดแสงจากจอสว่าง หนึ่งในสี่พิกเซลเท่ากับความเร็วเชิงมุมราว 0.6 องศาต่อวินาที นั่นคือมือที่ถือนิ่งพอสมควร และไม่ใช่มือที่กำลังเอื้อมจากโซฟา

เมื่อเอาเลขคณิตเดียวกันไปใช้กับการเคลื่อนที่ของโค้ดบนจอ ผลลัพธ์โหดร้าย ที่ระยะสามเท่าของความสูงจอ ความสูงจอหนึ่งเท่าเทียบได้กับ 457 พิกเซลของกล้อง ดังนั้นโค้ดที่ลอยไปบนจอที่การเปิดรับแสง 1/60 วินาที มีงบราวหนึ่งในสามสิบของความสูงจอต่อวินาที โค้ดที่ไถลเข้ามาอย่างสง่างามในสองวินาที การดันกล้องเข้าช้า ๆ บนเอนด์การ์ด กล้องมือถือที่ขยับอยู่หลังโค้ดที่ซ้อนไว้ การกระเด้ง การหมุน การขยาย ทั้งหมดนี้อยู่นอกงบนั้นหนึ่งถึงสองเท่าตัวของเลขยกกำลัง ตลอดเวลาที่การเคลื่อนไหวดำเนินอยู่ โค้ดเป็นแค่ของประดับจนกว่ามันจะหยุด

ทำไมอัตราการอ่านจึงเป็นความน่าจะเป็น แต่ตารางขนาดไม่ใช่

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

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

สองวิธีที่โฆษณาย่อโค้ดของตัวเองโดยไม่รู้ตัว

ทุกอย่างที่ผ่านมาตั้งอยู่บนสมมติฐานว่าเป็น URL ยาว 25 ตัวอักษรที่ระดับการแก้ไขข้อผิดพลาด M สมมติฐานทั้งสองข้อถูกทำลายเป็นประจำ และถูกทำลายโดยคนที่พยายามช่วย และทั้งสองข้อพังในแบบเดียวกัน คือเพิ่มโมดูล โค้ดยังขนาดเท่าเดิมบนจอ และแต่ละโมดูลเล็กลง

สตริงติดตาม

URL ของแคมเปญมาจากเอเจนซีสื่อพร้อมพารามิเตอร์วัดผลติดมาด้วย เพราะนั่นคือวิธีที่แคมเปญถูกนับผล ไม่มีใครดูว่ามันทำอะไรกับตารางของโค้ด

URLตัวอักษรเวอร์ชันโมดูลพิกเซลต่อโมดูลอัตราการอ่าน
รีไดเรกต์สั้นบนโดเมนที่คุณเป็นเจ้าของ122254.15100%
URL สั้นที่เขียนสคีมเต็ม273293.70100%
URL แคมเปญที่อ่านรู้เรื่อง464333.3493%
URL เดียวกันพร้อมพารามิเตอร์ UTM936412.8077%
URL เดียวกันพร้อมสตริงติดตามแบบเต็ม1579532.2548%
ทั้งห้าแบบที่ 30% ของความสูงจอ, k = 3, นิ่งและผ่านการบีบอัด เป็นโค้ดขนาดใจกว้างที่ผ่านทุกเกณฑ์ในบทความนี้ สิ่งเดียวที่เปลี่ยนคือเพย์โหลด 60 ครั้งต่อแถว

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

การเพิ่มระดับการแก้ไขข้อผิดพลาด

ปฏิกิริยาอีกอย่างคือการเพิ่มระดับการแก้ไขข้อผิดพลาด ด้วยทฤษฎีว่าสถานการณ์ที่อ่านยากขึ้นย่อมต้องการความซ้ำซ้อนมากขึ้น นั่นคือคันโยกที่ผิด และยังเป็นโทษด้วย ด้วยเหตุผลเดียวกับที่มันผิดเมื่อคอนทราสต์ต่ำ คือมันสร้างความซ้ำซ้อนด้วยการเพิ่มโมดูล และโมดูลคือสิ่งที่ขาดแคลนอยู่

การแก้ไขข้อผิดพลาดเวอร์ชันโมดูลอัตราที่ 25% ของจออัตราที่ 30% ของจอ
L225100%100%
M32999%100%
Q32999%100%
H43374%92%
เพย์โหลดเดียวกันในทุกระดับ ที่ k = 3 นิ่งและผ่านการบีบอัด L กับ M ไม่มีต้นทุนอะไร ส่วน H มีต้นทุน 25 จุดที่ขนาดซึ่งโฆษณาส่วนใหญ่จะใช้ เพราะมันจ่ายไปทั้งเวอร์ชันเพื่อความซ้ำซ้อนที่จอไม่มีวันต้องใช้

H มีไว้สำหรับโค้ดที่เปื้อน ฉีก ถูกพิมพ์ทับ หรือถูกโลโก้บังบางส่วน โค้ดบนจอทีวีไม่ใช่สักอย่างในนั้น มันถูกส่งมาสมบูรณ์ทุกพิกเซลแล้วค่อยถูกสุ่มตัวอย่างน้อยเกินไป และการสุ่มตัวอย่างน้อยเกินไปไม่ใช่ความเสียหายที่บล็อกแก้ไขข้อผิดพลาดจะซ่อมได้ เพราะมันขวางไม่ให้โมดูลถูกอ่านตั้งแต่แรก ใช้ L หรือ M บนจอ แล้วเอาโมดูลที่ประหยัดได้ไปใช้ทำให้แต่ละโมดูลใหญ่ขึ้น การแลกกันระหว่างความสามารถในการกู้คืนกับขนาดโมดูล ใช้ได้ที่นี่โดยไม่เปลี่ยนแปลง จอเพียงแค่อยู่ปลายด้านที่ความซ้ำซ้อนมีค่าน้อยที่สุดเท่านั้นเอง

เวลาคืองบที่ไม่มีใครจดเอาไว้

หัวข้อนี้เป็นการประมาณ ไม่ใช่การวัด และควรบอกไว้ก่อนตัวเลขมากกว่าบอกทีหลัง ไม่มีอะไรในชุดทดสอบที่วัดได้ว่าคนคนหนึ่งใช้เวลานานแค่ไหนในการตอบสนองต่อจอทีวี และเราก็ไม่ได้ทำการศึกษานั้น

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

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

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

โฆษณาที่ทุกคนจำได้คือโฆษณาที่ทำตามเลขคณิต

มีตัวอย่างค้านที่โด่งดังอยู่หนึ่งชิ้นสำหรับทั้งหมดนี้ และมันโด่งดังเพราะมันทำทุกอย่างที่บทความนี้แนะนำครบถ้วน ในเดือนกุมภาพันธ์ 2022 Coinbase ออกโฆษณาซูเปอร์โบว์ลความยาวหกสิบวินาทีที่ไม่มีอะไรเลยนอกจากคิวอาร์โค้ดเปลี่ยนสีลอยไปมาบนจอสีดำล้วน Variety และ CNN รายงานเรื่องนี้ในตอนนั้น และรายหลังรายงานส่วนที่ทุกคนจำได้ คือหน้าปลายทางได้ทราฟฟิกมากจนแอปล่ม

ลองวางเรื่องนี้เทียบกับตารางข้างบน โค้ดใหญ่ เพราะมันได้ทั้งเฟรม โค้ดอยู่ตัวเดียว จึงไม่มีอะไรมาแย่งความสนใจของผู้ชมหรือแย่งบิตของตัวเข้ารหัส มันอยู่บนจอหกสิบวินาทีแทนที่จะเป็นสี่ ซึ่งเท่ากับราว 1,800 เฟรมของกล้องให้ตัวถอดรหัสหาเฟรมสะอาดสักเฟรม และมันลอยช้า ๆ แทนที่จะตัดภาพหรือย่อขยาย ซึ่งทำให้โค้ดที่เคลื่อนไหวยังอยู่ในงบรอยลากต่อการเปิดรับแสง อันเป็นงบที่การเคลื่อนไหวเร็ว ๆ อยู่ไม่ได้

สิ่งเดียวที่โฆษณานั้นทำแล้วบทความนี้จะเตือนคือการเปลี่ยนสี และแม้แต่เรื่องนั้นก็ไม่ได้บ้าบิ่นอย่างที่เห็น พาเลตยังคงเป็นเข้มบนอ่อนหรืออ่อนบนเข้มตลอด แทนที่จะจับคู่สองโทนกลางเข้าด้วยกัน ซึ่งนั่นคือเส้นแบ่งที่ตัดสินจริง ๆ ว่าโค้ดสีจะรอดสายตากล้องหรือไม่ สิ่งที่มันไม่ได้ทำคือวางโค้ดเล็ก ๆ ไว้ที่มุมจอสี่วินาที

ข้อสรุปไม่ใช่ว่าทุกแบรนด์ควรซื้อเวลาหกสิบวินาทีในซูเปอร์โบว์ล แต่คือโฆษณาที่ถูกยกมาอ้างเสมอว่าเป็นหลักฐานว่าคิวอาร์โค้ดใช้ได้บนทีวี เป็นโฆษณาที่ทุ่มงบครีเอทีฟทั้งก้อนไปกับการทำให้ถูกต้องตามฟิสิกส์ ถ้ายกมาอ้างเป็นบรรทัดฐานให้กับโค้ดที่มุมเอนด์การ์ด มันพิสูจน์สิ่งตรงข้ามกับที่คนมักใช้มันพิสูจน์

ลองบนทีวีของคุณเองในสิบนาที

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

  1. เล่นไฟล์ที่ส่งมอบ ไม่ใช่มาสเตอร์. เอาไฟล์ส่งมอบจริงขึ้นทีวีจริง จะแคสต์ โหลดจากแฟลชไดรฟ์ หรืออัปโหลดเป็นวิดีโอแบบไม่แสดงในรายการบนแพลตฟอร์มปลายทางก็ได้ การรีวิวมาสเตอร์ ProRes บนจอที่คาลิเบรตแล้วคือการทดสอบที่ผ่านไปแล้วและไม่ได้บอกอะไรคุณเลย
  2. นั่งตรงที่คนนั่ง แล้วจดอัตราส่วนไว้. วัดระยะจากจอถึงโซฟา วัดความสูงของจอ แล้วหาร อัตราส่วนนั้นคือ k ในทุกตารางข้างบน และเป็นตัวเลขที่ทำให้คุณเทียบผลของตัวเองกับตารางได้ ค่าตั้งแต่สามถึงสี่จุดห้าถือเป็นห้องธรรมดา
  3. สแกนด้วยแอปกล้องของเครื่องสองรุ่น. iOS หนึ่งเครื่อง Android หนึ่งเครื่อง โดยใช้กล้องที่ติดมากับเครื่องแทนแอปสแกน แอปสแกนอดทนกว่าแอปกล้องของเครื่องและจะปล่อยผ่านโค้ดที่ผู้ชมของคุณอ่านไม่ได้ ให้เวลาแต่ละเครื่องห้าวินาที เท่าที่เอนด์การ์ดให้
  4. ทำแบบมักง่าย. ถือมือเดียว นั่งเอกเขนก ไม่ต้องเอาศอกยันอะไร ผลจากการทำอย่างตั้งใจไม่ใช่ผลจริง การเคลื่อนที่หนึ่งในสี่พิกเซลของกล้องระหว่างการเปิดรับแสงคืองบทั้งหมดที่มี และการเอาศอกยันมีค่ามากกว่านั้นอีก
  5. ทำการทดสอบควบคุมก่อนจะสรุปอะไร. เดินเข้าไปใกล้แล้วสแกนเฟรมนิ่งเดียวกันจากระยะหนึ่งเมตร ถ้าอันนั้นยังไม่ผ่าน ปัญหาคือคอนทราสต์ โซนเงียบ หรือเพย์โหลด ไม่ใช่ขนาด และการขยายโค้ดจะไม่ช่วยอะไร
  6. ขยับขึ้นทีละห้าเปอร์เซ็นต์จนผ่านสองครั้ง แล้วบวกอีกหนึ่งขั้น. เอ็กซ์พอร์ตใหม่โดยให้โค้ดใหญ่ขึ้นห้าเปอร์เซ็นต์ของความสูงจอ แล้วทำซ้ำจนมือถือทั้งสองเครื่องสแกนติดสองครั้งติดกันจากโซฟา จากนั้นบวกอีกหนึ่งขั้น ขั้นสุดท้ายนั้นคือเผื่อไว้ให้กับมือถือ ห้อง และสายตาที่การทดสอบครั้งนี้ไม่ได้ครอบคลุม

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

แล้วควรใส่อะไรลงในโฆษณาแทน

คำแนะนำที่บทความนี้ปิดท้ายแคบกว่าชื่อเรื่องของมัน คิวอาร์โค้ดในโฆษณาวิดีโอไม่ได้ไร้ประโยชน์ มันแค่แพง ทั้งในแง่พื้นที่จอและในแง่วินาที และโฆษณาเกือบทุกชิ้นที่ใช้มันปฏิเสธที่จะจ่ายราคาทั้งสองอย่าง แล้วค่อยไปโทษรูปแบบทีหลัง

  • ถ้าจะใช้โค้ด ให้มันหนึ่งในสี่ถึงหนึ่งในสามของความสูงจอ และแปดวินาทีแบบนิ่ง ๆ ในทางปฏิบัติแปลว่าโค้ดคือเอนด์การ์ด ไม่ใช่ของประดับบนเอนด์การ์ด นี่คือคำแนะนำทั้งหมด ที่เหลือในบทความนี้เป็นผลพวงของมัน
  • คุมเพย์โหลดให้อยู่ราว 25 ตัวอักษร ใช้พาธสั้น ๆ บนโดเมนที่คุณเป็นเจ้าของ แล้วแปะพารามิเตอร์ติดตามตอนรีไดเรกต์แทนที่จะใส่ในโค้ด เรื่องนี้มีค่ามากกว่าการเปลี่ยนอย่างอื่นใดเพียงอย่างเดียว เพราะมันซื้อโมดูลคืนมาโดยไม่ต้องแลกอะไรเลย
  • ใช้การแก้ไขข้อผิดพลาดระดับ L หรือ M ไม่ใช่ H บนจอ โค้ดถูกส่งมาโดยไม่เสียหายแล้วค่อยถูกสุ่มตัวอย่างน้อยเกินไป และความซ้ำซ้อนไม่ช่วยอะไรกับการสุ่มตัวอย่างน้อยเกินไป
  • อย่าขยับ อย่าย่อขยาย อย่าหมุน และอย่าให้มันไถลเข้ามา งบของการเคลื่อนไหวต่ำกว่าหนึ่งพิกเซลของกล้องต่อการเปิดรับแสงอยู่มาก และแอนิเมชันทุกแบบอยู่นอกงบนั้นหลายเท่าตัวของเลขยกกำลัง เอาแอนิเมชันไปใส่กับทุกอย่างที่เหลือบนการ์ดแทน
  • ถ้าโฆษณาจะถูกดูบนมือถือเป็นหลัก อย่าใช้โค้ดเลย จอที่กำลังเล่นโฆษณาคือจอที่จะต้องอ่านมัน และไม่มีอุปกรณ์เครื่องที่สอง ใช้รูปแบบที่แตะได้ซึ่งแพลตฟอร์มมีให้แทน
  • ลองพิจารณา URL สั้น ๆ ที่ทั้งพูดออกเสียงและขึ้นเป็นตัวหนังสือ โดเมนที่จำง่ายซึ่งถูกอ่านออกเสียงและแสดงเป็นข้อความไม่มีขนาดเชิงมุมขั้นต่ำ ทนต่อการเคลื่อนไหว ใช้ได้บนจอมือถือ และไม่บังคับให้ผู้ชมต้องถืออะไรให้นิ่ง มันเปลี่ยนเป็นยอดได้แย่กว่าต่อการมองเห็นหนึ่งครั้ง แต่ก็ล้มเหลวแบบไม่เด็ดขาดเท่า และสำหรับเอนด์การ์ดสี่วินาที การแลกแบบนี้มักจะคุ้มกว่า
  • โรงภาพยนตร์คือข้อยกเว้นที่ควรรู้ไว้ เลขคณิตชุดเดียวกันที่ตัดมุมจอทีวีทิ้ง กลับใจดีมากในโรงภาพยนตร์ เพราะจอกินมุมกว้างกว่ามากจากทุกที่นั่ง โค้ดที่ไม่มีทางรอดในบ้านอาจมีขนาดพอประมาณก็พอบนจอโรงภาพยนตร์

ขอบันทึกอย่างซื่อตรงเรื่องเครื่องมือของเราเอง เพราะบทความนี้เพิ่งแนะนำสิ่งที่เครื่องมือของเราทำไม่ได้ KoloQR ซึ่งเป็นเครื่องมือสร้างคิวอาร์โค้ดฟรีที่ทำคิวอาร์โค้ดทรงกลมและทรงกำหนดเองได้ ตรึงการแก้ไขข้อผิดพลาดไว้ที่ระดับ H เพราะมันเว้นพื้นที่กลางตารางไว้ให้โลโก้ และ H คือสิ่งที่จ่ายค่าพื้นที่นั้น นั่นคือค่าตั้งต้นที่ถูกต้องสำหรับโค้ดสิ่งพิมพ์ที่มีเครื่องหมายอยู่ตรงกลาง และเป็นค่าที่ผิดสำหรับจอ โค้ดที่เอ็กซ์พอร์ตจากเครื่องมือสร้างไปใช้ในโฆษณาวิดีโอจึงแบกเวอร์ชันเกินมาหนึ่งเวอร์ชัน ที่หนึ่งในสามของความสูงจอเรื่องนี้ไม่มีต้นทุนที่วัดได้ แต่ที่หนึ่งในห้า มันเป็นส่วนหนึ่งของเหตุผลที่หนึ่งในห้าใช้ไม่ได้

ข้อจำกัดของทั้งหมดข้างต้นคือข้อที่บอกไว้ตั้งแต่ต้น เราวัดสายงานที่เป็นซอฟต์แวร์ ไม่ใช่ห้องนั่งเล่นจริง งานนี้ไม่มีการเอามือถือไปเล็งจอทีวีเลย และตัวถอดรหัสที่เราใช้อ่อนกว่าตัวที่จะอ่านโฆษณาของคุณจริง ๆ แปลว่าหน้าผาของจริงอยู่ต่ำกว่าตัวเลขในตารางเหล่านี้ ไม่ใช่สูงกว่า สิ่งที่ตารางเหล่านี้มีไว้ทำคือบอกคุณว่าโค้ดที่มุมจออยู่ฝั่งไหนของหน้าผานั้น และมันไม่ใช่เรื่องที่สูสีเลย

สร้าง QR Code ของคุณ

ฟรี ไม่ต้องสมัครบัญชี ไม่มีลายน้ำ เลือกรูปทรง ใส่โลโก้ ตรวจคอนทราสต์ แล้วส่งออกเป็น SVG, PDF, EPS หรือ PNG ได้ โค้ดแบบสแตติกที่ไม่มีค่าสมัครสมาชิกอยู่เบื้องหลัง

สร้าง QR Code

Questions? Answered

ราวหนึ่งในสี่ถึงหนึ่งในสามของความสูงจอ ในการวัดของเรา โค้ดที่ 25% ของความสูงจออ่านได้ 95% ของครั้งจากระยะห้องนั่งเล่นปกติ และที่ 30% อ่านได้ทุกครั้ง ขณะที่ 20% อ่านได้ 6% และเล็กกว่านั้นอ่านไม่ได้เลย คำตอบเป็นสัดส่วนไม่ใช่ขนาดเป็นเซนติเมตร เพราะคนนั่งไกลจากทีวีที่ใหญ่กว่า เปอร์เซ็นต์เดียวกันจึงใช้ได้กับทุกจอ

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

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

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

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

ไม่ ควรลดลง การแก้ไขข้อผิดพลาดเพิ่มความซ้ำซ้อนด้วยการเพิ่มโมดูล และเมื่อขนาดบนจอคงที่ โมดูลที่มากขึ้นแปลว่าพิกเซลของกล้องบนแต่ละโมดูลน้อยลง ในการวัดของเรา เพย์โหลดเดียวกันที่ระดับ H อ่านได้ 74% ของครั้ง ขณะที่ระดับ L และ M อ่านได้ 100% เพราะ H จ่ายไปทั้งเวอร์ชันเพื่อซ่อมความเสียหายที่จอไม่เคยก่อ การสุ่มตัวอย่างน้อยเกินไปไม่ใช่ความเสียหายที่การแก้ไขข้อผิดพลาดซ่อมได้ เพราะมันขวางไม่ให้โมดูลถูกอ่านตั้งแต่แรก

ยากขึ้นพอสมควร ที่ขนาดซึ่งโฆษณาวิดีโอใช้กัน URL แคมเปญยาว 46 ตัวอักษรเป็นโค้ด 33 โมดูล ส่วน URL เดียวกันพร้อมสตริงติดตามแบบเต็มยาว 157 ตัวอักษรและเป็น 53 โมดูล และเมื่อขนาดบนจอคงที่ ในการทดสอบของเรามันพาอัตราการอ่านจาก 93% ลงมาที่ 48% ให้ใส่พาธสั้น ๆ บนโดเมนที่คุณเป็นเจ้าของไว้ในโค้ด แล้วแปะพารามิเตอร์ตอนรีไดเรกต์ ซึ่งไม่มีต้นทุน

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

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

เล่นไฟล์ที่ส่งมอบบนทีวีจริง นั่งตรงที่ผู้ชมจะนั่ง แล้วสแกนด้วยแอปกล้องที่ติดมากับเครื่องบนมือถือ iOS หนึ่งเครื่องและ Android หนึ่งเครื่อง ถือมือเดียวแบบมักง่าย ให้เวลาแต่ละเครื่องเท่ากับไม่กี่วินาทีที่เอนด์การ์ดให้ผู้ชม การทดสอบทุกครั้งที่ทำบนจอห้องตัดต่อหรือโน้ตบุ๊กจะผ่านหมด เพราะระยะเหล่านั้นใกล้กว่าโซฟาสองถึงสามเท่า และนั่นแหละคือเหตุผลที่ปัญหานี้รอดจากขั้นตอนการผลิตมาได้

สำรวจต่อ

หน้าที่ต่อจากหน้านี้ - บริบทเดียวกัน โค้ดชนิดเดียวกัน หรือสิ่งที่ต้องตัดสินใจต่อไป

ร้านค้าปลีก

ข้อมูลสินค้า สต๊อก และลิงก์รีวิว บนป้ายบนชั้น กระจกหน้าร้าน และป้ายที่แคชเชียร์

เอเจนซีอีเวนต์

โค้ดที่ผลิตให้อีเวนต์ของคนอื่น ทั้งรีไดเรกต์ของลูกค้า เอกสารสเปกสำหรับผู้ออกบูธ การพิมพ์บัตรประจำตัว และป้ายที่กำหนดขนาดตามห้องจริง

ยานพาหนะ

รถตู้ รถยนต์ และรถของบริษัท - ขนาดที่โค้ดต้องมีเมื่อมองจากทางเท้า และตำแหน่งบนตัวถังที่โค้ดจะรอดจากหมุดย้ำ ร่องประตู และคราบถนน

บิลบอร์ด

บิลบอร์ด ป้ายศาลาที่พักผู้โดยสาร และป้ายผนังอาคาร - สิ่งที่การคำนวณระยะเรียกร้องในสเกลนี้ และตำแหน่งที่มันบอกว่าไม่ควรมีโค้ดเลย

QR Code สร้างสรรค์

แนวทางออกแบบและตัวอย่างจริงของ QR Code ที่ดูตั้งใจ โดยไม่ยอมเสียความแน่นอนในการสแกน

ป้ายอยู่ได้สิบปี ส่วนค่าสมาชิกต่ออายุทุกเดือน

ลวดลายที่คุณพิมพ์บรรจุโดเมนของผู้ให้บริการไว้ ไม่ใช่โดเมนของคุณ นั่นคือเหตุผลที่แพ็กเกจซึ่งหมดอายุเปลี่ยนป้ายให้กลายเป็นวัตถุที่ตายแล้ว และเหตุผลที่โดเมนซึ่งคุณเป็นเจ้าของคือ QR Code แบบไดนามิกเวอร์ชันเดียวที่เคลื่อนย้ายได้

ทำไมต้อง KoloQR?

  • สร้าง QR Code สำหรับเว็บไซต์ เมนู Wi-Fi ไฟล์ PDF และนามบัตร
  • ปรับแต่งสี โลโก้ และรูปทรงที่ไม่เหมือนใคร
  • ดาวน์โหลดไฟล์ PNG และ SVG คุณภาพสูง
  • ออกแบบมาเพื่อทั้งงานพิมพ์และงานดิจิทัล
สร้าง QR Code
QR Code สีดำธรรมดาวางข้าง QR Code เดียวกันที่ออกแบบใหม่เป็นทรงกลมด้วยสีของแบรนด์