รูปแบบ Motion Photo 1.0

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

การขึ้นต่อกัน

ต่อไปนี้เป็นการอ้างอิงเชิงบรรทัดฐานสำหรับข้อกำหนดนี้

ข้อมูลเบื้องต้น

การใช้คำว่า "ต้อง" "ต้องไม่" "ต้องระบุ" "ควร" "ไม่ควร" "แนะนำ" "อาจ" และ "ไม่บังคับ" เป็นไปตามมาตรฐาน IETF ที่กำหนดไว้ใน RFC2119

รูปแบบรูปภาพเคลื่อนไหว

ไฟล์ Motion Photo จะประกอบด้วยไฟล์ภาพนิ่งหลัก JPEG, HEIC หรือ AVIF พร้อม ไฟล์วิดีโอรองมาต่อท้าย รูปภาพหลักมีกล้อง XMP ข้อมูลเมตาที่อธิบายวิธีแสดงเนื้อหาของไฟล์ภาพนิ่งและไฟล์วิดีโอ และข้อมูลเมตาของคอนเทนเนอร์ XMP ที่อธิบายวิธีค้นหาเนื้อหาไฟล์วิดีโอ

ไฟล์ภาพอาจมี Yieldmap ดังเช่นกรณีที่มี Ultra HDR JPEG

รูปแบบของชื่อไฟล์

ผู้เขียนควรใช้ชื่อไฟล์ที่ตรงกับนิพจน์ทั่วไปต่อไปนี้

^([^\\s\\/\\\\][^\\/\\\\]*MP)\\.(JPG|jpg|JPEG|jpeg|HEIC|heic|AVIF|avif)

ผู้อ่านอาจไม่สนใจข้อมูลเมตาของ XMP, ไฟล์วิดีโอที่ต่อท้าย หรือวิดีโอ ถ้าไม่มีการติดตามรูปแบบ

การเข้ารหัสข้อมูลสื่อ

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

แอตทริบิวต์ XMP

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

ข้อมูลเมตาของกล้อง

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

  • URI ของเนมสเปซคือ http://ns.google.com/photos/1.0/camera/
  • คำนำหน้าเนมสเปซเริ่มต้นคือ Camera

แอตทริบิวต์ต่อไปนี้อาจปรากฏในข้อมูลเมตา XMP ของไฟล์ภาพนิ่ง:

ชื่อ

ประเภท

คำอธิบาย

Camera:MicroVideo

Camera:MicroVideoVersion

Camera:MicroVideoOffset

Camera:MicroVideoPresentation
TimestampUs

พร็อพเพอร์ตี้เหล่านี้เป็นส่วนหนึ่งของข้อกำหนด Microvideo V1 ค่าเหล่านี้จะถูกลบในข้อกำหนดเฉพาะนี้ และระบบจะไม่นำมาพิจารณาหากมี

กล่าวอย่างเจาะจงคือ ระบบจะแทนที่แอตทริบิวต์ MicroVideoOffset ด้วยค่า GContainer:ItemLength สำหรับการค้นหาข้อมูลวิดีโอในไฟล์

Camera:MotionPhoto

Integer

0: ระบุว่าไม่ควรถือว่าไฟล์เป็นรูปภาพเคลื่อนไหว

1: ระบุว่าควรถือว่าไฟล์เป็นรูปภาพเคลื่อนไหว

ค่าอื่นๆ ทั้งหมดจะไม่มีการระบุและจะถือว่าเทียบเท่ากับ 0

ถ้าค่าเป็น 0 หรือค่าลบ จะถือว่าไฟล์เป็น ไม่ใช่รูปภาพเคลื่อนไหว แม้ว่าในความเป็นจริงจะมีวิดีโอต่อท้ายไฟล์แล้วก็ตาม

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

Camera:MotionPhotoVersion

Integer

ระบุเวอร์ชันรูปแบบไฟล์ของรูปภาพเคลื่อนไหว ข้อกำหนดนี้ระบุเวอร์ชัน "1"

