KR20080090238A - 대역폭 인식 움직임 보상 장치 및 그 방법 - Google Patents

대역폭 인식 움직임 보상 장치 및 그 방법 Download PDF

Info

Publication number
KR20080090238A
KR20080090238A KR1020070052222A KR20070052222A KR20080090238A KR 20080090238 A KR20080090238 A KR 20080090238A KR 1020070052222 A KR1020070052222 A KR 1020070052222A KR 20070052222 A KR20070052222 A KR 20070052222A KR 20080090238 A KR20080090238 A KR 20080090238A
Authority
KR
South Korea
Prior art keywords
bandwidth
cache buffer
data
motion compensation
variable
Prior art date
Application number
KR1020070052222A
Other languages
English (en)
Other versions
KR100891116B1 (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 삼성전자주식회사
Publication of KR20080090238A publication Critical patent/KR20080090238A/ko
Application granted granted Critical
Publication of KR100891116B1 publication Critical patent/KR100891116B1/ko

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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/423Methods 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 characterised by memory arrangements
    • 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

본 발명은 대역폭 인식 움직임 보상 장치에 관한 것으로써, 움직임 보상을 위해 허용되는 최대 버스 대역폭을 결정하는 대역폭 결정부, 결정된 버스 대역폭에 기초하여 가변 캐쉬 버퍼에 저장될 레퍼런스 데이터의 수량과 범위를 결정하고, 레퍼런스 데이터를 특정하여 외부 메모리로부터 가변 캐쉬 버퍼로 레퍼런스 데이터를 전송하여 가변 캐쉬 버퍼를 업데이트하는 캐쉬 제어부, 움직임 보상을 수행할 데이터가 가변 캐쉬 버퍼 또는 외부 메모리 중 적어도 어느 하나에 저장되어 있는지를 확인하는 캐쉬 확인부 및 캐쉬 확인부의 결과에 따라 가변 캐쉬 버퍼 또는 외부 메모리 중 적어도 어느 하나에 억세스하여 움직임 보상을 수행할 데이터를 읽어오는 데이터 판독부를 포함함으로써, 움직임 보상의 판독 사이클과 시스템 대역폭을 절감하여 효율적인 움직임 보상을 가능하게 한다.
움직임 보상, HD, 메모리 버스 대역폭, 대역폭 인식, 가변 캐쉬 버퍼

Description

대역폭 인식 움직임 보상 장치 및 그 방법{Apparatus and method for bandwidth aware motion compensation}
도 1은 HD 급의 1088-60p 환경에서 임계적인 경우의 대역폭 분석을 도시한 도표이다.
도 2는 본 발명의 일 실시예에 따른 대역폭 인식 움직임 보상 장치의 블록도를 도시한다.
도 3은 가변 캐쉬 버퍼의 구조를 도시한다.
도 4는 캐쉬 제어부의 기능을 설명한다.
도 5는 캐쉬 제어부의 데이터 전송 및 업데이트 방법을 도시한다.
도 6은 가변 캐쉬 버퍼에서의 데이터 업데이트 방법을 도시한다.
도 7은 본 발명의 일 실시예에 따른 대역폭 인식 움직임 보상 장치의 방법의 흐름도를 도시한다.
본 발명은 대역폭 인식 움직임 보상 장치 및 방법에 관한 것으로, 더 상세하게는 비디오 코덱 장치에서 움직임 보상 모듈에게 허용되는 대역폭을 고려하여 매크로 블록의 움직임을 보상하는 움직임 보상 장치 및 방법에 관한 것이다.
H.264/AVC 비디오 코딩은 2001년 ITU-T VCEG(Video Coding Experts Group) 및 MPEG(Moving Picture Experts Group)을 구성하는 JVC(Joint Video Team)에 의해 개발되었다. H.264/AVC는 MPEG-4, H.263, MPEG-2에 비해 비트율을 39%~64% 가량 절감할 수 있고, 이러한 성능 개선은 주로 쿼터 픽셀을 이용한 움직임 추정, 가변 블록 사이즈(variable block sizes, VBS), 다중 참조 프레임(multiple reference frame, MRF), 디블로킹 필터(de-blocking filter), 정수 변환 및 향상된 엔트로피 코딩 툴(advanced entropy coding tools)을 포함하는 여러 가지 새로운 특징들로부터 비롯된다.
움직임 보상의 관점에서 볼 때, 가변 블록 사이즈와 다중 참조 프레임은 버스 트래픽과 대역폭을 불충분하게 만드는 주요 요인들이다. 움직임 보상 과정은 임계적인 경우에는 총 데이터 대역폭의 50%를 넘게 사용할 수 있으나, 이는 얼마나 많은 다른 구성요소를 가지는지 여부에 달려 있는 문제이다. H.264/AVC 복호화기 소프트웨어의 작동 시간 분석에 따라, 움직임 보상 과정은 총 복호화 시간의 55%까지 사용하기도 한다.
움직임 보상은 HD(high definition) 시스템의 실시간 처리에 있어서, 특히 영상 시퀀스가 1920*1088 해상도 및 초당 60 프레임의 전송 속도(이하, '1088-60p'라 한다.)로 입력되는 환경에서, 두 가지의 매우 중요한 문제점을 갖는다. 하나는 버스 대역폭 문제이며 다른 하나는 움직임 보상의 처리 사이클 문제이다. 움직임 보상의 처리 사이클 문제는 코어 유틸라이제이션(core utilization), 보간 처리의 병렬화, 최적화된 복호화 플로우(decoding flow), 움직임 보상 데이터 판독기의 계층 분리 등으로 해결될 수 있다.
HD급 해상도 이상의 영상에 있어서, 버스 대역폭 문제가 더 심각한 문제이다. 게다가, 마스터의 임의의 요청, DRAM 지원 버스트에 의한 짧은 버스트의 효율성 문제, 초기 지연 및 버스 트래픽 등의 문제 때문에, 거의 모든 시스템은 버스의 효율성을 100%로 만들 수는 없다. 버스의 효율성은 버스로부터 데이터 응답이 직접 오는지에 달려있다. 이러한 대역폭 문제를 해결하기 위해 여러 가지 방법들이 개발되어 있지만, 이 방법들은 상이한 대역폭을 가지는 다양한 시스템에 적용될 수 없다. 또한 캐쉬 방법은 가변 블록 사이즈 및 다중 참조 프레임은 물론 HD급의 1088-60p의 환경에는 적절하지 않다.
움직임 보상 모듈은 복호화기에서 버스 대역폭을 가장 많이 소비하는 모듈이다. H.264/AVC 시스템에서, 6-탭 필터로 데이터를 보간하므로 5 픽셀이 더 필요하다. 또한, 고화질의 고해상도 이미지를 위한 일부 제약이 있는데, 이는 두 장의 연속된 매크로 블록(MB)당 움직임 벡터의 최대 수량(MaxMVsPer-2Mb)은 16개라는 것이다. 이 때, 움직임 보상의 임계적인 경우는 모든 매크로 블록이 8×8(13×13) 크기 블록의 양방향 예측 또는 4×8(9×13) 크기 블록의 한방향 예측으로 부호화되었음을 의미한다.
버스 데이터 비트를 고려하면, 각각 DDR(double date rate)이 이미 고려된 32 또는 64비트 버스 시스템에서 8×8 모드를 위한 버스트의 크기는 4 바이트 또는 3 바이트이며, 4×8 모드를 위한 버스트의 크기는 4 바이트 또는 3 바이트 및 3 바 이트 또는 2 바이트이다. 그러나 DDR1은 오직 2-, 4- 및 8-버스트를 지원하고, DDR2는 4-, 8-버스트를 지원하므로, 실질적으로 양 버스 데이터 비트의 경우 모든 경우를 위해 4-버스트만이 채택된다. 그러므로 최대 데이터 대역폭은 1MB당 576Hz이다.
도 1은 HD 급의 1088-60p 환경에서 임계적인 경우의 대역폭 분석을 도시한다.
YCbCr은 4:2:0이고 단일 버스 시스템을 고려하였다. 고정된 버스트는 DDR1 또는 DDR2에 적용 가능한 버스트로 산출된 실제값을 의미한다.
도 1에서 보는 것과 같이, 움직임 보상의 임계 대역폭은 1088-60p에서 280MHz를 넘는다. 이 경우 실시간 처리를 위해 시스템 대역폭과 클럭은 400MHz를 넘을 것이다. 이는 일반적인 경우는 아니지만, H.264/AVC 환경에서는 가능한 경우이다. 그리고 만약 모든 시스템이 모든 임의의 경우를 고려한다면, 이러한 임계적 경우에 대한 해결책이 있어야 한다.
종래 기술에서, 대역폭이 불충분한 문제에 대한 여러 가지 해결책이 있었으나, 움직임 보상 모듈이 사용할 수 있는 최대 대역폭이 얼마인지 고려하지 않았다. 또한 보간 윈도우가 같은 장소에 위치해야 한다는 일부 가정이 필요하므로 가변 블록 사이즈 및 다중 참조 프레임에 적절하지 않으며, 각각의 블록이 다른 움직임 벡터를 가지는 경우까지 다루지 못한다.
따라서 본 발명이 이루고자 하는 기술적 과제는, 압축 영상의 복호화기의 대 역폭을 고려한 움직임 보상 장치 및 방법에 있어서, 움직임 보상을 수행하는데 필요한 대역폭을 고려하여 데이터의 전송 및 저장을 제어하는 움직임 보상 장치 및 방법을 제시하는데 있다. H.264/AVC 복호화기를 위한 대역폭 인식 움직임 보상 구조가 제안된다. 움직임 보상 모듈에서 이용 가능한 최대 대역폭 정보를 파악하여, 가변 캐쉬 버퍼를 이용하여 관리할 데이터의 수량 및 범위를 결정하고, 외부 메모리로부터 가변 캐쉬 버퍼로 전송된 데이터의 저장 및 업데이트를 제어한다.
또한 데이터 판독 사이클을 줄이기 위해 가변 캐쉬 버퍼에의 데이터 전송 및 업데이트 과정은 움직임 보상과는 별개로 수행하여, 움직임 보상과 병렬적으로 데이터를 업데이트할 수 있다. 또한 움직임 보상을 위한 데이터는 가변 캐쉬 버퍼 또는 외부 메모리로부터 읽어올 수 있고, 가변 캐쉬 버퍼와 외부 메모리 양 쪽으로부터도 판독이 가능한 방법을 제시한다.
따라서 상기 기술적 과제를 달성하기 위해, 본 발명의 일 실시예에 따른 대역폭 인식 움직임 보상 장치는 움직임 보상을 위해 허용되는 최대 버스 대역폭을 결정하는 대역폭 결정부, 결정된 버스 대역폭에 기초하여 가변 캐쉬 버퍼에 저장될 레퍼런스 데이터의 수량과 범위를 결정하고, 레퍼런스 데이터를 특정하여 외부 메모리로부터 가변 캐쉬 버퍼로 레퍼런스 데이터를 전송하여 가변 캐쉬 버퍼를 업데이트하는 캐쉬 제어부, 현재 블록의 움직임 보상을 위해 필요한 데이터가 가변 캐쉬 버퍼 또는 외부 메모리 중 적어도 어느 하나에 저장되어 있는지를 확인하는 캐쉬 확인부 및 캐쉬 확인부의 결과에 따라 가변 캐쉬 버퍼 또는 외부 메모리 중 적 어도 어느 하나에 억세스하여 움직임 보상을 수행할 데이터를 읽어오는 데이터 판독부를 포함한다.
본 발명의 일 실시예에서, 대역폭 결정부는, 제 1 대역폭은 복호화기의 총 버스 대역폭이고, 제 2 대역폭은 움직임 보상 장치를 제외한 다른 구성 요소의 수행에 필요한 버스 대역폭이며, 제 3 대역폭은 가변 캐쉬 버퍼에 저장된 데이터가 없을 때 움직임 보상을 위해 필요한 버스 대역폭일 때, 최대 버스 대역폭은 제 1 대역폭에서 제 2 대역폭과 제 3 대역폭의 합을 뺌으로써 결정한다.
바람직한 실시예에서, 가변 캐쉬 버퍼는 적어도 하나 이상의 캐쉬 버퍼를 사용하며, 제 1 캐쉬 버퍼는 블록의 한 라인의 바이트 수보다 큰 너비를 가지고, 제 2 캐쉬 버퍼는 블록의 한 라인의 바이트 수보다 작은 너비를 가질 때, 제 1캐쉬 버퍼 및 복수 개의 상기 제 2 캐쉬 버퍼 중 적어도 어느 하나로 구성되어, 가변 캐쉬 버퍼의 한 라인의 총 너비는 블록의 한 라인의 바이트 수보다 크다.
일 실시예에서, 캐쉬 제어부는 레퍼런스 데이터 중 매스데이터 및 업데이트 데이터를 구분하여 가변 캐쉬 버퍼에 전송하고, 가변 캐쉬 버퍼 상에서 매스데이터를 검색하는 영역을 결정한다.
상기 기술적 과제를 달성하기 위해, 본 발명의 일 실시예에 따른 대역폭 인식 움직임 보상 방법은, 움직임 보상을 위해 허용되는 최대 버스 대역폭을 결정하는 단계, 결정된 버스 대역폭에 기초하여 가변 캐쉬 버퍼에 저장될 레퍼런스 데이터의 수량과 범위를 결정하고, 레퍼런스 데이터를 특정하여 외부 메모리로부터 가변 캐쉬 버퍼로 레퍼런스 데이터를 전송하여 가변 캐쉬 버퍼를 업데이트하는 단 계, 움직임 보상을 수행할 데이터가 가변 캐쉬 버퍼 또는 외부 메모리 중 적어도 어느 하나에 저장되어 있는지를 확인하는 단계 및 확인 결과에 따라 가변 캐쉬 버퍼 또는 외부 메모리 중 적어도 어느 하나에 억세스하여 움직임 보상을 수행할 데이터를 읽어오는 단계를 포함한다.
이하에서는 도 2 내지 도 7을 참조하여, 본 발명의 일 실시예에 따르는 대역폭 인식 움직임 보상 장치 및 방법을 설명한다.
도 2는 본 발명의 일 실시예에 따른 대역폭 인식 움직임 보상 장치의 블록도를 도시한다.
대역폭 인식 움직임 보상 장치(200)는 대역폭 결정부(202), 캐쉬 제어부(204), 가변 캐쉬 버퍼(206), 데이터 버스(208), 외부 메모리(210), 캐쉬 확인부(212) 및 데이터 판독부(214)를 포함한다.
대역폭 결정부(202)는 복호화기에서 데이터 버스(210)의 총 대역폭 중 움직임 보상 장치가 사용할 수 있는 대역폭을 산출하여 캐쉬 선택부(204)로 출력한다.
캐쉬 제어부(204)는 대역폭 결정부(202)에서 구한 대역폭을 입력 받아, 대역폭에 기초하여 가변 캐쉬 버퍼(206)에 저장될 레퍼런스 데이터의 수량과 범위를 결정하고, 가변 캐쉬 버퍼(206)에 저장될 레퍼런스 데이터를 특정하여 외부 메모리(210)로부터 가변 캐쉬 버퍼(206)로 특정된 레퍼런스 데이터를 전송 및 업데이트한다.
가변 캐쉬 버퍼(206)는 캐쉬 제어부(204)가 지시하는 대로 데이터 버 스(208)를 통해 외부 메모리(210)로부터 레퍼런스 데이터를 전송받아 저장하고 업데이트되어, 데이터 판독부(214)에 데이터를 출력한다.
데이터 버스(208)는 외부 메모리(210)와 대역폭 인식 움직임 보상 장치(200)의 데이터 전송 통로이다.
외부 메모리(210)는 대역폭 인식 움직임 보상 장치(200)에서 사용될 데이터가 저장되어 있으며, 캐쉬 제어부(204) 혹은 캐쉬 확인부(212)의 지시에 따라, 데이터를 움직임 보상 처리 모듈에 출력하기 위해 데이터 버스(208)에 데이터를 출력한다.
캐쉬 확인부(212)는 데이터 판독부(214)에서 필요한 데이터가 가변 캐쉬 버퍼(206)과 외부 메모리(210) 중 적어도 어느 하나에 저장되어 있는지를 확인하고, 그 결과를 데이터 판독부(214)에 출력한다.
데이터 판독부(214)는 캐쉬 확인부(212)의 결과를 기초로 가변 캐쉬 버퍼(206), 외부 메모리(210), 혹은 양 쪽 모두에서 데이터를 읽어와, 본 발명의 일 실시예에 따른 대역폭 인식 움직임 보상을 수행하게 된다.
이하, 대역폭 인식 움직임 보상 장치(200)의 각 구성요소에 대해 상세히 설명한다.
모든 시스템은 복수 개의 구성요소와 데이터 버스를 가질 수 있다. 영상의 크기와 프레임율이 상승함에 따라, 각 구성요소의 대역폭 사용은 제한된다. 이는 시스템이 얼마나 많은 다른 구성요소를 사용하는지에 의해 결정된다.
대역폭 결정부(202)에서는 복호화기가 사용할 수 있는 총 대역폭에서 움직 임 보상 장치를 제외한 다른 구성 요소의 수행에 필요한 버스 대역폭과, 가변 캐쉬 버퍼에 저장된 데이터가 없을 때 움직임 보상을 위해 필요한 버스 대역폭을 고려하여, 대역폭 움직임 보상 장치(200)이 사용할 수 있는 대역폭을 산출한다.
BW = TotalBW - OtherBW - nohitBW
BW는 대역폭 인식 움직임 보상 장치(200)가 사용할 수 있는 버스 대역폭을 나타내며, TotalBW는 복호화 시스템이 사용할 수 있는 총 버스 대역폭, OtherBW는 움직임 보상 장치를 제외한 모든 다른 구성 요소 및 병렬 장치가 사용하는 버스 대역폭을 나타낸다.
nohitBW는 가변 캐쉬 버퍼에 저장된 데이터가 없을 때 움직임 보상 장치가 사용하는 버스 대역폭을 나타낸다. nohitBW는 가변 캐쉬 버퍼에 데이터를 저장하지 않고 외부 메모리에서만 데이터를 전송받아야 하는 임계적인 경우를 위한 것이다. 본 발명의 일 실시예에서는 nohitBW를 한 매크로블록 당 50 클럭이라고 가정한다.
따라서 대역폭 인식 움직임 보상 장치에서 고려될 버스 대역폭은 총 버스의 대역폭 TotalBW에서 다른 구성 요소의 대역폭 OtherBW와 가변 캐쉬 버퍼에 데이터가 없을 경우의 대역폭 nohitBW의 합을 뺀 값이 된다.
가변 캐쉬 버퍼(206)는 움직임 보상이 수행되는 한 매크로블록의 한 라인을 한 클럭에 억세스할 수 있을 만큼의 충분한 크기를 가져야 한다. 가변 캐쉬 버퍼(206)은 매크로블록의 너비보다 큰 너비를 가지는 캐쉬 버퍼를 사용할 수 있다. 작은 너비의 캐쉬 버퍼를 사용하는 경우에는, 한 클럭에 매크로블록의 한 라인을 억세스할 수 있도록 작은 너비를 가지는 캐쉬 버퍼를 복수 개를 병렬로 한 것이 사용된다.
도 3는 도 2의 가변 캐쉬 버퍼(206)의 구조를 도시한다.
일 실시예에 따라 가변 캐쉬 버퍼(206)는 6TSRAM 또는 1TSRAM을 사용한다. 움직임 보상에서 사용되는 매크로블록의 최대 너비는 16×16 모드에서 6-탭 필터를 고려하여 21바이트이므로 가변 캐쉬 버퍼의 너비는 21바이트를 포함할 수 있을 정도로 충분히 커야 한다. 따라서, 21바이트 이상의 너비를 가지는 캐쉬 버퍼가 사용되는 방법도 있으나, 21바이트보다 작은 너비의 캐쉬 버퍼의 경우 복수 개의 캐퍼 버퍼를 병렬로 연결하여 이용될 수 있다.
즉, 도 3과 같이 16바이트 너비의 캐쉬 버퍼가 가변 캐쉬 버퍼(206)로써 사용될 때의 임계적인 경우를 상정하자. 21바이트의 데이터 308을 포함하기 위해서, 캐쉬 버퍼 302에는 한 바이트, 캐쉬 버퍼 304에는 16바이트, 캐쉬 버퍼 306에는 4바이트가 호출되는 경우가 있을 수 있다. 따라서, 본 발명의 일 실시예에 따른 가변 캐쉬 버퍼(206)를 구성하기 위해 16 바이트의 캐쉬 버퍼가 사용되는 경우에는 적어도 3개의 16 바이트 너비의 캐쉬 버퍼가 필요하다.
마찬가지로 8바이트 너비의 캐쉬 버퍼가 사용되는 경우에는 4개의 캐쉬 버퍼에 각각 1, 8, 8 및 4 바이트가 포함되는 임계적인 경우까지 허용되어야 하므로, 본 발명의 일 실시예에 따른 가변 캐쉬 버퍼(206)을 구성하기 위해서는 8 바이트 캐쉬 버퍼를 사용하는 경우에는, 적어도 4개의 8바이트 캐쉬 버퍼가 필요하다.
도 4은 캐쉬 제어부(204)의 기능을 설명한다.
단계 402에서는, 대역폭 결정부(202)에서 생성된 대역폭을 이용하여 가변 캐쉬 버퍼(206)에 저장할 레퍼런스 데이터의 수량과 범위가 결정된다.
단계 404에서는, 단계 402에서 결정된 레퍼런스 데이터의 수량 및 범위에 기초하여, 캐쉬 선택 알고리즘에 의해 가변 캐쉬 버퍼(206)에 저장할 레퍼런스 데이터가 특정된다. 본 발명의 일 실시예의 캐쉬 선택 알고리즘은 가장 가까운 POC(picture order count)를 사용하고, 필드의 경우 동일한 패러티(parity) 가중치를 덧붙이는 방법이다.
단계 406에서는 단계 404에서 특정된 레퍼런스 데이터를 외부 메모리(210)로부터 가변 캐쉬 버퍼(206)로 전송하여, 매스데이터(massdata)와 업데이트 데이터를 저장한다.
캐쉬 제어부(204)의 데이터 전송이 움직임 보상 처리 모듈의 작업과는 별개의 단계에서 수행되므로, 움직임 보상 과정과 병렬적으로 데이터의 전송 및 저장이 가능하다.
도 5는 캐쉬 제어부(204)의 데이터 전송 및 업데이트 방법을 도시한다. 수직 검색 영역 502는 레퍼런스 데이터 중 매스데이터의 검색 영역이고, 수직 검색 영역 502 다음의 수직 검색 영역 504는 업데이트 데이터의 검색 영역이다.
캐쉬 제어부(204)는 슬라이스(slice)의 시작점에서, 가변 캐쉬 버퍼(206)에 저장되기로 선택된 레퍼런스 데이터로부터 매스데이터를 얻어 가변 캐쉬 버퍼(206)에 저장하고, 이때 매스데이터의 수직 검색 영역 502도 역시 캐쉬 제어부(204)에서 결정된다. 또한, 각각의 매크로블록의 시작점에서 2- 또는 4-버스트 ×
Figure 112007039419276-PAT00001
씩은 가변 캐쉬 버퍼의 수직 범위 504에 업데이트된다.
Figure 112007039419276-PAT00002
는 캐쉬 버퍼에서의 수직 검색 영역이다.
매크로블록의 데이터의 어드레스가 바뀌는 경우 데이터의 억세스 타임이 길어지므로, 데이터의 더욱 효율적인 호출을 위해 버스트 단위로 가변 캐쉬 버퍼의 수직 검색 영역 504에 업데이트 데이터를 미리 저장한다.
도 6은 가변 캐쉬 버퍼(206)에서의 데이터 업데이트 방법을 도시한다.
예를 들면, 본 발명의 일 실시예에서 16바이트 × 3 크기의 캐쉬 버퍼를 복수 개로 사용한다면, 1번, 2번, 3번 매크로블록을 위한 캐쉬 버퍼의 수직 검색 영역
Figure 112007039419276-PAT00003
의 값은 각각 5, 5, 6 일 수 있다. 이는 대역폭 트래픽과, DRAM의 프로그램할 수 있는 버스트 길이로부터 야기되는 비효율성, 즉 1-, 2-, 3-버스트와 같이 작은 버스트로부터 오는 비효율성 문제를 감소시키기 위함이다.
본 발명의 일 실시예에 따라 가변 캐쉬 버퍼(206)에 저장될 레퍼런스 데이터의 수량은 움직임 보상 장치(200)의 최대 대역폭를 이용하여 캐쉬 제어부(204)로부터 알아낸다. 또 다른 실시예서는, 움직임 보상 장치(200)의 저전력 설계를 위해 가변 캐쉬 버퍼(206)에 저장될 레퍼런스 데이터의 수량이 사용자에 의해 직접 제한될 수도 있다.
캐쉬 제어부(204)의 작업이 완료되면, 움직임 보상 장치(200)는 이미 어느 레퍼런스 데이터와 어떤 범위의 데이터가 가변 캐쉬 버퍼(206)에 저장될지 파악한다. 버스 데이터(208)는 캐쉬 제어부(204)의 작업이 완료된 후에야 응답을 보일 수 있으므로, 가변 캐쉬 버퍼(206) 없이 움직임 보상 및 보간 처리를 하기는 어렵다. 더욱이 가중치가 있는 예측 또는 양방향 예측에서는 더 많은 처리 사이클이 소요된다.
본 발명의 바람직한 실시예는 캐쉬 확인부(212) 및 캐쉬 판독부(214)를 움직임 보상 처리 모듈과 분리한다. 그럼으로 인해, 움직임 보상 처리 모듈은 움직임 보상 장치(200)의 가변 캐쉬 버퍼(206)를 처음부터 끝까지 사용하여 움직임 보상 작업을 처리할 수 있으며 딜레이가 없다.
캐쉬 확인부(212)는 현재 블록의 움직임 보상을 위해 필요한 레퍼런스 데이터가 가변 캐쉬 버퍼(206) 또는 외부 메모리(210) 중 저장되어있는지 확인하고, 그 결과를 데이터 판독부(214)에 출력한다. 필요한 레퍼런스 데이터는 가변 캐쉬 버퍼(206), 외부 메모리(210) 중 어느 하나에 저장되어 있거나, 양 쪽 모두에 저장되어 있을 수도 있다. 캐쉬 확인부(212)는 필요한 레퍼런스 데이터의 위치를 파악하면서 모드, 움직임 벡터, 레퍼런스 데이터의 인덱스를 함께 확인한다.
데이터 판독부(214)는 캐쉬 확인부(212)의 지시에 따라, 버스(208)를 통해 외부 메모리(210)에 억세스하거나, 가변 캐쉬 버퍼(206)에 억세스하거나, 외부 메모리(210)와 가변 캐쉬 버퍼(206) 모두에 억세스하여 데이트를 읽어올 수 있다. 움직임 보상 처리 모듈은 데이터 판독부가 읽어오는 데이터를 이용하여 움직임 보상 작업을 처리하게 된다.
도 7은 본 발명의 일 실시예에 따른 대역폭 인식 움직임 보상 장치(200)의 방법의 흐름도를 도시한다.
단계 702에서는, 움직임 보상을 위해 허용되는 최대 버스 대역폭을 결정한다.
단계 704에서는, 단계 702에서 결정된 버스 대역폭에 기초하여 가변 캐쉬 버퍼에 저장될 레퍼런스 데이터의 수량 및 범위를 결정한다.
단계 706에서는, 단계 704에서 결정된 정보에 따라 레퍼런스 데이터를 특정하고, 외부 메모리로부터 가변 캐쉬 버퍼로 레퍼런스 데이터를 전송하여 가변 캐쉬 버퍼에 저장하고 업데이트한다.
단계 708에서는, 현재 블록의 움직임 보상을 위해 필요한 데이터가 가변 캐쉬 버퍼 또는 외부 메모리 중 어디에 위치하는 파악한다.
단계 710에서는, 단계 708에서 파악된 대로 가변 캐쉬 버퍼 또는 외부 메모리 또는 양 쪽 모두에 억세스하여 움직임 보상을 수행할 데이터를 읽어온다.
본 발명의 일 실시예는 H.264/AVC 레퍼런스 소프트웨어 JM10.2 코덱 및 움직임 보상 하드웨어 모듈이 사용된다. 매 30번째 프레임을 인트라 피리어드(period)로 사용하고, 4개의 레퍼런스 프레임과 3개의 B 프레임을 사용한다. DDR을 고려한 32비트 버스 및 64비트 버스 시스템 모두를 이용한다.
1088-60p 환경 하의 움직임 보상의 판독 사이클의 60~80% 가량을 절감할 수 있다. DDR1-32비트 및 DDR2-64비트 시스템의 사용된 데이터 대역폭의 경우, I 및 P만을 가진 시퀀스에서 30~50%가 절감되고, I, P, B를 가진 시퀀스에서 50~80%가 각각 절감된다. 각 버스 데이터 비트 및 구조에서 프레임의 80% 이상은 가변 캐쉬 버퍼에 데이터가 저장되고, 캐쉬 제어부를 위해 더 많은 대역폭을 허용된다면 가변 캐쉬 버퍼에 데이터가 저장되는 확률을 더 높일 수 있다.
본 발명의 바람직한 실시예는 MC 판독 사이클의 60~80%, 총 데이터 대역폭의 50~85%를 절감할 수 있다. 또한 상이한 최대 데이터 대역폭을 가진 다양한 시스템에서 적용될 수 있다. 가변 캐쉬 버퍼의 데이터 업데이트 과정이 일정한 패턴을 가지므로 버스의 호출 형태가 거의 정규화되어 있으므로, 종래 기법보다 가변 캐쉬 버퍼에 억세스하는 것이 훨씬 편하고, 데이터 버스 스케쥴링에 유용하다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
본 발명은, 압축 영상의 복호화기의 대역폭을 고려한 움직임 보상 장치 및 방법에 있어서, 움직임 보상을 수행하는데 필요한 대역폭을 고려하여 데이터의 이동 및 저장을 제어하는 움직임 보상 장치 및 방법을 제시한다. 특히 1920×1088 해상도의 초당 60 프레임의 전송 속도 이상의 HD급 환경의 복호화기를 지원하는 H.264/AVC를 위한 대역폭 인식 움직임 보상 장치 및 방법을 제시한다.
이 하드웨어 모듈은 DDR1-32bits 및 DDR2-64bits 시스템 모두에서 움직임 보상의 데이터 판독 사이클의 60~80%를 절감할 수 있다. 그리고, 또한 'IBBBP' 구조의 시퀀스에서 데이터 대역폭의 50~85%를, 'IPPPP' 시퀀스에서 30~50%를 절감하는 효과를 가진다. 이러한 차이는 'IPPPP' 시퀀스가 'IBBBP' 시퀀스의 경우에 비해 상대적으로 더 적게 버스를 억세스하기 때문에 발생한다.
움직임 보상 모듈이 이용할 수 있는 최대 버스 대역폭을 파악함으로써 가변 캐쉬 버퍼의 수량과 범위를 제어할 수 있으므로, 본 발명의 실시예는 다양한 시스템에 적용될 수 있다. 1088-60p 환경 하의 266MHz의 데이터 대역폭 이하로 작동하는 시스템을 만들 수도 있다. 대역폭 인식 움직임 보상 장치는 버스 대역폭과 판독 사이클 모두를 절감하고 HD급 1088-60p 이상의 환경에서도 실시간으로 수행하는 효과가 있다.

Claims (5)

  1. 움직임 보상을 위해 허용되는 최대 버스 대역폭을 결정하는 대역폭 결정부;
    상기 결정된 버스 대역폭에 기초하여 가변 캐쉬 버퍼에 저장될 레퍼런스 데이터의 수량과 검색 범위를 결정하고, 상기 레퍼런스 데이터를 특정하여 외부 메모리로부터 상기 가변 캐쉬 버퍼로 상기 레퍼런스 데이터를 전송하여 상기 가변 캐쉬 버퍼를 업데이트하는 캐쉬 제어부;
    현재 블록의 움직임 보상을 위해 필요한 데이터가 상기 가변 캐쉬 버퍼 또는 상기 외부 메모리 중 적어도 어느 하나에 저장되어 있는지를 확인하는 캐쉬 확인부;
    상기 캐쉬 확인부의 결과에 따라 상기 가변 캐쉬 버퍼 또는 상기 외부 메모리 중 적어도 어느 하나에 억세스하여 움직임 보상을 수행할 데이터를 읽어오는 데이터 판독부를 포함하는 것을 특징으로 하는 대역폭 인식 움직임 보상 장치.
  2. 제 1항에 있어서,
    상기 대역폭 결정부는, 제 1 대역폭은 복호화기의 총 버스 대역폭이고, 제 2 대역폭은 상기 움직임 보상 장치를 제외한 다른 구성 요소의 수행에 필요한 버스 대역폭이며, 제 3 대역폭은 상기 가변 캐쉬 버퍼에 저장된 데이터가 없을 때 움직임 보상을 위해 필요한 버스 대역폭일 때,
    상기 최대 버스 대역폭은 제 1 대역폭에서 제 2 대역폭과 제 3 대역폭의 합을 뺌으로써 결정하는 것을 특징으로 하는 대역폭 인식 움직임 보상 장치.
  3. 제 1 항에 있어서,
    상기 가변 캐쉬 버퍼는 적어도 하나 이상의 캐쉬 버퍼를 사용하며,
    제 1 캐쉬 버퍼는 상기 블록의 한 라인의 바이트 수보다 큰 너비를 가지고, 제 2 캐쉬 버퍼는 상기 블록의 한 라인의 바이트 수보다 작은 너비를 가질 때,
    상기 제 1캐쉬 버퍼 및 복수 개의 상기 제 2 캐쉬 버퍼 중 적어도 어느 하나로 구성되어, 상기 가변 캐쉬 버퍼의 한 라인의 총 너비는 상기 블록의 한 라인의 바이트 수보다 큰 것을 특징으로 하는 대역폭 인식 움직임 보상 장치.
  4. 제 1 항에 있어서,
    상기 캐쉬 제어부는 상기 레퍼런스 데이터 중 매스데이터 및 업데이트 데이터를 구분하여 상기 가변 캐쉬 버퍼에 전송하고, 상기 가변 캐쉬 버퍼 상에서 상기 매스데이터를 검색하는 영역을 결정하는 것을 특징으로 하는 대역폭 인식 움직임 보상 장치.
  5. 움직임 보상을 위해 허용되는 최대 버스 대역폭을 결정하는 단계;
    상기 결정된 버스 대역폭에 기초하여 가변 캐쉬 버퍼에 저장될 레퍼런스 데이터의 수량과 범위를 결정하고, 상기 레퍼런스 데이터를 특정하여 외부 메모리 로부터 상기 가변 캐쉬 버퍼로 상기 레퍼런스 데이터를 전송하여 상기 가변 캐쉬 버퍼를 업데이트하는 단계;
    상기 움직임 보상을 수행할 데이터가 상기 가변 캐쉬 버퍼 또는 상기 외부 메모리 중 적어도 어느 하나에 저장되어 있는지를 확인하는 단계;
    상기 확인 결과에 따라 상기 가변 캐쉬 버퍼 또는 상기 외부 메모리 중 적어도 어느 하나에 억세스하여 움직임 보상을 수행할 데이터를 읽어오는 단계를 포함하는 것을 특징으로 하는 대역폭 인식 움직임 보상 방법.
KR1020070052222A 2007-04-02 2007-05-29 대역폭 인식 움직임 보상 장치 및 그 방법 KR100891116B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US90741807P 2007-04-02 2007-04-02
US60/907,418 2007-04-02

Publications (2)

Publication Number Publication Date
KR20080090238A true KR20080090238A (ko) 2008-10-08
KR100891116B1 KR100891116B1 (ko) 2009-03-30

Family

ID=40174726

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070052222A KR100891116B1 (ko) 2007-04-02 2007-05-29 대역폭 인식 움직임 보상 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR100891116B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120106133A (ko) * 2011-03-17 2012-09-26 삼성전자주식회사 모션 추정 장치 및 그것의 모션 추정 방법
CN103729449A (zh) * 2013-12-31 2014-04-16 上海富瀚微电子有限公司 一种参考数据访问管理方法及装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11188474B2 (en) 2018-06-19 2021-11-30 Western Digital Technologies, Inc. Balanced caching between a cache and a non-volatile memory based on rates corresponding to the cache and the non-volatile memory

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100429795B1 (ko) * 2001-07-21 2004-05-04 삼성전자주식회사 시리얼 버스의 대역폭 관리 방법 및 장치

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120106133A (ko) * 2011-03-17 2012-09-26 삼성전자주식회사 모션 추정 장치 및 그것의 모션 추정 방법
CN103729449A (zh) * 2013-12-31 2014-04-16 上海富瀚微电子有限公司 一种参考数据访问管理方法及装置
CN103729449B (zh) * 2013-12-31 2017-02-15 上海富瀚微电子股份有限公司 一种参考数据访问管理方法及装置

Also Published As

Publication number Publication date
KR100891116B1 (ko) 2009-03-30

Similar Documents

Publication Publication Date Title
US8175157B2 (en) Apparatus and method for controlling data write/read in image processing system
US8442107B2 (en) Memory mapping apparatus and method for video decoder/encoder
JP5724038B2 (ja) カメラおよび背景の動きに基づく、参照フレームバッファの適応的設定
KR101177666B1 (ko) 디코딩된 픽처의 지능적 버퍼링
KR100772379B1 (ko) 외부 메모리 장치, 그 영상 데이터 저장 방법, 이를 이용한영상 처리 장치
US8400460B2 (en) Image data processing method, program for image data processing method, recording medium with recorded program for image data processing method and image date processing device
US8577165B2 (en) Method and apparatus for bandwidth-reduced image encoding and decoding
US20080259089A1 (en) Apparatus and method for performing motion compensation by macro block unit while decoding compressed motion picture
JP5378344B2 (ja) 映像処理のためのシステム
KR100891116B1 (ko) 대역폭 인식 움직임 보상 장치 및 그 방법
KR20050078706A (ko) 메모리 액세스 방법 및 메모리 액세스 장치
JP4675383B2 (ja) 画像復号化装置および方法、画像符号化装置
CN116233453B (zh) 一种视频编码方法及装置
US9363523B2 (en) Method and apparatus for multi-core video decoder
Wang et al. Motion compensation architecture for 8K UHDTV HEVC decoder
KR101419378B1 (ko) 영상 처리를 위한 시스템
US8908777B2 (en) Memory request ordering for a motion compensation process, implemented by a picture processing apparatus, a picture processing method, and a picture processing program
JP2003230148A (ja) 画像データ符号化装置
CN106686380B (zh) 采用基于多块的流水线的增强型数据处理设备及操作方法
KR100708183B1 (ko) 움직임 추정을 위한 영상 데이터 저장 장치 및 그 데이터저장 방법
US20030123555A1 (en) Video decoding system and memory interface apparatus
JP2009130599A (ja) 動画像復号装置
WO2022206199A1 (zh) 在视频解码装置中进行图像处理的方法、装置及系统
KR100821922B1 (ko) 미디어 디코딩용 국부 메모리 관리 장치
KR100281567B1 (ko) 비디오 인코더의 스케쥴링 방법

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: 20130227

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140227

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150226

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160226

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170224

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180227

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190227

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20200227

Year of fee payment: 12