API หน่วยส่วนขยาย USB Video Class ในฮาร์ดแวร์ของ Google Meet

เอกสารนี้ระบุ API ของหน่วยส่วนขยาย (XU) ของคลาสวิดีโอ USB ที่รองรับ ซึ่งระบบการประชุม Google Meet ใช้เพื่อเปิดใช้ฟีเจอร์กล้องอัจฉริยะ จุดประสงค์ของการสร้างข้อกำหนดนี้คือเพื่อมีอิทธิพลต่อแนวทางปฏิบัติในการเปิดใช้ ฟีเจอร์เหล่านี้ และเพื่อให้พาร์ทเนอร์ของเราสามารถปรับขนาดและทดสอบแบบอะซิงโครนัสได้ดียิ่งขึ้น

ดูรายละเอียดเกี่ยวกับการเปลี่ยนแปลงล่าสุดในเอกสารนี้ได้ที่บันทึกประจำรุ่น

สถานที่ทดสอบ

เรามีเครื่องมือทดสอบในอุปกรณ์ Chromebox วิดีโอคอนเฟอเรนซ์ที่ตั้งค่าในโหมดนักพัฒนาแอปเพื่อช่วยพาร์ทเนอร์ตรวจสอบการปฏิบัติตามข้อกำหนดนี้ เปิดใช้ การเขียนไปยังระบบไฟล์ เพิ่มบรรทัดต่อไปนี้ลงใน /etc/chrome_dev.conf

--enable-logging
--log-level=0

รีสตาร์ทอุปกรณ์ เชื่อมต่อกล้องและคีย์บอร์ด USB กด Ctrl-Alt-X แล้วระบบจะตรวจสอบการปฏิบัติตามข้อกำหนดของกล้องที่ใช้งานอยู่และบันทึกลงใน /var/log/chrome/chrome (หากใช้รูปภาพที่ลงชื่อแล้วจะเป็น /home/chronos/user/log/chrome)

รูปแบบ Little-Endian

USB เป็นมาตรฐานแบบ Little-Endian ในเอกสารนี้

  • ตัวเลขแบบหลายไบต์จะปรากฏเป็นแบบ Big-Endian (และส่งเป็นแบบ Little-Endian)
  • อาร์เรย์ไบต์อยู่ในเลย์เอาต์หน่วยความจำแบบ Little-Endian

เช่น 0x12345678 เหมือนกับ [0x78, 0x56, 0x34, 0x12]

GUID ของหน่วยส่วนขยาย

หน่วยส่วนขยายที่รองรับข้อกำหนดการควบคุม XU ของ Meet นี้ ต้องใช้ GUID นี้

หน่วยการขยาย GUID
Peripheral Control XU {74D7E924-49C9-4A45-98A3-8A9F60061E83}

ตัวเลือก XU ของการควบคุมอุปกรณ์ต่อพ่วง

ซึ่งเป็นตัวเลือก XU ของการควบคุมอุปกรณ์ต่อพ่วงที่กำหนด

ตัวเลือกการควบคุม ค่า
GOOGXU_FRAME_STRATEGY 0x01
GOOGXU_REFRAME 0x02
GOOGXU_OCCUPANCY_COUNTING_TOGGLE 0x03
GOOGXU_OCCUPANCY_COUNTING_READ 0x04
GOOGXU_STATUS_INFO 0x05
GOOGXU_STATUS_RESET 0x06
GOOGXU_PRESETS 0x07
GOOGXU_PAN_TILT_ABSOLUTE 0x08
GOOGXU_PAN_TILT_RELATIVE 0x09
GOOGXU_SATELLITE_INFO 0x0A

ประเภทคำขอควบคุม

ประเภทคำขอควบคุมมีการกำหนดไว้ในบทที่ 4: คำขอเฉพาะคลาสของ ข้อกำหนดคลาส UVC 1.5

การดำเนินการ การควบคุม UVC
GET GET_CUR, GET_MIN, GET_MAX, GET_RES, GET_LEN, GET_INFO, GET_DEF
SET SET_CUR

โหมดกล้อง

โหมดกล้องใช้เพื่อจัดเฟรมบุคคลในห้องประชุมและเป็นtuple ของ

  • กลยุทธ์ (มุมมองกล้อง)
  • อคติ (ผู้พูดหรือห้อง)
  • ฟีด (สตรีมเดียวหรือหลายสตรีม)

