บทความนี้มีปัญหาหลายประการโปรดช่วยปรับปรุงหรือพูดคุยเกี่ยวกับปัญหาเหล่านี้ในหน้าพูดคุย ( เรียนรู้วิธีและเวลาในการลบข้อความเหล่านี้ )
|
Motion JPEG ( M-JPEGหรือ MJPEG )เป็นรูปแบบการบีบอัดวิดีโอโดยที่แต่ละเฟรมวิดีโอหรือ ฟิลด์ อินเทอร์เลซของ ลำดับ วิดีโอแบบดิจิทัลจะถูกบีบอัดแยกกันเป็นภาพJPEG
Motion JPEG ได้รับการพัฒนาขึ้นในตอนแรกสำหรับแอปพลิเคชั่นพีซีมัลติมีเดีย โดยรองรับไคลเอนต์ได้อย่างกว้างขวาง โดยเว็บเบราว์เซอร์และเครื่องเล่นหลักๆ ส่วนใหญ่รองรับการทำงานแบบเนทีฟ และปลั๊กอินต่างๆ ก็รองรับส่วนที่เหลือด้วย ซอฟต์แวร์และอุปกรณ์ที่ใช้มาตรฐาน M-JPEG ได้แก่ เครื่องเล่นสื่อ คอนโซลเกม กล้องดิจิทัล กล้อง IP เว็บแคม เซิร์ฟเวอร์สตรีมมิ่ง กล้องวิดีโอ และโปรแกรมตัดต่อวิดีโอแบบไม่เชิงเส้น[ จำเป็นต้องอ้างอิง ]
This section needs expansion. You can help by adding to it. (August 2012) |
Motion JPEG เดิมได้รับการพัฒนาสำหรับแอปพลิเคชั่นพีซีมัลติมีเดีย[ จำเป็นต้องอ้างอิง ]
การนำ MJPEG ไปใช้งานในช่วงแรกๆ มักจะนำไปใช้ในฮาร์ดแวร์C-Cubeเป็นผู้สนับสนุนในช่วงแรกๆ โดยใช้โคเดก JPEG CL550 ของพวกเขาในการใช้งานฮาร์ดแวร์หลายๆ แบบ มีการประกาศ[1]ว่าNeXTdimensionจากNeXTจะมาพร้อมกับ CL550 ออนบอร์ดเพื่อนำ MJPEG ไปใช้งาน อย่างไรก็ตาม ในภายหลังได้มีการระงับการใช้งานและไม่รวมอยู่ในผลิตภัณฑ์ขั้นสุดท้ายที่จัดส่ง[2]
Apple ได้นำ MJPEG มาใช้งานซอฟต์แวร์ในQuickTime Playerในช่วงกลางทศวรรษ 1990 [3]
M-JPEG เป็นรูปแบบการบีบอัดแบบ intraframe เท่านั้น (เมื่อเปรียบเทียบกับเทคนิคการคำนวณแบบinterframe prediction ที่ต้องใช้การคำนวณมากกว่า ) ในขณะที่รูปแบบวิดีโอแบบ interframe ที่ทันสมัย เช่นMPEG1 , MPEG2และH.264/MPEG-4 AVCสามารถบรรลุอัตราส่วนการบีบอัดในโลกแห่งความเป็นจริงที่ 1:50 หรือดีกว่านั้น การที่ M-JPEG ไม่มีการคาดการณ์แบบ interframe ทำให้ประสิทธิภาพจำกัดอยู่ที่ 1:20 หรือต่ำกว่า ขึ้นอยู่กับความทนทานต่อสิ่งแปลกปลอมในเชิงพื้นที่ในเอาต์พุตที่บีบอัด เนื่องจากเฟรมถูกบีบอัดแยกจากกัน M-JPEG จึงกำหนดข้อกำหนดการประมวลผลและหน่วยความจำที่ต่ำกว่าสำหรับอุปกรณ์ฮาร์ดแวร์
เนื่องจากเป็นรูปแบบการบีบอัดแบบอินทราเฟรมอย่างแท้จริง คุณภาพของภาพ M-JPEG จึงขึ้นอยู่กับความซับซ้อนเชิงพื้นที่ (แบบคงที่) ของเฟรมวิดีโอแต่ละเฟรมโดยตรง เฟรมที่มีการเปลี่ยนแปลงที่ราบรื่นหรือพื้นผิวโทนสีเดียวขนาดใหญ่จะบีบอัดได้ดีและมีแนวโน้มที่จะรักษารายละเอียดเดิมไว้โดยมีสิ่งแปลกปลอมในการบีบอัดที่มองเห็นได้เพียงเล็กน้อย เฟรมที่มีพื้นผิวที่ซับซ้อน เส้นโค้งและเส้นสายที่ละเอียด (เช่น การเขียนบนหนังสือพิมพ์) มีแนวโน้มที่จะแสดง สิ่งแปลกปลอม จากการแปลงโคไซน์แบบไม่ต่อเนื่อง (DCT) เช่นเสียงกริ่งรอยเปื้อน และการบล็อกแมโครวิดีโอที่บีบอัดด้วย M-JPEG ยังไม่ไวต่อความซับซ้อนของการเคลื่อนไหว เช่น การเปลี่ยนแปลงตามเวลา นอกจากนี้ยังไม่ได้รับการขัดขวางจากการเคลื่อนไหวแบบสุ่มอย่างมาก (เช่น ความปั่นป่วนของผิวน้ำในน้ำตกขนาดใหญ่) หรือได้รับการช่วยเหลือจากการไม่มีการเคลื่อนไหว (เช่น ทิวทัศน์คงที่ที่ถ่ายด้วยขาตั้งกล้อง) ซึ่งเป็นสองขั้วตรงข้ามที่ใช้กันทั่วไปในการทดสอบรูปแบบวิดีโอแบบอินทราเฟรม
สำหรับ รูปแบบ QuickTimeนั้น Apple ได้กำหนดประเภทของการเข้ารหัสไว้ 2 ประเภท ได้แก่ MJPEG-A และ MJPEG-B โดย MJPEG-B จะไม่เก็บไฟล์ JPEG Interchange ที่ถูกต้องไว้ภายในอีกต่อไป ดังนั้น จึงไม่สามารถใส่เฟรมลงในไฟล์ JPEG ได้ โดยไม่ต้องแก้ไขส่วนหัวเล็กน้อย
JPEG ไม่มีประสิทธิภาพ เนื่องจากใช้บิตมากขึ้นเพื่อให้ได้คุณภาพที่ใกล้เคียงกัน เมื่อเทียบกับรูปแบบที่ทันสมัยกว่า (เช่นJPEG 2000และH.264/MPEG-4 AVC ) นับตั้งแต่มีการพัฒนา JPEG มาตรฐานดั้งเดิมในช่วงต้นทศวรรษ 1990 เทคโนโลยีก็ได้รับการปรับปรุงไม่เพียงแค่กับรูปแบบ JPEG เท่านั้น แต่ยังรวมถึง รูปแบบการบีบอัด ระหว่างเฟรมด้วย
Motion JPEG นั้นง่ายต่อการนำไปใช้งานเนื่องจากใช้มาตรฐานการบีบอัดที่สมบูรณ์แบบ (JPEG) พร้อมไลบรารีที่พัฒนาอย่างดี และเป็นวิธีการบีบอัดแบบอินทราเฟรม[ จำเป็นต้องอ้างอิง ]
ระบบนี้สามารถทนต่อการเคลื่อนไหวที่เปลี่ยนแปลงอย่างรวดเร็วในสตรีมวิดีโอได้ ในขณะที่รูปแบบการบีบอัดที่ใช้การบีบอัดระหว่างเฟรมมักจะประสบกับการสูญเสียคุณภาพที่ยอมรับไม่ได้เมื่อเนื้อหาวิดีโอมีการเปลี่ยนแปลงอย่างมากระหว่างแต่ละเฟรม[ จำเป็นต้องอ้างอิง ]
จำเป็นต้องใช้ฮาร์ดแวร์ให้น้อยที่สุด เนื่องจากไม่ต้องใช้การคำนวณที่ซับซ้อน[ จำเป็นต้องมีการอ้างอิง ]
รูปแบบวิดีโอที่กำหนดไว้ในมาตรฐานสากลเช่นMPEG-2และรูปแบบที่กำหนดไว้ในมาตรฐานการเข้ารหัสภาพนิ่ง JPEG ไม่มีเอกสารใดที่กำหนดรูปแบบเดียวที่แน่นอนซึ่งได้รับการยอมรับโดยทั่วไปว่าเป็นข้อกำหนดที่สมบูรณ์ของ "Motion JPEG" สำหรับการใช้งานในทุกบริบท สิ่งนี้ทำให้เกิดข้อกังวลเกี่ยวกับความเข้ากันได้เกี่ยวกับเอาต์พุตไฟล์จากผู้ผลิตที่แตกต่างกัน อย่างไรก็ตาม รูปแบบไฟล์แต่ละรูปแบบโดยเฉพาะมักจะมีมาตรฐานบางอย่างเกี่ยวกับวิธีการเข้ารหัส M-JPEG ตัวอย่างเช่น Microsoft ได้จัดทำเอกสารรูปแบบมาตรฐานเพื่อจัดเก็บ M-JPEG ในไฟล์ AVI [4] Apple ได้จัดทำเอกสารเกี่ยวกับวิธีจัดเก็บ M-JPEG ในไฟล์ QuickTime RFC 2435 อธิบายว่า M-JPEG ถูกนำไปใช้งานในสตรีม RTP อย่างไร และมีการวางแผน CodecID M-JPEG สำหรับรูปแบบไฟล์Matroska [5]
ปัจจุบัน M-JPEG ถูกใช้โดยอุปกรณ์บันทึกวิดีโอ เช่นกล้องดิจิทัลกล้อง IPและเว็บแคมรวมถึง ระบบ ตัดต่อวิดีโอแบบไม่เชิงเส้น M-JPEG ได้รับการสนับสนุนโดยQuickTime Player คอนโซล PlayStationและเว็บเบราว์เซอร์เช่นSafari , Google Chrome , Mozilla FirefoxและMicrosoft Edge
M-JPEG มักใช้ในระบบตัดต่อวิดีโอแบบไม่เชิงเส้นซีพียูเดสก์ท็อปสมัยใหม่มีประสิทธิภาพเพียงพอที่จะทำงานกับวิดีโอความละเอียดสูง ดังนั้นจึงไม่จำเป็นต้องใช้ฮาร์ดแวร์พิเศษ และยังให้การเข้าถึงเฟรมแบบสุ่มโดยธรรมชาติอีกด้วย
เครื่องเล่น เกม PlayStationได้รวมฮาร์ดแวร์คลายการบีบอัดแบบ M-JPEG ไว้สำหรับ ลำดับเหตุการณ์ FMV ในเกม ในขณะที่ เครื่องเล่นเกมพกพา PlayStation Portableสามารถเล่น M-JPEG จากMemory Stick Pro Duoภายใต้นามสกุล .avi ด้วยความละเอียด 480×272 ทั้งสองเครื่องสามารถบันทึกคลิปในรูปแบบ M-JPEG ด้วยกล้อง Go!Cam
คอนโซลเกม WiiของNintendoรวมถึงInnoTab ของVTech สามารถเล่นวิดีโอที่เข้ารหัส M-JPEG บน การ์ด SDโดยใช้Photo Channel เครื่องเล่นเสียงดิจิทัล SanDisk Sansa e200 และZen V สามารถ เล่นวิดีโอ M-JPEG สั้นๆ ได้ การอัปเดตเฟิร์มแวร์ล่าสุดสำหรับNintendo 3DSสามารถบันทึกและเล่นไฟล์ที่เข้ารหัส M-JPEG "3D-AVI" ซึ่งเป็นรูปแบบเดียวกับที่ใช้ในซีรีส์ Fujifilm FinePix Real 3Dจากการ์ด SD ในความละเอียด 320×240 ตราบใดที่วิดีโอมีความยาว 10 นาทีหรือน้อยกว่า
ก่อนที่การ เข้ารหัส MPEG-4 จะได้รับความนิยม ในอุปกรณ์ของผู้บริโภคการสแกนแบบโปรเกรสซีฟของ M-JPEG ถูกใช้กันอย่างแพร่หลายในโหมด "ภาพยนตร์" ของกล้องดิจิทัลแบบนิ่ง ซึ่งช่วยให้สามารถเข้ารหัสและเล่นวิดีโอผ่านฮาร์ดแวร์การบีบอัด JPEG ในตัวได้โดยเพียงแค่ปรับเปลี่ยนซอฟต์แวร์เท่านั้น คุณภาพที่ได้ยังด้อยกว่า MPEG ที่มีขนาดใกล้เคียงกัน โดยเฉพาะอย่างยิ่งเมื่อเสียง (เมื่อรวมอยู่ด้วย) เป็นPCM ที่ไม่ได้บีบอัด และบันทึกด้วยอัตราการสุ่มตัวอย่างต่ำหรือADPCM ที่มีการบีบอัดต่ำ และ ต้องการโปรเซสเซอร์ต่ำ
เพื่อรักษาขนาดไฟล์และอัตราการถ่ายโอนให้อยู่ในการควบคุม ขนาดเฟรมและอัตรา รวมถึงอัตราการสุ่มตัวอย่างเสียงจะถูกควบคุมให้อยู่ในระดับต่ำ โดยมีระดับการบีบอัดที่สูงมากสำหรับแต่ละเฟรม ขนาดทั่วไปคือ 160×120 หรือ 320×240 โดยทั่วไปจะอยู่ที่ 10, 12 หรือ 15 เฟรมต่อวินาที โดยคุณภาพของภาพจะเทียบเท่ากับการตั้งค่า JPEG ที่ "50" โดยมีการสุ่มตัวอย่างเสียงโมโน ADPCM ที่ ~8 kHz ส่งผลให้ได้เอาต์พุตวิดีโอพื้นฐานมากแต่ใช้งานได้ โดยมีต้นทุนการจัดเก็บที่ใกล้เคียงกับ MPEG (อัตราวิดีโอ ~120 kB/s, เสียง ~8 kB/s หรือประมาณ 1 Mbit/s ที่ความละเอียด 320×240) แต่มีค่าใช้จ่ายในการประมวลผลเพียงเล็กน้อย โดยทั่วไปแล้ว วิดีโอนี้จะถูกเก็บไว้ใน ไฟล์คอนเทนเนอร์ AVI ของ Microsoft หรือ QuickTime Movieของ Apple ไฟล์เหล่านี้สามารถดูได้บนระบบปฏิบัติการส่วนใหญ่ แต่บางครั้งอาจต้องติดตั้ง โคเดก เพิ่มเติม
รูปแบบวิดีโอ AMVซึ่งมักใช้ในเครื่องเล่น "MP4" ราคาถูก โดยเป็นเวอร์ชันดัดแปลงของ M-JPEG
นอกจากเครื่องเล่นพกพา (ซึ่งส่วนใหญ่เป็น "ผู้บริโภค" ของวิดีโอ) กล้องดิจิทัลที่รองรับวิดีโอหลายรุ่นยังใช้ M-JPEG สำหรับการบันทึกวิดีโอ ตัวอย่างเช่น:
กล้องที่รองรับเครือข่ายจำนวนมากมีสตรีม M-JPEG ที่ไคลเอนต์เครือข่ายสามารถเชื่อมต่อได้ เบราว์เซอร์ที่ใช้ MozillaและWebkitมีการสนับสนุนดั้งเดิมสำหรับการดูสตรีม M-JPEG เหล่านี้
กล้องบางรุ่นที่เปิดใช้งานเครือข่ายจะมีอินเทอร์เฟซ M-JPEG เป็นของตัวเองเป็นส่วนหนึ่งของชุดคุณสมบัติปกติ สำหรับกล้องที่ไม่มีคุณสมบัตินี้โดยตรง สามารถใช้เซิร์ฟเวอร์เพื่อแปลงภาพจากกล้องเป็นสตรีม M-JPEG จากนั้นจึงส่งสตรีมดังกล่าวไปยังไคลเอนต์เครือข่ายอื่น
Apple ประกาศในวันที่ 1 กันยายน 2010 ว่า Apple TV เวอร์ชันล่าสุดจะรองรับ M-JPEG สูงสุด 35 Mbit/s, 1280 x 720 พิกเซล, 30 เฟรมต่อวินาที, เสียงในรูปแบบ μlaw, เสียงสเตอริโอ PCM ในรูปแบบไฟล์ .avi
เครื่องเล่นสื่อบางรุ่น เช่น Netgear NeoTV 550 ไม่รองรับการเล่นไฟล์ M-JPEG
การสตรีมแบบ HTTP จะแยกภาพแต่ละภาพออกเป็นคำตอบ HTTP แต่ละรายการบนมาร์กเกอร์ที่ระบุ การสตรีม แบบ HTTP จะสร้างแพ็กเก็ตของลำดับภาพ JPEG ที่สามารถรับได้โดยไคลเอนต์ เช่นQuickTimeหรือVLC
ในการตอบสนองต่อคำขอ GETสำหรับไฟล์ MJPEG หรือสตรีม เซิร์ฟเวอร์จะสตรีมลำดับของเฟรม JPEG ผ่านHTTP ประเภทเนื้อหาชนิด MIME พิเศษmultipart/x-mixed-replace;boundary=<boundary-name>จะแจ้งให้ไคลเอนต์คาดหวังส่วนต่างๆ หลายส่วน (เฟรม) เป็นคำตอบที่คั่นด้วย <boundary-name> ชื่อขอบเขตนี้เปิดเผยอย่างชัดเจนภายในการประกาศชนิด MIME เอง การเชื่อมต่อ TCP จะไม่ถูกปิดตราบใดที่ไคลเอนต์ต้องการรับเฟรมใหม่และเซิร์ฟเวอร์ต้องการจัดเตรียมเฟรมใหม่ การใช้งานพื้นฐานสองประการของเซิร์ฟเวอร์สตรีมมิ่ง M-JPEG คือcambozolaและMJPG-Streamer ffmpeg-serverที่แข็งแกร่งกว่ายังรองรับการสตรีมมิ่ง M-JPEG อีกด้วย
การสนับสนุนเว็บเบราว์เซอร์ดั้งเดิม ได้แก่Safari , Google Chrome , Microsoft Edge [8]และFirefox [9]เบราว์เซอร์อื่น ๆ เช่นInternet Explorerสามารถแสดงสตรีม M-JPEG ด้วยความช่วยเหลือของปลั๊กอินภายนอก Cambozola เป็นแอพเพล็ตที่สามารถแสดงสตรีม M-JPEG ในเบราว์เซอร์ที่รองรับ Java M-JPEG ยังได้รับการสนับสนุนโดย PlayStation และ QuickTime โดยทั่วไป M-JPEG ใช้ในกล้องรักษาความปลอดภัยที่ใช้ IP [10]
การพัฒนาทางเทคโนโลยีพบได้ในการออกแบบH.263v2 Annex IและMPEG-4 ส่วนที่ 2ซึ่งใช้การทำนายค่าสัมประสิทธิ์การแปลงในโดเมนความถี่ และในH.264/MPEG-4 AVCซึ่งใช้การทำนายเชิงพื้นที่และเทคนิคขนาดบล็อกการแปลงแบบปรับตัว นอกจากนี้ยังมีการเข้ารหัสเอนโทรปีที่ซับซ้อนกว่าที่ใช้ได้จริงเมื่อออกแบบ JPEG ครั้งแรก การพัฒนาใหม่ทั้งหมดนี้ทำให้ M-JPEG เป็นกลไกการบันทึกที่ไม่มีประสิทธิภาพ