อ่าน 6 นาที
โอเพ่นแม็กซ์
OpenMAX (Open Media Acceleration) ซึ่งมักย่อว่า " OMX " เป็นชุดอิน เทอร์เฟซการเขียนโปรแกรม ภาษา C ข้ามแพลตฟอร์มที่ไม่ผูกขาดและไม่เสียค่าลิขสิทธิ์ โดยมีนามธรรมสำหรับรูทีนต่างๆ...
โอเพ่นแม็กซ์
| โอเพ่นแม็กซ์ | |
|---|---|
| นักพัฒนา | กลุ่มโครโนส |
| เว็บไซต์ | www.khronos.org/openmax/ |
OpenMAX (Open Media Acceleration) ซึ่งมักย่อว่า " OMX " เป็นชุดอิน เทอร์เฟซการเขียนโปรแกรม ภาษา C ข้ามแพลตฟอร์มที่ไม่ผูกขาดและไม่เสียค่าลิขสิทธิ์ โดยมีนามธรรมสำหรับรูทีนต่างๆ ที่มีประโยชน์อย่างยิ่งสำหรับการประมวลผลเสียง วิดีโอ และภาพนิ่ง[ 1 ] [ 2 ]มีจุดประสงค์สำหรับอุปกรณ์พลังงานต่ำและระบบฝังตัว (รวมถึงสมาร์ทโฟนเครื่องเล่นเกมเครื่องเล่นสื่อดิจิทัลและกล่องรับสัญญาณ ) ที่ต้องการประมวลผลข้อมูลมัลติมีเดียจำนวนมากอย่างมีประสิทธิภาพในรูปแบบที่คาดการณ์ได้ เช่น ตัวแปลงสัญญาณวิดีโอ ไลบรารีกราฟิก และฟังก์ชันอื่นๆ สำหรับวิดีโอ ภาพ เสียง เสียงพูด และคำพูด[ 3 ]
OpenMAX มีอินเทอร์เฟซสามชั้น ได้แก่ ชั้นแอปพลิเคชัน (AL) ชั้นการบูรณาการ (IL) และชั้นการพัฒนา (DL) OpenMAX บริหารจัดการโดยกลุ่มเทคโนโลยีที่ไม่แสวงหาผลกำไรKhronos Group [ 4 ]
ประวัติศาสตร์
ประกาศครั้งแรกในเดือนกรกฎาคม พ.ศ. 2547 [ 5 ] กลุ่มทำงาน OpenMAX ก่อตั้งขึ้นครั้งแรกโดยสมาชิกARM , Motorola , Samsung , STMicroelectronicsและTexas Instrumentsข้อกำหนดเวอร์ชัน 1.0 ได้รับการเผยแพร่ในเดือนธันวาคม พ.ศ. 2548 [ 6 ]ร่างฉบับสุดท้ายที่จัดทำโดยกลุ่มทำงาน OpenMAX (1.2.0) มีอายุตั้งแต่ปี พ.ศ. 2554 [ 7 ]และไม่มีผลิตภัณฑ์ใดได้รับการประกาศว่าสอดคล้องตั้งแต่ปี พ.ศ. 2555 [ 8 ]ข้อกำหนด OpenMAX ไม่เคยได้รับการอัปเดตเพื่อรองรับตัวแปลงสัญญาณรุ่นใหม่ เช่น HEVC หรือ VP9 ทำให้ Android กลายเป็นแหล่งที่มาของการอัปเดตมาตรฐาน OpenMAX IL โดยปริยาย[ 9 ]
ชั้นต่างๆ
OpenMAX ALเป็นอินเทอร์เฟซระหว่างแอปพลิเคชันมัลติมีเดีย เช่น โปรแกรมเล่นสื่อ และเฟรมเวิร์กสื่อ ของแพลตฟอร์ม ช่วยให้บริษัทที่พัฒนาแอปพลิเคชันสามารถย้ายแอปพลิเคชันของตนไปยังแพลตฟอร์มต่างๆ (ลูกค้า) ที่รองรับ อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) ของ OpenMAX AL ได้อย่างง่ายดาย[ 10 ]
OpenMAX ILเป็นอินเทอร์เฟซระหว่างเฟรมเวิร์กสื่อ (เช่นStageFrightหรือ MediaCodec API บน Android, DirectShowบน Windows, FFmpegหรือGStreamerบน Linux) และชุดส่วนประกอบมัลติมีเดีย (เช่นตัวแปลง สัญญาณเสียงหรือวิดีโอ ) ช่วยให้บริษัทที่สร้างแพลตฟอร์ม (เช่น อนุญาตให้ใช้งานเครื่องเล่น MP3) สามารถเปลี่ยนส่วนประกอบต่างๆ เช่น ตัวถอดรหัส MP3 และเอฟเฟกต์อีควอไลเซอร์ และซื้อส่วนประกอบสำหรับแพลตฟอร์มของตนจากผู้จำหน่ายต่างๆ ได้อย่างง่ายดาย[ 11 ]
OpenMAX DLคืออินเทอร์เฟซระหว่างฮาร์ดแวร์ทางกายภาพ เช่น ชิป ประมวลผลสัญญาณดิจิทัล (DSP), CPU , GPUและซอฟต์แวร์ เช่นตัวแปลงสัญญาณ วิดีโอ และเอนจิ้น 3 มิติ ช่วยให้บริษัทต่างๆ สามารถผสานรวมฮาร์ดแวร์ใหม่ที่รองรับ OpenMAX DL ได้อย่างง่ายดายโดยไม่ต้องปรับแต่งซอฟต์แวร์ระดับต่ำของตนใหม่
ชั้นแอปพลิเคชัน
| โอเพ่นแม็กซ์ เอแอล | |
|---|---|
| นักพัฒนา | กลุ่มโครโนส |
| เวอร์ชันเสถียร | 1.1 / 18 มกราคม 2554 |
| ระบบปฏิบัติการ | ข้ามแพลตฟอร์ม |
| พิมพ์ | API |
| ใบอนุญาต | หลากหลาย |
| เว็บไซต์ | www.khronos.org/openmax/ |
OpenMAX AL รองรับกรณีการใช้งานแอปพลิเคชันมัลติมีเดียทั่วไปโดยการกำหนดมาตรฐานชุดของวัตถุ ที่เป็นตัวแทน รวมถึงอินเทอร์เฟซบนวัตถุเหล่านั้น เพื่อควบคุมและกำหนดค่า API ของ OpenMAX AL แบ่งออกเป็นสองโปรไฟล์ ได้แก่ เครื่องเล่นมีเดีย และ เครื่องเล่น/บันทึกมีเดีย แพลตฟอร์มสามารถรองรับโปรไฟล์ใดโปรไฟล์หนึ่งหรือทั้งสองโปรไฟล์ได้ โดยการจัดเตรียมคุณสมบัติทั้งหมดที่รวมอยู่ในโปรไฟล์นั้น ๆ
OpenMAX AL เป็น API มัลติมีเดียระดับแอป พลิเคชันที่เขียน ด้วยภาษา C ออกแบบมาสำหรับอุปกรณ์ที่มีทรัพยากรจำกัด การออกแบบ API ของ OpenMAX AL เน้นเป็นพิเศษที่การทำให้มั่นใจว่า API นั้นเหมาะสมกับ อุปกรณ์ฝังตัวแบบพกพารวมถึงโทรศัพท์มือถือพื้นฐาน โทรศัพท์ฟีเจอร์โฟนอัจฉริยะ PDA และเครื่องเล่นเพลงดิจิทัลแบบพกพา อย่างไรก็ตาม นี่ไม่ได้หมายความว่าจะไม่สามารถนำไปใช้กับอุปกรณ์เล่นและบันทึกสื่อที่ซับซ้อนอื่นๆ ได้
การออกแบบ API ของ OpenMAX AL ให้ความสำคัญเป็นพิเศษกับความเป็นมิตรต่อผู้พัฒนาแอปพลิเคชัน สถานะของมันในฐานะ API แบบเปิดที่ใช้งานได้หลายแพลตฟอร์ม ช่วยให้นักพัฒนาสามารถพอร์ตซอร์สโค้ดเดียวกันไปยังอุปกรณ์ต่างๆ ได้โดยใช้ความพยายามน้อยที่สุด ดังนั้น OpenMAX AL จึงเป็นรากฐานที่มั่นคงสำหรับการพัฒนาแอปพลิเคชัน
คุณสมบัติ
คุณสมบัติของ OpenMAX AL ประกอบด้วย:
- การเล่นและการบันทึกวิดีโอ
- การเล่นและการบันทึกเสียง
- การจับภาพ (กล้อง) และการแสดงผล
- การควบคุมกล้อง
- วิทยุและRDS
- การเล่นMIDIขั้นพื้นฐาน
- การดึงและการแทรกเมตาเดตา
การขยายสัญญาณทีวีดิจิทัล
ข้อกำหนดส่วนขยายโทรทัศน์ดิจิทัล (DTV) ของ OpenMAX AL เพิ่มฟังก์ชันการปรับจูน การเล่น การบันทึก และคู่มือรายการอิเล็กทรอนิกส์สำหรับทีวีเคลื่อนที่ที่ไม่ขึ้นกับมาตรฐานให้กับ OpenMAX AL Multimedia API ซึ่งเป็น API ภาษา C แบบโมดูลาร์ที่ไม่ต้องเสียค่าลิขสิทธิ์และใช้งานได้หลายแพลตฟอร์ม สำหรับแอปพลิเคชันที่เกี่ยวข้องกับทีวีดิจิทัลประสิทธิภาพสูงบนอุปกรณ์เคลื่อนที่และอุปกรณ์ฝังตัว ส่วนขยาย DTV เข้ากันได้กับมาตรฐานทีวีเคลื่อนที่หลักทั้งหมด (เช่น DVB-H, ISDB-T, T-DMB เป็นต้น) และรองรับวิธีการส่งแบบบรอดแคสต์ ยูนิคาสต์ และมัลติคาสต์สำหรับทีวีดิจิทัล[ 12 ] [ 13 ]
เวอร์ชันข้อมูลจำเพาะ
- ข้อกำหนดเบื้องต้นของ OpenMAX AL 1.0 - เวอร์ชันชั่วคราว ลงวันที่ 2 กันยายน 2550 เพื่อเปิดโอกาสให้ชุมชนแสดงความคิดเห็นก่อนการเผยแพร่เวอร์ชัน 1.0 อย่างเป็นทางการ
- ข้อกำหนด OpenMAX AL 1.0 - ลงวันที่ 23 มิถุนายน 2552
- ข้อกำหนด OpenMAX AL 1.0.1 - ลงวันที่ 12 มีนาคม 2553
- ข้อกำหนด OpenMAX AL 1.1 - ลงวันที่ 18 มกราคม 2011 [ 14 ]
การนำไปใช้
- Android 4.0 และเวอร์ชันต่อมาเปิดเผย OpenMAX AL เป็นส่วนหนึ่งของNDK (Native Development Kit ) [ 15 ]
- LIM OpenMAXเป็นซอฟต์แวร์โอเพนซอร์สที่นำ OpenMAX AL และ OpenMAX IL มาใช้งานบนระบบ Linux
การเปรียบเทียบกับ OpenSL ES
OpenSL ES (Open Sound Library for Embedded Systems) เป็น API อีกตัวหนึ่งของ Khronos Group ที่ให้บริการไลบรารีเสียงสำหรับกลุ่มเป้าหมายเดียวกันกับ OpenMAX AL ในขณะที่ OpenMAX มุ่งเป้าไปที่บริการมัลติมีเดียแบบครบวงจร ชุดย่อยเสียงของ OpenSL ES และ OpenMAX AL มีสถาปัตยกรรมร่วมกันและมีคุณสมบัติร่วมกันบางประการ:
- การเล่นและการบันทึกเสียง
- การเล่น MIDI ขั้นพื้นฐาน
- การดึงข้อมูลเมตา
ชั้นการบูรณาการ
| OpenMAX IL | |
|---|---|
| นักพัฒนา | กลุ่มโครโนส |
| เวอร์ชันเสถียร | 1.1.2 / 15 กันยายน 2551 |
| รุ่นทดลองใช้งาน | 1.2.0 / 7 พฤศจิกายน 2554 |
| ระบบปฏิบัติการ | ข้ามแพลตฟอร์ม |
| พิมพ์ | API |
| ใบอนุญาต | หลากหลาย |
| เว็บไซต์ | www.khronos.org/openmax/ |
OpenMAX IL API มุ่งมั่นที่จะมอบความสามารถในการพกพาของส่วนประกอบสื่อต่างๆ ข้ามแพลตฟอร์มที่หลากหลายโดยใช้ภาษา Cใน OpenMAX IL ส่วนประกอบต่างๆ จะแทนบล็อกการทำงานแต่ละส่วน ส่วนประกอบอาจเป็นแหล่งที่มา ปลายทาง ตัวแปลงสัญญาณ ตัวกรอง ตัวแยกสัญญาณ ตัวผสมสัญญาณ หรือตัวดำเนินการข้อมูลอื่นๆ ขึ้นอยู่กับการใช้งาน ส่วนประกอบอาจแทนชิ้นส่วนฮาร์ดแวร์ ตัวแปลงสัญญาณซอฟต์แวร์ โปรเซสเซอร์อื่น หรือการผสมผสานของสิ่งเหล่านี้ก็ได้
อินเทอร์เฟซนี้ทำหน้าที่แยกส่วนสถาปัตยกรรมฮาร์ดแวร์และซอฟต์แวร์ในระบบ API ของ OpenMAX IL อนุญาตให้ผู้ใช้สามารถโหลด ควบคุม เชื่อมต่อ และยกเลิกการโหลดส่วนประกอบแต่ละส่วนได้ สถาปัตยกรรมหลักที่ยืดหยุ่นนี้ช่วยให้เลเยอร์การบูรณาการสามารถใช้งานกรณีการใช้งานสื่อเกือบทุกรูปแบบได้อย่างง่ายดาย และผสานรวมกับเฟรมเวิร์กสื่อแบบกราฟที่มีอยู่แล้ว จุดสำคัญของ API ของ OpenMAX IL คือความสามารถในการพกพาของส่วนประกอบสื่อ
การออกแบบ API ของ OpenMAX IL ให้ความสำคัญเป็นพิเศษกับความยืดหยุ่นในการใช้งานและการถ่ายโอนข้อมูลระหว่างส่วนประกอบต่างๆ อย่างมีประสิทธิภาพสูงสุด
API OpenMAX IL ถูกเลือกใช้เป็นพื้นฐานสำหรับ API ในการรวมตัวแปลงสัญญาณเสียงและวิดีโอบน Android ซึ่งส่งผลให้ผู้ผลิต SoC ส่วนใหญ่จัดส่งการใช้งานขั้นต่ำที่รองรับเฉพาะส่วนย่อยที่ Android ต้องการเท่านั้น แอปพลิเคชันไม่ได้ใช้ส่วนประกอบ OpenMAX IL เหล่านั้นโดยตรง แต่ใช้ผ่าน API MediaCodec ของ Android เท่านั้น ส่วนย่อยของ OpenMAX IL สำหรับ Android พร้อมส่วนขยายต่างๆ จึงกลายเป็นมาตรฐานโดยพฤตินัยในปัจจุบัน
ในปี 2554 ได้มีการเผยแพร่เวอร์ชันชั่วคราว 1.2.0 [ 16 ]
การนำไปใช้
- Tizoniaเป็นการใช้งาน OpenMAX IL แบบโอเพนซอร์สสำหรับ Linux ที่รองรับเวอร์ชัน 1.2.0 [ 17 ]
- Bellagioเป็นการใช้งาน OpenMAX IL แบบโอเพนซอร์สสำหรับ Linux ซึ่งดูแลโดย STMicroelectronics [ 18 ]
- LIM OpenMAXเป็นซอฟต์แวร์โอเพนซอร์สที่นำ OpenMAX AL และ OpenMAX IL มาใช้งานบนระบบ Linux
- Mesaมีไดรเวอร์เร่งความเร็วฮาร์ดแวร์ที่สามารถใช้กับ Bellagio หรือ Tizonia ได้[ 19 ] [ 20 ]
- Android StageFrightคือการใช้งาน IL เพียงบางส่วน ซึ่งถือเป็นมาตรฐานที่ใช้กันอย่างแพร่หลาย
ชั้นการพัฒนา
| OpenMAX DL | |
|---|---|
| นักพัฒนา | กลุ่มโครโนส |
| เวอร์ชันเสถียร | 1.0.2 / 21 ธันวาคม 2550 |
| ระบบปฏิบัติการ | ข้ามแพลตฟอร์ม |
| พิมพ์ | API |
| ใบอนุญาต | หลากหลาย |
| เว็บไซต์ | www.khronos.org/openmax/ |
API OpenMAX DL กำหนดชุดของเคอร์เนลมัลติมีเดียระดับต่ำหรือส่วนประกอบพื้นฐานสำหรับการประมวลผลสื่อ ส่วนประกอบพื้นฐานเหล่านี้อาจใช้เพื่อเร่งความเร็วจุดประมวลผลที่ใช้ทรัพยากรมากแบบดั้งเดิมภายในตัวแปลงสัญญาณ สื่อมาตรฐาน และเครื่องมือประมวลผลสื่อแบบบูรณาการอื่นๆ ขอบเขตการทำงานของอินเทอร์เฟซ OpenMAX DL ครอบคลุมหลายโดเมน รวมถึงการประมวลผลสัญญาณและการประมวลผลภาพการเข้ารหัสเสียงการเข้ารหัสภาพและการเข้ารหัส วิดีโอ
OpenMAX DL แบ่งออกเป็นห้าโดเมนการใช้งาน:
- AC - ตัวแปลงสัญญาณเสียง (ส่วนประกอบตัวถอดรหัส MP3 และตัวถอดรหัส AAC)
- IC - ตัวแปลงสัญญาณภาพ (ส่วนประกอบ JPEG)
- IP - การประมวลผลภาพ (ฟังก์ชันการประมวลผลภาพทั่วไป)
- SP - การประมวลผลสัญญาณ (ฟังก์ชันการประมวลผลเสียงทั่วไป)
- VC - ตัวแปลงสัญญาณวิดีโอ (ส่วนประกอบ H.264 และ MP4)
การนำไปใช้
- ก่อนหน้านี้ ARM ได้จัดเตรียม การใช้งานที่ปรับให้เหมาะสมสำหรับNEON (สำหรับ คอร์ Cortex A8 ) และSIMD (สำหรับ คอร์ ARM11 ) รวมถึง การใช้งานอ้างอิง ANSI Cสำหรับผู้ใช้ที่ลงทะเบียนไว้[ 21 ] [ 22 ]
- เครื่องเล่นเกมPlayStation 3รองรับ API OpenMAX
คณะทำงาน
กลุ่มทำงาน OpenMAX ก่อตั้งขึ้นพร้อมกับโครงการพี่น้องอย่างOpenVGเมื่อวันที่ 6 กรกฎาคม 2547 สมาชิกผู้สนับสนุนในปี 2551 ได้แก่AMD , Apple , ARM , Creative , Dell Inc , Ericsson , Freescale , Imagination Technologies Group plc , Intel , IBM , Motorola , Nokia , Nvidia Corporation , Samsung Electronics Co. Ltd , SK Telecom , Sony Computer Entertainment IncและTexas Instruments
ดูเพิ่มเติม
- API เร่งความเร็ววิดีโอ (VA API)
- VDPAU (Video Decode and Presentation API for Unix)
- การเร่งความเร็วบิตสตรีม X-Video (XvBA)
- การชดเชยการเคลื่อนไหวของวิดีโอ X (XvMC)
- API การเร่งความเร็ววิดีโอ DirectX (DxVA) - สิ่งที่เทียบเท่ากับMicrosoft Windows
- Distributed Codec Engine (libdce)คือ API ของ Texas Instrumentsสำหรับกลไกการแปลงสัญญาณวิดีโอในระบบฝังตัวที่ใช้OMAP
- VideoToolboxเป็น API จากApple Inc.สำหรับการถอดรหัสแบบเร่งความเร็วด้วยฮาร์ดแวร์บนApple TVและMac OS X [ 23 ]
- OpenVideo Decode (OVD) – API เร่งความเร็ววิดีโอแบบเปิดข้ามแพลตฟอร์มใหม่จากAMD [ 24 ]
- Nvidia PureVideo - เทคโนโลยีบิตสตรีมจากNVIDIAที่ใช้ในชิปประมวลผลกราฟิกของบริษัทเพื่อเร่งความเร็วในการถอดรหัสวิดีโอด้วยฮาร์ดแวร์GPU
- UVD (Unified Video Decoder) - เทคโนโลยีบิตสตรีมจากATI Technologiesที่ใช้ในชิปประมวลผลกราฟิกของพวกเขาเพื่อเร่งความเร็วในการถอดรหัสวิดีโอด้วยฮาร์ดแวร์GPU
ลิงก์ภายนอก
- Khronos Group — ภาพรวม OpenMAX และข้อกำหนด API
- Khronos Group — ทะเบียน API สาธารณะ
- Khronos Group — ข้อกำหนด OpenMAX AL 1.1
- Khronos Group — ข้อกำหนด OpenMAX IL 1.1.2
- Khronos Group — ข้อกำหนด OpenMAX DL 1.0.2
- ARM - ไลบรารี OpenMAX ฟรี
- Mentor Graphics - Nucleus MMF ใช้ประโยชน์จาก OpenMAX IL
- Mentor Graphics - ข่าวประชาสัมพันธ์: Mentor ประสบความสำเร็จในการได้รับการรับรองมาตรฐาน OpenMAX สำหรับ Nuclues OS Multimedia Framework เป็นครั้งแรกในอุตสาหกรรม
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ โอเพ่นแม็กซ์
OpenMAX (Open Media Acceleration) ซึ่งมักย่อว่า " OMX " เป็นชุดอิน เทอร์เฟซการเขียนโปรแกรม ภาษา C ข้ามแพลตฟอร์มที่ไม่ผูกขาดและไม่เสียค่าลิขสิทธิ์ โดยมีนามธรรมสำหรับรูทีนต่างๆ...
ประวัติศาสตร์
ประกาศครั้งแรกในเดือนกรกฎาคม พ.ศ. 2547 [ 5 ] กลุ่มทำงาน OpenMAX ก่อตั้งขึ้นครั้งแรกโดยสมาชิก ARM , Motorola , Samsung , STMicroelectronics และ Texas Instruments ข้อกำหนดเวอร์ชัน 1.0 ได้รับการเผยแพร่ในเดือนธันวาคม พ.ศ.
ชั้นต่างๆ
OpenMAX AL เป็นอินเทอร์เฟซระหว่างแอปพลิเคชันมัลติมีเดีย เช่น โปรแกรมเล่นสื่อ และ เฟรมเวิร์กสื่อ ของแพลตฟอร์ม ช่วยให้บริษัทที่พัฒนาแอปพลิเคชันสามารถย้ายแอปพลิเคชันของตนไปยังแพลตฟอร์มต่างๆ (ลูกค้า) ที่รองรับ อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) ของ...
ชั้นแอปพลิเคชัน
OpenMAX AL รองรับกรณีการใช้งานแอปพลิเคชันมัลติมีเดียทั่วไปโดยการกำหนดมาตรฐานชุดของ วัตถุ ที่เป็นตัวแทน รวมถึง อินเทอร์เฟซ บนวัตถุเหล่านั้น เพื่อควบคุมและกำหนดค่า API ของ OpenMAX AL แบ่งออกเป็นสองโปรไฟล์ ได้แก่ เครื่องเล่นมีเดีย และ เครื่องเล่น/บันทึกมีเดีย...