Camera:MotionPhotoPresentationTimestampUs

Long

ค่ายาวที่แสดงการประทับเวลาการนำเสนอ (เป็นไมโครวินาที) ของเฟรมวิดีโอที่สอดคล้องกับภาพนิ่งของรูปภาพ ค่าอาจเป็น -1 เพื่อแสดงถึงไม่ได้ตั้งค่า/ไม่ระบุ

ลักษณะการทำงานของงานนำเสนอ

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

หากมี Camera:MotionPhotoPresentationTimestampUs ในแพ็กเก็ต XMP และ มี "application/motionphoto-image-meta" อยู่ในวิดีโอ ต้องปรากฏใน primaryImageFrameScoreDescr presentationTimestampUs ของแทร็กนั้น หาก Camera:MotionPhotoPresentationTimestampUs ไม่ใช่ อยู่ในแพ็กเก็ต XMP และมีแทร็กข้อมูลเมตาอยู่ จากนั้นค่าใน แทร็กข้อมูลเมตาต้องเป็น -1

องค์ประกอบคอนเทนเนอร์

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

  • URI ของเนมสเปซคือ http://ns.google.com/photos/1.0/container/
  • คำนำหน้าเนมสเปซเริ่มต้นคือ Container

ไดเรกทอรีอาจมีรายการรูปภาพหลักได้เพียงรายการเดียวและต้องเป็นรายการแรก รายการในไดเรกทอรี

ชื่อองค์ประกอบ

ประเภท

คำอธิบาย

Directory

อาร์เรย์ตามลำดับของโครงสร้าง

อาร์เรย์ของโครงสร้าง Container:Item รายการที่กำหนดเลย์เอาต์และ เนื้อหาในคอนเทนเนอร์

องค์ประกอบรายการ

องค์ประกอบรายการสื่อจะอธิบายว่าแอปพลิเคชันควรใช้แต่ละรายการอย่างไร

  • URI ของเนมสเปซคือ http://ns.google.com/photos/1.0/container/item/
  • คำนำหน้าเนมสเปซเริ่มต้นคือ Item

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

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

สื่อแต่ละรายการต้องมีแอตทริบิวต์ Mime รายการสื่อรองจะต้อง ก็มีแอตทริบิวต์ความยาวด้วย

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

ตำแหน่งของทรัพยากรรายการสื่อในคอนเทนเนอร์จะพิจารณาจากการสรุป ค่า Length ของทรัพยากรรายการรองก่อนหน้าจนถึงความยาวของ การเข้ารหัสรูปภาพหลักบวก Padding หากระบุ

ชื่อแอตทริบิวต์

ประเภท

คำอธิบาย

Mime

String

(ต้องระบุ) สตริงแบบง่ายที่ระบุประเภท MIME ของรายการสื่อในคอนเทนเนอร์

Semantic

String

(ต้องระบุ) สตริงง่ายๆ ที่ระบุความหมายเฉพาะแอปพลิเคชันของรายการสื่อ ดูคำจำกัดความของส่วนค่าความหมายของรายการ

Length

Integer

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

ความยาว 0 ในรายการสื่อรองบ่งบอกว่ามีการแชร์ทรัพยากรของรายการสื่อกับรายการสื่อก่อนหน้า ความยาวควรเป็น 0 ในรายการสื่อหลัก

Padding

Integer

[รูปภาพเคลื่อนไหวแบบ JPEG]

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

[รูปภาพเคลื่อนไหวที่ใช้ HEIC/AVIF]

ต้องระบุสำหรับรายการสื่อหลัก ต้องมีค่าเท่ากับ 8 และ ความยาวส่วนหัวของรูปภาพเคลื่อนไหว กล่องข้อมูลวิดีโอ ("mpvd")

รายการ:ค่าประเภท Mime

แอตทริบิวต์ Item:Mime กำหนดประเภท MIME ของรายการสื่อแต่ละรายการ

ค่า

คำอธิบาย

image/jpeg

รูปภาพ JPEG

image/heic