มิติข้อมูลแต่ละรายการสามารถใช้ค่าที่อธิบายไว้ในส่วนต่อไปนี้

กลยุทธ์การจัดเฟรมอัตโนมัติ

ในโหมดการจัดเฟรมอัตโนมัติทั้งหมดนอกเหนือจาก "ไม่มี" การเลื่อน เอียง และซูมด้วยตนเองจะ ปิดใช้

ฟีเจอร์ คำอธิบาย
ไม่มี กล้องจะปิดใช้ฟีเจอร์การจัดเฟรมอัจฉริยะทั้งหมดและอนุญาตให้ไคลเอ็นต์ควบคุมค่า PTZ ได้อย่างอิสระ
หมายเหตุ: เมื่อตั้งค่าเป็นกลยุทธ์การจัดเฟรมนี้ กล้องจะยังคงอยู่ในตำแหน่งการแพน การเอียง และการซูมปัจจุบัน
การจัดให้คนอยู่ในเฟรมอย่างต่อเนื่อง (CAZ) กล้องจะติดตามผู้คนในห้องอย่างต่อเนื่องโดยอิงตามอคติในการจัดเฟรม
เฟรมแยก กล้องจะสร้างมุมมองวิดีโอตามจำนวนที่ต้องการ โดยอิงตามตัวเลือกฟีดการจัดเฟรมอัตโนมัติ ระบบจะจัดเรียงฟีดเป็นไทล์ในสตรีมเดียวหรือสร้างสตรีมวิดีโอแยกต่างหากสำหรับแต่ละมุมมอง
มุมมองแบบไดนามิก กล้องอย่างน้อย 1 ตัวจะพยายามแสดงมุมมองที่ดีที่สุดของห้อง โดยจะตัดสินใจได้ว่าจะรวมฟีดหลายรายการเป็นฟีดเดียวหรือไม่ หรือจะแสดงมุมมอง "น่าสนใจ" ของห้องปัจจุบันหรือไม่
มุมมองนี้มีจุดประสงค์เพื่อแสดงมุมมองที่เท่าเทียมที่สุดของผู้เข้าร่วมในห้องต่อการโทร
ผู้ให้บริการที่ผู้ขายต้องการให้ใช้ ระบบกล้องใช้ตรรกะของตัวเองเพื่อกำหนดมุมมองที่ดีที่สุดของห้อง กลยุทธ์การวางกรอบพื้นฐานอาจเปลี่ยนแปลงได้โดยไม่ต้องแจ้งให้ทราบ เช่น หากจำนวนคนในห้องเปลี่ยนไป หรือกล้องตรวจจับความแตกต่างระหว่างการประชุม "ผู้นำเสนอที่มีความสำคัญสูง" กับการประชุม "การทำงานร่วมกัน" ได้ ระบบจะปรับหรือเปลี่ยนกลยุทธ์การจัดเฟรมได้อย่างอิสระตามที่เห็นสมควรในโหมดนี้ เมื่ออยู่ในโหมดนี้ การเรียกใช้ getCur ควรแสดงผล VENDOR_PREFERRED และไม่ใช่โหมดการจัดเฟรมพื้นฐานที่ระบบเลือก

อคติในการจัดเฟรมอัตโนมัติ

ฟีเจอร์ คำอธิบาย
ผู้บรรยายที่มีความสำคัญสูง (การติดตามผู้พูด) กล้องจะพยายามจัดเฟรมบุคคลที่กำลังพูดในห้องให้ดีที่สุด
ในสถานการณ์นี้ กล้องควรโฟกัสไปที่ผู้นำเสนอ เช่น CEO ในห้องประชุมกำลังนำเสนอ
การทำงานร่วมกัน
(การติดตามห้อง)
กล้องจะพยายามจัดเฟรมผู้เข้าร่วมทุกคนในห้องให้ดีที่สุด ในกรณีนี้ กล้องควรปฏิบัติต่อผู้เข้าร่วมทุกคนอย่างเท่าเทียม

ฟีดการจัดเฟรมอัตโนมัติ

ฟีเจอร์ คำอธิบาย
สตรีมเดียว กล้องจะส่งสตรีมวิดีโอรายการเดียวไปยังอุปกรณ์โฮสต์
การสตรีมหลายรายการพร้อมกัน
(อยู่ระหว่างดำเนินการ)
กล้องจะแยกสตรีมและสร้างสตรีมวิดีโอหลายรายการเพื่อส่งไปยังโฮสต์
หมายเหตุ: ข้อกำหนดทั้งหมดและลักษณะการทำงานที่คาดไว้ของฟีเจอร์นี้อยู่ระหว่างการตรวจสอบและไม่รองรับจนกว่าจะมีการแก้ไขเอกสารนี้ในภายหลัง

