Chap 4. MPEG-2 부호기 전체 구조와 알고리즘

Slides:



Advertisements
Similar presentations
Term Project Hints Topics Keep-alive CGI Multi-thread Multi-process Event-based.
Advertisements

Tcl/Tk 민 인학 한국 Tcl/Tk 커뮤니티.
YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
제 1 부 멀티미디어 (Multimedia) 와 웹 (Web) 제 1 장 멀티미디어 (Multimedia) 와 생활 제 2 장 웹 (Web) 과 멀티미디어 (Multimedia) 제 2 부 컴퓨터 그래픽스 (Computer Graphics) 제 3 장 컴퓨터 그래픽스.
Digital 방송 시스템.
Basic of Buffer Over Flow
Project #2-2. Pintos User Program
2016 ITA 1월 강의 C Programming -4일차- 포인터배열 및 이중포인터 정대진 ( )
IT Application Development Dept. Financial Team May 24, 2005
C++ Espresso 제2장 제어문과 함수.
Computer Architecture and Design Lecture 14
Smart IoT 설계 시스템 Lecture 07. 센서와 액츄에이터 실습.
방송접목형 참여형방송기술 ETRI Technology Marketing Strategy IT R&D Global Leader
7장 비디오.
제7장 비디오 멀티미디어의 이해.
02장 ㅎㅎ 디지털 영상 빛과 색, 시각 컬러 모델 디지털 영상의 생성 디지털 영상의 종류 한빛미디어(주)
제 8 장  파서 생성기 YACC 사용하기.
Linux System Programming
제 5장. MPEG.
Department of Computer Engineering
상속.
멀티미디어 처리 4장 : 정보압축의 원리 및 기본이론.
TUXEDO 프로그래밍 가이드.
비디오.
Department of Computer Engineering
쉽게 풀어쓴 C언어 Express 제18장 입출력과 라이브러리 함수 C Express.
버퍼 오버플로우에 대한 대책과 발전된 공격 안전한 함수 사용 버퍼 오버플로우에 취약한 함수 사용하지 않기
배열, 포인터, 참조 배열은 같은 형을 가지는 변수들의 묶음이다..
쉽게 풀어쓴 C언어 Express 제16장 파일 입출력 C Express Slide 1 (of 23)
CHAP 3:배열, 구조체, 포인터.
S3c6410을 이용한 리눅스 비디오 드라이버 포팅 가이드 – - Linux Video Driver Porting Guide Using s3c6410 – 박영만
6장 비연결형 지향 프로토콜 Database Lab 강 우 석.
제 12장 I/O멀티플렉싱(Multiplexing)
Chapter 1 디지털 영상처리의 개념.
버퍼 오버플로우 시스템보안 인터넷공학전공 권영락.
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express.
Department of Computer Engineering
Department of Computer Engineering
Step Motor Device Driver
11장 데이터 링크 제어 (DLC: Data Link Control)
9장 파일 입출력.
Term Project Team Member
(ioctl, mmap, fsync&flush)
Department of Computer Engineering
HBE-SMIII-SV210 리눅스 커널과 디바이스 드라이버
10장 C 표준 파일 입출력 子曰 學而時習(실습?)之 不亦悅乎.
-제어문, 함수, 클래스- IS lab. 김건영 Python -제어문, 함수, 클래스- IS lab. 김건영
버퍼 (Buffer).
DataScience Lab. 박사과정 김희찬 (월)
제 6장 함수 Hello!! C 언어 강성호 김학배 최우영.
Chapter 4 MPEG-2 부호기 전체 구조와 알고리즘 ( 4.6 ~ 4.10 )
[CPA340] Algorithms and Practice Youn-Hee Han
User Datagram Protocol (UDP)
SOC Design Lecture 2 Video Codec Overview.
Stepper Motor 디바이스 드라이버
Operating System Multiple Access Chatting Program using Multithread
nauten Compiler – Report Ver.3 Mini-C (주간)
MPEG-4 로의 표준화 동향과 방법 A 유준석 A 박민호
Department of Computer Engineering
M P E G MPEG 1 Overview 제어인식연구실 이 찬 우 10월 19일 1998년.
Execution with Unnecessary Privileges
컴퓨터 프로그래밍 기초 - 11th : 파일 입출력 및 구조체 -
시스템 인터페이스 Lab#6 C 쉘 프로그래밍 실습.
실습과제 1번 생성된 파일 basic.txt를 프로젝트 폴더에서 메모장으로 열고 내용을 확인
매물장 로그인 직원을 미리 생성하시면 직원 ID로 로그인 가능.
argc, argv 의 사용방법 #include <stdio.h>
C 13장. 입출력 라이브러리 #include <stdio.h> int main(void) { int num;
C.
printf("Global Korea\n");
배열, 포인터, 함수 Review & 과제 1, 2.
Presentation transcript:

Chap 4. MPEG-2 부호기 전체 구조와 알고리즘 컴퓨터정보통신공학과 S&S LAB 최면욱

Content 4.1 전체구조 4.2 MPEG-부호기 전체구조 4.3 main() 처리루틴 4.4 파라미터 설정화일 4.5 양자화 매트릭스 파일설정

4.1 전체구조

4.2 MPEG-2 부호기 전체구조

4.3 main() 처리루틴 int main(argc,argv) /* mpeg2enc.c */ int argc; char *argv[]; {   if (argc!=3)   {     printf("\n%s, %s\n",version,author);     printf("Usage: mpeg2encode in.par out.m2v\n");     exit(0);   }   readparmfile(argv[1]); /*1. read parameter file */   readquantmat();   /*2. read quantization matrices */   /* open output file */   if (!(outfile=fopen(argv[2],"wb")))     sprintf(errortext,"Couldn't create output file %s",argv[2]);     error(errortext);   init(); /* 3. 비트, fdct 및 idct의 초기화과정   putseq() ; /* 4. 총프레임에 따라 반복루틴을 수행하면서 하나의 픽처를 부호화 */   fclose(outfile);   fclose(statfile);   return 0; }

4.3 main() 처리루틴

4.4 파라미터 설정 파일 MPEG-2 Test Sequence, 25 frames/sec /* PAL.par */ test%d    /* name of source files */ q%d       /* name of reconstructed images ("-": don't store) */ -         /* name of intra quant matrix file     ("-": default matrix) */ -         /* name of non intra quant matrix file ("-": default matrix) */ stat.out  /* name of statistics file ("-": stdout ) */ 0         /* input picture file format: 0=*.Y,*.U,*.V, 1=*.yuv, 2=*.ppm */ 150       /* number of frames */ 0         /* number of first frame */ 00:00:00:00 /* timecode of first frame */ 12        /* N (# GOP안에 포함되는 프레임 수) */ 3         /* M (I/P frame 사이의 거리, 사이에 몇 개의 B프레임이 존재하는가 확인) */ 0         /* ISO/IEC 11172-2 stream 0이면 MPEG1처리 1이면 MPEG2처리*/ 0         /* 0:frame pictures, 1: field pictures */ 704       /* horizontal_size */ 576       /* vertical_size */ 2         /* aspect_ratio_information(종횡비 정보) 1=square pel, 2=4:3, 3=16:9, 4=2.11:1 */ 3         /* frame_rate_code 1=23.976, 2=24, 3=25, 4=29.97, 5=30 frames/sec. */ 5000000.0 /* bit_rate (bits/s) 비트율의 최대값 */ 112       /* vbv_buffer_size (in multiples of 16 kbit) 가상버퍼사이즈*/ 0         /* low_delay  1로 설정하면 B픽처가 없음 */ 0         /* constrained_parameters_flag */ 4         /* Profile ID: Simple = 5, Main = 4, SNR = 3, Spatial = 2, High = 1 */ 8         /* Level ID:   Low = 10, Main = 8, High 1440 = 6, High = 4          */ 0         /* progressive_sequence */ 1         /* chroma_format: 1=4:2:0, 2=4:2:2, 3=4:4:4 */ 1         /* video_format: 0=comp., 1=PAL, 2=NTSC, 3=SECAM, 4=MAC, 5=unspec. */ 5         /* color_primaries */