รูปภาพ HEIC

image/avif

รูปภาพ AVIF

video/mp4

คอนเทนเนอร์ MP4

video/quicktime

คอนเทนเนอร์ MOV

รายการ:ค่าความหมาย

แอตทริบิวต์ Item:Semantic กำหนดความหมายเฉพาะแอปพลิเคชันของแต่ละ รายการสื่อในไดเรกทอรีคอนเทนเนอร์

Value

คำอธิบาย

Primary

บ่งบอกว่ารายการสื่อเป็นอิมเมจหลักที่พร้อมให้รับชมในคอนเทนเนอร์ รูปภาพเคลื่อนไหวต้องมี 1 รายการเท่านั้นในรายการที่มีความหมายนี้

MotionPhoto

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

ภาพเคลื่อนไหวที่เป็นรูปภาพ Ultra HDR หลัก

ตามกฎมูลค่าเชิงความหมายของรายการที่ระบุไว้ในข้อกำหนดนี้และใน ข้อกำหนดของรูปภาพ Ultra HDR รูปภาพเคลื่อนไหวที่มีรูปภาพ Ultra HDR หลักต้องมีรายการสื่อที่มี ความหมายของรายการ "GainMap" นอกจากนี้ ผู้เขียนที่เข้ารหัสรูปภาพเคลื่อนไหวจะต้องวาง เอลิเมนต์รายการ Getmap ก่อนองค์ประกอบรายการวิดีโอ

ลักษณะการทำงานที่เจาะจงรูปภาพ ISOBMFF

รูปภาพเคลื่อนไหว แบบ ISOBMFF รูปภาพ (เช่น รูปภาพ HEIC และ AVIF) ต้องมีโครงสร้างตามนั้น บางส่วนของไฟล์จะสิ้นสุดโดยมี "ข้อมูลวิดีโอ Motion Photo Video" ระดับบนสุด กล่อง ได้อธิบายโดยใช้ความหมายของภาษาคำอธิบายไวยากรณ์ที่ระบุไว้ใน ISO/IEC 14496-1:2010(E) ข้อ 8

// Box as defined in ISO/IEC 14496-12:2015: 4.2
aligned(8) class MotionPhotoVideoData extends Box('mpvd') {
  bit(8) data[];
}

โดยที่ "ข้อมูล" จะมีไบต์ของวิดีโอทั้งหมด ค่าพิเศษของ "0" ไม่อนุญาตให้ใช้กับขนาดของกล่องข้อมูลวิดีโอ Motion Photo Video (โปรดดู ISO/IEC 14496-12:2015: 4.2 สำหรับคำจำกัดความของขนาดคลาสที่ ขยายในกล่อง)

XMP ของรูปภาพ ISOBMFF ต้องกำหนด Padding ของรายการสื่อหลักด้วย เท่ากับขนาดเป็นไบต์ของวิดีโอ Motion Photo Video ส่วนหัวของกล่องข้อมูล ซึ่งก็คือส่วนหัวขนาดและชื่อ

โปรดดูรูปที่ 1 ที่แสดงโครงสร้างกล่องนี้สำหรับตัวอย่างการเคลื่อนที่ที่ใช้ HEIC รูปภาพ:

แผนภาพเส้นที่แสดงการจัดเรียงองค์ประกอบในไฟล์การเคลื่อนไหว HEIC