ค่าบิตแมปของโหมดการจัดเฟรมอัตโนมัติ

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

ฟีดการจัดเฟรมอัตโนมัติ CAZ การแบ่งเฟรม ไดนามิก ผู้ให้บริการที่ผู้ขายต้องการให้ใช้ อคติในการจัดเฟรมอัตโนมัติ
สตรีมเดียว D1
D2
-
D3
D5
D7
D9 (ลำโพงหรือห้อง) ลำโพง
ห้อง
การสตรีมหลายรายการ -
-
-
ง4
D6
D8
- ลำโพง
ห้อง
โหมดเฟรม ค่าโหมดเฟรม (ไบต์ที่มีนัยสำคัญน้อยที่สุด)
None 0x0000
CAZ, Speaker, Single-Stream 0x0001
CAZ, Room, Single-Stream 0x0002
Split-Frame, Room, Single-Stream 0x0004
Split-Frame, Room, Multi-Stream 0x0008
Dynamic, Speaker, Single-Stream 0x0010
Dynamic, Speaker, Multi-Stream 0x0020
Dynamic, Room, Single-Stream 0x0040
Dynamic, Room, Multi-Stream 0x0080
Vendor-preferred, Single-Stream 0x0100

ควบคุม: GOOGXU_FRAME_STRATEGY

ตัวควบคุมนี้ใช้เพื่อรับหรือตั้งค่าโหมดการจัดเฟรมของกล้องตามที่ระบุไว้ในค่าบิตแมปของโหมดการจัดเฟรมอัตโนมัติ แต่ละโหมดจะแสดงเป็น บิตในบิตแมปของโหมดนั้นๆ คำสั่ง GET_RES จะแสดงผลบิตมาสก์ยาว 8 ไบต์ ที่มีค่าเป็น 0 หรือ 1 เพื่อระบุว่าอุปกรณ์ไม่รองรับหรือรองรับฟีเจอร์ ตามลำดับ เช่น หากกล้อง รองรับ CAZ, Speaker, Single-Stream, Split-Frame, Room, Single-Stream และ Dynamic, Room, Multi-Stream แต่ไม่รองรับโหมดอื่นๆ GET_RES ควรแสดง 0x000000000000000085 (เช่น 0b10000101 ตามด้วยไบต์ 0 จำนวน 7 ไบต์)

คำสั่ง SET_CUR ใช้เพื่อส่งบิตแมปเพื่อบอกกล้องว่าควรเปิดใช้โหมดกล้องSINGLEโหมดใด

ตัวเลือกการควบคุม 1
การดำเนินการ GET / SET
wLength 8
ออฟเซ็ต ช่อง ขนาด ค่า คำอธิบาย
0 bActiveMode 8 บิตแมป ตั้งค่าหรือกลับไปใช้โหมดกล้องที่ใช้งานอยู่
หมายเหตุ:

ลักษณะการทำงานของคำขอประเภทที่รองรับมีดังนี้

ออฟเซ็ต 0 คำอธิบาย
GET_CUR รับโหมดกล้องจัดเฟรมอัตโนมัติ
GET_MIN ต้องใช้กล้อง
GET_MAX ต้องใช้กล้อง
GET_RES แสดงผลบิตมาสก์ยาว 8 ไบต์ของโหมดกล้องที่รองรับ
GET_LEN 0x0008 ความยาว
GET_INFO 0x0B อัปเดตอัตโนมัติ / เขียน / อ่าน
GET_DEF 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00
ค่าเริ่มต้น
SET_CUR ตั้งค่าโหมดกล้องการจัดเฟรมอัตโนมัติ

ควบคุม: GOOGXU_REFRAME

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

ตัวเลือกการควบคุม 2
การดำเนินการ SET
wLength 1
ออฟเซ็ต ช่อง ขนาด ค่า คำอธิบาย
0 bReframe 1 ตัวเลข 0x01 Execute Reframe Request

ลักษณะการทำงานของคำขอประเภทที่รองรับมีดังนี้

