8Kスーパーハイビジョン記録のためのSSDを用いた高速映像記録技術の開発

梶山 岳士 菊地 幸大 宮下 英一

フルスペック8Kスーパーハイビジョン映像の圧縮記録装置の実現に向けて,最大2.4GBpsに達する高速映像データ用の記録再生技術を開発した。複数のメモリーへのデータ転送制御に伴う付加的な処理(オーバーヘッド)を削減する映像データに特化したデータ転送制御手法を考案し,シーケンシャルな書き込みや読み出しだけでなく,映像フレーム単位のランダム読み出しにも高い性能を発揮することを明らかにした。提案した手法を実装した8Kスーパーハイビジョン圧縮記録装置を試作し,通常の記録再生と早送りや巻き戻し,ジョグシャトルを使った特殊再生が良好に動作することを実証した。

1.はじめに

ハイビジョンの16倍の約3,300万画素を持つ8Kスーパーハイビジョン(以下,8K)1)2)3)4)5) は,超高精細映像と22.2マルチチャンネル音響から成る高臨場感映像・音響システムである。特に,フレーム周波数120Hz,量子化ビット数12bit,赤・緑・青(RGB:Red Green Blue)すべての色について7,680×4,320画素を有するフルスペック8Kの非圧縮の映像転送速度は18GBps*1(144Gbps)に達する。当所ではこれまでに,高速な信号の記録に映像の圧縮を適用した圧縮記録装置の開発を進めてきた6)7)。この装置は,放送局内における編集をはじめとした番組制作業務で使用できるように,低い圧縮率(高画質な圧縮)を採用しているため,圧縮後の転送速度は,4:4:4フォーマット*2 の圧縮映像データと音声データ等を合わせて2.4GBps(約20Gbps,1フレーム当たり20MB),4:2:0フォーマット*3 で1.2GBps(約10Gbps,1フレーム当たり10MB)となる。したがって,メモリーには速い記録再生速度が求められる。

このような高速の映像データ用のメモリーとして,ハードディスクドライブ(HDD:Hard Disk Drive)よりも高い転送速度を有するソリッドステートドライブ(SSD:Solid State Drive)8) が注目されている。SSDは,記録媒体として不揮発性の固体メモリーであるNAND型フラッシュメモリー9)*4 を採用しており,耐衝撃性の観点からも,着脱交換と持ち運びを想定したメモリーに適している。しかし,一般的なSSDは,SATA(Serial ATA:シリアルエーティーエー)10)*5 と呼ばれるインターフェース規格の制約から最大転送速度が0.6GBpsにとどまり,単体では8Kの圧縮記録に対応できない。

このSSDを用いて8Kの圧縮記録を実現するためには,RAID(Redundant Arrays of Inexpensive Disks)11) と呼ばれる,メモリーの並列化技術が有効である。RAIDは,記録再生速度と記録容量,および信頼性に応じて複数のレベルが設定可能である。その中でも,ストライピング(RAID 0)と呼ばれる手法は,N個のメモリーに対してN分割したデータを記録する方式であり,冗長性は持たないが,N倍の記録容量と,理論上はN倍の記録再生速度を達成できる。

しかし,実際にRAIDを適用する場合,シーケンシャル転送*6 の性能とランダム転送*7 の性能を両立させることが難しい。特にRAIDを搭載している一般的な製品はランダム転送性能を重視する傾向が強く,シーケンシャル転送性能が重視される映像データの記録に適用した場合には期待する性能が得られない。そこで本研究では,データサイズの大きい映像のシーケンシャル転送性能の向上にも適用可能なストライピング技術,およびデータ転送制御手法を提案する。本稿では,8Kの1フレーム当たりのデータサイズが圧縮時でも最大20MBに達する点に着目し,記録時のシーケンシャル書き込み,再生時のシーケンシャル読み出し,さらにフレーム単位のランダム読み出しが発生する早送り・巻き戻し・ジョグシャトルを使った特殊再生の各データアクセスパターンを考慮しながら,最大2.4GBpsに対応可能な高速記録技術について述べる。