รูปที่ 1 ภาพกล่องระดับบนสุดของตัวอย่างรูปภาพ HEIC ภายใน ไฟล์รูปภาพเคลื่อนไหว HEIC ไฟล์เดียวได้ โปรดทราบว่าส่วนใหญ่ คำสั่งซื้อกล่องมีไว้เพื่อ ภาพประกอบเท่านั้น (โปรดดูมาตรฐานที่เกี่ยวข้องในการสร้าง ไฟล์ HEIF หรือวิดีโอ อย่างไรก็ตาม "mpvd" กล่องต้องอยู่หลัง HEIC ทั้งหมด ของไฟล์ภาพ

เนื้อหาคอนเทนเนอร์วิดีโอ

ไฟล์คอนเทนเนอร์วิดีโอที่ต่อท้ายรูปภาพหลักต้องมีแอตทริบิวต์ต่อไปนี้ แทร็กวิดีโอหลักอย่างน้อย 1 แทร็ก แทร็กนี้ต้องใช้และมีวิดีโอที่เข้ารหัส ใน AVC HEVC หรือ AV1 ไม่ได้ระบุความละเอียดของเฟรมวิดีโอหลัก พื้นที่สีวิดีโอ โอน และความลึกของบิตอาจแตกต่างกันไป เช่น วิดีโอ SDR อาจมีบิตแบบ 8 บิต ความลึก พื้นที่สี BT.709 พร้อมฟังก์ชันการถ่ายโอน sRGB หรือวิดีโอ HDR อาจมีลักษณะดังนี้ มีความลึกของบิต 10 บิต พื้นที่สี BT.2100 และการถ่ายโอน HLG หรือ PQ พร้อมกับข้อมูลเมตา HDR และแทร็กข้อมูลเมตา

ไฟล์คอนเทนเนอร์วิดีโออาจมีความละเอียดสำรองที่สูงกว่า 1 รายการ (ไม่บังคับ) แทร็กวิดีโอ ผู้อ่านควรใช้เนื้อหาเพื่อแสดงข้อความทดแทนสำหรับ ภาพนิ่งหลักที่เข้ารหัสในรูปแบบ JPEG หรือ HEIC แทร็กนี้อาจประกอบด้วย วิดีโอที่มีอัตราเฟรมต่ำลงซึ่งเข้ารหัสเป็น AVC, HEVC หรือ AV1 เฟรมวิดีโอรอง ไม่ได้กำหนดความละเอียด

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

ไฟล์คอนเทนเนอร์วิดีโออาจมีเสียงแบบโมโนหรือสเตอริโอ 16 บิต 1 ชุด ติดตามที่ 44kHz, 48 kHz หรือ 96 kHz แบบเข้ารหัส AAC ผู้อ่านควรนำเสนอข้อมูลนี้ แทร็กเสียงเมื่อแสดงแทร็กวิดีโอหลัก

หากมีแทร็กวิดีโอรอง ควรอยู่หลังแทร็กหลักเสมอ แทร็กวิดีโอ ไม่มีข้อจำกัดในการจัดลำดับอื่นๆ เกี่ยวกับแทร็กอื่นๆ แทร็กวิดีโอหลักต้องมีดัชนีแทร็กต่ำกว่าของแทร็กวิดีโอรอง แทร็กวิดีโอ กล่าวคือ หากแทร็กวิดีโอหลักมีแทร็กหมายเลข 2 จะมี แทร็กวิดีโอรองต้องมีหมายเลขแทร็กมากกว่าหรือเท่ากับ 3

การติดตามข้อมูลเมตาของวิดีโอด้วยการให้คะแนนของแมชชีนเลิร์นนิงอัจฉริยะ

ผู้เขียนอาจเพิ่มแทร็กข้อมูลเมตาลงในไฟล์คอนเทนเนอร์วิดีโอด้วย พิมพ์ "meta" แทร็กข้อมูลเมตาควรมีตัวอย่างเพียงรายการเดียวที่มี ไบต์สตรีมในรูปแบบที่อธิบายไว้ใน "ไวยากรณ์"

หากมีแทร็กข้อมูลเมตา จะมีรายการตารางคำอธิบายตัวอย่างสำหรับฟิลด์ (เช่น กล่อง "stsd" ที่ "mdia.minf.stbl.stsd" เมื่อเทียบกับ "แทร็ก" ) ต้องมีอะตอมเดี่ยวที่แสดงตัวอย่างข้อมูลเมตาข้อความ รายการ - (เช่น ช่อง "Mett") "Mett" ต้องมีสตริงประเภท MIME เท่ากับ ไปที่ "application/motionphoto-image-meta"

วากยสัมพันธ์

หากมีการกำหนดแทร็กข้อมูลเมตานี้ เนื้อหาจะต้องประกอบด้วยไบต์สตรีม เพื่อให้เป็นไปตามข้อกำหนด MotionPhotoMetadataDescriptor นี้ ตามที่อธิบาย ในที่นี้โดยใช้ความหมายของภาษาคำอธิบายไวยากรณ์ที่ระบุไว้ใน ISO/IEC 14496-1:2010(E) ข้อ 8

// BaseDescriptor as defined in ISO/IEC 14496-1:2010(E): 7.2.2.2
abstract aligned(8) expandable((1<<28) - 1) class BaseDescriptor
    : bit(8) tag=0 {
  // Empty. To be filled by classes extending this class.
}

// Score data for a frame.
class MotionPhotoFrameScoreDescriptor extends BaseDescriptor
    : bit(8) tag=MotionPhotoFrameScoreDescrTag {
  // The frame's score in the range [0, 1].
  float(32) score;

  // The frame's presentation timestamp in microseconds.
  int(64) presentationTimestampUs;
}

// Score data for a track.
class MotionPhotoTrackScoreDescriptor extends BaseDescriptor
    : bit(8) tag=MotionPhotoTrackScoreDescrTag {
  // The number of scored frames in the track.
  unsigned int(32) numScoredFrames;

  // The track's frames' score data. They must be in ascending order with
  // respect to the presentation timestamp.
  MotionPhotoFrameScoreDescriptor trackFrameScoreDescr[numScoredHighResFrames];
}

// Score data for a motion photo.
class MotionPhotoScoreDescriptor extends BaseDescriptor
    : bit(8) tag=MotionPhotoScoreDescrTag {

  // Machine-intelligence model version used to calculate the scores. Writers
  // using a scoring model should set this field to 1 or greater. Writers not
  // using any scoring model should set this field to 0.
  unsigned int(32) modelVersion;

  // The primary image's frame score data.
  MotionPhotoFrameScoreDescriptor primaryImageFrameScoreDescr;

  // The high-resolution motion photo frames' score data.
  MotionPhotoTrackScoreDescriptor highResTrackScoreDescr;
}

// Flag data for a track.
class MotionPhotoTrackFlagsDescriptor extends BaseDescriptor
    : bit(8) tag=MotionPhotoTrackFlagDescrTag {
  // Set to true to indicate the video frames have been stabilized and don't
  // require readers of the track to apply any further stabilization.
  bit(1) isStabilized;
}

// Flags for a motion photo.
class MotionPhotoFlagsDescriptor extends BaseDescriptor
        : bit(8) tag=MotionPhotoFlagDescrTag {
  // The low-resolution motion photo track's flag data.
  MotionPhotoTrackFlagDescriptor lowResTrackFlagsDescr;

  // The high-resolution motion photo track's flag data.
  MotionPhotoTrackFlagDescriptor highResTrackFlagsDescr;
}

// Container for motion photo metadata, like stabilization indicators and
// quality scoring.
class MotionPhotoMetadataDescriptor extends BaseDescriptor
    : bit(8) tag=MotionPhotoMetadataDescrTag {
  // Scoring data for the still and high-res frames.
  MotionPhotoScoreDescriptor motionPhotoScoreDescr;

  // Flags for the low-res and high-res frames.
  MotionPhotoFlagDescriptor motionPhotoFlagDescr;
}

// Class tags for MotionPhotoData using the "User Private" tag space 0xC0-0xFE
// for descriptors defined in ISO/IEC 14496-1:2010(E): 7.2.2.1, Table 1.
// 0xC0 MotionPhotoMetadataDescrTag
// 0xC1 MotionPhotoScoreDescrTag
// 0xC2 MotionPhotoTrackScoreDescrTag
// 0xC3 MotionPhotoFrameScoreDescrTag
// 0xC4 MotionPhotoFlagsDescrTag
// 0xC5 MotionPhotoTrackFlagDescrTag