ออฟเซ็ต 0 คำอธิบาย
GET_MIN 0x00
GET_MAX 0x01
GET_RES 0x01
GET_LEN 0x0001
GET_INFO 0x02 เขียนเท่านั้น
GET_DEF 0x00
SET_CUR ตั้งค่าคำขอสำหรับการจัดเฟรมแบบครั้งเดียว

การนับจำนวนผู้เข้าพัก

การนับจำนวนผู้เข้าใช้ (OC) เป็นฟีเจอร์ที่ใช้ในการประมาณจำนวนผู้เข้าร่วม ในห้องประชุม แม้ว่ากล้องจะแสดงมุมมองที่ครอบตัดไว้ก็ตาม

ตารางนี้แสดงลักษณะการทำงานที่คาดไว้ของการควบคุม OC และการโต้ตอบ กับสตรีมวิดีโอของกล้องและไฟ LED ของกล้อง

เมื่อการนับการเข้าใช้ และสตรีมวิดีโอจากกล้องคือ ไฟ LED ของกล้องควรมีลักษณะดังนี้ GOOGXU_OCCUPANCY_COUNTING_TOGGLE GET_CUR ควรเป็น GOOGXU_OCCUPANCY_COUNTING_READ GET_CUR ควรเป็น
เปิดอยู่ ไม่ได้สตรีมและไม่ได้ปิดเสียง เปิด 0x01 จำนวนบุคคลในขอบเขตการมองเห็นทั้งหมดของกล้อง
เปิดอยู่ สตรีมมิง เปิด 0x01 จำนวนบุคคลในขอบเขตการมองเห็นทั้งหมดของกล้อง
เปิดอยู่ ปิดเสียง ปิด 0x01 ปิดอยู่
ปิดอยู่ ไม่ได้สตรีมและไม่ได้ปิดเสียง ปิด 0x00 ปิดอยู่
ปิดอยู่ สตรีมมิง เปิด 0x00 ปิดอยู่
ปิดอยู่ ปิดเสียง ปิด 0x00 ปิดอยู่

ควบคุม: GOOGXU_OCCUPANCY_COUNTING_TOGGLE

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

ตัวเลือกการควบคุม 3
การดำเนินการ GET / SET
wLength 1
ออฟเซ็ต ช่อง ขนาด ค่า คำอธิบาย
0 bOccupancy 1 บูลีน ตั้งค่าฟังก์ชันการนับการเข้าใช้
0x00 ปิดฟังก์ชัน
0x01 เปิดฟังก์ชัน

ลักษณะการทำงานของคำขอประเภทที่รองรับมีดังนี้

ออฟเซ็ต 0 คำอธิบาย
GET_CUR แสดงผลหากเปิดการนับการเข้าใช้
GET_MIN 0x00
GET_MAX 0x01
GET_RES 0x01
GET_LEN 0x0001
GET_INFO 0x0B อัปเดตอัตโนมัติ / เขียน / อ่าน
GET_DEF 0x00
SET_CUR เปิดหรือปิดใช้ฟีเจอร์การนับการเข้าใช้

ควบคุม: GOOGXU_OCCUPANCY_COUNTING_READ

การควบคุมนี้ใช้เพื่ออ่านจำนวนผู้เข้าร่วมในห้องที่กล้องรายงานเมื่อเปิดใช้การนับการเข้าใช้ เมื่อปิดใช้การนับจำนวนผู้เข้าชม กล้องควรปิดใช้การควบคุมนี้ หากไม่รองรับการนับจำนวนผู้เข้าใช้ กล้องก็ไม่ควรกำหนดการควบคุมนี้

ตัวเลือกการควบคุม 4
การดำเนินการ GET
wLength 2
ออฟเซ็ต ช่อง ขนาด ค่า คำอธิบาย
0 bNumPeople 2 ตัวเลข จำนวนผู้ที่ตรวจพบในมุมมอง (อ่านอย่างเดียว)

ลักษณะการทำงานของคำขอประเภทที่รองรับมีดังนี้

ออฟเซ็ต 0 คำอธิบาย
GET_CUR แสดงผลจำนวนผู้โดยสารที่ตรวจพบ
GET_MIN 0x0000
GET_MAX 0x00FF
GET_RES 0x0001
GET_LEN 0x0002
GET_INFO 0x09 อัปเดตอัตโนมัติ / อ่าน
GET_DEF 0x0000

การตรวจวัดระยะไกลและการวินิจฉัยอุปกรณ์

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

ควบคุม: GOOGXU_STATUS_INFO

