UVC H.264

2011/6/20(米国時間) H.264向けのUVC規格が公開されました。この規格が公開されるまでのUVCにおけるH.264の取り扱いは、MPEG-TS(Transport Stream)で多重して送っても良いと述べられているだけで、USBホスト側の取り扱いが難しく、普及しませんでした。現在流通するUVC対応USBカメラは、非圧縮とMotion-JPEG(MJPEG)がほとんどを占めています。今回の規格公開で、H.264による高画質・高圧縮なUSBカメラ、それに付随するサービスが期待されます。実際、UVC H.264のコントリビュータにはSkype社も含まれており、新たなサービスを予感させます。

Extension Unit による実装

UVC H.264が他の画像形式(非圧縮、MJPEG)と大きく異なる点は、H.264制御をExtension Unitで実現している点です。H.264制御に関わるコントロールは、Extension Unitへのリクエストとして実現します。

Function Topology - UVC for H.264

以下のExtension Unitのリクエスト(= H.264制御)が定義されています。ダイナミックコントロールとは、エンコード中に発行可能なリクエストで、これも他の画像形式には無いUVC
H.264固有機能です。

リクエスト名 備考 ダイナミック
コントロール
UVCX_VIDEO_UNDEFINED 0x00 Reserved
UVCX_VIDEO_CONFIG_PROBE 0x01 Negotiate encoding parameters without altering current streaming state
UVCX_VIDEO_CONFIG_COMMIT 0x02 Sets the current configuration of the encoder
UVCX_RATE_CONTROL_MODE 0x03 Configuration of the encoder in bitrate/quality mode.
UVCX_TEMPORAL_SCALE_MODE 0x04 Number of layers
UVCX_SPATIAL_SCALE_MODE 0x05 Setting the spatial mode
UVCX_SNR_SCALE_MODE 0x06 Setting the quality mode
UVCX_LTR_BUFFER_SIZE_CONTROL 0x07 LTR Buffer usage
UVCX_LTR_PICTURE_CONTROL 0x08 LTR Control
UVCX_PICTURE_TYPE_CONTROL 0x09 I , IDR frame requests
UVCX_VERSION 0x0A Spec. version supported from the device
UVCX_ENCODER_RESET 0x0B Encoder Reset
UVCX_FRAMERATE_CONFIG 0x0C Dynamic frame rate configuration
UVCX_VIDEO_ADVANCE_CONFIG 0x0D Configuration for level_idc
UVCX_BITRATE_LAYERS 0x0E Bitrate per layer
UVCX_QP_STEPS_LAYERS 0x0F Minimum/Maximum QP Configuration per layers