infiniband 를 통한 4k sdi data 전송 framing (ver 0.5) ㈜ 스마트구루 ( 약칭 mp4rd)

14
InfiniBand 를 를를 4K SDI data 를를 Framing (ver 0.5) 를 를를를를를 ( 를를 MP4RD)

Upload: arline-price

Post on 01-Jan-2016

222 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: InfiniBand 를 통한 4K SDI data 전송 Framing (ver 0.5) ㈜ 스마트구루 ( 약칭 MP4RD)

InfiniBand 를 통한 4K SDI data 전송 Fram-ing

(ver 0.5)

㈜ 스마트구루

( 약칭 MP4RD)

Page 2: InfiniBand 를 통한 4K SDI data 전송 Framing (ver 0.5) ㈜ 스마트구루 ( 약칭 MP4RD)

날짜 작성자 버전 내용

2014.05.22 서원석 0.2 StreamFormatBox 내용추가StreamSampleOffset 오류 수정 및 내용 추가

2014.06.03 서원석 0.3 Capture server / Master system network 구조도 추가

2014.07.20 서원석 0.5 ‘blck’, ‘esso’ 박스 추가 , 샘플 사이즈 가변 가능한 구조로 변경

Revision history

Page 3: InfiniBand 를 통한 4K SDI data 전송 Framing (ver 0.5) ㈜ 스마트구루 ( 약칭 MP4RD)

3Page. COPYRIGHT 2014. SMART GURU CO., LTD. ALL RIGHTS RESERVED

OVERVIEW개요

4K SDI data networking

01.

Capture server

Encoder system 1 (Master)

MPIinter-face

Encoder system 2

MPIinter-face

Encoder system 3

MPIinter-face

Encoder system 4

MPIinter-face

4K Camera

1

2

3

① 3G SDI * 4

② InfiniBand network

③ MPI Interface

HEVC Encoder Blade Server

Matrox 4K capture card

InfiniBand Interface card

InfiniBand Interface card

Mp4 RAW data framing format

Page 4: InfiniBand 를 통한 4K SDI data 전송 Framing (ver 0.5) ㈜ 스마트구루 ( 약칭 MP4RD)

4Page. COPYRIGHT 2014. SMART GURU CO., LTD. ALL RIGHTS RESERVED

MP4 FILE FORMAT개요01.

Page 5: InfiniBand 를 통한 4K SDI data 전송 Framing (ver 0.5) ㈜ 스마트구루 ( 약칭 MP4RD)

5Page.

02.

COPYRIGHT 2014. SMART GURU CO., LTD. ALL RIGHTS RESERVED

MP4 RAW data framing

FRAMING STRUCTURE

MPEG4 file structure ( ISO/IEC 14496-12 ) 의 Box 구조 차용 4 개의 3G SDI (SMPTE 424M, 425M) 를 통해 전달되는 Video RAW data, Audio RAW data 전송 YUV 4:2:0 4K (3840 * 2160) 60 p PCM RAW data (16, 24 bit) – Level 별로 상이 . Max 32 channel MPEG4 Box 중 SDI RAW 데이터를 전송하기 위한 필수 frame 및 새로 정의된 Box 를 이용하여

Frame 구조 정의

Frame 구성방안

Page 6: InfiniBand 를 통한 4K SDI data 전송 Framing (ver 0.5) ㈜ 스마트구루 ( 약칭 MP4RD)

6Page. COPYRIGHT 2014. SMART GURU CO., LTD. ALL RIGHTS RESERVED

CAPTURE SERVER / MASTER SYSTEM NETWORK 구조도개요

TCP/IP Connection – data channel

01.

Encoder system 1 (Master)Capture server

Connect

Accept

MP4 RAW data

TCP client TCP Server

• TCP/IP network• InfiniBand with

• InfiniBand switch• MP4 RAW data framing

structure

Page 7: InfiniBand 를 통한 4K SDI data 전송 Framing (ver 0.5) ㈜ 스마트구루 ( 약칭 MP4RD)

7Page.

03.

COPYRIGHT 2014. SMART GURU CO., LTD. ALL RIGHTS RESERVED

MP4 4K RAW data framing

BOX HIERARCHICAL DIAGRAM

ftyp

moov

tist

mdia

stif