การควบคุมนี้ใช้เพื่อค้นหาข้อมูลจากกล้องโฮสต์เพื่อแชร์กับ พาร์ทเนอร์สำหรับการแก้ไขข้อบกพร่อง

ตัวเลือกการควบคุม 5
การดำเนินการ GET
wLength 8
ออฟเซ็ต ช่อง ขนาด ค่า คำอธิบาย
0 bNumCameras 1 ตัวเลข จำนวนดาวเทียมเพิ่มเติมที่เชื่อมต่อกับกล้องหลักซึ่งอาจส่งผลต่อสตรีมกล้องที่ส่งคืนไปยังโฮสต์
1 bIsMoving 1 บิตแมป 0 เมื่อกล้องไม่ได้ใช้งาน และค่าที่ไม่ใช่ 0 เมื่อค่า PTZ เปลี่ยนแปลง ผู้ให้บริการสามารถแมปแกนหรือมอเตอร์ต่างๆ กับบิตต่างๆ ได้อย่างอิสระ
2 Undef 6 Undef จะขยายการให้บริการในอนาคต

ลักษณะการทำงานของคำขอประเภทที่รองรับมีดังนี้

ออฟเซ็ต 0 1 2 คำอธิบาย
GET_MIN 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00
GET_MAX 0xFF 0xFF 0xFF 0xFF 0xFF
0xFF 0xFF 0xFF
GET_RES 0x01 0x01 0x01 0x00 0x00
0x00 0x00 0x00
GET_LEN 0x08 0x00 0x0008
GET_INFO 0x09 อัปเดตอัตโนมัติ / อ่าน
GET_DEF 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00

ควบคุม: GOOGXU_SATELLITE_INFO

การควบคุมนี้ใช้เพื่อค้นหาอุปกรณ์ดาวเทียมที่เชื่อมต่อกับระบบกล้องนี้

ตัวเลือกการควบคุม 0x0A
การดำเนินการ GET
wLength 20
ออฟเซ็ต ช่อง ขนาด ค่า คำอธิบาย
0 bSatelliteList 20 บิตแมป รายการประเภทดาวเทียมที่เชื่อมต่อกับระบบ ประกอบด้วยช่อง 5 ไบต์แยกกัน 4 ช่อง โดยแต่ละช่องจะอธิบายได้ดังนี้
ออฟเซ็ต คำอธิบาย
0 จำนวนสำหรับดาวเทียมประเภทนี้
1-2 รหัสผู้ให้บริการของดาวเทียมประเภทนี้
3-4 รหัสผลิตภัณฑ์สำหรับดาวเทียมประเภทนี้

ลักษณะการทำงานของคำขอประเภทที่รองรับมีดังนี้

ออฟเซ็ต 0 คำอธิบาย
GET_MIN 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00
GET_MAX 0xFF 0xFF 0xFF 0xFF 0xFF
0xFF 0xFF 0xFF 0xFF 0xFF
0xFF 0xFF 0xFF 0xFF 0xFF
0xFF 0xFF 0xFF 0xFF 0xFF
GET_RES 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00
GET_LEN 0x14 20 ไบต์
GET_INFO 0x09 อัปเดตอัตโนมัติ / อ่าน
GET_DEF 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00

ควบคุม: GOOGXU_STATUS_RESET

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

ตัวเลือกการควบคุม 6
การดำเนินการ GET / SET
wLength 1
ออฟเซ็ต ช่อง ขนาด ค่า คำอธิบาย
0 bResetRequest 1 บูลีน ส่งคำขอรีเซ็ตไปยังโฮสต์และกล้องที่เชื่อมต่อ
แสดง 0x01 หากมีการออกคำขอรีเซ็ตตั้งแต่การรีเซ็ตครั้งล่าสุด หรือ 0x00 ในกรณีอื่นๆ

ลักษณะการทำงานของคำขอประเภทที่รองรับมีดังนี้

ออฟเซ็ต 0 คำอธิบาย
GET_MIN 0x00
GET_MAX 0x01
GET_RES 0x01
GET_LEN 0x0001
GET_INFO 0x03 เขียน / อ่าน
GET_DEF 0x00

ค่าที่กำหนดล่วงหน้าของ PTZ

ใช้เพื่อกำหนดค่าและกู้คืนช่องของมุมมองของกล้องไปยังตำแหน่งที่ตั้งไว้ล่วงหน้า

