Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "InfiniBand 를 통한 4K SDI data 전송 Framing (ver 0.5) ㈜ 스마트구루 ( 약칭 MP4RD)"— Presentation transcript:

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

2 날짜작성자버전내용 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

3 Page. COPYRIGHT 2014. SMART GURU CO., LTD. ALL RIGHTS RESERVED 3 O VERVIEW 개요 4K SDI data networking 01. Capture server Encoder system 1 (Master) MPI interface Encoder system 2 MPI interface Encoder system 3 MPI interface Encoder system 4 MPI interface 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

4 Page. COPYRIGHT 2014. SMART GURU CO., LTD. ALL RIGHTS RESERVED 4 MP4 F ILE FORMAT 개요 01.

5 Page. 02. COPYRIGHT 2014. SMART GURU CO., LTD. ALL RIGHTS RESERVED 5 MP4 RAW data framing F RAMING 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 구성방안

6 Page. COPYRIGHT 2014. SMART GURU CO., LTD. ALL RIGHTS RESERVED 6 C APTURE SERVER / M ASTER SYSTEM N ETWORK 구조도 개요 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

7 Page. 03. COPYRIGHT 2014. SMART GURU CO., LTD. ALL RIGHTS RESERVED 7 MP4 4K RAW data framing B OX 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

8 Page. 03. COPYRIGHT 2014. SMART GURU CO., LTD. ALL RIGHTS RESERVED 8 MP4 4K RAW data framing B LOCK BOX Pseudo code aligned(8) class BlockBox extends Box(‘blck’) { } * File 당 1 개 포함 ‘ftyp’ Box syntax – 파일 타입 정의 fielddesc

9 Page. 03. COPYRIGHT 2014. SMART GURU CO., LTD. ALL RIGHTS RESERVED 9 MP4 4K RAW data framing F ILE 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 – 파일 타입 정의 fielddesc major_brand ‘4krw’ 로 고정 minor_version 1 ( 현재 버전 ) Compatible_brands[] 생략 ( 호환 brand 없음 )

10 Page. 03. COPYRIGHT 2014. SMART GURU CO., LTD. ALL RIGHTS RESERVED 10 MP4 4K RAW data framing H ANDLER 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 내 포함된 스트림 핸들러 정의 fielddesc handler_type ‘4krw’ 로 고정 name ‘4K SDI raw data handler’ (UTF-8) 로 고정

11 Page. 03. COPYRIGHT 2014. SMART GURU CO., LTD. ALL RIGHTS RESERVED 11 MP4 4K RAW data framing S TREAM 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 – 포함된 스트림 수 및 샘플 수 정의 fielddesc stream_count 프레임 데이터에 포함된 스트림의 수. (YUV + PCM SDI 데이터 전송시 2 로 고정 ) sample_count 프레임 데이터에 포함된 스트림의 샘플 (frame) 수

12 Page. 03. COPYRIGHT 2014. SMART GURU CO., LTD. ALL RIGHTS RESERVED 12 MP4 4K RAW data framing S TREAM 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 fielddesc stream_id 스트림의 id ( 추후 ‘stso’ box 에서 사용 ) stream_type 스트림 형태를 box type 과 같은 형태로 (big-endian 32 bit, readable) 정의. PCM audio : ‘pcma’, YUV : ‘yuvr’ sample_bitsPCM sample bits (16, 24, 32) channelsAudio channels sample_rateAudio sample rate (e.g 48000) width 가로 픽셀 수 height 세로 픽셀 수 bits_per_pixel Pixel 당 비트수 (4:2:0, 8 bit 일 경우 24. 4:2:0 10 bit 인 경우 30) bit_depthColor 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’

13 Page. 03. COPYRIGHT 2014. SMART GURU CO., LTD. ALL RIGHTS RESERVED 13 MP4 4K RAW data framing S TREAM 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 정의 fielddesc 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 code aligned(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 만큼 포함

14 Page. 03. COPYRIGHT 2014. SMART GURU CO., LTD. ALL RIGHTS RESERVED 14 MP4 4K RAW data framing E LEMENTARY S TREAM 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 정의 fielddesc 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 code aligned(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 만큼 포함


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

Similar presentations


Ads by Google