2.ストライピング技術

本章では,まずストライピングの構成例を示し,その性能評価について述べる。評価結果を踏まえて,SSDの並列数増加に伴い発生する転送ボトルネックの原因と,転送速度改善の基本的な考え方を説明する。

2.1 ストライピングの構成例

ストライピング制御は,ハードウエアストライピングとソフトウエアストライピングに分類できる。

ハードウエアストライピングの構成例を1図に示す。ハードウエアストライピングは,専用のRAIDボードで提供され,専用のLSI(Large-Scale Integration)がRAID 0コントローラーの役割を担うため,高い転送性能が期待できるが,接続可能なSSDの最大数は製品ごとに決められている。一般的に,ホストインターフェースとしてPCI Express(PCIe)12)*8,SSDのインターフェースとしてSATAまたはSerial Attached SCSI(SAS)*9 を備える。

ソフトウエアストライピングの構成例を2図に示す。ソフトウエアストライピングは,ホスト内部のソフトウエアとしてRAID 0コントローラーが動作するため,転送性能はCPUの性能と負荷に依存するが,PCIeインターフェースを複数のSATAまたはSASインターフェースに変換する拡張ボードを使用することにより,SSD接続数の拡張が可能である。

次節では,これら2つの異なる特徴を持つストライピング制御について,実際にどのように転送ボトルネックが発生するのかを調べた結果について述べる。

1図 ハードウエアストライピングの構成例
2図 ソフトウエアストライピングの構成例

2.2 ストライピングの性能評価

ストライピングは,SSDの並列数Nに対して,理論上はN倍の転送速度が期待できるが,実際にはNの増加に伴って転送速度が飽和する傾向がある。この現象を詳細に調査するために,1図に示すハードウエアストライピングの構成において,製造メーカー,記録容量,コネクター形状の規格が異なる3種類のSSD(SSD A, B, Cと呼ぶ)を用いて転送速度を測定した。RAIDボードは,SSDを最大8個接続可能な製品を用意した。ホストとなるパソコン(PC:Personal Computer)とRAIDボードの間のインターフェースであるPCIeの転送帯域(=最大転送速度)は,Gen2×8レーンの転送帯域(最大転送速度4GBps)となる。また,RAIDボードとSSDの間のインターフェースであるSATA の転送帯域は,SSD1個当たりGen3の転送帯域(最大転送速度0.6GBps)であり,SSDを8個接続した場合の転送帯域は最大4.8GBpsとなる。測定に使用した各ハードウエアの仕様を1表に示す。

ハードウエアストライピング時におけるSSD並列数Nと,シーケンシャル書き込み速度およびシーケンシャル読み出し速度との関係を,それぞれ3図4図に示す。図中の実線は測定結果,破線はSSD単体の転送速度をN倍した理論値を示す。3図の測定結果によると,3種類すべてのSSDについて,N=4の条件まで転送速度は増加を続けるが,N=8の条件でほぼ飽和して理論値を大幅に下回っていることが分かる。同様に4図に示す読み出し速度についても,N=8の条件で飽和している。書き込み速度,読み出し速度ともに最大転送速度は2GBpsを下回っており,これはPCIeの転送帯域の上限である4GBps(8×0.5GBps)の半分以下となっている。また,SSD Bに関しては,書き込み,読み出しともにN=8の転送速度がN=4の転送速度を下回っているため,転送ボトルネックとしては,RAIDボードのハードウエアの性能限界だけではなく,並列数Nに関連する要因も考えられる。

