KR101439848B1 - 움직임 보상 방법 및 장치 - Google Patents

움직임 보상 방법 및 장치 Download PDF

Info

Publication number
KR101439848B1
KR101439848B1 KR1020080002339A KR20080002339A KR101439848B1 KR 101439848 B1 KR101439848 B1 KR 101439848B1 KR 1020080002339 A KR1020080002339 A KR 1020080002339A KR 20080002339 A KR20080002339 A KR 20080002339A KR 101439848 B1 KR101439848 B1 KR 101439848B1
Authority
KR
South Korea
Prior art keywords
macroblock
motion compensation
memory
current image
macroblocks
Prior art date
Application number
KR1020080002339A
Other languages
English (en)
Other versions
KR20090076413A (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 KR1020080002339A priority Critical patent/KR101439848B1/ko
Priority to US12/081,863 priority patent/US8284836B2/en
Publication of KR20090076413A publication Critical patent/KR20090076413A/ko
Application granted granted Critical
Publication of KR101439848B1 publication Critical patent/KR101439848B1/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/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/436Methods 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 using parallelised computational arrangements
    • 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/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
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 움직임 보상 방법 및 장치에 관한 것으로, 본 발명의 일 실시 예에 따른 움직임 보상 방법은 움직임 보상 방법은 현재 영상의 m번째 매크로블록의 움직임 보상을 위한 레지스터를 설정하고, m번째 매크로블록에 대한 예측 연산을 수행하면서, m+1번째 매크로 블록의 움직임 보상을 위한 레지스터를 설정하고, 예측 연산 결과를 기초로 m번째 매크로블록에 대한 복원 연산을 수행하면서, m+1번째 매크로블록에 대한 예측 연산을 수행함으로써 움직임 보상을 매크로블록들에 대해 병렬적으로 처리함으로써 매크로블록에 대한 움직임 보상 수행시간을 줄일 수 있다.
움직임 보상, 매크로블록, 예측

Description

움직임 보상 방법 및 장치{Method and apparatus for motion compensation}
본 발명은 동영상 복호화에 관한 것으로, 더 상세하게는 동영상 복호화 시스템에 적용할 수 있는 움직임 보상 방법 및 장치에 관한 것이다.
동영상 복호화는 여러 가지 처리 과정을 거친다. 이러한 과정들은 크게 엔트로피 복호화(entropy decoding), 역변환(inverse transform), 역양자화(inverse quantization), 및 움직임 보상(motion compensation)으로 구성된다. 이것들 중에서 움직임 보상이 가장 많은 프로세싱 시간을 소요한다. 움직임 보상이란 현재 영상의 블록들과 참조 영상의 대응 블록들간의 변위를 나타내는 움직임 벡터(motion vector)들을 참조하여 참조 영상으로부터 참조 영상과 현재 영상 간에 공유되는 부분을 추출하고, 이와 같이 추출된 데이터(이하 "움직임 보상 데이터"라 함)와 참조 영상과 현재 영상의 차이 데이터(이하 "레지듀 데이터(residue data)"라 함)를 합산함으로써 현재 영상을 복원하는 과정을 의미한다. 이와 같이, 움직임 보상 처리 과정은 많은 영상 데이터를 처리해야 하기 때문에 메모리 액세스 량 및 연산량이 매우 많다. 이러한 움직임 보상의 처리량은 영상의 크기에 비례하기 때문에 영상 의 크기가 커지면 최악의 경우에 원하는 시간 내에 영상 전체가 처리되지 못하게 되며, 그 결과 자연스러운 동영상 재생이 불가능할 수도 있다.
대부분의 동영상 코덱 엔지니어들은 동영상 코덱을 소프트웨어의 형태로 구현하는 것을 선호한다. 이것은 동영상 코덱을 하드웨어로 구현하는 경우에 비해 그 개발 기간 및 비용이 단축되고, 동영상 코덱의 재사용이 용이하며, 특히 동영상 코덱 자체의 유연성(flexibility)이 높아 동영상 코덱에 오류가 발생할 경우에 이것을 쉽게 수정할 수 있다는 장점 때문이다. 그러나 동영상 코덱의 핵심은 실시간 처리에 있다. 아무리, 소프트웨어 구현이 많은 장점을 가지고 있다고 하더라도 동영상 코덱이 영상의 부호화 및 복호화를 실시간으로 처리하지 못하면 쓸모가 없게 된다. 반면, 동영상 코덱을 하드웨어로 구현할 경우에는 개발 기간과 비용이 많이 들고 유연성이 낮아 동영상 코덱의 수정을 해야 하는 경우에 동영상 코덱의 전체 구조를 변경하는 위험이 따를 수도 있다. 그러나 무엇보다도 동영상 코덱을 하드웨어로 구현할 경우에는 타겟에 최적화된 구현할 수 있기 때문에 소프트웨어로 처리하는 경우보다 동영상 부호화 및 복호화 속도가 비약적으로 빠르게 된다는 장점이 있다.
상기된 바와 같은 하드웨어 구현 방식 및 소프트웨어 구현 방식의 각기 상반된 장단점으로 인해 대부분의 동영상 코덱 엔지니어들은 이 두 가지 방식을 혼합하여 많이 사용한다. 즉, 동영상 코덱을 구성하는 모듈은 각 특징에 따라 S/W로 처리할 부분과 H/W로 처리할 부분으로 나누어 구현된다. 이 경우, 필수적으로 하드웨어 구현하여야 하는 부분이 움직임 보상이다. 움직임 보상에 요구되는 데이터 연산량도 많지만 무엇보다도 메모리 액세스가 다른 부분에 비해 월등히 많기 때문에 소프트웨어적인 처리가 부적합하였다.
위에 설명된 영상 복원 처리 과정은 연상량이 많고 메모리 데이터 액세스 량이 과도한 특징을 가짐으로써 실시간 처리가 어렵다는 문제가 있다. 이 문제를 해결하기 위해 다양한 방법들은 사용되고 있다. 그 중에서 하나는 연산량이나 메모리 액세스 비율이 높은 과정들을 하드웨어로 구현해서 코덱의 효율을 극대화하는 방법이다. 상기와 같은 영상 복호화 과정에 있어서, 영상 코덱의 기능 중에서 예측 프레임을 생성하는 과정 즉, 예측 과정(prediction)이 차지하는 비율이 매우 높고 메모리 액세스가 많다. 따라서 예측 과정을 하드웨어로 구현해서 코덱의 성능을 높이는 방법이 많이 사용된다. 그런데 영상 코덱의 성능에 있어서는 이와 같이 CPU, 하드웨어 가속기 등 여러 모듈로 구성된 영상 코덱 시스템에서 모듈 간에 데이터 전송 방법, 순서, 시간 등 매우 중요한 요소이다.
하드웨어 가속기를 탑재한 영상코덱 시스템의 성능에 있어서 하드웨어 가속기의 성능이 중요하다. 일반적인 움직임의 예측 하드웨어 가속기의 동작 과정은 모든 연산들을 순차적으로 이루어진다는 것이다. 즉, 한 매크로블록에 대한 수행 시간이 길다. 또한, CPU는 새로운 매크로블록을 시작할 때마다 이전 매크로블록 대한 예측 과정을 끝나야만 제어 정보를 전송할 수 있다. 따라서 이전 매크로블록에 대한 예측 과정이 끝나지 않으면 CPU가 기다리는 일이 발생한다.
본 발명은 일반적인 움직임 보상 과정과는 달리, 레지스터 설정, 예측 및 복원 과정을 매크로블록들에 대해 병렬적으로 처리함으로써 매크로블록에 대한 움직임 보상 수행시간을 줄일 수 있는 움직임 보상 방법 및 장치를 제공하는 데 목적이 있다.
본 발명의 기술적 과제를 달성하기 위한 움직임 보상 방법은 현재 영상의 m번째 매크로블록의 움직임 보상을 위한 레지스터를 설정하고, 상기 m번째 매크로블록에 대한 예측 연산을 수행하면서, m+1번째 매크로 블록의 움직임 보상을 위한 레지스터를 설정하고, 상기 예측 연산 결과를 기초로 상기 m번째 매크로블록에 대한 복원 연산을 수행하면서, 상기 m+1번째 매크로블록에 대한 예측 연산을 수행하여 이루어진다.
본 발명의 다른 기술적 과제를 달성하기 위한 움직임 보상 장치는 현재 영상의 매크로블록들에 대한 움직임 보상 파라미터와, 상기 현재 영상의 매크로블록들에 대응하는 참조 영상의 매크로블록들을 이용하여 움직임 보상 데이터를 생성함으로써 예측 연산을 수행하는 움직임 보상 엔진, 상기 움직임 보상 엔진으로부터 출력된 상기 현재 영상의 m번째 매크로블록의 움직임 보상 데이터를 저장하는 제1 메모리, 상기 움직임 보상 엔진으로부터 출력된 상기 현재 영상의 m+1번째 매크로블록의 움직임 보상 데이터를 저장하는 제2 메모리, 상기 현재 영상의 매크로블록들과 참조 영상의 매크로블록들의 차이인 레지듀 데이터를 저장하는 제3 메모리 및 상기 제1 메모리에 저장된 상기 m번째 매크로블록의 움직임 보상 데이터와 상기 제 3 메모리에 저장된 상기 m번째 매크로블록에 대한 레지듀 데이터, 또는 상기 제2 메모리에 저장된 m+1번째 매크로블록의 움직임 보상 데이터와 상기 제3 메모리에 저장된 상기 m+1번째 매크로블록에 대한 레지듀 데이터를 합산하여 복원하는 합산기를 포함하여 이루어진다.
본 발명의 또 다른 기술적 과제를 달성하기 위한 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체를 포함한다.
본 발명의 세부 및 개선 사항은 종속항에 개시된다.
이하, 첨부한 도면들을 참조하여 본 발명의 바람직한 실시 예들을 상세히 설명한다.
도 1은 일반적인 움직임 보상 장치(120)를 포함하는 동영상 복호화 시스템(100)의 개략적인 블록도이다.
도 1을 참조하면, 동영상 복호화 시스템(100)은 CPU(110), 움직임 보상 장치(120), 메모리 컨트롤러(130) 및 메모리(140)를 포함한다.
전체적인 시스템 제어를 위한 CPU(100)와 메모리 컨트롤러(130), 예측 과정을 수행하는 움직임 보상 장치(120)가 시스템 버스를 통해 연결되어 있다. 움직임 보상 장치(120)의 마스터 인터페이스는 독립된 버스를 통해 메모리 컨트롤러(130)의 두 번째 포트에 연결되어 있다.
전체적인 동작을 개략적으로 설명하면, CPU(100)는 복호화하는 현재 영상에 대한 디코딩 정보, 움직임 벡터, 참조 프레임 정보 등을 시스템 버스를 통해 움직 임 보상 장치(120)에 제공하면, 움직임 보상 장치(120)는 움직임 보상을 수행하여 현재 영상을 복호화하여 마스터 인터페이스를 통해 메모리 컨트롤러(130)에 출력한다. 여기서, 움직임 보상이란 현재 영상의 블록들과 참조 영상의 대응 블록들 간의 변위를 나타내는 움직임 벡터들을 참조하여 참조 영상으로부터 참조 영상과 현재 영상 간에 공유되는 부분을 추출하고, 이와 같이 추출된 데이터와 참조 영상과 현재 영상의 차이 데이터를 합산함으로써 현재 영상을 복원하는 과정을 의미한다. 따라서, 영상 복원 처리 과정에서 연산량과 메모리 액세스 비율이 높은 예측 과정을 움직임 보상 장치(120)에서 수행함으로써 전체적인 동영상 복호화 시스템(100)의 효율을 높일 수 있다.
도 2는 도 1에 도시된 움직임 보상 장치(120)의 개략적인 블록도이다.
도 2를 참조하면, 움직임 보상 장치(120)는 슬레이브 인터페이스(200), SRAM(210), 마스터 인터페이스(220), 움직임 보상 엔진(230), SRAM(240) 및 합산기(250)를 포함한다.
슬레이브 인터페이스(200)는 도 1에 도시된 동영상 복호화 시스템(100)의 시스템 버스를 경유하여 CPU(110)로부터 전송된 레지듀 데이터를 페치(fetch)하고, 페치된 레지듀 데이터를 SRAM(210)으로 출력한다. 또한, 슬레이브 인터페이스(200)는 시스템 버스를 경유하여 CPU(110)로부터 움직임 보상을 위해 필요한 파라미터들인 움직임 보상(Motion Compensation) 파라미터들을 페치하고, 페치된 MC 파라미터들을 마스터 인터페이스(220)로 출력한다.
마스터 인터페이스(220)는 슬레이브 인터페이스(200)로부터 입력받은 MC 파 라미터들을 해석하고, 그 해석 결과에 기초하여 MC 파라미터들을 선별하여 움직임 보상 엔진(230)으로 출력하며, 움직임 보상 엔진(230)의 동작을 제어한다.
SRAM(Static Random Access Memory, 210)은 슬레이브 인터페이스(200)로부터 입력받은 레지듀 데이터를 저장하며, 다른 SRAM(240)은 움직임 보상 엔진(230)에 의해 생성된 움직임 보상 데이터를 저장한다. 합산기(250)는 SRAM(240)에 저장된 움직임 보상 데이터와 SRAM(210)에 저장된 레지듀 데이터를 합산함으로써 현재 영상을 복원하고, 복원된 현재 영상의 데이터를 마스터 인터페이스(220)로 출력한다.
움직임 보상 엔진(230)은 마스터 인터페이스(220)로부터 입력받은 데이터, 예를 들면 8비트 단위의 데이터에 대한 움직임 보상을 수행한다. 보다 구체적으로, 움직임 보상 엔진(230)은 마스터 인터페이스(220)로부터 입력받은 MC 파라미터들, 예를 들면 다수의 코덱 중 어느 하나를 나타내는 코덱 정보, 다수의 색 성분들 중 어느 하나를 나타내는 색 정보, 및 다수의 필터 중 어느 하나를 나타내는 필터 정보에 따라 현재 영상에 대응하는 참조 영상의 화소들을 보간하는 다수의 방식, 예를 들면 수직 리니어 필터, 수평 리니어 필터, 큐빅 필터들 중 적어도 하나의 방식을 이용하여 참조 영상의 화소들의 값으로부터 이 화소들 사이에 위치한 화소의 값을 산출한다.
고 해상도의 영상을 복원하기 위해서, 예를 들면 MPEG4, H.264/AVC, VC1등을 포함하는 동영상 압축 코덱들에서는 움직임 벡터가 참조 영상 내의 화소들, 즉 정수 화소(integer pel)만을 지시하지 않고, 정수 화소들 사이의 1/2에 위치한 1/2 화소(half pel) 또는 정수 화소들 사이의 1/4에 위치한 1/4 화소(quarter pel)도 지시하도록 하고 있다. 따라서, 1/2 화소 및 1/4 화소는 참조 영상에 원래 존재하지 않는 화소들이기 때문에 이 화소들의 값은 화소 보간법을 이용하여 생성하여야만 하고, 전술한 다양한 필터들을 사용하여 필터링을 수행한다.
전술한 움직임 보상 장치(120)의 일반적인 동작을 도 3을 참조하여 설명한다.
도 3에 도시된 것처럼, 일반적인 움직임 보상 과정은 레지스터 셋팅 단계, 예측 단계, 복원 단계로 구성된다. 이러한 각각의 단계는 현재 영상의 매크로블록 단위로 수행된다. 즉, 첫 번째 매크로블록에 대해 레지스터 셋팅(Registers Setting), 예측(Prediction) 및 복원(Reconstruction)이 이루어진 다음에, 두 번째 매크로블록에 대한 움직임 보상, 즉 레지스터 셋팅, 예측 및 복원을 수행한다.
레지스터 셋팅 단계는 움직임 보상 엔진(120)의 전술한 특정 필터 내부의 레지스터 체인들을 설정하는 과정이다. 즉, 필터 내부의 레지스터들을 프로그래밍하고, 레지듀 데이터를 전송한다.
예측 단계는 이번에 복원된 영상을 이용하여 예측 데이터를 생성하는 과정이다. 즉, 현재 영상의 매크로블록에 대응하는 참조 영상의 매크로블록과 움직임 보상 파라미터를 이용하여 움직임 보상 데이터를 생성하는 것이다.
복원 단계는 예측 데이터가 생성된 다음, 예측 데이터와 레지듀 데이터를 합하여 복원 매크로블록을 만든다. 즉, 현재 영상의 매크로블록과 이에 대응하는 참조 영상의 매크로블록의 차이 데이터와, 현재 영상의 매크로블록에 대한 예측 연산에 따른 움직임 보상 데이터를 합하는 것이다.
전술한 레지스터 셋팅 단계, 예측 단계 및 복원 단계는 순차적으로 이루어지며, 매크로블록 단위로 반복적으로 수행한다. 따라서, 이 경우 하나의 매크로블록에 대한 수행 시간이 길어지며, CPU는 새로운 매크로블록에 대한 움직임 보상을 수행하고자 할 경우 이전 매크로블록에 대한 움직임 보상 과정에 종료한 후에만 새로운 매크로블록에 대한 움직임 보상을 수행할 수 있기 때문에, 이전 매크로블록에 대한 움직임 보상이 끝나지 않으면 CPU가 대기하는 일이 발생한다. 이는 임의의 매크로블록에 대한 움직임 보상이 길어지면 CPU의 대기시간이 길어짐을 의미한다.
도 4는 본 발명의 일 실시 예에 따른 움직임 보상 장치(400)의 개략적인 블록도이다.
도 4를 참조하면, 움직임 보상 장치(400)는 슬레이브 인터페이스(410), 제3 메모리(420), 마스터 인터페이스(430), 움직임 보상 엔진(440), 제1 메모리(450), 제2 메모리(460) 및 합산기(470)를 포함한다.
도 2에 도시된 움직임 보상 장치(120)와 비교하여 움직임 보상 엔진(440)에서 출력하는 움직임 보상 데이터를 저장하는 메모리가 제1 메모리(450)와 제2 메모리(460)로 구분되어 있다.
바람직하게, 제1 메모리(450), 제2 메모리(460) 및 제3 메모리(460)는 SRAM으로 구현할 수 있다.
움직임 보상 장치(400)는 임의의 매크로블록, 예를 들면 m번째 매크로블록에 대한 움직임 보상을 수행하고, 그 결과에 따른 m번째 매크로블록에 대한 움직임 보상 데이터를 제1 메모리(450)로 출력하는 예측 과정을 수행함과 동시에 m+1번째 매 크로블록에 대한 레지스터 셋팅 과정을 수행한다. 그리고 m-1번째 매크로블록에 대한 복원 과정이 종료되었는지 여부를 확인한다. 여기서, 복원 과정은 합산기(470)가 제2 메모리(460)에 저장된 움직임 보상 데이터와 제3 메모리(420)에 저장된 레지듀 데이터를 합산하여 이루어진다.
m-1번째 매크로블록에 대한 복원 과정이 종료한 경우, m번째 매크로블록에 대한 예측 과정이 종료되고난 후, 제1 메모리(450)에 저장된 움직임 보상 데이터와 제3 메모리(420)에 저장된 m번째 매크로블록에 대한 레지듀 데이터와 합산하는 복원 과정을 수행한다.
따라서, 현재 영상의 특정 프레임에 대해 특정 크기, 예를 들면 16×16 매크로블록 단위로 분할하여, 매크로블록마다 순차적으로 움직임 보상을 수행함으로써 생기는 단점들을 해결할 수 있다. 즉, 움직임의 보상의 3단계, 레지스터 셋팅, 예측, 복원 과정을 병렬 처리함으로써, 하나의 매크로블록에 대한 움직임 보상 시간을 최소화할 수 있다.
도 5는 본 발명의 다른 실시 예에 따른 움직임 보상 장치(500)의 개략적인 블록도이다.
도 5를 참조하면, 도 4에 도시된 움직임 보상 장치(400)와 비교하여 큐 버퍼(Queue Buffer, 520)가 추가되었다.
큐 버퍼(520)는 마스터 인터페이스(540)에 입력되는 매크로블록에 대한 움직임 보상 파라미터와 제3 메모리(530)에 저장되는 레지듀 데이터를 저장한다.
CPU(도시되지 않음)가 시스템 버스를 통해 움직임 보상 장치(500)의 슬레이 브 인터페이스(510)에 움직임 보상 파라미터와 레지듀 데이터를 전송하면, 우선 큐 버퍼(520)가 움직임 보상 파라미터와 레지듀 데이터를 임시로 저장한다. 그리고 움직임 보상 장치(500)가 현재의 매크로블록에 대한 움직임 보상을 종료하여 영상을 복원한 경우, 다음 매크로블록에 대한 정보들을 큐 버퍼(520)로부터 읽어서 움직임 보상을 수행한다.
도 6은 본 발명의 또 다른 실시 예에 따른 움직임 보상 방법을 설명하기 위한 도면이다.
도 6을 참조하면, 매크로블록에 대한 병렬 처리를 수행하는 움직임 보상 방법을 설명한다.
m번째 매크로블록에 대해, 레지스터 셋팅을 수행하고, 예측을 수행하여, 예측 수행 결과에 따른 움직임 보상 데이터를 제1 메모리(450)에 저장한다. 동시에 m+1번째 매크로블록에 대해 레지스터 셋팅을 수행한다.
m번째 매크로블록에 대해, 제1 메모리(450)에 저장된 움직임 보상 데이터와 제3 메모리(420)에 저장된 레지듀 데이터를 합산하여 복원을 수행한다. 동시에 m+1번째 매크로블록에 대한 레지스터 셋팅이 종료한 경우, m+1번째 매크로블록에 대한 예측을 수행하여, 예측 결과에 따른 움직임 보상 데이터를 제2 메모리(460)에 저장한다. 또한, m+2번째 매크로블록에 대한 레지스터 셋팅을 수행한다.
따라서, m번째, m+1번째, m+2번째... 매크로블록들에 대한 레지스터 셋팅, 예측 및 복원 과정이 오버래핑되어 수행됨으로써 임의의 매크로블록에 대한 움직임 보상 시간을 줄이면서, 전체 영상 복원에 필요한 시간을 감소시킬 수 있다.
도 7은 본 발명의 또 다른 실시 예에 따른 움직임 보상 방법을 설명하기 위한 흐름도이다.
도 7을 참조하면, 단계 700에서, m번째 매크로블록에 대한 레지스터 셋팅을 수행한다. 단계 702에서, m번째 매크로블록에 대한 예측 연산을 수행한다. 여기서, 예측 연산 결과에 따른 움직임 보상 데이터는 도 4에 도시된 제1 메모리(450)에 저장된다. 단계 702와 동시에, 단계 704에서, m+1번째 매크로블록에 대한 레지스터 셋팅을 수행한다. 단계 706에서, m-1번째 매크로블록에 대한 복원 연산이 종료되었는지 여부를 확인한다. m-1번째 매크로블록에 대한 복원 연산을 위한 움직임 보상 데이터는 제2 메모리(460)에 저장되어 있고, 레지듀 데이터는 제3 메모리(420)에 저장되어 있다.
단계 706에서, m-1번째 매크로블록에 대한 복원 연산이 종료된 경우, 단계 708로 진행하여, 단계 702에서 수행한 m번째 매크로블록에 대한 예측 연산이 종료되었는지 확인한다. 단계 708에서, m번째 매크로블록에 대한 예측 연산이 종료된 경우, 단계 710으로 진행하여, m번째 매크로블록에 대한 복원 연산을 수행한다. 여기서, 복원 연산은 제1 메모리(450)에 저장된 움직임 보상 데이터와 제3 메모리(420)에 저장된 레지듀 데이터를 합산하여 이루어진다.
이어, 단계 712에서, 단계 704에서 수행한 m+1번째 매크로블록에 대한 레지스터 셋팅이 종료되었는지 여부를 확인한다. 단계 712에서, m+1번째 매크로블록에 대한 레지스터 셋팅이 종료된 경우, 단계 714로 진행하여 m+1번째 매크로블록에 대한 예측 연산을 수행한다.
전술한 700 내지 714의 과정을 모든 매크로블록에 대해 반복적으로 수행하고, 전체 영상을 복호화한다.
한편, 본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
이제까지 본 발명에 대하여 바람직한 실시 예를 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 본 발명을 구현할 수 있음을 이해할 것이다. 그러므로 상기 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 한다.
도 1은 일반적인 움직임 보상 장치(120)를 포함하는 동영상 복호화 시스템(100)의 개략적인 블록도이다.
도 2는 도 1에 도시된 움직임 보상 장치(120)의 개략적인 블록도이다.
도 3은 일반적인 움직임 보상을 이용한 동영상 복호화 과정을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시 예에 따른 움직임 보상 장치(400)의 개략적인 블록도이다.
도 5는 본 발명의 다른 실시 예에 따른 움직임 보상 장치(500)의 개략적인 블록도이다.
도 6은 본 발명의 또 다른 실시 예에 따른 움직임 보상 방법을 설명하기 위한 도면이다.
도 7은 본 발명의 또 다른 실시 예에 따른 움직임 보상 방법을 설명하기 위한 흐름도이다.
<도면의 주요 부분에 대한 부호의 설명>
100: 동영상 복호화 시스템 110: CPU
120: 움직임 보상 장치 200: 슬레이브 인터페이스
210, 240: SRAM 220: 마스터 인터페이스
230: 움직임 보상 엔진 250: 합산기
510: 큐 버퍼 400, 500: 움직임 보상 장치

Claims (14)

  1. (a) 현재 영상의 m번째 매크로블록의 움직임 보상을 위한 레지스터를 설정하는 단계;
    (b) 상기 m번째 매크로블록에 대한 예측 연산을 수행하면서, m+1번째 매크로 블록의 움직임 보상을 위한 레지스터를 설정하는 단계; 및
    (c) 상기 예측 연산 결과를 기초로 상기 m번째 매크로블록에 대한 복원 연산을 수행하면서, 상기 m+1번째 매크로블록에 대한 예측 연산을 수행하는 단계를 포함하는 움직임 보상 방법.
  2. 제 1 항에 있어서,
    상기 m번째 매크로블록에 대한 예측 연산에 따른 움직임 보상 데이터와, 상기 m+1번째 매크로블록에 대한 예측 연산에 따른 움직임 보상 데이터는 서로 다른 메모리에 각각 저장되는 것을 특징으로 하는 움직임 보상 방법.
  3. 제 1 항에 있어서,
    상기 (c) 단계는,
    상기 m+1번째 매크로블록에 대한 레지스터 설정이 종료되었는지 확인하는 단계를 더 포함하고,
    상기 m+1번째 매크로블록에 대한 레지스터 설정이 종료된 경우, 상기 m+1번 째 매크로블록에 대한 예측 연산을 수행하는 것을 특징으로 하는 움직임 보상 방법.
  4. 제 1 항에 있어서,
    상기 (b) 단계 다음에,
    상기 현재 영상의 m-1번째 매크로블록에 대한 복원 연산이 종료되었는지 확인하는 단계; 및
    상기 m-1번째 매크로블록에 대한 복원 연산이 종료된 경우, 상기 m번째 매크로블록에 대한 예측 연산이 종료되었는지 확인하는 단계를 더 포함하는 것을 특징으로 하는 움직임 보상 방법.
  5. 제 1 항에 있어서,
    상기 (c) 단계는,
    상기 m번째 매크로 블록에 대한 예측 연산이 종료된 경우, 상기 m번째 매크로블록에 대한 복원 연산을 수행하는 것을 특징으로 하는 움직임 보상 방법.
  6. 제 1 항에 있어서,
    상기 예측 연산은,
    상기 현재 영상의 m번째 매크로블록에 대응하는 참조 영상의 m번째 매크로블록과 상기 m번째 매크로블록에 대한 움직임 보상 파라미터를 이용하여 움직임 보상 데이터를 생성하는 것을 특징으로 하는 움직임 보상 방법.
  7. 제 1 항에 있어서,
    상기 복원 연산은,
    상기 현재 영상의 m번째 매크로블록과 이에 대응하는 참조 영상의 m번째 매크로블록의 차이인 레지듀 데이터와, 상기 m번째 매크로블록에 대한 예측 연산에 따른 움직임 보상 데이터를 합하는 것을 특징으로 움직임 보상 방법.
  8. 제 1 항에 있어서,
    상기 (c) 단계는,
    상기 현재 영상의 m+2번째 매크로블록에 대한 레지스터 설정하는 단계를 더 포함하는 것을 특징으로 하는 움직임 보상 방법.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 따른 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체.
  10. 현재 영상의 매크로블록들에 대한 움직임 보상 파라미터와, 상기 현재 영상의 매크로블록들에 대응하는 참조 영상의 매크로블록들을 이용하여 움직임 보상 데이터를 생성함으로써 예측 연산을 수행하는 움직임 보상 엔진;
    상기 움직임 보상 엔진으로부터 출력된 상기 현재 영상의 m번째 매크로블록 의 움직임 보상 데이터를 저장하는 제1 메모리;
    상기 움직임 보상 엔진으로부터 출력된 상기 현재 영상의 m+1번째 매크로블록의 움직임 보상 데이터를 저장하는 제2 메모리;
    상기 현재 영상의 매크로블록과 참조 영상의 매크로블록의 차이인 레지듀 데이터를 저장하는 제3 메모리; 및
    상기 제1 메모리에 저장된 상기 m번째 매크로블록의 움직임 보상 데이터와 상기 제3 메모리에 저장된 상기 m번째 매크로블록에 대한 레지듀 데이터, 또는 상기 제2 메모리에 저장된 m+1번째 매크로블록의 움직임 보상 데이터와 상기 제3 메모리에 저장된 상기 m+1번째 매크로블록에 대한 레지듀 데이터를 합산하여 복원하는 합산기를 포함하는 움직임 보상 장치.
  11. 제 10 항에 있어서,
    상기 현재 영상의 매크로블록들에 대한 움직임 보상 파라미터와, 상기 현재 영상의 매크로블록들에 대응하는 참조 영상의 매크로블록들의 입출력하는 슬레이브 인터페이스; 및
    상기 슬레이브 인터페이스로부터 입력된 움직임 보상 파라미터를 상기 움직임 보상 엔진에 출력하고, 상기 합산기에서 입력된 복원된 매크로블록들을 출력하는 마스터 슬레이브를 더 포함하는 것을 특징으로 하는 움직임 보상 장치.
  12. 제 11 항에 있어서,
    상기 현재 영상의 매크로블록들에 대한 움직임 보상 파라미터와, 상기 현재 영상의 매크로블록들에 대응하는 참조 영상의 매크로블록들을 임시 저장하는 큐 버퍼를 더 포함하는 것을 특징으로 하는 움직임 보상 장치.
  13. 제 10 항에 있어서,
    상기 m번째 매크로블록에 대한 복원과 상기 m+1번째 매크로블록에 대한 예측은 동시에 수행되는 것을 특징으로 하는 움직임 보상 장치.
  14. 제 10 항에 있어서,
    상기 제1 메모리, 상기 제2 메모리 및 상기 제3 메모리는 SRAM인 것을 특징으로 하는 움직임 보상 장치.
KR1020080002339A 2008-01-08 2008-01-08 움직임 보상 방법 및 장치 KR101439848B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080002339A KR101439848B1 (ko) 2008-01-08 2008-01-08 움직임 보상 방법 및 장치
US12/081,863 US8284836B2 (en) 2008-01-08 2008-04-22 Motion compensation method and apparatus to perform parallel processing on macroblocks in a video decoding system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080002339A KR101439848B1 (ko) 2008-01-08 2008-01-08 움직임 보상 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20090076413A KR20090076413A (ko) 2009-07-13
KR101439848B1 true KR101439848B1 (ko) 2014-09-17

Family

ID=40844526

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080002339A KR101439848B1 (ko) 2008-01-08 2008-01-08 움직임 보상 방법 및 장치

Country Status (2)

Country Link
US (1) US8284836B2 (ko)
KR (1) KR101439848B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012014174A1 (de) * 2012-07-16 2014-01-16 Rational Aktiengesellschaft Verfahren zur Anzeige von Parametern eines Garprozesses und Anzeigevorrichtung für ein Gargerät

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060027808A (ko) * 2003-06-23 2006-03-28 인텔 코오퍼레이션 데이터 구동 아키텍처에서의 선택가능한 하드웨어가속기들을 위한 장치 및 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781788A (en) * 1995-05-08 1998-07-14 Avc Technology, Inc. Full duplex single clip video codec
JP3982890B2 (ja) 1997-08-06 2007-09-26 富士通株式会社 研磨装置、この装置に用いられる研磨治具、及び、この研磨治具に取り付けられる被研磨物取付部材
US5963222A (en) * 1997-10-27 1999-10-05 International Business Machines Corporation Multi-format reduced memory MPEG decoder with hybrid memory address generation
KR100291628B1 (ko) 1999-06-19 2001-05-15 윤덕용 3차원 그래픽 텍스쳐 맵핑용 캐쉬 메모리 및 그의 캐쉬 미스페널티 저감방법
US6850568B1 (en) * 2000-01-12 2005-02-01 Sony Corporation Method and apparatus for decoding mpeg video signals
US6999087B2 (en) * 2002-03-12 2006-02-14 Sun Microsystems, Inc. Dynamically adjusting sample density in a graphics system
US7034897B2 (en) * 2002-04-01 2006-04-25 Broadcom Corporation Method of operating a video decoding system
US8284844B2 (en) * 2002-04-01 2012-10-09 Broadcom Corporation Video decoding system supporting multiple standards
JP2005157783A (ja) * 2003-11-26 2005-06-16 Hitachi Ltd 実行予約可能なアクセラレータを備えたプロセッサシステム
US7983342B2 (en) * 2004-07-29 2011-07-19 Stmicroelectronics Pvt. Ltd. Macro-block level parallel video decoder
CN100534193C (zh) * 2004-08-04 2009-08-26 松下电器产业株式会社 图像解码装置
JP4367337B2 (ja) * 2004-12-28 2009-11-18 セイコーエプソン株式会社 マルチメディア処理システム及びマルチメディア処理方法
US20080031333A1 (en) * 2006-08-02 2008-02-07 Xinghai Billy Li Motion compensation module and methods for use therewith
JP2008042497A (ja) * 2006-08-04 2008-02-21 Seiko Epson Corp デコード装置、情報再生装置及び電子機器
JP4789200B2 (ja) * 2006-08-07 2011-10-12 ルネサスエレクトロニクス株式会社 動画符号化と動画復号とのいずれかを実行する機能モジュールおよびそれを含む半導体集積回路

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060027808A (ko) * 2003-06-23 2006-03-28 인텔 코오퍼레이션 데이터 구동 아키텍처에서의 선택가능한 하드웨어가속기들을 위한 장치 및 방법

Also Published As

Publication number Publication date
US20090175345A1 (en) 2009-07-09
KR20090076413A (ko) 2009-07-13
US8284836B2 (en) 2012-10-09

Similar Documents

Publication Publication Date Title
JP4182442B2 (ja) 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体
US10051273B2 (en) Video decoder and video decoding method
KR100995205B1 (ko) 비디오 데이터 처리
US10334271B2 (en) Encoding system using motion estimation and encoding method using motion estimation
KR20220162786A (ko) 비디오 코딩에서 심층 신경 네트워크 기반 인터프레임 예측을 위한 방법 및 장치
US9300975B2 (en) Concurrent access shared buffer in a video encoder
KR101439848B1 (ko) 움직임 보상 방법 및 장치
De Souza et al. OpenCL parallelization of the HEVC de-quantization and inverse transform for heterogeneous platforms
CN114727116A (zh) 编码方法及装置
JP6317720B2 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム
US20240073425A1 (en) Image encoding apparatus and image decoding apparatus both based on artificial intelligence, and image encoding method and image decoding method performed by the image encoding apparatus and the image decoding apparatus
US20220337866A1 (en) Inter-frame prediction method, encoder, decoder and storage medium
US20240046527A1 (en) End-to-end optimization of adaptive spatial resampling towards machine vision
Shao et al. Lossless VLSI oriented full computation reusing algorithm for H. 264/AVC fractional motion estimation
Jo et al. Flexible multi-core platform for a multiple-format video decoder
JP2016054512A (ja) 動画像復号装置、動画像復号方法、動画像復号プログラム
Ilic et al. Scheduling and load balancing for multi-module applications on heterogeneous systems
JP2016054514A (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム
CN116437083A (zh) 视频处理方法和视频处理装置
JP2017127034A (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: 20170830

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180830

Year of fee payment: 5