stbl

stso

mdat

blck

변경MP4 표준

신규

‘moov’, ‘mdia’, ‘stbl’, ‘mdia’ Box 는 단순 container box

stfm

hdlr

4K RAW Data block

Page 8: InfiniBand 를 통한 4K SDI data 전송 Framing (ver 0.5) ㈜ 스마트구루 ( 약칭 MP4RD)

8Page.

03.

COPYRIGHT 2014. SMART GURU CO., LTD. ALL RIGHTS RESERVED

MP4 4K RAW data framing

BLOCK BOX

Pseudo code

aligned(8) class BlockBox

extends Box(‘blck’) {

}* File 당 1 개 포함

‘ftyp’ Box syntax – 파일 타입 정의

field desc

Page 9: InfiniBand 를 통한 4K SDI data 전송 Framing (ver 0.5) ㈜ 스마트구루 ( 약칭 MP4RD)

9Page.

03.

COPYRIGHT 2014. SMART GURU CO., LTD. ALL RIGHTS RESERVED

MP4 4K RAW data framing

FILE TYPE BOX ( 수정 )

Pseudo code

aligned(8) class FileTypeBox

extends Box(‘ftyp’) {

unsigned int(32) major_brand;

unsigned int(32) minor_version;

unsigned int(32) compatible_brands[]; // to end of the box

}* File 당 1 개 포함

‘ftyp’ Box syntax – 파일 타입 정의

field desc

major_brand ‘4krw’ 로 고정

minor_version 1 ( 현재 버전 )

Compatible_brands[] 생략 ( 호환 brand 없음 )

Page 10: InfiniBand 를 통한 4K SDI data 전송 Framing (ver 0.5) ㈜ 스마트구루 ( 약칭 MP4RD)

10Page.

03.

COPYRIGHT 2014. SMART GURU CO., LTD. ALL RIGHTS RESERVED

MP4 4K RAW data framing

HANDLER REFERENCE BOX ( 수정 )

Pseudo code

aligned(8) class HandlerBox extends FullBox(‘hdlr’, version = 0, 0) {unsigned int(32) pre_defined = 0;unsigned int(32) handler_type;const unsigned int(32)[3] reserved = 0;string name;

}* ‘moov’ Box 당 1 개 포함 .

‘hdlr’ Box syntax – moov Box 내 포함된 스트림 핸들러 정의

field desc

handler_type ‘4krw’ 로 고정

name ‘4K SDI raw data handler’ (UTF-8) 로 고정

Page 11: InfiniBand 를 통한 4K SDI data 전송 Framing (ver 0.5) ㈜ 스마트구루 ( 약칭 MP4RD)

11Page.

03.

COPYRIGHT 2014. SMART GURU CO., LTD. ALL RIGHTS RESERVED

MP4 4K RAW data framing

STREAM INFO BOX ( 신규 )

Pseudo code

aligned(8) class StreamInfoBox

extends Box(‘stif) {

unsigned int(32) stream_count;

unsigned int(32) sample_count;

}

* container – ‘moov’ Box, ‘moov’ box 당 1 개 포함

‘stif’ Box – 포함된 스트림 수 및 샘플 수 정의

field desc

stream_count 프레임 데이터에 포함된 스트림의 수 . (YUV + PCM SDI 데이터 전송시 2 로 고정 )

sample_count 프레임 데이터에 포함된 스트림의 샘플 (frame) 수

Page 12: InfiniBand 를 통한 4K SDI data 전송 Framing (ver 0.5) ㈜ 스마트구루 ( 약칭 MP4RD)

12Page.

03.

COPYRIGHT 2014. SMART GURU CO., LTD. ALL RIGHTS RESERVED

MP4 4K RAW data framing

STREAM FORMAT BOX ( 신규 )

Pseudo code

aligned(8) class StreamFormatBox

extends Box(‘stfm’) {

unsigned int(32) stream_id;

unsigned int(32) stream_type;

if ( stream_type == ‘pcma’) {

unsigned int[8] sample_bits;

unsigned int[8] channels;

unsigned int[16] sample_rate;

} else if ( stream_type == ‘yuvr’ ) {

unsigned int[16] width;

unsigned int[16] height;

unsigned int[8] bits_per_pixel;

unsigned int [8] bit_depth;

unsigned int[16] frame_rate_x100;

unsigned int[32] fourCC;

} else if ( stream_type == ‘vdes’ ) {}

}* container – ‘stif’ Box, ‘stif’ box 의 stream_count 만큼 포함