同様に,2図に示す構成のソフトウエアストライピングについても転送性能を測定した。拡張ボードは,SSDを最大16個接続可能な製品を用意した。ホストPCと拡張ボードの間のインターフェースの転送帯域は,ハードウエアストライピングと同じくPCIe Gen2×8レーンの転送帯域(バス幅4GBps)となる。拡張ボードとSSDの間のインターフェースはSATA Gen3(バス幅0.6GBps)であり,SSDを16個接続した場合の転送帯域は最大9.6GBpsとなる。ソフトウエアストライピング時におけるSSD並列数Nと,シーケンシャル書き込み速度およびシーケンシャル読み出し速度との関係を,それぞれ5図6図に示す。図中の実線は測定結果,破線はSSD単体の転送速度をN倍した理論値を示す。5図に示す書き込み速度の測定結果によると,N=8の条件で理論値を大幅に下回り,N=16の条件でほぼ飽和している。書き込みの最大速度はSSD BがN=16の条件で2.2GBps程度であるが,SSD A,SSD Cは2GBpsを下回っており,いずれもPCIeの転送帯域の上限である4GBpsの半分程度となっている。この結果に加えて,飽和する転送速度がそれぞれ異なることから,転送ボトルネックの要因は単純なハードウエアの性能限界だけではないと考えられる。6図の読み出し速度についても,N=8で大幅に理論値を下回り,さらにN=16で飽和しており,最大速度はSSD A,B,Cのいずれも2GBpsを下回った。

1表: ハードウエアの仕様
ホストPC CPU: Core i7 (Intel)
Mother Board:P8Z68 (ASUS)
OS:Windows7 (Microsoft)
RAIDボード ARC-1882i (areca)
拡張ボード SAS 9201-16i (AVAGO Technologies)
SSD A SSD 840 PRO (Samsung),256GB,
SATAコネクター
SSD B PX-256M2P (Plextor) ,256GB,
SATAコネクター
SSD C PX-128M5M (Plextor) ,128GB,
mSATAコネクター※1

※1 SATAインターフェース用の通常のSATAコネクターと比較して小型のコネクター。

3図 ハードウエアストライピングにおける
SSD並列数Nとシーケンシャル書き込み速度
4図 ハードウエアストライピングにおける
SSD並列数Nとシーケンシャル読み出し速度
5図 ソフトウエアストライピングにおける
SSD並列数Nとシーケンシャル書き込み速度
6図 ソフトウエアストライピングにおける
SSD並列数Nとシーケンシャル読み出し速度

2.3 転送ボトルネックに影響を与える要因

前節で述べた転送速度飽和の原因となる転送のボトルネックとして,次の2つの要因が考えられる。

1つ目の要因はハードウエア的な動作速度の限界であり,ハードウエアストライピングの場合はRAIDボードの動作速度,ソフトウエアストライピングの場合は拡張ボードの動作速度およびホストPCのCPUの動作速度に相当する。この要因はハードウエアの動作周波数やバス幅などに依存するため,期待する性能を達成するためには,ハードウエアの設計段階においてボトルネックを作らないことが必須となる。

2つ目の要因は,ホストインターフェース(PCIe)とSSDインターフェース(SATA)の転送オーバーヘッド*10 であり,これはハードウエアストライピングとソフトウエアストライピングに共通する要因となる。この要因に対しては,オーバーヘッドが存在しても転送可能となるように,ハードウエアの性能を1.5倍~2倍にすることが考えられるが,8Kのような高速な映像データの処理では動作周波数などの点で現実的ではない。そのため,転送オーバーヘッドの削減によってインターフェースのボトルネックを作らないことが重要である。

3. 映像データ転送特性の解析と転送速度の改善

本章では,ハードウエアストライピングとソフトウエアストライピングの転送速度低下の共通要因と考えられる,PCIeとSATAインターフェースにおけるボトルネックの解消を目的とし,データサイズの大きい映像データを想定して転送データサイズと転送速度の関係を解析した結果を示す。そして,この解析結果に基づいて,転送オーバーヘッド削減と,転送速度を改善するデータ転送制御手法について説明する。

