문맥 (context)
본 발명은 움직임 보상을 위한 영상 데이터의 버퍼링 방법 및 장치에 관한 것이다.
동영상 컨텐츠 등과 같은 멀티미디어 재생을 위한 플랫폼들은 대부분 별도의 하드웨어 가속기를 내장하고 있다. 특히, 비디오 코덱에는 많은 데이터의 처리가 요구되기 때문에 이와 같은 별도의 하드웨어 가속기가 반드시 필요하다. 비디오 코덱에서 가장 많은 시간이 소요되는 부분은 움직임 보상 부분으로서 메모리에 저장된 데이터에 대한 대부분 억세스(access)가 여기에서 이루어진다. 따라서, 대다수의 하드웨어 가속기는 움직임 보상 부분을 포함한다. 하드웨어 가속기가 움직임 보상을 위해 메모리에 저장된 데이터를 억세스하기 위해서는 많은 것을 고려해야 하는데 대표적으로 억세스 단위 및 패딩(padding)을 고려해야 한다.
일반적으로, AMBA를 비롯한 대부분의 버스는 데이터를 32 비트 단위로 전송하는데, 움직임 보상을 위해 사용되는 화소 데이터는 메모리 얼라인(align)이 되어 있지 않은 8 비트의 데이터이다. 따라서, 버스의 효율을 높이기 위해서는 32 비트의 데이터를 읽어 들이고, 이 데이터 중 움직임 보상을 위해 필요한 데이터를 8 비트 단위로 골라내야 한다. 또한, 모든 비디오 코덱의 표준에서는 현재 영상이 참조 영상의 범위를 벗어나는 경우에도 움직임 보상을 위한 데이터를 억세스할 수 있도록 하고 있다. 이러한 범위를 벗어나는 데이터에 대해서는 참조 영상의 경계에 있는 화소 값들을 사용하는데 이것을 패딩이라고 한다. 이러한 두 가지 요소를 고려하여 움직임 보상 부분을 하드웨어로 구현하는 데 있어 가장 많이 사용되는 방식은 다음의 두 가지 방식이다.
첫째, 움직임 보상을 위한 버퍼로서 SRAM 버퍼를 사용하는 방식이다. 즉, 이 방식은 별도의 SRAM 버퍼를 마련하고, 움직임 보상 처리 장치가 읽어 들어야 할 데이터를 미리 SRAM 버퍼에 가져다 놓고, 패딩이 필요한 경우에는 패딩을 한 후에 SRAM 버퍼에 저장된 데이터를 움직임 보상 처리 장치에서 사용한다. 그러나, 이 방식의 경우, 별도의 SRAM을 두어야 하기 때문에 하드웨어의 크기가 커지게 되며 SRAM 버퍼에 하나의 블록 데이터가 모두 저장된 후에 움직임 보상을 위한 연산이 수행되기 때문에 움직임 보상 처리 속도가 느려지게 된다는 문제점이 있었다.
둘째, 움직임 보상을 위한 버퍼로서 하나의 레지스터 어레이 버퍼를 기반으로 하는 FIFO(First In First Out) 모듈을 사용하는 방식이다. 이 방식은 32 비트의 데이터를 입력받고, 패딩을 수행한 후에 8 비트의 데이터로 출력한다. FIFO 모듈은 움직임 보상을 위한 블록의 최대 가로 크기에 해당하는 레지스터들의 조합으로 형성된 버퍼, 즉 하나의 레지스터 어레이 버퍼(one register array buffer)를 사용한다. 그러나, 이 방식의 경우, 입력되는 데이터는 32 비트인데 출력되는 데이터는 8 비트이기 때문에 금방 버퍼가 차게 된다는 문제점이 있었다. 이렇게 되면, 버퍼의 모든 데이터가 출력될 때까지 입력 데이터를 받을 수 없기 때문에 움직임 보상 처리 속도가 느려지게 된다는 문제점이 있었다.
지시문 (instruction)
주어진 원문을 읽고 필요한 정보를 파악하여, 원문에 근거해 질문에 답하라.
질문 (question)
움직임 보상을 위해 하나의 레지스터 어레이 버퍼를 기반으로 하는 FIFO 모듈을 사용하는 방식은 데이터를 어떻게 처리하여 출력하는가?
추론 과정 (compact_reasoning)
-
1과제 해석
task_interpretation하나의 레지스터 어레이 버퍼 기반 FIFO 모듈의 데이터 처리 및 출력 작동 방식을 묻는 질문이다.
-
2정보 추출
information_extraction해당 방식의 입력 데이터 단위, 처리 과정(패딩), 출력 데이터 단위를 추출한다.
- 이 방식은 32 비트의 데이터를 입력받고, 패딩을 수행한 후에 8 비트의 데이터로 출력한다.
-
3근거 선택
evidence_selection데이터의 흐름(입력 -> 처리 -> 출력)을 설명하는 구절을 선택한다.
- 32 비트의 데이터를 입력받고, 패딩을 수행한 후에 8 비트의 데이터로 출력한다.
-
4논리 통합
logical_integration32비트 입력이 패딩 과정을 거쳐 8비트 출력으로 변환되는 작동 메커니즘을 연결한다.
-
5결론 도출
conclusion_formulation입력, 처리, 출력의 단계를 포함하여 작동 방식을 정리한다.
- 32 비트의 데이터를 입력받고, 패딩을 수행한 후에 8 비트의 데이터로 출력한다.
-
6답변 생성
answer_generation질문에 대해 명확한 작동 순서로 답변을 작성한다.
- 32 비트의 데이터를 입력받고, 패딩을 수행한 후에 8 비트의 데이터로 출력한다.
최종 답변 (final_answer)
32 비트의 데이터를 입력받은 후, 패딩을 수행하여 8 비트의 데이터로 출력한다.
핵심 해석 (core_interpretation)
레지스터 어레이 버퍼 기반 FIFO 모듈 방식은 32 비트의 데이터를 입력받고 패딩을 수행한 후 8 비트의 데이터로 출력한다.