‘stfm’ Box

field desc

stream_id 스트림의 id ( 추후 ‘ stso’ box 에서 사용 )

stream_type 스트림 형태를 box type 과 같은 형태로 (big-endian 32 bit, readable) 정의 .PCM audio : ‘pcma’, YUV : ‘yuvr’

sample_bits PCM sample bits (16, 24, 32)

channels Audio channels

sample_rate Audio sample rate (e.g 48000)

width 가로 픽셀 수

height 세로 픽셀 수

bits_per_pixel Pixel 당 비트수 (4:2:0, 8 bit 일 경우 24. 4:2:0 10 bit 인 경우 30)

bit_depth Color depth (8 bit or 10 bit)

Frame_rate_x100 Frame rate * 100 의 값 ( 60 fps 6000, 59.94 fps 5994)

fourCC YUV data 의 fourcc 값 e.g ‘IYUV’, ‘UYVY’

Page 13: InfiniBand 를 통한 4K SDI data 전송 Framing (ver 0.5) ㈜ 스마트구루 ( 약칭 MP4RD)

13Page.

03.

COPYRIGHT 2014. SMART GURU CO., LTD. ALL RIGHTS RESERVED

MP4 4K RAW data framing

STREAM SAMPLE OFFSET( 신규 )

Pseudo code

aligned(8) class SampleOffset {

unsigned int(8) sample_index;

unsigned int(24) sample_size_byte;

unsigned int(64) offset;

unsigned int(64) tist;

}

‘stso’ Box – 스트림의 sample 별 offset 및 timestamp 정의

field desc

sample_index 0 ~ (sample_count - 1 ) 까지의 index

Sample_size_byte 샘플 길이 ( 바이트 )

offset 해당 sample 의 ‘ mdat’ box 내의 offset (length 필드를 포함한 index)

tist 입력 샘플의 timestamp 값

stream_id ‘stfm’ box 에 정의된 stream_id

sample_count SampleInfoBox 의 sample_count 와 같은 값으로 설정 .

offset SampleOffset 데이터 클래스를 sample_count 만큼 정의

Pseudo codealigned(8) class SampleDataIndicatorBox

extends Box(‘stso’) {unsigned int(32) stream_id;unsigned int(32) sample_count;SampleOffset [sample_count] offset;

}

* container – ‘stbl’ Box, ‘stbl’ box 당 stream_count 만큼 포함

Page 14: InfiniBand 를 통한 4K SDI data 전송 Framing (ver 0.5) ㈜ 스마트구루 ( 약칭 MP4RD)

14Page.

03.

COPYRIGHT 2014. SMART GURU CO., LTD. ALL RIGHTS RESERVED

MP4 4K RAW data framing

ELEMENTARY STREAM SAMPLE OFFSET(신규 )

Pseudo code

aligned(8) class EsSampleOffset {

unsigned int(8) sample_index;

unsigned int(24) sample_size_byte;

unsigned int(64) offset;

unsigned int(64) tist;

unsigned int(32) frame_type;

unsigned int(32) p_order;

unsigned int(32) d_order;

}

‘stso’ Box – 스트림의 sample 별 offset 및 timestamp 정의

field desc

sample_index 0 ~ (sample_count - 1 ) 까지의 index

Sample_size_byte 샘플 길이 ( 바이트 )

offset 해당 sample 의 ‘ mdat’ box 내의 offset (length 필드를 포함한 index)

tist 입력 샘플의 timestamp 값

stream_id ‘stfm’ box 에 정의된 stream_id

sample_count SampleInfoBox 의 sample_count 와 같은 값으로 설정 .

offset SampleOffset 데이터 클래스를 sample_count 만큼 정의

Pseudo codealigned(8) class ESSampleDataIndicatorBox

extends Box(‘esso’) {unsigned int(32) stream_id;unsigned int(32) sample_count;EsSampleOffset [sample_count] offset;

}

* container – ‘stbl’ Box, ‘stbl’ box 당 stream_count 만큼 포함