Quality control (2)/Digital System Design

DSD - Video CODEC / Encoder Profiling

빈그레 2023. 3. 10. 17:52

 

 

 


Video CODEC

 

 

 

 

 

 

 

 

CODEC = ENCODER + DECODER

 

 

 

Encoder

 

: 데이터를 다른 format으로 변환하는 device(or algorithm)이다. machine learning의 맥락에서 encoder는 high-demensional data를 orginal data의 important features만 잘 캡처한 lower-dimensional representation으로 변환할 때 자주 사용된다.

 

machine learning에서 encoder는 일반적으로 autoencdoer로 사용된다. autoencoder

 

추가로 데이터 압축, 신호 처리 및 암호화와 같은 다양한 분야에서 encoder가 사용된다.

 

 

CODEC

 

: 어떠한 data stream이나 신호에 대해, 인코딩이나 디코딩, 혹은 둘 다를 할 수 있는 하드웨어나 소프트웨어를 말한다.

  (data stream : 외부에서 받아온 데이터, server에서 로드된(or 스트리밍된) data)

 

 

- Codec을 하드웨어로 만들고 싶다면? : codec은 보통 표준화된 알고리즘이 있다. (알고리즘 모듈화)

 

 

 

 

Encoder (알고리즘을 모듈화)

 

 

 

Encoder Profiling

 

 

 

 

 

 

 

[ Armulator 사용하여 Profiling ]

 : Armulator is a software tool that lets developers test Arm-based software without needing a physical Arm processor.

 

 

 


 

 

Reference Code를 이용한 Profiling 수행

 

- reference code : 컴퓨터 시스템의 Firmware 개발에 사용되는 code

- fireware : 하드웨어를 제어하고 운영하는 데에 필요한 소프트웨어를 개발하는 과정

- I-frame : MPEG에서 사용되는 동영상 프레임 유형 중 하나로, 현재 프레임의 모든 정보를 포함하는 Key Frame.

                 복원 속도가 빠르며 동영상 재생 시 첫번째 프레임을 사용된다.

- IPPPP sequence : 비디오 압축 표주에서 사용되는 encoding frame 유형 중 하나이다.

 

 

위 Profiling에서 IPPPP sequence 중 Prediction Module부분에 Hareware가속이 필요해보인다.

 

SW(CPU) + HW Accelerator

 

 

 

가속이 필요해보이는 부분에 다음과 같이 하드웨어 가속기를 붙인다.

이는 CPU로 너무 오래 걸리는 부분에 GPU를 꽂는 것과 비슷한 개념이다.

 

 

 

 

 

 

검증 환경 (Simulation)  //2022 중간고사 시험문

 

 

 

 

- C-level performance analysis (Circuit-level)

 : 하드웨어 디자인을 구현하기 전에 디지털 회로의 성능을 예측하는 기술이다. 

   회로의 동작을 모델링하고 시뮬레이션하여 design의 성능을 분석하고, 이를 통해 문제를 예측하고 수정한다.

 

- RTL simulation (Register Transfer Level Simlation)

 : 하드웨어 디자인을 구현하기 전에 디지털 회로를 검증하고, 디버깅하는 과정에서 사용되는 기술이다.

   회로의 동작을 시뮬레이션하여 design 오류를 찾고 수정하는데 사용된다.

 

***두 과정 모두 개발과 검증 단계에서 매우 중요한 역할을 한다.