เอกสารนี้ระบุ API ของ USB Video Class Extension Unit (XU) ที่รองรับ ซึ่งระบบการประชุมของ Google Meet นำมาใช้เพื่อเปิดใช้ฟีเจอร์กล้องอัจฉริยะ วัตถุประสงค์ในการสร้างข้อกําหนดนี้คือเพื่อชี้แนะแนวทางปฏิบัติเพื่อเปิดใช้ฟีเจอร์เหล่านี้ และเพื่อให้พาร์ทเนอร์ของเราปรับขนาดและทดสอบแบบไม่พร้อมกันได้ดียิ่งขึ้น
โปรดดูรายละเอียดเกี่ยวกับการเปลี่ยนแปลงล่าสุดในเอกสารนี้ที่บันทึกประจำรุ่น
สถานที่ทดสอบ
เพื่อช่วยพาร์ทเนอร์ในการตรวจสอบการปฏิบัติตามข้อกำหนดนี้ เราจึงจัดเตรียมห้องทดสอบในอุปกรณ์ Chromebox สำหรับการประชุมที่ตั้งค่าเป็นโหมดนักพัฒนาซอฟต์แวร์
เปิดใช้การเขียนลงในระบบไฟล์
เพิ่มบรรทัดต่อไปนี้ลงใน
/etc/chrome_dev.conf
--enable-logging
--log-level=0
รีสตาร์ทอุปกรณ์ เชื่อมต่อกล้องกับแป้นพิมพ์ USB แล้วกด Ctrl-Alt-X
ระบบจะตรวจสอบการปฏิบัติตามข้อกำหนดของกล้องที่ใช้งานอยู่และบันทึกลงใน /home/chronos/user/log/chrome
รูปแบบ Little-endian
USB เป็นมาตรฐาน Little-endian ในเอกสารนี้
- ตัวเลขหลายไบต์จะปรากฏในรูปแบบ Big Endian (และส่งในรูปแบบ Little Endian)
- อาร์เรย์ไบต์อยู่ในเลย์เอาต์หน่วยความจําแบบ Little Endian
เช่น 0x12345678
เหมือนกับ [0x78, 0x56, 0x34, 0x12]
GUID ของหน่วยขยาย
ยูนิตส่วนขยายที่รองรับข้อกำหนดการควบคุม Meet XU นี้ต้องใช้ GUID นี้
หน่วยของส่วนขยาย | GUID |
---|---|
การควบคุมอุปกรณ์ต่อพ่วง 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 ไม่ใช่โหมดการจัดเฟรมพื้นฐานที่ระบบเลือกไว้ |
ความลำเอียงของการจัดเฟรมอัตโนมัติ
ฟีเจอร์ | คำอธิบาย |
---|---|
ผู้นำเสนอที่มีความเสี่ยงสูง (การติดตามผู้พูด) | กล้องจะพยายามจัดเฟรมให้บุคคลที่กำลังพูดอยู่ในห้องอย่างเหมาะสมที่สุด ในกรณีนี้ กล้องควรหันไปทางผู้นำเสนอ เช่น ซีอีโอกำลังนำเสนอในห้องประชุม |
การทำงานร่วมกัน (การติดตามห้อง) |
กล้องจะพยายามจัดเฟรมผู้เข้าร่วมทุกคนในห้องให้ดีที่สุด ในกรณีนี้ กล้องควรจับภาพผู้เข้าร่วมทุกคนอย่างเท่าเทียม |
ฟีดการจัดเฟรมอัตโนมัติ
ฟีเจอร์ | คำอธิบาย |
---|---|
สตรีมเดียว | กล้องจะส่งสตรีมวิดีโอเดียวไปยังอุปกรณ์โฮสต์ |
สตรีมหลายรายการ (อยู่ระหว่างดำเนินการ) |
กล้องจะแยกสตรีมออกและสร้างสตรีมวิดีโอหลายรายการเพื่อส่งไปยังโฮสต์ หมายเหตุ: ข้อกำหนดเฉพาะทั้งหมดและลักษณะการทำงานที่คาดไว้ของฟีเจอร์นี้อยู่ระหว่างรอการตรวจสอบและยังไม่รองรับจนกว่าจะมีการแก้ไขเอกสารนี้ในภายหลัง |
ค่าบิตแมปของโหมดการจัดเฟรมอัตโนมัติ
ยกเว้นสถานะเริ่มต้นของ None
ที่แสดงโดยอาร์เรย์ไบต์ว่าง แต่ละบิตในอาร์เรย์ไบต์แสดงโหมดกล้องที่แตกต่างกัน ซึ่งเป็นการผสมผสานที่เฉพาะเจาะจงของกลยุทธ์การจัดเฟรมอัตโนมัติ ความลำเอียงของการจัดเฟรมอัตโนมัติ และฟีดการจัดเฟรมอัตโนมัติ
ฟีดการจัดเฟรมอัตโนมัติ | CAZ | เฟรมแยก | ไดนามิก | ผู้ให้บริการที่ต้องการ | ความลำเอียงของการจัดเฟรมอัตโนมัติ |
---|---|---|---|---|---|
สตรีมเดียว | D1 D2 |
- D3 |
D5 D7 |
D9 (ลำโพงหรือห้อง) | ผู้พูด ห้อง |
สตรีมหลายรายการ | - - |
- D4 |
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
ใช้เพื่อส่งบิตแมปเพื่อบอกให้กล้องเปิดใช้โหมดกล้องเดี่ยวโหมดใด
ตัวเลือกการควบคุม | 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 ดำเนินการตามคำขอเปลี่ยนเฟรม |
ลักษณะการทํางานของคำขอประเภทที่รองรับมีดังนี้
ออฟเซ็ต | 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 | บิตแมป | รายการประเภทดาวเทียมที่แนบอยู่กับระบบ มี 4 ช่อง 5 ไบต์แยกกัน แต่ละช่องมีคำอธิบายดังนี้
|
ลักษณะการทํางานของคำขอประเภทที่รองรับมีดังนี้
ออฟเซ็ต | 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 (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 (1) ใช้เพื่อจับคู่ค่าการแพน การเอียง และการซูมปัจจุบันกับดัชนีที่กำหนดไว้ล่วงหน้า การตั้งค่าเป็น 2 ควรเปลี่ยนการแพน การส่าย และซูมของกล้องเป็นค่าที่แมปไว้ก่อนหน้านี้สำหรับดัชนีที่ระบุ หรือพิกัดเริ่มต้นของโรงงาน (หากไม่ได้แมปไว้ก่อนหน้านี้) การตั้งค่าค่าเป็น 3 จะรีเซ็ตดัชนีเป็นพิกัดเริ่มต้น
Preset Index
ใช้เพื่อระบุพิกัด PTZ ที่แมปกับดัชนี
Preset index
ของ 0 (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 |
การแมปเสริมแบบเลื่อนและเอียง
กล้องบางรุ่นมีส่วนประกอบพิเศษ เช่น มอเตอร์สำหรับกล้องแบบกลไก หรือความสามารถในการทำงานแบบ PTZ ที่ใช้ระบบดิจิทัล สำหรับอุปกรณ์เหล่านี้ ให้ใช้ตัวควบคุม 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
หัวข้อที่เกี่ยวข้อง
- ไดรเวอร์ Linux USB Video Class (UVC)
- ชุดเอกสาร Video Class v1.5
- ข้อกำหนดเกี่ยวกับ USB 2.0
- ศูนย์ช่วยเหลือของฮาร์ดแวร์ Google Meet
- ส่วนฮาร์ดแวร์ของ Google Meet ในศูนย์ช่วยเหลือสำหรับผู้ดูแลระบบ Google Workspace
บันทึกประจำรุ่น
บันทึกประจำรุ่นเหล่านี้ระบุการปรับปรุงและฟีเจอร์ใหม่ในเอกสารฉบับแก้ไขแต่ละฉบับ
27 ม.ค. 2025
- เพิ่มกลยุทธ์การจัดเฟรม
Vendor-preferred
ลงในGOOGXU_FRAME_STRATEGY
แล้ว - เพิ่มการควบคุมใหม่
GOOGXU_SATELLITE_INFO
21 พ.ค. 2024
- นําสคริปต์ทดสอบออกเพื่อใช้เครื่องมือทดสอบ CfM ใหม่ ซึ่งจะทดสอบ
SET
และรองรับการตรวจสอบกล้อง Series One ด้วย - ฟิลด์ที่ชี้แจงใน
GOOGXU_STATUS_INFO
- อธิบายลักษณะการทํางานของ
GOOGXU_STATUS_RESET
- เลิกใช้งานแล้ว
GOOGXU_PAN_TILT_ABSOLUTE
และGOOGXU_PAN_TILT_RELATIVE
15 พฤศจิกายน 2023
อัปเดตสคริปต์ทดสอบเพื่อตรวจสอบและตีความโหมดการจัดเฟรมที่ถูกต้อง การนำเสนอไบต์ที่ชัดเจน
21 กรกฎาคม 2023
เพิ่มสคริปต์ทดสอบสําหรับพาร์ทเนอร์เพื่อตรวจสอบการติดตั้งใช้งานให้เป็นไปตามข้อกําหนดนี้
25 พฤษภาคม 2023
แก้ไขแล้ว
GOOGXU_PRESETS
หมายเหตุเกี่ยวกับจำนวนค่าที่กำหนดล่วงหน้า ค่านี้ควรเป็น N ไม่ใช่ N-1
17 เมษายน 2023
การเผยแพร่ครั้งแรก