'AVC'에 해당되는 글 4건

  1. 2007/03/23 ffmpeg 을 Bluesky2440에 porting 하기 (4)
  2. 2006/12/11 [H.264] Integer Transform
  3. 2006/12/05 [H.264] Encoder Block Diargram
  4. 2006/12/05 [H.264] H.264 개요

ffmpeg 은 h.264 software decoder 중 성능이 2번째로 뛰어나고 open source 로 되어 있는 어플리케이션이다.
ffmpeg 을 arm  프로세서를 탑재한 Bluesky2440 보드에 porting 하는 방법

각 단계에 모르는 용어나 자세한 정보는 각자 찾도록 한다.

1. Linux host 설치
   a: samba ( 리눅스 <->윈도우  파일 관리 )
   b: tftp ( 리눅스 <-> Bluesky2440 이미지 전송 )
   c: nfs ( 리눅스 <-> Bluesky2440 파일 관리 편리 )
   d: gcc와 관련된 패키지들 업데이트
      ( ffmpeg 은 gcc 버전이 낮거나 glibc 버전이 낮으면 컴파일 중에 에러가 발생한다. )
   d: arm-linux-gcc ( 각 리눅스 버전에 맞는 것을 구한다 )

2. Linux host 와 Bluesky2440 을 위한 설정
   a: tftp 를 이용해서 boot-image 와 kernel-image를 Bluesky2440 에 다운로드 한다.
   b: nfs 를 이용해서 Bluesky2440 을 리눅스에 mount 시킨다.
   c: Bluesky2440 부트로더를 수정해서 nfs로 동작하도록 수정한다. ( ip , devfs , nfsroot 등.. )  

3. ffmpeg을 arm 용으로 porting 한다.
   a: ffmpeg 을 linux 에서 설치해서 테스트를 해본다.
   b: ffmpeg을 arm 용으로 컴파일 하기 위해서 옵션들을 바꾼다.
   c: shared 옵션을 disable 로 하고 컴파일러를 arm-linux-gcc 로 바꾼다.
   d: static 옵션을 enable 로 하고 gpl 옵션도 enabler 시킨다.
   e: cpu나 arch 옵션을 arm 으로 하고 ,prefix를 nfs 마운트 된 arm 디렉토리로 설정한다.
   f: compile 하고 build 시킨다.
   g: 에러가 발생하면 경우에 따라서 ffmpeg 소스를 수정한다.
      ( 예: encode_422_bitstream, encode_gray_bitstream function 의 동작을 주석처리 )
   h: 동작이 잘 되는지 ffmpeg을 실행해서 확인 해 본다.

참고사이트
 
http://forum.doom9.org/
  http://ffmpeg.mplayerhq.hu/
  http://www.emlinux.co.kr/


'설계' 카테고리의 다른 글

잠시 외도  (2) 2007/06/27
하드웨어와 소프트웨어 파티셔닝  (1) 2007/04/19
ffmpeg 을 Bluesky2440에 porting 하기  (4) 2007/03/23
Verilog Coding Style Guide -1  (0) 2007/02/01
[H.264] Integer Transform  (0) 2006/12/11
[H.264] Intra Prediction  (0) 2006/12/07
Posted by 영고니짱
1. Integer Transform 특징
  - Spatial Redundancy 를 효율적으로 제거 하기 위해 사용
  - MPEG4 에서 사용하는 DCT 와 유사하다.
  - Time domain -> Frequency domain 의 변환을 한다.
  - Quantization과 겹친다.
  - Core Transform 과 Hadamard Transform 으로 구성
  - DCT 의 단점인 소수점 연산을 없애서 Inverse 과정을 했을때 오차가 없다.
  - Add 연산과 Shift 연산 만으로 구현이 가능하다.

2. Integer Transform 연산
  - Y = A  X  A^t * E
      A : 가로축 변환 계수 행렬
       A^t : A 의 transpose 행렬
       X : NxN block 의 데이터 행렬
       Y : Transpose 결과 계수
      E : 상수 배열
 
3. Core Transform
  - Luma 와 Chroma block 모두 4x4 block 으로 연산을 한다.
  - Y = AXAt 의 연산이 Y = CXC^t(*)E 의 형태로 바뀐다.
  - C 아 Ct 가 core transform 의 계수행렬이다.
  - C = {1,1,1,1,2,1,-1,-2,1,-1,-1,1,1,-2,2,-1} , Ct = {1,2,1,1,1,1,-1,-2,1,-1,-1,2,1,-2,1,-1}

4. Hadamard Transform
  - DC성분 값을 줄이는데 사용
  - 변화과 역변화이 같다.
  - Luma 와 Chroma block 의 모드별로 다르게 사용한다.

