ラズベリーパイのカメラのケーブル長を延ばしてみました。
普通は数百mm程度ですが2mまでケーブルを延長させています。
MIPI CSI-2のケーブルの長さによるカメラ動作への影響を紹介します。
MIPI CSI-2のケーブル長さを延長してカメラ動作してみた
MIPI CSI-2のケーブル長さを「2m」まで延長してカメラ動作確認してみました。
(カメラの付属品で付いてきたケーブル長が「150㎜」ですので約13倍です。)
ケーブルが2mでラズベリーパイでカメラ動作したところ、無事に撮影できました。
最大解像度の2592x1944の5Mピクセルの静止画撮影が出来ました。
また1920x1080の動画もほぼ問題なく撮影出来ました。
途中、一瞬横筋のノイズが入った所がありますがほぼ動画撮影できています。
実際のテスト動画は下記になります。ほぼ問題なくカメラ動作できています。
また動画だと一瞬横筋のノイズが入ったことが分かりやすいかと思います
MIPI CSI-2のケーブル長を延長した場合の影響に関して紹介していきます。
また規格や波形に関しては下記記事で説明しています。
ぜひ合わせて一緒にご覧ください。(リンク先はこちら)
MIPI CSI-2はラズパイのカメラに使われている
身近な所でMIPI CSI-2はラズベリーパイのカメラに使われています。
汎用的なラズパイのカメラだと約500万画素(5M pixels)、1080p30fpsのスペックがあります。
カメラの種類によっては更に高解像度のもあります。
ラズパイのカメラはコネクタに挿すだけで簡単に使えます。非常に便利です。
下記記事で使い方をまとめています。(リンク先はこちら)
MIPI CSI-2の周波数
MIPI CSI-2は名前の通りカメラ向けのIFです。
- MIPI…Mobile Industry Processor Interface
- CSI-2…Camera Serial Interface
画像や動画を取り扱うので大量のデータが通信されます。
MIPI CSI-2のデータ・クロックは差動100Ωで高速通信を行っています
データの各レーンで最大1.5Gbps(750MHz)の通信速度・周波数となります。
MIPI CSI-2のケーブルは基本的に短い
FFCのような平らなケーブルでMIPI CSI-2の差動信号を送っているケースが多いと思われます。
FFCならばモバイル・車載向けの狭いスペースで差動信号を送るにも便利です。
基本は数百㎜程度の短いFFCケーブルが多いです。
MIPI CSI-2は高速信号のため(減衰の観点としても)、ケーブルが短い方がベターです。
筆者が購入したラズパイのカメラの付属品ケーブルは150mmでした。
MIPI CSI-2の信号
MIPI CSI-2のレーンは各ボード・基板で異なります。
規格としては最大データ_4レーン + クロック_1レーンということです。
例えばラズパイのMIPI CSI-2としてはデータ_2レーン、クロック_1レーンとなっています。
ラズベリーパイのカメラIFとしてのコネクタピン配置は下記です。実質15ピンです。
MIPI CSI-2の差動ペアとペアの間にGNDを挟む形でガードしています。
MIPI CSI-2以外にも電源やカメラ認識用のI2Cなどの信号も入っている形です。
- 2ピン…CAM1_DN0
- 3ピン…CAM1_DP0
- 5ピン…CAM1_DN1
- 6ピン…CAM1_DP1
- 8ピン…CAM1_CN
- 9ピン…CAM1_CP
- 11ピン…CAM_GPIO
- 13ピン…SCL0
- 14ピン…SDA0
- 15ピン…3V3
- 4,7,10ピン…GND
(もしかしたら通信できないかもしれませんが、ケーブル長が延長されても…)
ラズパイカメラのコネクタに合うならばMIPI CSI-2の信号は繋がるはずです。
MIPI CSI-2のケーブル長を変えてテストしてみる
ラズパイのカメラの延長ケーブルは市販で売られています。
500mm,1m,2mのセットのケーブルを購入してみました。1000円程度で購入できました。
実際に購入して開梱した際の写真は下記形です。
FFCケーブルですので非常にコンパクトに納められていました。
500mm,1m,2mの各ケーブルの写真は下記形です。
500㎜でラズパイ周りで十分に取り回せます。(付属品の150mmは結構短かったです)
2mもあればラズパイ本体からカメラをかなり遠い位置まで配置できそうです。
一番長い2mのケーブルをカメラとラズパイに取り付けて、テストしてみます。
最大解像度の静止画と動画を撮影できるか確認します。
ラズベリーパイのカメラの最大解像度
今回のテストで使用しているラズベリーパイのカメラは少し古いVer1.3(OV5647)です。
テストで使う解像度の設定は下記とします。
- 静止画の最大解像度…2592x1944=5Mピクセル
- 動画の最大解像度…1920x1080 30fps ※1
※1…動画に関してはfpsを落として解像度を上げれますが、一番は汎用的な設定にしました。
最近のラズベリーパイのカメラVer2.0以降(IMX219)では性能が上がっています。
もし同様にテストする場合は更に解像度設定を上げれます。
最大解像度の静止画のテスト
今回はラズパイにてPythonのプログラミングしてテスト動作させています。
カメラの解像度を自由に設定可能です。実際に使ったコードは下記です。
1 2 3 4 5 6 7 8 |
import time import picamera with picamera.PiCamera() as camera: camera.resolution = (2592, 1944) camera.start_preview() time.sleep(2) camera.capture('test.jpg') |
ラズパイにはデフォルトでPythonがインストールされており、誰でも簡単に使用できます。
初心者の方でも大丈夫です。下記記事で使い方を紹介しています。(リンク先はこちら)
ケーブルを2mに延長してテストした結果、最大解像度で撮影できました。
プロパティで確認すると2592x1944=5Mピクセルの静止画が撮影できています。
mediainfoで写真の詳細確認
一応「mediainfo」というコマンドで撮影した写真(test.jpg)を詳細確認しました。
ラズパイでもコンソール上で下記コマンドを入力することでインストールできます。
もちろん特に問題なく、2592x1944の写真データでした。
2mのケーブルを使ってもMIPI CSI-2で正常に画像データを入手できています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
pi@raspberrypi:~ $ mediainfo --fullscan test.jpg General Count : 331 Count of stream of this kind : 1 Kind of stream : General Kind of stream : General Stream identifier : 0 Count of image streams : 1 Image_Format_List : JPEG Image_Format_WithHint_List : JPEG Codecs Image : JPEG Complete name : test.jpg File name : test.jpg File name : test File extension : jpg Format : JPEG Format : JPEG Format/Extensions usually used : h3d jpeg jpg jpe jps mpo Commercial name : JPEG Internet media type : image/jpeg File size : 2375691 File size : 2.27 MiB File size : 2 MiB File size : 2.3 MiB File size : 2.27 MiB File size : 2.266 MiB Stream size : 0 Stream size : 0.00 Byte (0%) Stream size : Byte0 Stream size : 0.0 Byte Stream size : 0.00 Byte Stream size : 0.000 Byte Stream size : 0.00 Byte (0%) Proportion of this stream : 0.00000 File last modification date : UTC 2020-11-14 10:28:38 File last modification date (local) : 2020-11-14 19:28:38 Image Count : 124 Count of stream of this kind : 1 Kind of stream : Image Kind of stream : Image Stream identifier : 0 Format : JPEG Format : JPEG Commercial name : JPEG Internet media type : image/jpeg Width : 2592 Width : 2 592 pixels Height : 1944 Height : 1 944 pixels Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 Bit depth : 8 bits Compression mode : Lossy Compression mode : Lossy Stream size : 2375691 Stream size : 2.27 MiB (100%) Stream size : 2 MiB Stream size : 2.3 MiB Stream size : 2.27 MiB Stream size : 2.266 MiB Stream size : 2.27 MiB (100%) Proportion of this stream : 1.00000 |
最大解像度の動画のテスト
動画もPythonのプログラミングしてテスト動作させています。実際に使ったコードは下記です。
1 2 3 4 5 6 7 8 9 10 |
import time import picamera with picamera.PiCamera() as camera: camera.resolution = (1920, 1080) camera.start_preview() time.sleep(2) camera.start_recording('test.h264') camera.wait_recording(10) camera.stop_recording() |
1920x1080の動画もほぼ問題なく撮影出来ました。
途中、一瞬横筋のノイズが入った所がありますがほぼ動画撮影できています。
動画のプロパティから1920x1080の30fpsとなっていました。
冒頭でも紹介しましたが、実際のテスト動画は下記になります。
動画だと(2mの影響かは断言できませんが)一瞬横筋のノイズが入ったことが確認できます。
ケーブル長さはなるべく短い方が良さそうです。
mediainfoで動画の詳細確認
一応「mediainfo」というコマンドで撮影した動画(test.mp4)を詳細確認しました。
下記コマンドでpythonから出力された動画形式の「h264」から「mp4」に変換しています。
mp4に変換した理由は下記2点です。
- (筆者が)動画編集しやすいようにするため。
- h264で「mediainfo」してもfps値が表示されなかったため。(mp4だと出ました)
データの中身内容としては特に問題なく、1920x1080で動画ファイルとなっています。
2mのケーブルでも高解像度の1920x1080 30fpsの動画データを取得できています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
pi@raspberrypi:~ $ mediainfo --fullscan test.mp4 General Count : 331 Count of stream of this kind : 1 Kind of stream : General Kind of stream : General Stream identifier : 0 Count of video streams : 1 Video_Format_List : AVC Video_Format_WithHint_List : AVC Codecs Video : AVC Complete name : test.mp4 File name : test.mp4 File name : test File extension : mp4 Format : MPEG-4 Format : MPEG-4 Format/Extensions usually used : mov mp4 m4v m4a m4b m4p m4r 3ga 3gpa 3gpp 3gp 3gpp2 3g2 k3g jpm jpx mqv ismv isma ismt f4a f4b f4v Commercial name : MPEG-4 Format profile : Base Media Internet media type : video/mp4 Codec ID : isom Codec ID : isom (isom/avc1) Codec ID/Url : http://www.apple.com/quicktime/download/standalone.html CodecID_Compatible : isom/avc1 File size : 21105776 File size : 20.1 MiB File size : 20 MiB File size : 20 MiB File size : 20.1 MiB File size : 20.13 MiB Duration : 11920 Duration : 11 s 920 ms Duration : 11 s 920 ms Duration : 11 s 920 ms Duration : 00:00:11.920 Duration : 00:00:11:23 Duration : 00:00:11.920 (00:00:11:23) Overall bit rate : 14164950 Overall bit rate : 14.2 Mb/s Frame rate : 25.000 Frame rate : 25.000 FPS Frame count : 298 Stream size : 2167 Stream size : 2.12 KiB (0%) Stream size : 2 KiB Stream size : 2.1 KiB Stream size : 2.12 KiB Stream size : 2.116 KiB Stream size : 2.12 KiB (0%) Proportion of this stream : 0.00010 HeaderSize : 2069 DataSize : 21103617 FooterSize : 90 IsStreamable : Yes Encoded date : UTC 2020-11-14 10:08:37 Tagged date : UTC 2020-11-14 10:08:37 File last modification date : UTC 2020-11-14 10:08:38 File last modification date (local) : 2020-11-14 19:08:38 Video Count : 375 Count of stream of this kind : 1 Kind of stream : Video Kind of stream : Video Stream identifier : 0 StreamOrder : 0 ID : 1 ID : 1 Format : AVC Format : AVC Format/Info : Advanced Video Codec Format/Url : http://developers.videolan.org/x264.html Commercial name : AVC Format profile : High@L4 Format settings : CABAC / 1 Ref Frames Format settings, CABAC : Yes Format settings, CABAC : Yes Format settings, ReFrames : 1 Format settings, ReFrames : 1 frame Format settings, GOP : M=1, N=60 Internet media type : video/H264 Codec ID : avc1 Codec ID/Info : Advanced Video Coding Duration : 11920 Duration : 11 s 920 ms Duration : 11 s 920 ms Duration : 11 s 920 ms Duration : 00:00:11.920 Duration : 00:00:11:23 Duration : 00:00:11.920 (00:00:11:23) Bit rate : 14163496 Bit rate : 14.2 Mb/s Maximum bit rate : 16918808 Maximum bit rate : 16.9 Mb/s Width : 1920 Width : 1 920 pixels Height : 1080 Height : 1 080 pixels Stored_Height : 1088 Sampled_Width : 1920 Sampled_Height : 1080 Pixel aspect ratio : 1.000 Display aspect ratio : 1.778 Display aspect ratio : 16:9 Rotation : 0.000 Frame rate mode : CFR Frame rate mode : Constant Frame rate : 25.000 Frame rate : 25.000 FPS Frame count : 298 Color space : YUV Chroma subsampling : 4:2:0 Chroma subsampling : 4:2:0 Bit depth : 8 Bit depth : 8 bits Scan type : Progressive Scan type : Progressive Bits/(Pixel*Frame) : 0.273 Stream size : 21103609 Stream size : 20.1 MiB (100%) Stream size : 20 MiB Stream size : 20 MiB Stream size : 20.1 MiB Stream size : 20.13 MiB Stream size : 20.1 MiB (100%) Proportion of this stream : 0.99990 Title : h264@GPAC0.5.2-DEV-revVersion: 0.5.2-426-gc5ad4e4+dfsg5-5 Encoded date : UTC 2020-11-14 10:08:37 Tagged date : UTC 2020-11-14 10:08:38 Codec configuration box : avcC |
まとめ
今回はMIPI CSI-2のケーブル長に関して紹介させていただきました。
記事をまとめますと下記になります。
必要に応じてラズパイのカメラの延長ケーブルなどで長さを調整してもらえれば良いと思います。
またMIPI CSI-2の規格や波形に関しても下記記事で説明しています。
ぜひ合わせて一緒にご覧ください。(リンク先はこちら)
コメント