Hm10 Research sheets

25
HM-10.0

Transcript of Hm10 Research sheets

HM-10.0

Contents

I. 확장내역1) TCP/UDP Socket를 통한 File Stream2) Thread for Input Stream with Circular Buffer3) TAppStreamer를 통한 Frame Stream4) DirectX를 이용한 실시간 영상재생

II. 성능테스트

Decoder

인코딩된(.bin) 파일을 받아 yuv420 format 으로 디코딩

파일스트림 혹은 TCP/UDP 소켓스트림을 통한 입출력

HDD

Decoder.bin .yuv

Decoding by File stream

PC 에 저장되어 있는 바이너리 파일을 디코딩

Test File - BQMall_832x480_60_qp22_i_main.bin (Encoded by intramode, 29.3mb)

Usage : -b BQMall_832x480_60_qp22_i_main.bin -o BQMall_832x480_60_main.yuv

Decoding by Socket stream

우선 FileSender 를 이용 TCP/UDP 소켓을 통해 파일 전송

Test File - BQMall_832x480_60_qp22_i_main.bin (Encoded by intramode, 29.3mb)

Usage : 127.0.0.1 9190

Decoding by Socket stream

TAppDecoder 에선 수신한 파일을 원형버퍼에 저장

Usage : -b tcp://127.0.0.1:9190 -o BQMall_832x480_60_main.yuv or -b udp://127.0.0.1:9190 -o BQMall_832x480_60_main.yuv

Decoding via UDP Stream

보내는 쪽에선 서버쪽 수신여부에 상관없이 보냄

따라서 못받은 데이터에 대해선 손실이 발생

이에 따라 데이터 수신용 Thread를 구현

원형버퍼를 통해 효율적인 자원관리

Install ffmpeg on Mac OSX

• Command Line Tools by MacPorts - http://www.macports.org/install.php

• ffmpeg Source Code - http://www.ffmpeg.org/download.html

install MacPorts

• 환경변수 설정> export PATH=/opt/local/bin:$PATH

• MacPort Update> sudo port -v selfupdate

install yasm

• yasm 패키지 확인> port search yasm

• yasm 설치> sudo port install yasm

update GNU Compiler

• GCC 패키지 확인> port search gcc

• GCC 업데이트> sudo port install (gcc version name)

• Version Select> port select --list gcc > sudo port select --set gcc (gcc version name)

get ffmpeg & Compiling

‣ git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg

‣ cd /Users/cheh344/Dropbox/Laboratory_for_Mac/HEVC/myFFmpeg

‣ ./configure --prefix=/usr/local --enable-gpl --enable-nonfree \ --enable-libass --enable-libfdk-aac --enable-libfreetype \ --enable-libmp3lame --enable-libopus --enable-libtheora \ --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid

‣ make && sudo make install

ffplay test

• 실험환경- IntelⓇ Core™ i5-2557 Mobile Processor - 3MB Cache, Up to 2.70GHz, 2 core 4 thread- WindowsⓇ 8 [64-bit] Virtual OS

• 실험영상- BQMall_832x480_60_qp22_i_main (intra-mode)- BQMall_832x480_60_qp22_ra_main (inter-mode)

Intra-mode test

• 기본값으로 실행> ffplay BQMall_832x480_60_qp22_i_main

• 초당 25frame의 속도로 24초간 재생

• 실행 중 cpu 점유율 90%에 근접

• 초당 60프레임 재생> ffplay -framerate 60 BQMall_832x480_60_qp22_i_main

• 실행결과 전부하상태(full load)를 유지하나 재생이 안됨

Intra-mode test

Inter-mode test

• 기본값으로 실행> ffplay BQMall_832x480_60_qp22_ra_main

• 초당 25frame의 속도로 24초간 재생

• 실행 중 cpu 점유율 50%에 근접

• 초당 60프레임 재생> ffplay -framerate 60 BQMall_832x480_60_qp22_ra_main

• 12초만에 재생완료, 실행 중 cpu 점유율 90%에 근접

• 일부 구간 영상이 버벅거리는 외에는 이상 없음 확인

Inter-mode test

intra, 25fps inter, 25fps

intra, 60fps inter, 60fps