5. 4x4 Intra Predicted Luma block
  - Hadamard Transform을사용하지 않는다.

6. 16x16 Intra Predicted Luma block
  - 1개의 Macro block 에대해서 4x4 block 의 DC값의 크기가 비슷
  - 각 block 의 DC값 4개를 4x4 block 으로 만든 후 Hadamard Transform 수행
  - Wl = K Y K * C
           Wl : Luma Hadamard Transform 결과 행렬
           K : Hadamard Transform 의 계수
           Y : Core Transform 의 결과 block 의 DC행렬
          C : 상수
  - K = {1,1,1,1,1,1,-1,-1,1,-1,-1,1,1,-1,1.-1}

7. 8x8 Intra Predicted Chroma block
  - 인근 block간의 DC 값이 유사하여 변환 효과가 높다.
  - 각 block 의 DC 값 4개를 2x2 block 으로 만든 후 Hadamard Transform 수행
  - Wc = K` Y K` * C
           Wc : Chroma Hadamard Transform 의 결과 행렬
           K` : Hadamard Transform 의 계수
           Y : Core Transform 의 결과 block 이 DC 행렬
          C : 상수
  - K` = {1,1,1,-1}

'설계' 카테고리의 다른 글

ffmpeg 을 Bluesky2440에 porting 하기  (4) 2007/03/23
Verilog Coding Style Guide -1  (0) 2007/02/01
[H.264] Integer Transform  (0) 2006/12/11
[H.264] Intra Prediction  (0) 2006/12/07
[H.264] Encoder Block Diargram  (0) 2006/12/05
[H.264] H.264 개요  (0) 2006/12/05
Posted by 영고니짱
1. H.264 Encoder Block Diagram
  - Encoder 는 표준이 없다. Decoder 표준을 보고 Encoder 를 설게한다.
 
2. H.264 Decoder Block Diagram
  - Encoder 안에 포함되어 있으므로 생략

3. Pre-Processing
  - Sub-sampling : YUV format 중 4:2:0 으로 sampling 한다.
  - Low-Pass Filtering : 고주파성분을 없애준다.

'설계' 카테고리의 다른 글

[H.264] Integer Transform  (0) 2006/12/11
[H.264] Intra Prediction  (0) 2006/12/07
[H.264] Encoder Block Diargram  (0) 2006/12/05
[H.264] H.264 개요  (0) 2006/12/05
[VLSI] CMOS transistor 를 이용한 Logic gates 설계  (0) 2006/10/04
very long word multiplication  (0) 2006/08/17
Posted by 영고니짱
2006/12/05 11:25

1. 명칭
 - H.264 / AVC ( MPEG-4 PART 10 )

2. 표준
  - ITU-T 와 ISO 공동표준
  - Joint Video Team (JVT) 에 의해서 표준이 정해짐
  - MPEG-4 PART 10 AVC , ITU-T recommanation H.264

2. 특징
  - DMB , DVB-H 등의 방송 서비스나 VOD 서비스에서 사용되고 있는 코덱
   - MPEG-4 보다 약 15%의 복잡도 상승이 있으나 50%이상의 압축률 향상
  - Baseline , Main , Extended , High Profile 이 존재 각 Profile 마다 여러 Level 이 존재

4. H.264 Baseline Profile 특징
  - 프레임 기반 , 순차적  , Macro Block 단위 의 코딩
  - 16x16 Macro Block 이 8x8 블락 8개를 포함
  - YCbCr 4:2:0 format 영상 입력
  - I frame 과 P frame 지원
  - 왼쪽->오른쪽 , 위->아래 로 코딩
  - Picture size 는 16의 배수 크기
  - 픽셀 domain 에서 Intra prediction 수행
  - Inter Prediction 은 Multiple reference frames 을 갖음
  - ZigZag 스캔 사용
  - Exp-Golomb code 사용
  -
5. H.264 Baseline Profile Module
  - Transform : 4x4 , 2x2 block Integer Transform
  - Intra/Inter Prediction : Vertical, Horizontal , Diagonal . Down 등의 9가지모드
  - Motion Estimation/Compensation : 1개의 Macro Block 에 최대 16개의 Motion Vector
  - Quantization : -51 ~ +51
  - Entropy Coding : CAVLC
  - De-blocking Filter 사용

5. H.264 Baseline Profile Level 1.3 parameter
  - MaxMBPS : 11,880 (MB/s)
  - MaxFS : 396  (MBs)
  - MaxDPB : 891 (1024bytes)
  - MaxBr : 768  (1000 bit/s)
  - MaxCPB : 2,000 (1000bits)
  - MaxVmvR : -128+127.75 (luma frame samples)
  - MinCr : 2

Posted by 영고니짱
이전버튼 1 이전버튼