WebカメラのJPEG量子化テーブル
このスクラップについて
Webカメラ(に限らないけど)のMJPEGで使われてる量子化テーブルを表示し、参照画像を同じ量子化テーブルでJPEGエンコード→デコードして表示するサイトを作ったので、それを使って手持ちのWebカメラの量子化テーブルを列挙してみる。
サイトの使い方
gstreamerを使って取得。Winの場合の手順:
- gst-device-monitor-1.0.exe でdevice-pathを得る。実行すると
gst-launch-1.0 mfvideosrc device-path="\\\\\?\\usb\#vid_1bcf\&pid_28c4\&mi_00\#8\&1da11eb4\&0\&0000\#\{e5323777-f976-4f5b-9b55-b94699c46e44\}\\global" ! ...
みたいに表示されるとこがソレ。 - 上記はgst-launchのコマンドの始めの部分なので、以下を変更して実行する
-
!
の前にnum_buffers=1
を入れる(1枚だけ撮影する) -
!
の後にimage/jpeg,width=1280,height=720 ! filesink location=output.jpg
を入れる
-
- output.jpgにJPEGが保存されているはず(一部ロジクールカメラなどで壊れたファイルになる場合もある)
より詳細な情報の取得
WindowsであればJpegAnalyzer Plusで解析することで詳細な情報が得られる。このスクラップにもスクショを貼っておいた。
画像について
標準画像のBalloonを使った。この子の現在とかわかってるのかな? Lenaみたいなことにならないよね?
PTZ Optics PT-WEBCAM-80
YOUZIPPER HDC-265M
Logicool C525n
JPEGの中にDHTセグメントが無いやんちゃなカメラUVC1.1のMJPEG Payloadの定義を見たらDHTはoptionalとあり、そのときはこのテーブルを使うよ、とちゃんと書いてあった(とはいえ、その仕様を根拠に外すのは割とやんちゃ)。量子化テーブルの割に画質はイマイチ。多分センサーの性能?
YOUZIPPER HDC-264M
Angetube 825
DEPSTECH DW49
DELL XPS 13 2in1 内蔵カメラ
他の72族(適当に命名)と比べても画質が悪いのでセンサの問題もありそう
LIEWEG (特に型番なさそう)
J JOYACCESS(特に型番なさそう)
JellyCamb
Amazonで買ったけど商品ページ消えてた
Logicool C922n
MacBookPro (14inch, 2021) の場合
Device found:
name : FaceTime HD Camera
class : Video/Source
caps : video/x-raw(memory:GLMemory), width=1552, height=1552, format=UYVY, framerate=[ 1/1, 30/1 ], texture-target=rectangle
video/x-raw(memory:GLMemory), width=1328, height=1760, format=UYVY, framerate=[ 1/1, 30/1 ], texture-target=rectangle
video/x-raw(memory:GLMemory), width=640, height=480, format=UYVY, framerate=[ 1/1, 30/1 ], texture-target=rectangle
video/x-raw(memory:GLMemory), width=1760, height=1328, format=UYVY, framerate=[ 1/1, 30/1 ], texture-target=rectangle
video/x-raw(memory:GLMemory), width=1080, height=1920, format=UYVY, framerate=[ 1/1, 30/1 ], texture-target=rectangle
video/x-raw(memory:GLMemory), width=1280, height=720, format=UYVY, framerate=[ 1/1, 30/1 ], texture-target=rectangle
video/x-raw(memory:GLMemory), width=1920, height=1080, format=UYVY, framerate=[ 1/1, 30/1 ], texture-target=rectangle
video/x-raw, width=1552, height=1552, format={ (string)UYVY, (string)YUY2, (string)NV12, (string)BGRA }, framerate=[ 1/1, 30/1 ]
video/x-raw, width=1328, height=1760, format={ (string)UYVY, (string)YUY2, (string)NV12, (string)BGRA }, framerate=[ 1/1, 30/1 ]
video/x-raw, width=640, height=480, format={ (string)UYVY, (string)YUY2, (string)NV12, (string)BGRA }, framerate=[ 1/1, 30/1 ]
video/x-raw, width=1760, height=1328, format={ (string)UYVY, (string)YUY2, (string)NV12, (string)BGRA }, framerate=[ 1/1, 30/1 ]
video/x-raw, width=1080, height=1920, format={ (string)UYVY, (string)YUY2, (string)NV12, (string)BGRA }, framerate=[ 1/1, 30/1 ]
video/x-raw, width=1280, height=720, format={ (string)UYVY, (string)YUY2, (string)NV12, (string)BGRA }, framerate=[ 1/1, 30/1 ]
video/x-raw, width=1920, height=1080, format={ (string)UYVY, (string)YUY2, (string)NV12, (string)BGRA }, framerate=[ 1/1, 30/1 ]
MJPEG圧縮はしない。常にRAW。これは2021のモデルに限らずMBP 2019 Laterでも同じだった記憶。MacBook Airとかになるとどうかは不明。