ควบคุม: GOOGXU_PRESETS

การควบคุมนี้ใช้เพื่อตั้งค่าการเลื่อน การเอียง และการซูม (PTZ) ของกล้องเป็นการกำหนดค่าที่กำหนดไว้ล่วงหน้า

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

Preset Index ใช้เพื่อระบุพิกัด PTZ ที่แมปกับดัชนี Preset index ที่มีค่าเป็น 0 จะแมปกับพิกัดเริ่มต้น และควรเป็นตำแหน่งเริ่มต้นของกล้องเมื่อเปิดเครื่องเมื่อตั้งค่า GOOGXU_FRAME_STRATEGY เป็น NONE

ตัวเลือกการควบคุม 7
การดำเนินการ SET
wLength 2
ออฟเซ็ต ช่อง ขนาด ค่า คำอธิบาย
0 bPresetAction 1 ตัวเลข 0x01: บันทึกค่าที่กำหนดล่วงหน้า
0x02: กู้คืนค่าที่กำหนดล่วงหน้า
0x03: รีเซ็ตค่าที่กำหนดล่วงหน้าเป็นค่าเริ่มต้น (ค่าเริ่มต้นควรเป็นพิกัดที่กำหนดไว้ล่วงหน้าที่ถูกต้อง)
1 bPresetIndex 1 ตัวเลข ดัชนีค่าที่กำหนดล่วงหน้าที่ใช้งานอยู่ 0~N-1
โดยที่ 0 ถือเป็นตำแหน่งเริ่มต้นของกล้องเริ่มต้น และ N-1 เป็นค่าคงที่ที่ผู้ให้บริการกำหนดสำหรับจำนวนค่าที่กำหนดล่วงหน้า

ลักษณะการทำงานของคำขอประเภทที่รองรับมีดังนี้

ออฟเซ็ต 0 1 คำอธิบาย
GET_MIN 0x00 0x00
GET_MAX 0x03 N-1 รองรับค่าที่กำหนดล่วงหน้าสูงสุด N
GET_RES 0x01 0x01
GET_LEN 0x02 0x00 0x0002
GET_INFO 0x02 เขียนเท่านั้น
GET_DEF 0x00 0x00

เลื่อนและเอียงการทำแผนที่เสริม

กล้องบางรุ่นมีส่วนประกอบพิเศษ เช่น มอเตอร์สำหรับกล้องแบบกลไก หรือความสามารถในการซูม/หมุน/เอียงแบบดิจิทัล สำหรับกล้องเหล่านี้ ให้ใช้การควบคุม V4L2 มาตรฐานสำหรับการแพน การเอียง และการซูม

การควบคุม: GOOGXU_PAN_TILT_ABSOLUTE (เลิกใช้งานแล้ว)

การควบคุมการจับคู่เสริมสำหรับการเลื่อนและเอียงได้รับการกำหนดไว้ในบทที่ 4: คำขอเฉพาะคลาส ส่วนที่ 4.2.2.1.14 การควบคุมการเลื่อน/เอียง (สัมบูรณ์) ของข้อกำหนดคลาส UVC 1.5

การควบคุม: GOOGXU_PAN_TILT_RELATIVE (เลิกใช้งานแล้ว)

การควบคุมการแมปเสริมสำหรับการเลื่อนและเอียงได้รับการกำหนดไว้ในบทที่ 4: คำขอเฉพาะคลาส ส่วนที่ 4.2.2.1.15 การควบคุมการเลื่อนและเอียง (สัมพัทธ์) ของข้อกำหนดคลาส UVC 1.5

บันทึกประจำรุ่น

บันทึกประจำรุ่นเหล่านี้ระบุการปรับปรุงและฟีเจอร์ใหม่ในเอกสารนี้แต่ละฉบับ

13 ส.ค. 2025

27 ม.ค. 2025

21 พ.ค. 2024

15 พฤศจิกายน 2023

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

21 กรกฎาคม 2023

เพิ่มสคริปต์ทดสอบเพื่อให้พาร์ทเนอร์ตรวจสอบการติดตั้งใช้งานเพื่อให้เป็นไปตามข้อกำหนดนี้

25 พฤษภาคม 2023

แก้ไข GOOGXU_PRESETS หมายเหตุเกี่ยวกับจำนวนค่าที่กำหนดล่วงหน้า ควรเป็น N ไม่ใช่ N-1

17 เมษายน 2023

รุ่นแรก