KR101228111B1 - 움직임 보상을 위한 더블 레지스터 어레이 버퍼 - Google Patents

움직임 보상을 위한 더블 레지스터 어레이 버퍼 Download PDF

Info

Publication number
KR101228111B1
KR101228111B1 KR1020060107495A KR20060107495A KR101228111B1 KR 101228111 B1 KR101228111 B1 KR 101228111B1 KR 1020060107495 A KR1020060107495 A KR 1020060107495A KR 20060107495 A KR20060107495 A KR 20060107495A KR 101228111 B1 KR101228111 B1 KR 101228111B1
Authority
KR
South Korea
Prior art keywords
buffer
data
read
row
fsm
Prior art date
Application number
KR1020060107495A
Other languages
English (en)
Other versions
KR20080039766A (ko
Inventor
김두현
박현상
이시화
김도형
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020060107495A priority Critical patent/KR101228111B1/ko
Priority to US11/905,369 priority patent/US8526493B2/en
Publication of KR20080039766A publication Critical patent/KR20080039766A/ko
Application granted granted Critical
Publication of KR101228111B1 publication Critical patent/KR101228111B1/ko
Priority to US13/958,835 priority patent/US9001887B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/23Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with coding of regions that are present throughout a whole video segment, e.g. sprites, background or mosaic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation

Abstract

본 발명은 움직임 보상을 위한 영상 데이터의 버퍼링 방법 및 장치에 관한 것으로, 더블 레지스터 어레이 버퍼 중 어느 하나를 제 1 버퍼를 영상의 블록의 어느 한 행에 해당하는 데이터가 쓰여질 버퍼로 선택하고, 다른 하나를 이 블록의 다른 행에 해당하는 데이터가 읽혀질 버퍼로 선택함으로써 하나의 레지스터 어레이 버퍼를 사용하는 경우에 비해 움직임 보상 처리 속도를 매우 빠르게 할 수 있다.

Description

움직임 보상을 위한 더블 레지스터 어레이 버퍼{Double register array buffer for motion compensation}
도 1은 본 발명의 바람직한 일 실시예에 따른 더블 레지스터 어레이 버퍼의 구성도이다.
도 2는 도 1에 도시된 더블 레지스터 어레이 버퍼에 8 x 8 블록의 어느 한 행에 해당하는 데이터가 쓰여지는 모습을 도시한 도면이다.
도 3은 도 1에 도시된 선택부(11)의 상세 구성도이다.
도 4는 현재 영상이 참조 영상을 벗어나는 경우의 화소 값 패딩 모습을 도시한 도면이다.
도 5는 도 3에 도시된 읽기 FSM(112)의 패딩 모습을 도시한 도면이다.
도 6은 도 3에 도시된 버퍼 제어 FSM(113)에 의해 참조되는 더블 레지스터 어레이 버퍼 상태 테이블을 도시한 도면이다.
도 7은 본 발명의 바람직한 일 실시예에 따른 버퍼링 방법의 흐름도이다.
도 8은 도 7에 도시된 75 단계에 해당하는 BC 갱신 단계 중 세로 방향의 패딩을 위한 BC 갱신 단계의 상세 흐름도이다.
도 9는 도 7에 도시된 76 단계에 해당하는 waddr 생성 단계의 상세 흐름도이다.
도 10은 도 7에 도시된 77 단계에 해당하는 raddr 생성 단계의 상세 흐름도이다.
본 발명은 움직임 보상을 위한 영상 데이터의 버퍼링 방법 및 장치에 관한 것이다.
동영상 컨텐츠 등과 같은 멀티미디어 재생을 위한 플랫폼들은 대부분 별도의 하드웨어 가속기를 내장하고 있다. 특히, 비디오 코덱에는 많은 데이터의 처리가 요구되기 때문에 이와 같은 별도의 하드웨어 가속기가 반드시 필요하다. 비디오 코덱에서 가장 많은 시간이 소요되는 부분은 움직임 보상 부분으로서 메모리에 저장된 데이터에 대한 대부분 억세스(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 비트이기 때문에 금방 버퍼가 차게 된다는 문제점이 있었다. 이렇게 되면, 버퍼의 모든 데이터가 출력될 때까지 입력 데이터를 받을 수 없기 때문에 움직임 보상 처리 속도가 느려지게 된다는 문제점이 있었다.
본 발명이 이루고자 하는 기술적 과제는 SRAM을 사용하지 않음으로써 움직임 보상을 위한 하드웨어의 크기를 줄일 수 있고, 하나의 레지스터 어레이 버퍼를 사용하는 경우에 비해 움직임 보상 처리 속도를 매우 빠르게 할 수 있게 하는 방법 및 장치를 제공하는데 있다. 상기된 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는데 있다.
본 발명이 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다. 이것은 본 발명이 속하는 기술 분야에서 통상을 지식을 가진 자들이라면 아래의 기재로부터 명확하게 이해될 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명에 따른 버퍼링 방법은 적어도 두 개 이상의 버퍼들 중 제 1 버퍼를 영상의 블록의 어느 한 행에 해당하는 데이터가 쓰여질 버퍼로 선택하는 단계; 상기 버퍼들 중 제 2 버퍼를 상기 행이 아닌 상기 블록의 다른 행에 해당하는 데이터가 읽혀질 버퍼로 선택하는 단계; 및 상기 선택에 따라 상기 제 1 버퍼에 상기 데이터를 쓰고, 상기 제 2 버퍼에 저장된 데이터를 출력하는 단계를 포함한다.
상기 다른 기술적 과제를 해결하기 위하여, 본 발명은 상기된 버퍼링 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체 를 제공한다.
상기 또 다른 기술적 과제를 해결하기 위한 본 발명에 따른 버퍼는 적어도 두 개 이상의 버퍼들 중 제 1 버퍼를 영상의 블록의 어느 한 행에 해당하는 데이터가 쓰여질 버퍼로 선택하는 쓰기 FSM; 상기 버퍼들 중 제 2 버퍼를 상기 행이 아닌 상기 블록의 다른 행에 해당하는 데이터가 읽혀질 버퍼로 선택하는 읽기 FSM; 및 상기 쓰기 FSM 및 상기 읽기 FSM에서의 선택에 따라 상기 제 1 버퍼에 상기 데이터를 쓰고, 상기 제 2 버퍼에 저장된 데이터를 출력하는 FIFO 모듈을 포함한다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다.
이하의 실시예들에서는 더블 레지스터 어레이(double register array) 방식의 FIFO 모듈을 사용하였다. 기존의 SRAM을 사용하는 방식에 비해 하드웨어 크기도 작으면서 단일 버퍼를 사용하는 것보다 움직임 보상 처리 속도 측면에서 유리하기 때문이다. 그러나, 이러한 방식은 패딩과 함께 두 개의 버퍼를 제어해야 하는 복잡성 때문에 사용하지 못하고 있다. 이하의 실시예들에서는 효율적인 패딩 및 이에 따른 버퍼 제어 방법을 제안한다.
도 1은 본 발명의 바람직한 일 실시예에 따른 더블 레지스터 어레이 버퍼의 구성도이다.
도 1을 참조하면, 본 실시예에 따른 더블 레지스터 어레이 버퍼는 선택부(11) 및 FIFO(First In First Out) 모듈(12)로 구성된다.
선택부(11)는 외부로부터(예를 들면, 메모리로부터) 32 비트 단위의 데이터 를 입력받는다. 또한, 선택부(11)는 더블 레지스터 어레이 버퍼를 구성하는 2 개의 버퍼들 중 어느 하나를 입력된 영상의 블록의 어느 한 행에 해당하는 데이터가 쓰여질 버퍼로 선택한다. 특히, 본 실시예에 따르면, 선택부(11)는 입력된 32 비트 단위의 데이터가 쓰여질 레지스터의 주소를 생성함으로써 이 주소에 해당하는 버퍼를 데이터가 쓰여질 버퍼로 선택하게 된다. 즉, 더블 레지스터 어레이 버퍼를 구성하는 레지스터들 각각은 32 비트의 데이터를 저장할 수 있다.
또한, 선택부(11)는 더블 레지스터 어레이 버퍼를 구성하는 2 개의 버퍼들 중 데이터가 쓰여질 버퍼로 선택된 것을 제외한 나머지 하나를 상기된 행이 아닌 다른 행에 해당하는 데이터가 읽혀질 버퍼로 선택한다. 특히, 본 실시예에 따르면, 선택부(11)는 외부 장치(예를 들면, 움직임 보상 프로세서)에 의해 읽혀질 8 비트 단위의 데이터가 기록된 레지스터의 주소를 생성함으로써 이 주소에 해당하는 버퍼를 데이터가 읽혀질 버퍼로 선택할 수 있다. 즉, 외부 장치는 더블 레지스터 어레이 버퍼를 구성하는 32 비트의 레지스터들 각각으로부터 8 비트 단위로 데이터를 읽어간다.
FIFO 모듈(12)은 레지스터 어레이 1-1~1-6으로 구성되는 제 1 버퍼(121), 레지스터 어레이 2-1~2-6으로 구성되는 제 2 버퍼(122), 및 먹스(123)로 구성된다. 제 1 버퍼(121) 및 제 2 버퍼(122)를 구성하는 각각의 레지스터는 32 비트의 데이터를 저장한다. 특히, 본 실시예에 따르면, FIFO 모듈(12)은 두 개의 버퍼들 중 어느 하나를 입력용으로 사용하고, 나머지를 출력용으로 사용한다. 만약, 선택부(11)가 두 개의 버퍼를 잘못 제어하게 되면, 입력용 레지스터와 출력용 레지스터가 서 로 충돌하게 되어 잘못된 값이 출력으로 내보낼 수 있다.
보다 상세하게 설명하면, FIFO 모듈(12)은 선택부(11)로부터 32 비트 단위의 데이터를 입력받고, 선택부(11)에 의해 데이터가 쓰여질 버퍼로 선택된 버퍼에는 입력된 32 비트 단위의 데이터를 쓰고, 선택부(11)에 의해 데이터가 읽혀질 버터로 선택된 버퍼에 저장된 데이터를 8 비트 단위로 출력한다. 특히, 먹스(123)는 더블 레지스터 어레이 버퍼를 구성하는 12 개의 레지스터들 중 어느 레지스터에 저장된 데이터를 출력으로 내보낼 것인지 결정한다.
도 2는 도 1에 도시된 더블 레지스터 어레이 버퍼에 8 x 8 블록의 어느 한 행에 해당하는 데이터가 쓰여지는 모습을 도시한 도면이다.
도 2에 도시된 바와 같이, 8 x 8 블록이 움직임 보상을 위해 사용되었다고 하면, FIFO 모듈(12)은 8 x 8 블록의 어느 한 행에 해당하는 데이터를 2 개의 버퍼들 중 어느 하나의 버퍼에 쓴다. 특히, 본 실시예에서는 두 개의 버퍼들을 사용하기 때문에 제 1 버퍼에 상기 행에 해당하는 데이터의 쓰기가 완료되면, FIFO 모듈(12)은 제 2 버퍼에 이 행의 다음 행에 해당하는 데이터를 쓴다.
도 3은 도 1에 도시된 선택부(11)의 상세 구성도이다.
도 3을 참조하면, 도 1에 도시된 선택부(11)는 쓰기 FSM(Finite State Machine)(111), 읽기 FSM(112), 및 버퍼 제어 FSM(113)으로 구성된다. 쓰기 FSM(111)은 입력 데이터를 제어하고, 읽기 FSM(112)는 출력 데이터를 제어한다. 버퍼 제어 FSM(113)는 두 개의 버퍼들을 제어한다.
쓰기 FSM(111)은 외부로부터(예를 들면, 움직임 보상 프로세서로부터) 움직 임 벡터의 가로 방향 값인 C_PX, 움직임 벡터의 세로 방향 값인 C_PY, 움직임 보상 처리 단위가 되는 블록의 가로 크기 값인 C_BSX, 움직임 보상 처리 단위가 되는 블록의 세로 크기 값인 C_BSY, 움직임 보상의 대상이 되는 영상의 가로 크기 값인 C_WD, 움직임 보상의 대상이 되는 영상의 세로 크기 값인 C_HT, 더블 레지스터 어레이 버퍼를 초기화할 것을 나타내는 초기화(init) 신호, 및 더블 레지스터 어레이 버퍼에 쓸 데이터가 32 비트의 데이터 버스에 적재되어 있음을 나타내는 쓰기(write) 신호를 입력받는다. 여기에서, C_BSX와 C_BSY는 영상을 구성하는 화소들간의 보간(interpolation)을 고려한 블록의 크기 값을 나타낸다.
또한, 쓰기 FSM(111)은 입력된 C_WD 및 C_HT에 기초하여 영상의 크기를 인지한다. 또한, 쓰기 FSM(111)은 입력된 C_BSX 및 C_BSY에 기초하여 움직임 보상 처리 단위가 되는 블록의 크기를 인지한다. 또한, 쓰기 FSM(111)은 입력된 C_PX에 기초하여 참조 영상에 대한 현재 영상의 가로 방향의 움직임의 정도를 인지하고, 인지된 영상의 크기 내에서 인지된 움직임 정도를 기준으로 현재 영상이 참조 영상을 가로 방향으로 얼마만큼 벗어나는지를 결정한다. 또한, 쓰기 FSM(111)은 이와 같이 결정된 결과에 기초하여 참조 영상의 블록의 어느 한 행, 즉 입력된 C_BSX만큼의 크기를 갖는 블록의 행 중 얼마만큼의 데이터가 현재 영상의 데이터로서 유효한지를 결정하고, 이와 같이 결정된 양만큼의 데이터에 대한 쓰기가 완료되면, 블록의 어느 한 행에 대한 데이터 쓰기가 완료되었음을 나타내는 값으로 해당 버퍼의 데이터 쓰기 완료 상태를 나타내는 신호인 EOW(End Of Write)를 갱신하고, 갱신된 EOW를 버퍼 제어 FSM(113)으로 출력한다.
또한, 쓰기 FSM(111)은 입력된 C_PY에 기초하여 참조 영상에 대한 현재 영상의 세로 방향의 움직임의 정도를 인지하고, 인지된 영상의 크기 내에서 인지된 움직임 정도를 기준으로 현재 영상이 참조 영상을 세로 방향으로 얼마만큼 벗어나는지를 결정한다. 또한, 쓰기 FSM(111)은 이와 같이 결정된 결과에 기초하여 참조 영상의 블록의 어느 한 열, 즉 입력된 C_BSY만큼의 크기를 갖는 블록의 열 중 얼마만큼의 데이터가 현재 영상의 데이터로서 유효한지를 결정하고, 이와 같이 결정된 양만큼의 데이터에 대한 쓰기가 완료되면, 블록 전체에 대한 데이터 쓰기가 완료되었음을 나타내는 값으로 블록 전체의 데이터 쓰기 완료 상태를 나타내는 신호인 EOB(End Of Block)를 갱신한다.
또한, 쓰기 FSM(111)은 입력된 초기화 신호가 유효하면, 더블 레지스터 어레이 버퍼를 초기화한다. 쓰기 FSM(111)은 입력된 쓰기 신호의 값이 유효한 구간 동안, FIFO 모듈(12)로 외부로부터(예를 들면, 메모리로부터) 입력되는 32 비트 단위의 데이터가 쓰여질 레지스터의 주소인 waddr을 출력하고, 버퍼 제어 FSM(113)으로 EOW를 출력하고, FIFO 모듈(12) 및 버퍼 제어 FSM(113)로 제 1 버퍼(121) 및 제 2 버퍼(122) 중 어느 것이 데이터 쓰기 상태인지를 나타내는 신호인 WBF를 출력한다.
또한, 쓰기 FSM(111)은 더블 레지스터 어레이 버퍼를 구성하는 2 개의 레지스터 어레이 버퍼들 각각의 상태를 나타내는 BC를 입력받는다. 여기에서, BC는 총 4 개의 비트들로 구성되며, 이것들 중 제 1 비트의 값은 제 1 레지스터 어레이 버터에 블록의 한 행의 데이터가 쓰여졌음을 나타내고, 제 2 비트의 값은 제 2 레지스터 어레이 버터에 블록의 한 행의 데이터가 쓰여졌음을 나타내고, 제 3 비트의 값은 제 1 레지스터 어레이 버터로부터 데이터가 읽히고 있는 중임을 나타내고, 제 4 비트의 값은 제1 레지스터 어레이 버터로부터 데이터가 읽히고 있는 중임을 나타낸다.
또한, 쓰기 FSM(111)은 입력된 BC에 기초하여 2 개의 레지스터 어레이 버퍼들 중 어느 하나를 외부로부터 입력된 32 비트의 데이터가 쓰여질 대상으로 선택하고, 선택된 레지스터 어레이 버퍼를 위한 waddr을 생성한다. 특히, 쓰기 FSM(111)은 현재 영상이 참조 영상을 가로 방향으로 얼마만큼 벗어나는지에 관하여 결정된 결과를 참조하여 waddr을 생성한다. 예를 들어, H.264의 규격에서는 블록의 한 행의 데이터량을 21 바이트(총 21 x 8 = 168 비트)로 규정하고 있는데, 현재 영상이 참조 영상을 가로 방향으로 벗어나지 않은 경우에는 하나의 레지스터 어레이 버퍼를 구성하는 6 개의 32 비트 레지스터들 모두(총 6 x 32 = 192 비트)에 블록의 한 행의 데이터가 쓰여지게 되나, 현재 영상이 참조 영상을 가로 방향으로 벗어나는 경우에는 벗어나는 양만큼 참조 영상의 해당 행으로부터 읽어드릴 데이터가 사라지게 되어 6 개의 32 비트 레지스터들 모두에 데이터가 쓰여질 필요는 없게 된다. 따라서, 후자의 경우에 생성되어야 할 waddr들의 개수는 줄어들게 된다.
읽기 FSM(112)은 외부로부터 C_PX, C_PY, C_BSX, C_BSY, C_WD, C_HT, 및 초기화 신호를 입력받는다. 또한, 읽기 FSM(112)은 입력된 C_WD 및 C_HT에 기초하여 영상의 크기를 인지한다. 또한, 읽기 FSM(112)은 입력된 C_PX에 기초하여 참조 영상에 대한 현재 영상의 가로 방향의 움직임의 정도를 인지하고, 인지된 영상의 크기 내에서 인지된 움직임 정도를 기준으로 현재 영상이 참조 영상을 가로 방향으로 얼마만큼 벗어나는지를 결정한다. 또한, 읽기 FSM(112)은 이와 같이 결정된 결과에 기초하여 참조 영상의 블록의 어느 한 행, 즉 입력된 C_BSX만큼의 크기를 갖는 블록의 행 중 얼마만큼의 데이터가 현재 영상의 데이터로서 유효한지를 결정하고, 이와 같이 결정된 양만큼의 데이터에 대한 읽기가 완료되면, 블록의 어느 한 행에 대한 데이터 읽기가 완료되었음을 나타내는 값으로 EOR(End Of Read)를 갱신하고, 갱신된 EOR을 버퍼 제어 FSM(113)으로 출력한다.
또한, 읽기 FSM(112)은 입력된 C_PY에 기초하여 참조 영상에 대한 현재 영상의 세로 방향의 움직임의 정도를 인지하고, 인지된 영상의 크기 내에서 인지된 움직임 정도를 기준으로 현재 영상이 참조 영상을 세로 방향으로 얼마만큼 벗어나는지를 결정한다. 또한, 읽기 FSM(112)은 이와 같이 결정된 결과에 기초하여 참조 영상의 블록의 어느 한 열, 즉 입력된 C_BSY만큼의 크기를 갖는 블록의 열 중 얼마만큼의 데이터가 현재 영상의 데이터로서 유효한지를 결정하고, 이와 같이 결정된 양만큼의 데이터에 대한 쓰기가 완료되면, 블록 전체에 대한 데이터 읽기가 완료되었음을 나타내는 값으로 EOB(End Of Block)를 갱신한다.
도 4는 현재 영상이 참조 영상을 벗어나는 경우의 화소 값 패딩 모습을 도시한 도면이다.
도 4에 도시된 패딩 방식은 모든 비디오 코덱에 사용되는 일반적인 방식으로서 현재 영상이 참조 영상의 위쪽을 벗어나는 경우에는 참조 영상의 최 상단의 행에 위치한 화소 값들로 현재 영상의 초과 부분을 채우고, 현재 영상이 참조 영상의 왼쪽을 벗어나는 경우에는 참조 영상의 최 좌단의 열에 위치한 화소 값들로 현재 영상의 초과 부분을 채운다. 즉, 참조 영상의 경계 면의 화소 값들을 이용하여 패딩이 수행된다. 특히, 현재 영상의 대각선은 참조 영상의 경계 면의 모서리에 위치한 화소 값들로 채워지게 된다.
도 5는 도 3에 도시된 읽기 FSM(112)의 패딩 모습을 도시한 도면이다.
도 5를 참조하면, 읽기 FSM(112)은 입력된 C_PX와 블록의 어느 한 행에서 현재까지 가로 방향으로 읽어 들인 화소의 개수를 카운트하는 값인 read_count_h를 합산하고, 이와 같은 합산 값에 기초하여 상기된 행에서의 가로 방향의 패딩 조건이 만족되는지 여부를 판단한다. 보다 상세하게 설명하면, 쓰기 FSM(111)은 이와 같은 합산 값이 0보다 작거나, 입력된 C_WD보다 크면 상기된 행에서의 가로 방향의 패딩 조건이 만족되는 것으로 판단하고, 이와 같은 합산 값이 0보다 작지 않거나, C_WD보다 크지 않으면 해당 행에서의 가로 방향의 패딩 조건이 만족되지 않는 것으로 판단한다.
또한, 읽기 FSM(112)은 상기된 행에서의 가로 방향의 패딩 조건이 만족되지 않는 것으로 판단되면, read_count_h를 1씩 증가시키고 외부 장치(예를 들면, 움직임 보상 프로세서)에 의해 현재 읽혀질 데이터가 기록된 레지스터의 주소인 raddr을 1씩 증가시킴으로써 더블 레지스터 어레이 버퍼 중 어느 하나의 버퍼로부터 순차적으로 8 비트 단위의 데이터가 출력되도록 한다. 또한, 읽기 FSM(112)은 상기된 행에서의 가로 방향의 패딩 조건이 만족되는 것으로 판단되면, read_count_h를 1씩 증가시키고 raddr을 고정(freeze)시킴으로써 상기된 행에서의 가로 방향의 패딩을 수행한다. 즉, 읽기 FSM(112)은 read_count_h를 1씩 증가시키고 raddr을 고 정(freeze)시킴으로써 상기된 행에서 동일한 화소 값이 출력되도록 하고, 그에 따라 패딩이 수행되게 된다.
또한, 읽기 FSM(112)은 입력된 C_PY와 어느 한 블록에서 현재까지 읽어 들인 행의 개수를 카운트하는 값인 read_count_v를 합산하고, 이와 같은 합산 값에 기초하여 상기된 블록에서의 세로 방향의 패딩 조건이 만족되는지 여부를 판단한다. 보다 상세하게 설명하면, 쓰기 FSM(111)은 이와 같은 합산 값이 0보다 작거나, C_HT보다 크면 상기된 블록에서의 세로 방향의 패딩 조건이 만족되는 것으로 판단하고, 이와 같은 합산 값이 0보다 작지 않거나, C_HT보다 크지 않으면 상기된 블록에서의 세로 방향의 패딩 조건이 만족되지 않는 것으로 판단한다.
또한, 읽기 FSM(112)은 상기된 블록에서의 세로 방향의 패딩 조건이 만족되지 않는 것으로 판단되면, read_count_v를 1씩 증가시키고 현재 읽기가 완료된 버퍼에 저장된 데이터를 제거한다. 또한, 읽기 FSM(112)은 상기된 블록에서의 세로 방향의 패딩 조건이 만족되는 것으로 판단되면, read_count_v를 1씩 증가시키고 현재 읽기가 완료된 버퍼에 저장된 데이터를 고정(freeze)시킴으로써 상기된 블록에서의 세로 방향의 패딩을 수행한다. 즉, 읽기 FSM(112)은 read_count_v를 1씩 증가시키고 버퍼에 저장된 데이터를 고정(freeze)시킴으로써 버퍼에 저장된 데이터가 여러 열들에 걸쳐서 동일하게 출력되도록 하고, 그에 따라 세로 방향의 패딩이 수행되게 된다.
버퍼 제어 FSM(113)은 쓰기 FSM(111)으로부터 EOW 및 WBF를 입력받고, 읽기 FSM(112)으로부터 EOR을 입력받는다. 버퍼 제어 FSM(113)은 입력된 EOW, WBF 및 EOR에 기초하여 BC를 갱신하고, 갱신된 BC를 쓰기 FSM(111), 읽기 FSM(112), 및 FIFO 모듈(12)로 출력한다. 특히, 버퍼 제어 FSM(113)은 더블 레지스터 어레이 버퍼 상태 테이블을 참조하여 BC를 갱신한다. 이하에서는 더블 레지스터 어레이 버퍼 상태 테이블에 대해서 설명하기로 한다.
도 6은 도 3에 도시된 버퍼 제어 FSM(113)에 의해 참조되는 더블 레지스터 어레이 버퍼 상태 테이블을 도시한 도면이다.
도 6을 참조하면, 더블 레지스터 어레이 버퍼 상태 테이블은 더블 레지스터 어레이 버퍼의 현재 상태(BC[0], BC[1]), 입력된 EOW 및 EOR을 조합하여 더블 레지스터 어레이 버퍼의 다음 상태(BC[0], BC[1], BC[2], 및 BC[3])를 정의하고 있다. 더블 레지스터 어레이 버퍼의 다음 상태를 알기 위해서는 2 개의 버퍼들 각각에 데이터 쓰기가 완료되었는지 여부를 나타내는 풀니스(fullness) 상태, 이 버퍼들 각각에 외부 장치가 억세스하고 있는지 여부를 나타내는 리딩(reading) 상태, 입력된 EOW 및 입력된 EOR을 모두 알아야 한다. 상기된 네 가지 인수들의 값들에 따라 64가지 조합이 발생하게 되는데, 본 실시예에서는 이와 같은 64 가지 조합을 모두 이용하지 않고, 버퍼의 풀니스 상태 및 입력된 EOW 및 입력된 EOR만을 이용하여 더블 레지스터 어레이 버퍼의 다음 상태를 정의하였다.
이것은 데이터 쓰기가 완료된 버퍼는 현재 데이터 읽기가 진행 중인 버퍼가 될 수 없으며, 이후 입력된 EOR에 따라 현재 데이터 읽기가 진행 중인 버퍼가 된다. 예를 들어, BC[0]=1, BC[1]=0인 상태에서 EOR=1이 되면, 가로 방향의 패딩 조건이 만족되지 않는 경우의 다음 상태는 BC[0]=0, BC[1]=0, BC[2]=0, BC[3]=0이 되 고, 가로 방향의 패딩 조건이 만족되는 경우의 다음 상태는 BC[0]=1, BC[1]=0, BC[2]=1, BC[3]=0이 된다.
즉, 버퍼 제어 FSM(113)은 더블 레지스터 어레이 버퍼 상태 테이블 상의 현재 상태들 중 BC[0], BC[1], 입력된 EOW 및 EOR에 해당하는 현재 상태를 검색하고, 가로 방향의 패딩 조건이 만족되었는지 여부에 따라 검색된 현재 상태의 다음 상태에 해당하는 값들로 BC[0], BC[1], BC[2], 및 BC[3]을 갱신한다.
FIFO 모듈(12)은 외부(예를 들면, 메모리)로부터 32 비트 단위의 데이터를 입력받고, 버퍼 제어 FSM(113)으로부터 BC를 입력받고, 쓰기 FSM(111)으로부터 waddr 및 WBF을 입력받고, 읽기 FSM(112)으로부터 raddr을 입력받는다. 또한, FIFO 모듈(12)은 입력된 BC 및 WBF에 기초하여 더블 레지스터 어레이 버퍼를 구성하는 2 개의 버퍼들 각각의 상태를 인지한다. 또한, FIFO 모듈(12)은 인지된 버퍼들 각각의 상태에 기초하여 입력된 데이터를 입력된 waddr에 해당하는 레지스터에 쓰고, 입력된 raddr에 해당하는 레지스터에 저장된 데이터를 8 비트 단위로 출력한다.
도 7은 본 발명의 바람직한 일 실시예에 따른 버퍼링 방법의 흐름도이다.
도 7을 참조하면, 본 실시예에 따른 버퍼링 방법은 도 1 및 도 3에 도시된 더블 레지스터 어레이 버퍼에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 도 1 및 도 3에 도시된 더블 레지스터 어레이 버퍼에 관하여 이상에서 기술된 내용은 본 실시예에 따른 버퍼링 방법에도 적용된다. 다만, 다음의 단계들은 도 1 및 도 3에 도시된 더블 레지스터 어레이 버퍼에서 시계열적으로 처리되는 여러 가지 단계들 중 일부에 지나지 않으며 다른 조합의 단 계들이 도출될 수 있음을 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
71 단계에서 더블 레지스터 어레이 버퍼는 외부로터 입력된 C_WD 및 C_HT에 기초하여 영상의 크기를 인지한다.
72 단계에서 더블 레지스터 어레이 버퍼는 외부로부터 입력된 C_BSX 및 C_BSY에 기초하여 움직임 보상 처리 단위가 되는 블록의 크기를 인지한다.
73 단계에서 더블 레지스터 어레이 버퍼는 EOW, WBF를 갱신한다.
74 단계에서 더블 레지스터 어레이 버퍼는 EOR을 갱신한다.
75 단계에서 더블 레지스터 어레이 버퍼는 73 단계 및 74 단계에서 갱신된 EOW, WBF 및 EOR에 기초하여 BC를 갱신한다.
도 8은 도 7에 도시된 75 단계에 해당하는 BC 갱신 단계 중 세로 방향의 패딩을 위한 BC 갱신 단계의 상세 흐름도이다.
도 8을 참조하면, 도 7에 도시된 75 단계에 해당하는 BC 갱신 단계 중 세로 방향의 패딩을 위한 BC 갱신 단계는 다음과 같은 단계들로 구성된다.
81 단계에서 더블 레지스터 어레이 버퍼는 외부로부터 입력된 C_PY와 read_count_v를 합산하고, 이와 같은 합산 값에 기초하여 상기된 블록에서의 세로 방향의 패딩 조건이 만족되는지 여부를 판단한다. 그 결과, 상기된 블록에서의 세로 방향의 패딩 조건이 만족되지 않는 것으로 판단되면, 83 단계로 진행하고, 만족되는 것으로 판단되면 82 단계로 진행한다.
82 단계에서 더블 레지스터 어레이 버퍼는 세로 방향의 패딩 조건에 해당하 는 다음 상태로 BC를 갱신한다.
83 단계에서 더블 레지스터 어레이 버퍼는 세로 방향의 패딩 조건에 해당하지 않는 다음 상태로 BC를 갱신한다.
84 단계에서 더블 레지스터 어레이 버퍼는 EOR이 블록의 어느 한 행에 대한 데이터 읽기가 완료되었음을 나타내는 값인지를 확인하고, 그 결과 이 값인 것으로 확인되면 115 단계로 진행하고, 이 값이 아닌 것으로 확인된 경우에는 116 단계로 돌아간다.
85 단계에서 더블 레지스터 어레이 버퍼는 read_count_v를 1씩 증가시킨다. 이와 같이 read_count_v가 증가한 후에도 82 단계에서 갱신된 BC에 따르면 어느 한 버퍼의 상태가 읽기 상태로 계속 고정될 것이고, 83 단계에서 갱신된 BC에 따르면 어느 한 버퍼의 상태는 읽기 상태로부터 쓰기 상태로 변경될 것이다.
86 단계에서 더블 레지스터 어레이 버퍼는 EOB가 블록 전체에 대한 데이터 읽기가 완료되었음을 나타내는 값인지를 확인하고, 그 결과 이 값인 것으로 확인되면 종료하고, 이 값이 아닌 것으로 확인된 경우에는 81 단계로 돌아간다.
76 단계에서 더블 레지스터 어레이 버퍼는 75 단계에서 갱신된 BC에 기초하여 2 개의 레지스터 어레이 버퍼들 중 어느 하나를 외부로부터 입력된 32 비트의 데이터가 쓰여질 대상으로 선택하고, 선택된 버퍼를 위한 waddr을 생성한다.
도 9는 도 7에 도시된 76 단계에 해당하는 waddr 생성 단계의 상세 흐름도이다.
도 9를 참조하면, 도 7에 도시된 76 단계에 해당하는 waddr 생성 단계는 다 음과 같은 단계들로 구성된다.
91 단계에서 더블 레지스터 어레이 버퍼는 EOW가 블록의 어느 한 행에 대한 데이터 쓰기가 완료되었음을 나타내는 값인지를 확인하고, 그 결과 이 값인 것으로 확인되면 93 단계로 진행하고, 이 값이 아닌 것으로 확인된 경우에는 94 단계로 진행한다.
92 단계에서 더블 레지스터 어레이 버퍼는 waddr을 1씩 증가시킨다.
93 단계에서 더블 레지스터 어레이 버퍼는 waddr을 0으로 설정하고, WBF의 값을 반전시킴으로써 상기된 행이 아닌 다른 행에 해당하는 데이터의 쓰기를 준비한다.
94 단계에서 더블 레지스터 어레이 버퍼는 EOB가 블록 전체에 대한 데이터 쓰기가 완료되었음을 나타내는 값인지를 확인하고, 그 결과 이 값인 것으로 확인되면 종료하고, 이 값이 아닌 것으로 확인된 경우에는 91 단계로 돌아간다.
77 단계에서 더블 레지스터 어레이 버퍼는 75 단계에서 갱신된 BC에 기초하여 2 개의 레지스터 어레이 버퍼들 중 어느 하나를 8 비트의 데이터가 읽혀질 대상으로 선택하고, 선택된 버퍼를 위한 raddr을 생성한다.
도 10은 도 7에 도시된 77 단계에 해당하는 raddr 생성 단계의 상세 흐름도이다.
도 10을 참조하면, 도 7에 도시된 733 단계에 해당하는 raddr 생성 단계는 다음과 같은 단계들로 구성된다.
101 단계에서 더블 레지스터 어레이 버퍼는 외부로부터 입력된 C_PX와 read_count_h를 합산하고, 이와 같은 합산 값에 기초하여 상기된 행에서의 가로 방향의 패딩 조건이 만족되는지 여부를 판단한다. 그 결과, 상기된 행에서의 가로 방향의 패딩 조건이 만족되지 않는 것으로 판단되면, 102 단계로 진행하고, 만족되는 것으로 판단되면 103 단계로 진행한다.
102 단계에서 더블 레지스터 어레이 버퍼는 raddr을 1씩 증가시킴으로써 더블 레지스터 어레이 버퍼 중 어느 하나의 버퍼로부터 순차적으로 8 비트 단위의 데이터가 출력되도록 한다.
103 단계에서 더블 레지스터 어레이 버퍼는 read_count_h를 1씩 증가시킨다.
104 단계에서 더블 레지스터 어레이 버퍼는 EOR이 블록의 어느 한 행에 대한 데이터 읽기가 완료되었음을 나타내는 값인지를 확인하고, 그 결과 이 값인 것으로 확인되면 105 단계로 진행하고, 이 값이 아닌 것으로 확인된 경우에는 101 단계로 돌아간다. 후자의 경우에 raddr의 증가 없이 read_count_h가 증가되었기 때문에 raddr이 고정되게 된다.
105 단계에서 더블 레지스터 어레이 버퍼는 raddr을 0으로 설정하고, read_count_h를 0으로 설정함으로써 상기된 행이 아닌 다른 행에 해당하는 데이터의 읽기를 준비한다.
106 단계에서 더블 레지스터 어레이 버퍼는 EOB가 블록 전체에 대한 데이터 쓰기가 완료되었음을 나타내는 값인지를 확인하고, 그 결과 이 값인 것으로 확인되면 종료하고, 이 값이 아닌 것으로 확인된 경우에는 101 단계로 돌아간다.
78 단계에서 더블 레지스터 어레이 버퍼는 32 비트 단위의 데이터를 입력받 고, 76 단계에서 갱신된 BC, WBF에 기초하여 더블 레지스터 어레이 버퍼를 구성하는 2 개의 버퍼들 각각의 상태를 인지하고, 인지된 버퍼들 각각의 상태에 기초하여 입력된 데이터를 76 단계에서 생성된 waddr에 해당하는 레지스터에 쓰고, 77 단계에서 생성된 raddr에 해당하는 레지스터에 저장된 데이터를 8 비트 단위로 출력한다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 본 발명의 실시예에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으 로 해석되어야 할 것이다.
본 발명에 따르면, 더블 레지스터 어레이 버퍼 중 어느 하나를 제 1 버퍼를 영상의 블록의 어느 한 행에 해당하는 데이터가 쓰여질 버퍼로 선택하고, 다른 하나를 이 블록의 다른 행에 해당하는 데이터가 읽혀질 버퍼로 선택함으로써 하나의 레지스터 어레이 버퍼를 사용하는 경우에 비해 움직임 보상 처리 속도를 매우 빠르게 할 수 있으며, 데이터 버퍼링 용량이 2 배가 된다. 나아가, 본 발명에 따르면, SRAM을 사용하지 않음으로써 움직임 보상을 위한 하드웨어의 크기를 줄일 수 있고, 패딩을 고려한 효율적인 FSM을 정의함으로써 움직임 보상을 위한 하드웨어의 구현을 용이하게 하였다.

Claims (19)

  1. (a) 적어도 두 개 이상의 버퍼들 중 제 1 버퍼를 영상의 블록의 어느 한 행에 해당하는 데이터가 쓰여질 버퍼로 선택하는 단계;
    (b) 상기 버퍼들 중 제 2 버퍼를 상기 행이 아닌 상기 블록의 다른 행에 해당하는 데이터가 읽혀질 버퍼로 선택하는 단계; 및
    (c) 상기 (a) 단계 및 상기 (b) 단계에서의 선택에 따라 상기 제 1 버퍼에 상기 데이터를 쓰고, 상기 제 2 버퍼에 저장된 데이터를 출력하는 단계를 포함하는 것을 특징으로 하는 버퍼링 방법.
  2. 제 1 항에 있어서,
    상기 (a) 단계는 상기 행에 해당하는 데이터가 쓰여질 레지스터의 주소를 생성함으로써 상기 주소에 해당하는 제 1 버퍼를 상기 데이터가 쓰여질 버퍼로 선택하는 것을 특징으로 하는 버퍼링 방법.
  3. 제 1 항에 있어서,
    상기 (b) 단계는 외부 장치에 의해 읽혀질 데이터가 기록된 레지스터의 주소를 생성함으로써 상기 주소에 해당하는 제 2 버퍼를 상기 데이터가 읽혀질 버퍼로 선택하는 것을 특징으로 하는 버퍼링 방법.
  4. 제 3 항에 있어서,
    (e) 상기 주소를 고정시킴으로써 가로 방향의 패딩을 수행하는 단계를 더 포함하는 것을 특징으로 하는 버퍼링 방법.
  5. 제 4 항에 있어서,
    상기 (e) 단계는 움직임 벡터의 가로 방향 값과 상기 행에서 현재까지 가로 방향으로 읽어 들인 화소의 개수를 카운트하는 값을 합산한 값에 기초하여 상기 주소를 고정시키는 것을 특징으로 하는 버퍼링 방법.
  6. 제 1 항에 있어서,
    (f) 상기 제 2 버퍼에 저장된 데이터를 고정시킴으로써 세로 방향의 패딩을 수행하는 단계를 더 포함하는 것을 특징으로 하는 버퍼링 방법.
  7. 제 6 항에 있어서,
    상기 (f)는 움직임 벡터의 세로 방향 값과 어느 한 블록에서 현재 읽어 들인 행의 개수를 카운트하는 값을 합산한 값에 기초하여 상기 제 2 버퍼에 저장된 데이터를 고정시키는 것을 특징으로 하는 버퍼링 방법.
  8. 제 1 항에 있어서,
    (d) 상기 행에 해당하는 데이터의 쓰기가 완료되면, 상기 데이터의 쓰기가 완료되었음을 나타내는 값으로 상기 제 1 버퍼의 쓰기 완료 상태를 나타내는 신호를 갱신하는 단계를 더 포함하고,
    상기 (c) 단계는 상기 갱신된 신호에 기초하여 상기 제 1 버퍼 및 상기 제 2 버퍼 각각의 상태를 인지하고, 상기 인지된 버퍼들 각각의 상태에 기초하여 상기 제 1 버퍼에 상기 데이터를 쓰고, 상기 제 2 버퍼에 저장된 데이터를 출력하는 것을 특징으로 하는 버퍼링 방법.
  9. 제 8 항에 있어서,
    상기 (d) 단계는 상기 행에서의 가로 방향의 패딩 조건이 만족되는지 여부에 따라 상기 신호를 갱신하는 것을 특징으로 하는 버퍼링 방법.
  10. 제 1 항 내지 제 9 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  11. 적어도 두 개 이상의 버퍼들 중 제 1 버퍼를 영상의 블록의 어느 한 행에 해당하는 데이터가 쓰여질 버퍼로 선택하는 쓰기 FSM;
    상기 버퍼들 중 제 2 버퍼를 상기 행이 아닌 상기 블록의 다른 행에 해당하는 데이터가 읽혀질 버퍼로 선택하는 읽기 FSM; 및
    상기 쓰기 FSM 및 상기 읽기 FSM에서의 선택에 따라 상기 제 1 버퍼에 상기 데이터를 쓰고, 상기 제 2 버퍼에 저장된 데이터를 출력하는 FIFO 모듈을 포함하는 것을 특징으로 하는 버퍼링 장치.
  12. 제 11 항에 있어서,
    상기 쓰기 FSM은 상기 행에 해당하는 데이터가 쓰여질 레지스터의 주소를 생성함으로써 상기 주소에 해당하는 제 1 버퍼를 상기 데이터가 쓰여질 버퍼로 선택하는 것을 특징으로 하는 버퍼링 장치.
  13. 제 11 항에 있어서,
    상기 읽기 FSM은 외부 장치에 의해 읽혀질 데이터가 기록된 레지스터의 주소를 생성함으로써 상기 주소에 해당하는 제 2 버퍼를 상기 데이터가 읽혀질 버퍼로 선택하는 것을 특징으로 하는 버퍼링 장치.
  14. 제 13 항에 있어서,
    상기 읽기 FSM은 상기 주소를 고정시킴으로써 가로 방향의 패딩을 수행하는 것을 특징으로 하는 버퍼링 장치.
  15. 제 14 항에 있어서,
    상기 읽기 FSM은 움직임 벡터의 가로 방향 값과 상기 행에서 현재까지 가로 방향으로 읽어 들인 화소의 개수를 카운트하는 값을 합산한 값에 기초하여 상기 주소를 고정시키는 것을 특징으로 하는 버퍼링 장치.
  16. 제 11 항에 있어서,
    상기 읽기 FSM은 상기 제 2 버퍼에 저장된 데이터를 고정시킴으로써 세로 방향의 패딩을 수행하는 것을 특징으로 하는 버퍼링 장치.
  17. 제 16 항에 있어서,
    상기 읽기 FSM은 움직임 벡터의 세로 방향 값과 어느 한 블록에서 현재 읽어 들인 행의 개수를 카운트하는 값인 read_count_v를 합산한 값에 기초하여 상기 제 2 버퍼에 저장된 데이터를 고정시키는 것을 특징으로 하는 버퍼링 장치.
  18. 제 11 항에 있어서,
    상기 행에 해당하는 데이터의 쓰기가 완료되면, 상기 데이터의 쓰기가 완료되었음을 나타내는 값으로 상기 제 1 버퍼의 쓰기 완료 상태를 나타내는 신호를 갱신하는 버퍼 제어 FSM을 더 포함하고,
    상기 FIFO 모듈은 상기 갱신된 신호에 기초하여 상기 제 1 버퍼 및 상기 제 2 버퍼 각각의 상태를 인지하고, 상기 인지된 버퍼들 각각의 상태에 기초하여 상기 제 1 버퍼에 상기 데이터를 쓰고, 상기 제 2 버퍼에 저장된 데이터를 출력하는 것을 특징으로 하는 버퍼링 장치.
  19. 제 18 항에 있어서,
    상기 버퍼 제어 FSM은 상기 행에서의 가로 방향의 패딩 조건이 만족되는지 여부에 따라 상기 신호를 갱신하는 것을 특징으로 하는 버퍼링 장치.
KR1020060107495A 2006-11-01 2006-11-01 움직임 보상을 위한 더블 레지스터 어레이 버퍼 KR101228111B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020060107495A KR101228111B1 (ko) 2006-11-01 2006-11-01 움직임 보상을 위한 더블 레지스터 어레이 버퍼
US11/905,369 US8526493B2 (en) 2006-11-01 2007-09-28 Double register array buffer for motion compensation
US13/958,835 US9001887B2 (en) 2006-11-01 2013-08-05 Double register array buffer for motion compensation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060107495A KR101228111B1 (ko) 2006-11-01 2006-11-01 움직임 보상을 위한 더블 레지스터 어레이 버퍼

Publications (2)

Publication Number Publication Date
KR20080039766A KR20080039766A (ko) 2008-05-07
KR101228111B1 true KR101228111B1 (ko) 2013-02-01

Family

ID=39330099

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060107495A KR101228111B1 (ko) 2006-11-01 2006-11-01 움직임 보상을 위한 더블 레지스터 어레이 버퍼

Country Status (2)

Country Link
US (2) US8526493B2 (ko)
KR (1) KR101228111B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101228111B1 (ko) * 2006-11-01 2013-02-01 삼성전자주식회사 움직임 보상을 위한 더블 레지스터 어레이 버퍼
TWI463432B (zh) * 2012-10-05 2014-12-01 Genesys Logic Inc 圖像資料處理方法
RU2673454C1 (ru) * 2018-01-23 2018-11-27 Вячеслав Михайлович Смелков Устройство "кольцевого" фотоприёмника для панорамного телевизионно-компьютерного сканирования монохромного изображения

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990065349A (ko) * 1998-01-12 1999-08-05 구자홍 움직임 보상 장치
KR100327388B1 (ko) 2000-02-23 2002-03-13 구자홍 디지털 방송의 메모리 제어 장치
KR20030041250A (ko) * 2001-11-19 2003-05-27 삼성전자주식회사 더블 버퍼링을 이용한 화상 데이터 출력 제어장치

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4387365A (en) * 1981-05-15 1983-06-07 Advanced Technology Laboratories, Inc. Real time digital scan converter
CA2058585C (en) * 1991-01-29 1996-06-25 Jalil Fadavi-Ardekani Signal processing system including two-dimensional array transposing
GB2256989B (en) * 1991-06-21 1995-02-08 Sony Broadcast & Communication Video image capture apparatus
JP3238188B2 (ja) 1992-03-19 2001-12-10 富士通株式会社 フレームメモリ制御装置及びフレームメモリ制御方法
KR0155702B1 (ko) * 1992-08-13 1998-12-15 강진구 2차원 에러정정방법 및 복호화장치
DE69521741T2 (de) * 1994-05-03 2002-05-23 Sun Microsystems Inc Direktzugriffspeicher und System für Rasterpuffer
US5563623A (en) * 1994-11-23 1996-10-08 Motorola, Inc. Method and apparatus for driving an active addressed display
JP3253481B2 (ja) * 1995-03-28 2002-02-04 シャープ株式会社 メモリインターフェイス回路
US6031546A (en) * 1995-06-19 2000-02-29 Canon Kabushiki Kaisha Image processing apparatus and method
US6707463B1 (en) * 1997-04-30 2004-03-16 Canon Kabushiki Kaisha Data normalization technique
US6922210B2 (en) * 1999-07-30 2005-07-26 Pixim, Inc. Memory updating for digital pixel sensors
US6765579B2 (en) * 2001-02-15 2004-07-20 Sony Corporation Pixel pages using combined addressing
US6384634B1 (en) * 2001-02-21 2002-05-07 Nortel Networks Limited Elastic store: recovery and boundary verification
US7174561B2 (en) * 2001-04-13 2007-02-06 Emc Corporation MPEG dual-channel decoder data and control protocols for real-time video streaming
US8265163B2 (en) * 2001-12-21 2012-09-11 Motorola Mobility Llc Video shape padding method
US7092360B2 (en) * 2001-12-28 2006-08-15 Tropic Networks Inc. Monitor, system and method for monitoring performance of a scheduler
KR100522171B1 (ko) 2002-12-02 2005-10-18 한국전자통신연구원 임의 형상 프레임 생성기 및 그를 이용한 임의 형상프레임 생성 방법
US7529746B2 (en) * 2006-09-19 2009-05-05 Netlogic Microsystems, Inc. Search circuit having individually selectable search engines
KR101228111B1 (ko) * 2006-11-01 2013-02-01 삼성전자주식회사 움직임 보상을 위한 더블 레지스터 어레이 버퍼

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990065349A (ko) * 1998-01-12 1999-08-05 구자홍 움직임 보상 장치
KR100327388B1 (ko) 2000-02-23 2002-03-13 구자홍 디지털 방송의 메모리 제어 장치
KR20030041250A (ko) * 2001-11-19 2003-05-27 삼성전자주식회사 더블 버퍼링을 이용한 화상 데이터 출력 제어장치

Also Published As

Publication number Publication date
US20130315318A1 (en) 2013-11-28
US8526493B2 (en) 2013-09-03
US20080101462A1 (en) 2008-05-01
KR20080039766A (ko) 2008-05-07
US9001887B2 (en) 2015-04-07

Similar Documents

Publication Publication Date Title
JP4375305B2 (ja) 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
KR100908760B1 (ko) 다중 내부 데이터 버스 및 메모리 뱅크 인터리빙을 갖는방법 및 메모리 장치
US20110264723A1 (en) System and method for successive matrix transposes
US9342478B2 (en) Processor with reconfigurable architecture including a token network simulating processing of processing elements
US9104526B2 (en) Transaction splitting apparatus and method
CN110708609A (zh) 一种视频播放方法及装置
KR101228111B1 (ko) 움직임 보상을 위한 더블 레지스터 어레이 버퍼
CN114443513B (zh) 一种视频数据读写方法及相关装置
US9641854B2 (en) Count table maintenance apparatus for maintaining count table during processing of frame and related count table maintenance method
US20070092008A1 (en) Context-aware frame memory scheme for motion compensation in video decoding
US20080109815A1 (en) Task distribution method
JP4865662B2 (ja) エントロピー符号化装置、エントロピー符号化方法およびコンピュータプログラム
US8885939B2 (en) Image processing apparatus configured to perform image processing for plural images and control method thereof
US8077363B2 (en) Block matching circuit and data update method
CN113689407A (zh) 图像校正方法及相关设备
KR102032892B1 (ko) 반도체 장치 및 그 동작 방법
CN108769697B (zh) 基于时间交织流水线架构的jpeg-ls压缩系统及方法
US7453761B2 (en) Method and system for low cost line buffer system design
US9323717B2 (en) Processor and system for processing stream data at high speed
TWI396975B (zh) 可調適緩衝裝置及其方法
US11838659B2 (en) Image sensing system and image sensing data processing method
JP5491282B2 (ja) データ入出力装置、データ記憶方法及びプログラム
CN103597454B (zh) 配置决定装置、配置决定方法、数据结构的构成方法、存储器、访问装置及存储器访问方法
CN112866723B (zh) 图像数据处理方法与系统
JP2889479B2 (ja) ヒストグラム構築回路

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151217

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161220

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181218

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20191216

Year of fee payment: 8