4.4 파라미터 설정 파일 5 /* transfer_characteristics */ 5         /* matrix_coefficients */ 704       /* display_horizontal_size */ 576       /* display_vertical_size */ 0         /* intra_dc_precision (0: 8 bit, 1: 9 bit, 2: 10 bit, 3: 11 bit */ 1         /* top_field_first */ 0 0 0     /* frame_pred_frame_dct (I P B) */ 0 0 0     /* concealment_motion_vectors (I P B) */ 1 1 1     /* q_scale_type  (I P B) */ 1 0 0     /* intra_vlc_format (I P B)*/ 0 0 0     /* alternate_scan (I P B) */ 0         /* repeat_first_field */ 0         /* progressive_frame */ 0         /* P distance between complete intra slice refresh */ 0         /* rate control: r (reaction parameter) */ 0         /* rate control: avg_act (initial average activity) */ 0         /* rate control: Xi (initial I frame global complexity measure) */ 0         /* rate control: Xp (initial P frame global complexity measure) */ 0         /* rate control: Xb (initial B frame global complexity measure) */ 0         /* rate control: d0i (initial I frame virtual buffer fullness) */ 0         /* rate control: d0p (initial P frame virtual buffer fullness) */ 0         /* rate control: d0b (initial B frame virtual buffer fullness) */ 2 2 11 11 /* P:  forw_hor_f_code forw_vert_f_code search_width/height */ 1 1 3  3  /* B1: forw_hor_f_code forw_vert_f_code search_width/height */ 1 1 7  7  /* B1: back_hor_f_code back_vert_f_code search_width/height */ 1 1 7  7  /* B2: forw_hor_f_code forw_vert_f_code search_width/height */ 1 1 3  3  /* B2: back_hor_f_code back_vert_f_code search_width/height */

4.5 양자화 메트릭스 파일설정 static void readquantmat() /* mpeg2enc.c */ {   int i,v;   FILE *fd;   if (iqname[0]=='-')   {     /* use default intra matrix */     load_iquant = 0;     for (i=0; i<64; i++)       intra_q[i] = default_intra_quantizer_matrix[i];   }   else     /* read customized intra matrix */     load_iquant = 1;     if (!(fd = fopen(iqname,"r")))     {       sprintf(errortext,"Couldn't open quant matrix file %s",iqname);       error(errortext);     }       fscanf(fd,"%d",&v);       if (v<1 || v>255)         error("invalid value in quant matrix");       intra_q[i] = v;     fclose(fd);

4.5 양자화 메트릭스 파일설정 if (niqname[0]=='-') {   {     /* use default non-intra matrix */     load_niquant = 0;     for (i=0; i<64; i++)       inter_q[i] = 16;   }   else     /* read customized non-intra matrix */     load_niquant = 1;     if (!(fd = fopen(niqname,"r")))     {       sprintf(errortext,"Couldn't open quant matrix file %s",niqname);       error(errortext);     }       fscanf(fd,"%d",&v);       if (v<1 || v>255)         error("invalid value in quant matrix");       inter_q[i] = v;     fclose(fd); }

4.5 양자화 메트릭스 파일설정

4.5 양자화 메트릭스 파일설정 /* default intra quantization matrix */ /* intra.mat */ 16 17 18 19 20 21 22 23 17 18 19 20 21 22 23 24 18 19 20 21 22 23 24 25 19 20 21 22 23 24 25 26 20 21 22 23 24 25 26 27 21 22 23 24 25 26 27 28 22 23 24 25 26 27 28 29 23 24 25 26 27 28 29 30