転送データサイズと転送速度の関係を調査するために,7図に示すテストボードを用意した。解析にあたり,ホストPCのCPU動作速度によるボトルネックを排除するために,テストボードはハードウエアストライピングを採用した。テストボードの内部には3つのFPGA(Field-Programmable Gate Array)を備え, 内部バスのLVDS(Low Voltage Differential Signaling)は,合計4GBpsの帯域幅を確保している。ホストインターフェースは,1図,2図と同様のPCIe Gen2×8レーンを備える。SSDインターフェースは,最大帯域幅0.3GBpsのSATA Gen2を最大16系統接続可能である。SATAコネクターの形状は,通常のSATAコネクターと比較して小型のmSATAを採用しており,以降の解析にはmSATAコネクターを備えるSSD Cを用いた。

7図 テストボード

3.1 PCIe転送特性の解析

PCIeのデータ転送には,映像データのような大容量データを効率よく転送する方式としてDMA(Direct Memory Access)が用意されている。8図はDMA転送において,1フレームの映像データを転送する時間を説明する図である。中のRは1フレームの映像データを転送するのに必要なDMA転送の繰り返し回数,TstartはDMA転送を開始するまでのレイテンシー*11 時間,Thdはパケットヘッダーの転送時間,Tdataはパケットデータの転送時間を示す。8図より,Tstartの時間を減らすことができれば全体の転送速度改善が期待できるが,TstartはPCIeをコントロールするホストおよびボードの各ハードウエア性能に依存するため短縮が難しい。そこで,1回のDMA転送のデータサイズを拡大することで,RTstartの発生回数を減らし,転送速度の改善を図った。

この効果を調べるために,DMA転送のデータサイズとPCIe転送速度の関係をテストボードで測定した結果を9図に示す。本測定は,テストボードとホストPCのメインメモリー*12 との間で行った。横軸はDMA転送のデータサイズ,縦軸はシーケンシャル転送で測定したPCIe転送速度を示す。9図より,DMA転送のデータサイズが2MBの条件では転送速度は3GBpsに達しないのに対し,データサイズの拡大とともに転送速度は向上し,20MBのときに3.4GBps以上の転送速度が得られることが分かった。この結果から,DMA転送のデータサイズが大きいほど転送速度を改善できることが分かった。

8図 DMA転送による映像フレームの転送時間
9図 DMA転送のデータサイズとPCIe転送速度

3.2 SATA転送特性の解析

PCIeの転送特性と同様に,SATAインターフェースについても転送サイズの拡大による転送速度の改善を検討した。SSDは512Byteのセクター*13 と呼ばれる単位で内部データの管理を行っており,SATAインターフェースは1回の転送コマンドで転送するセクター数を選択可能である。そこで,1回の転送コマンドで転送するセクター数とシーケンシャル書き込みおよび読み出し速度との関係を測定した。その結果を10図に示す。本測定は,テストボードと2.2節で使用したSSD Cとの間で行った。横軸は転送するセクター数,縦軸はSSD単体の転送速度を示す。10図より,転送速度は書き込み,読み出しともにセクター数1,024までセクター数の増加に伴って増大し,その後は緩やかに増大を続ける。この実験での最大転送速度は,3,072セクターのときに書き込みで0.215GBps,読み出しで0.262GBpsとなった。これらの結果から,一度の転送コマンドで転送するセクター数を1,024以上に設定することで,良好な転送性能を得られることが分かった。

10図 SATAにおける転送セクター数と転送速度

3.3 ランダム読み出し速度の検証

本節では,ランダム読み出しのデータサイズと転送速度の関係について検証する。映像データの記録では,書き込みは専らシーケンシャル転送であるのに対して,読み出しはフレーム単位でのランダム転送が発生する。一方,SSDは一般的にシーケンシャル転送と比較してランダム転送の性能が低いことが知られている。そこで,SSDのランダム読み出し性能について検証した。

11図は,SSD Cのランダム読み出し性能を測定した結果である。横軸はランダム読み出しを行うデータサイズ,縦軸は転送速度を示す。ランダム読み出し速度は,データサイズの増加とともに1,024kB付近まで急激に増加し,1,024kB以降は緩やかに上昇を続ける。この結果から,データサイズを1,024kBを下回らない値とすることにより,良好なランダム読み出し性能を得ることが可能と考えられる。

11図 ランダム読み出しデータサイズと転送速度

3.4 転送速度を改善する映像データの転送制御

前節までの結果を踏まえて,転送速度を改善するための映像データの転送制御手法について説明する。

前述のように,PCIeとSATAインターフェースは一度に転送するデータサイズが大きいほど転送速度が改善するが,一方で映像データでは,早送りや巻き戻し,ジョグシャトルを使った特殊再生時の映像フレーム単位でのランダム読み出しも考慮しなければならない。そのため,映像データは最大でも映像フレームサイズ以下で管理される必要がある。そこで,映像フレーム単位で映像データの転送制御を行う手法を提案する。

PCIeの転送速度を最大化するために,ホストとテストボード間で転送するデータのサイズを映像フレームサイズとし,これをDFとする。さらにSATAの転送速度を最大化するために,テストボードと各SSDの間で転送するデータサイズはDFをSSD並列数Nで割った値とし,これをDSDF/Nとする。DSに相当するセクター数をSとすると,SDS/512となり,これはSATAインターフェースの1回のコマンドで転送可能な最大セクター数に相当する。

これらの各パラメーターと転送速度の評価結果を整理した例を2表に示す。2表の○印は,良好な転送速度を実現可能なパラメーターを示す。

PCIeとSATAインターフェースのボトルネックに関しては,2表に示すパラメーターに従って転送制御することで改善が可能となる。すなわち,9図の測定結果が示すとおり,PCIeのDMA転送サイズが大きいほどボトルネックを解消する高速な転送が実現でき,DMA転送サイズをフレームデータサイズDFと等しくすることで,DF=20MBの条件において3.4GBps以上,DF=10MBの条件においても3GBps以上を達成し,ボトルネックを解消できる。また,10図の測定結果が示すように,SATAのコマンド当たりの転送セクター数を1,024以上とすることで,ボトルネックの発生を回避可能である。このとき転送セクター数Sの値は並列数Nの値に反比例する点に注意する必要があるが,2表に示す条件でデータサイズを制御することで転送セクター数Sは1,024以上を達成でき,ボトルネックを解消可能となる。

ランダム読み出しに関しても,DSの値が1,024kBを下回らない条件で並列数Nを設定することにより,良好な転送速度を達成できる。2表に示すパラメーターでは,DF=20MBかつ並列数N=16または8,およびDF=10MBかつN=8の条件でDSが1,024以上となり良好な性能が達成できるが,DF=10MBかつN=16の条件ではランダム読み出しの性能低下に注意する必要がある。

2表: 転送制御パラメーターと転送速度
映像フレームサイズDF
PCIeのDMA転送速度
SSD並列数N DSとSATAの
ランダム読み出し転送速度
SATAコマンド1回当たりの
転送セクター数と転送速度
DF (MB) 転送速度 DS (kB) 転送速度 S (セクター数) 転送速度
20 16 1,280 2,560
8 2,560 5,120
10 16 640 1,280
8 1,280 2,560

4. 提案手法を適用したストライピングの転送速度評価

提案手法を7図に示すテストボードに適用し,最大16個のSSD Cを用いて,ホストPCとストライピングしたSSDの間の転送性能を評価した。12図は,ストライピングの並列数Nと書き込み転送速度の関係を映像フレームサイズDF=20MBの条件で測定した結果である。破線はSSD単体の転送速度をN倍した理論値であり,実線は測定結果を示す。書き込み転送速度はNにほぼ比例して増加し,N=16のときに3.211GBpsに到達した。13図は,同様の条件で読み出し転送速度を測定した結果である。読み出し転送速度もNとともに増大し,N=16のときに3.118GBpsとなった。

これらの測定結果から,提案手法の適用により転送オーバーヘッドを削減することで,書き込み転送速度はN=16までほぼNに比例した転送速度を達成した。同様に,読み出し転送速度については理論値をある程度下回るものの,N=16まで増加しつづけることを確認し,書き込み転送速度と同等の性能を実現した。

13図で読み出し転送速度が理論値を下回る要因の1つとしては,以下が考えられる。一般的にストライピングの転送速度はN個のSSDのうち最も転送速度が低いSSDのN倍が上限となるため,Nの増加に伴って転送速度の上限が低下する確率が高まる。特にSSDは,書き込みについては転送速度を安定させるための十分なキャッシュメモリーを備えているが,読み出しにはキャッシュメモリーを使用しない製品が多いため,この傾向が顕著に現れる可能性がある。

また,測定にはテストボードのコネクター形状の制約からSSD Cを用いたが,SSDの単体性能が同等またはそれ以上であるSSD A,Bについても同様の効果が期待できる。

12図 提案手法によるSSD並列数と書き込み転送速度
13図 提案手法によるSSD並列数と読み出し転送速度

5.8K記録システムへの実装と検証

提案手法を実装した8K記録装置を試作し,記録再生性能を検証した。フルスペック8K映像を転送速度1.2GBps,映像フレームサイズ10MBとなる4:2:0フォーマットで圧縮した。この映像データを記録再生するために,8個のSSD(SSD C)をテストボードによって並列化し,記録装置に適用した。適用前にあらかじめホストPCで性能を測定した結果,2表に示すDF=10MB,N=8,DS=1,280kByte,S=2,560の条件で,最大書き込み速度が1.547GBps,最大読み出し速度が1.622GBpsであることを確認した。

メモリーの安定性を検証するために,記録動作(シーケンシャル書き込み),通常再生(シーケンシャル読み出し),早送り,巻き戻し,ジョグシャトルを使った特殊再生(ランダム読み出し)を行った結果,いずれについても安定で良好な動作を確認できた。

6.むすび

8Kの高速な映像ストレージ技術を実現するために,SSDのハードウエアストライピングにおける映像データの高速転送制御手法を提案した。提案した手法は,ストライピングを行うハードウエアのインターフェースであるPCIeとSATAの転送オーバーヘッドを削減し,高い転送速度を達成した。本手法は,転送の基本単位を映像フレームデータのサイズとすることで,記録再生の基本となるシーケンシャル書き込みとシーケンシャル読み出しだけでなく,フレーム単位のランダム読み出しにおいても高い転送速度を実現した。

従来のRAID 0コントローラーがSSDの並列数=8で転送性能がほぼ飽和するのに対して,試作したテストボードと提案手法を用いた実験では,SSDの並列数=16の構成まで転送速度が増加することを確認できた。16並列における最大転送速度は,フルスペック8Kの圧縮記録に要求される2.4GBpsを上回る3GBps以上を達成した。今回はテストボードによるハードウエアストライピング制御で評価したが,提案手法は,ソフトウエアストライピングに適用した場合も有効であると考えられる。

また,8Kの記録装置を用いて,1.2GBpsの圧縮映像データを8並列のSSDによって記録,通常再生,特殊再生できることを実証し,提案手法の有用性を確認できた。

本稿は,ITE Transactions on Media Technology and Applicationsに掲載された以下の論文を元に加筆・修正したものである。
T. Kajiyama, K. Kikuchi and E. Miyashita:“High-throughput Video Data Access Control of Striping with SSDs for 8K Super Hi-Vision,” ITE Transactions on Media Technology and Applications,Vol.4,No.4, pp.286-291(2016)