KR101221874B1 - 영상 처리 장치 - Google Patents

영상 처리 장치 Download PDF

Info

Publication number
KR101221874B1
KR101221874B1 KR1020090031777A KR20090031777A KR101221874B1 KR 101221874 B1 KR101221874 B1 KR 101221874B1 KR 1020090031777 A KR1020090031777 A KR 1020090031777A KR 20090031777 A KR20090031777 A KR 20090031777A KR 101221874 B1 KR101221874 B1 KR 101221874B1
Authority
KR
South Korea
Prior art keywords
distortion
mode
rate
value
inter
Prior art date
Application number
KR1020090031777A
Other languages
English (en)
Other versions
KR20100063620A (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 US12/540,722 priority Critical patent/US20100135396A1/en
Publication of KR20100063620A publication Critical patent/KR20100063620A/ko
Application granted granted Critical
Publication of KR101221874B1 publication Critical patent/KR101221874B1/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
    • H04N19/567Motion estimation based on rate distortion criteria
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction

Landscapes

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

Abstract

본 발명의 실시예에 따른 영상 처리 장치는 복수의 연산부들 및 상기 복수의 연산부를 제어하고, 현재 프레임 및 복수의 참조 프레임들 중 적어도 하나에 대한 탐색 영역을 설정하고, 상기 탐색 영역으로부터 발생 비트량을 산출하기 위한 제어부를 포함한다.
상기 복수의 연산부들 중 적어도 하나는 현재 프레임 및 상기 복수의 참조 프레임들 중 적어도 하나의 프레임을 입력 받고, 상기 입력 받은 적어도 하나의 프레임으로부터 복수의 부호화 모드들 각각에 대한 왜곡치를 산출하고, 상기 각각의 왜곡치와 상기 제어부터 전송된 발생 비트량을 이용하여 상기 복수의 부호화 모드들 각각의 율-왜곡 비용값을 계산한다. 그리고, 영상 처리 장치는 산출된 율-왜곡 비용값들 중 최소의 율-왜곡 비용값을 가지는 부호화 모드를 결정한다.
따라서, 본 발명은 먼저 최적의 부호화 모드를 결정하고, 움직임 추정 및 보상, 양자화, 가변길이 부호화, 역양자화 등의 과정을 수행한다.

Description

영상 처리 장치{IMAGE PROCESSING DEVICE}
본 발명은 영상 처리 장치에 관한 것으로, 더욱 상세하게는 율-왜곡 최적화 기술에 따른 최적의 부호화 모드를 제공하는 영상 처리 장치에 관한 것이다.
본 발명은 지식경제부 및 정보통신연구진흥원의 IT원천기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호 : 2006-S-006-03, 과제명 : 유비쿼터스 단말용 부품 모듈].
동영상 부호화 표준 중에 H.264/AVC는 전기통신에 관한 국제표준화기구인 ITU-T 권고의 H 시리즈 중 2003년 ISO의 MPEG과 공동으로 개발된 표준이다. H.264/AVC는 동영상 컨텐츠들의 대용량화에 적합하도록 매우 높은 압축률을 주요 기술적 목표로 하고 있으며, 방송, 인터넷, 저장 매체 등 거의 모든 환경에서 상용될 수 있는 범용 동영상 부호화 기술이다.
H.264/AVC는 기존의 압축 표준들 보다 다양하고, 우수한 특성들을 가지고 있다.
특히, H.264/AVC에는 부호화 모드를 결정하기 위해서 인터 모드(Inter Mode), 인트라 모드(Intra Mode), 스킵 모드(Skip Mode) 등 부호화 모드들 중에서 가장 최적의 모드를 선택하기 위해 율-왜곡 최적화(RDO : Rate-Distortion Optimization) 기술이 사용된다. 율-왜곡 최적화 기술은 최적의 모드를 선택하기 위하여 모든 부호화 모드에 대해서 움직임 추정, 인트라 모드 연산 및 스킵 조건 검사를 수행한다. 따라서, 율-왜곡 최적화 기술이 적용된 H.264/AVC는 계산이 복잡하고, 연산량이 많다.
본 발명의 목적은 먼저 최적의 부호화 모드를 결정하고, 움직임 추정 및 보상, 양자화, 가변길이 부호화, 역양자화 등의 과정을 수행하는 것이다.
또한, 본 발명의 목적은 최적의 부호화 모드에 따라 움직임 추정 및 보상, 양자화 및 역양자화를 병렬적으로 처리하는 영상 처리 장치를 제공하는 것이다.
본 발명의 실시예에 따른 영상 처리 장치는 복수의 연산부들 및 율-왜곡 비용값을 산출하기 위한 발생 비트량을 저장하고, 상기 복수의 연산부 각각에 상기 발생 비트량을 전송하는 제어부를 포함하되, 상기 복수의 연산부들 중 적어도 하나는 복수의 부호화 모드들에 대한 각각의 왜곡치를 산출하고, 상기 산출된 각각의 왜곡치와 상기 발생 비트량을 이용하여 상기 복수의 부호화 모드들에 대한 각각의 율-왜곡 비용값을 계산한다.
실시예로서, 상기 제어부는 상기 계산된 각각의 율-왜곡 비용값들 중 최소값을 가지는 부호화 모드를 결정한다.
실시예로서, 상기 복수의 연산부들 각각은 상기 결정된 부호화 모드에 따라 움직임 추정 및 보상 과정, 양자화 과정, 가변길이 부호화 과정 및 역양자화 과정을 순차적으로 수행한다.
실시예로서, 상기 복수의 연산부들은 상기 결정된 부호화 모드에 따라 움직임 추정 및 보상 과정, 양자화 과정 및 역양자화 과정을 병렬적으로 수행한다.
실시예로서, 상기 제어부는 상기 계산된 각각의 율-왜곡 비용값들 중 최소값을 가지는 부호화 모드를 결정한다.
실시예로서, 상기 복수의 부호화 모드들은 inter 16x16 mode, inter 8x16 mode, inter 16x8 mode, inter 8x8 mode, inter 8x4 mode, inter 4x8 mode 및 inter 4x4 mode 중 적어도 하나를 포함한다.
실시예로서, 상기 왜곡치는 SAD 연산 방법 및 SSD 연산 방법 중 어느 하나에 의하여 산출된다.
실시예로서, 상기 제어부는 상기 복수의 부호화 모드들에 대한 라그랑제 상수를 저장하고, 상기 율-왜곡 비용값은 상기 발생 비트량 및 상기 라그랑제 상수를 곱한 값과 상기 왜곡치를 합한다.
실시예로서, 상기 발생 비트량은 추정된 움직임 벡터와 추정된 움직임 벡터들이 평균된 평균 움직임 벡터의 차이값, 그리고 상기 추정된 움직임 벡터를 생성하기 위하여 참조된 참조 프레임의 인덱스를 가변길이 부호화하여 생성된다.
본 발명은 먼저 최적의 부호화 모드를 결정하고, 움직임 추정 및 보상, 양자 화, 가변길이 부호화, 역양자화 등의 과정을 수행한다.
또한, 본 발명은 먼저 결정된 최적의 부호화 모드에 따라 움직임 추정 및 보상, 양자화 및 역양자화를 병렬적으로 처리할 수 있다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 본 발명의 실시예를 첨부된 도면을 참조하여 설명한다.
도 1은 본 발명의 실시예에 따른 영상 처리 시스템을 도시한 블록도이다. 도 1을 참조하면, 영상 처리 시스템(1000)은 영상 처리 장치(100), 롬(ROM, 200), 램(RAM, 300), 저장 장치(Storage Device, 400) 및 디스플레이 장치(Display Device, 500)를 포함한다.
영상 처리 장치(100)는 영상 데이터를 처리하기 위한 장치이다. 영상 처리 장치(100)는 데이터 처리를 위해, 부호화 모드 결정, 움직임 추정 및 보상, 역양자화, 가변길이 부호화 및 역양자화 과정 등을 실행한다. 영상 처리 장치(100)는 데이터 처리 결과로서, 비트스트림(Bitstream)을 생성한다. 본 발명의 실시예에 따른 영상 처리 장치(100)의 구조 및 동작 원리는 도 2에서 상세히 설명된다.
롬(200)은 전원이 끊어져도 정보가 없어지지 않는 불휘발성(non-volatile) 기억장치이다. 롬(200)은 영상 처리 시스템(1000)을 부팅(Booting)하기 위한 부트 코드(boot code)를 저장한다.
램(300)은 저장 장치(400)에 저장할 데이터나 저장 장치(400)로부터 읽은 데 이터를 임시로 저장하기 위한 메모리이다. 또한, 램(300)은 영상 처리 시스템(1000)의 데이터 처리를 위한 워킹 메모리(working memory) 또는 버퍼 메모리(buffer memory)로 사용될 수도 있다. 한편, 램(300)은 빠른 데이터 처리를 위해 랜덤 액세스가 가능한 SRAM(Static Random Access Memory) 또는 DRAM(Dynamic Random Access Memory) 등으로 구현될 수 있다.
저장 장치(400)는 영상 데이터를 저장한다. 여기에서, 영상 데이터에는 현재 프레임 데이터 및 복수의 참조 프레임 데이터가 포함될 수 있다. 복수의 참조 프레임 데이터란 현재 프레임 데이터 이전에 입력된 데이터를 의미한다. 저장 장치(400)에는 대용량의 영상 데이터를 저장할 수 있는 하드 디스크 장치(HDD)나 솔리드 스테이트 디스크(SSD)나 플래시 메모리 장치 등이 포함될 수 있다.
디스플레이 장치(500)는 영상 처리 장치(100)로부터 전송된 비트스트림을 화면에 출력한다. 디스플레이 장치(500)는 LCD 모니터(Monitor) 또는 CRT 모니터 등을 포함할 것이다.
도 1에 도시된 영상 처리 시스템(1000)은 영상 데이터를 처리하기 위한 영상 처리 장치(100)를 포함한다. 영상 처리 장치(100)는 먼저 최적의 부호화 모드를 결정한다. 그리고 영상 처리 장치(100)는 최적의 부호화 모드를 이용하여, 움직임 추정 및 보상, 양자화, 가변길이 부호화, 역양자화 과정을 순차적으로 수행할 수 있다. 또한, 영상 처리 장치(100)는 최적의 부호화 모드를 이용하여, 움직임 추정 및 보상, 양자화 및 역양자화 과정을 병렬적으로 처리할 수 있다.
도 2는 도 1에 도시된 영상 처리 장치를 예시적으로 도시한 블록도이다. 도 2를 참조하면, 영상 처리 장치(100)는 제어부(101) 및 제1 내지 제4 연산부(110-140)를 포함한다.
제어부(101)는 데이터 메모리(102) 및 레지스터 파일부(103)를 포함한다. 데이터 메모리(102)는 제 1 내지 제 4 연산부(110-140)를 제어하기 위한 명령어나, 이들을 처리하기 위한 어드레스 또는 데이터를 저장한다. 레지스터 파일부(103)는 중앙 처리 장치 내에 프로세서 레지스터들의 어레이를 의미한다. 일반적으로, 레지스터 파일부(103)는 SRAM으로 구현된다. 레지스터 파일부(103)는 데이터 메모리(102)에 저장된 명령어 또는 데이터를 제1 내지 제4 연산부(110-140)에 전송한다. 또는, 레지스터 파일부(103)는 제1 내지 제4 연산부(110-140)로부터 전송된 데이터를 임시로 저장한다.
한편, 데이터 메모리(102)는 발생 비트량 및 라그랑제 상수를 저장한다. 여기에서, 발생 비트량은 생성된 움직임 벡터와 예측된 움직임 벡터의 차이값 그리고 움직임 벡터를 생성하기 위하여 참조된 참조 프레임의 인덱스를 가변길이 부호화할 때 발생되는 비트량이다. 그리고 라그랑제 상수는 율-왜곡 비용값을 생성하기 위하여 제공되는 상수이다.
발생 비트량은 복수의 참조 프레임들에 각각 포함된 모든 탐색점에 대하여 산출된다. 발생 비트량은 최적의 부호화 모드 결정 이전에 산출되어 데이터 메모리(102)에 저장된다. 발생 비트량을 계산하는 방법은 도 3을 참조하여 상세하게 설명된다.
도 3a 및 도 3b는 발생 비트량을 계산하는 방법을 보여주기 위한 개념도이 다. 도 3a는 제1 내지 제M 참조 프레임을 도시한 개념도이고, 도 3b는 도 3a에 도시된 참조 프레임에 대한 N개의 탐색점을 도시한 개념도이다.
도 3a을 참조하면, 제1 내지 제M 참조 프레임(REF1-REFM) 각각은 주변 영역과 탐색 영역을 포함한다. 이하에서는, 제1 참조 프레임(REF1)을 참조하여 움직임 벡터가 생성되는 것으로 가정한다.
탐색 영역은 X축으로 2A + 2B, 그리고 Y축으로 2C + 2D을 가정한다. 또한, 탐색 영역 내에서 움직임 벡터 Vi(Vx, Vy)의 범위는 Vx[-A, +B], Vy[-C, +D]으로 가정한다.
도 3b를 참조하면, 탐색 영역은 N개의 탐색점을 포함한다. N개의 탐색점 각각은 하나의 움직임 벡터 Vi (1 ≤ i ≤ N)를 포함한다. 제1 움직임 벡터 V1는 제1 탐색점에 대응하는 움직임 벡터이다. 하나의 움직임 벡터 Vi를 산출하기 위하여 여러 개의 참조 프레임이 사용될 수 있다. 이 때, 사용된 참조 프레임은 REFj(1 ≤ j ≤ M)으로 표시된다. 'j'는 참조 프레임의 인덱스(Index)를 나타낸다. 참조 프레임은 현재 프레임에 대한 이전 프레임들이 될 것이다.
제1 탐색점에 대한 발생 비트량은 추정된 제1 움직임 벡터 V1와 평균된 움직임 벡터의 차이값 그리고 참조된 참조 프레임(REFj)의 인덱스(j)를 가변길이 부호화하여 산출된다. 평균된 움직임 벡터는 N개의 움직임 벡터들(V1-VN)을 평균하여 산출 한다. 산출된 발생 비트량은 도 2에 도시된 데이터 메모리(102)에 저장된다. 본 발명의 실시예에 따른 데이터 메모리(102)의 메모리맵(Memory Map)은 도 4에 도시된다.
도 4은 도 2에 도시된 데이터 메모리의 메모리맵을 도시한 블록도이다. 도 2 및 도 4를 참조하면, 한 개의 움직임 벡터 Vi을 산출하기 위하여 M개의 참조 프레임(REF1 - REFM)이 사용된다.
데이터 메모리(102)는 제1 참조화면(REF1)에 대한 상기 N개 탐색점들의 발생 비트량, 제2 참조화면(REF2)에 대한 N개 탐색점들의 발생 비트량, 계속하여 제M 참조화면(REFM)에 대한 N개 탐색점들의 발생 비트량, 그리고 마지막으로 라그랑제 상수값(λmotion(Qp))을 저장한다.
다시 도 2를 참조하면, 영상 처리 장치(100)는 제 1 내지 제 4 연산부(110-140)를 포함한다. 제1 내지 제4 연산부(110-140) 각각은 동일한 동작 원리를 갖는다. 따라서, 제1 연산부(110)에 대한 설명으로 제2 내지 제4 연산부(120-140)의 설명을 갈음한다. 또한, 영상 처리 장치(100)는 4개의 연산부를 예시하였으나, 그보다 적거나 더 많은 연산부를 포함할 수 있다.
제1 연산부(110)는 제1 레지스터(Register1 ; 111) 및 제1 로컬 메모리(Local Memory1 ; 112)를 포함한다. 제1 레지스터(111)는 제1 연산부(110)가 실행할 명령어 코드 및 이에 따른 데이터 등을 저장한다. 또한, 제1 레지스터(111)는 제어부(101)로부터 전송된 데이터 또는 명령어를 임시로 저장한다.
제1 연산부(110)는 부호화 모드 결정, 움직임 추정 및 보상, 양자화, 가변길이 부호화 및 역양자화 단계를 순차적으로 수행할 수 있다. 제 2 내지 제 4 연산부(120-140)도 각각 이들 단계를 순차적으로 수행할 수 있다.
한편, 제 1 내지 제 4 연산부(110-140)는 먼저 결정된 최적의 부호화 모드에 따라 움직임 추정 및 보상, 양자화 및 역양자화를 병렬적으로 처리할 수 있다. 예를 들면, 제1 연산부(110)는 최적의 부호화 모드에 따라 움직임 추정 및 보상 과정을 실행하고, 제2 연산부(120)는 양자화 과정을 실행하고, 제3 연산부(130)는 역양자화 과정을 실행할 수 있다. 제1 내지 제4 연산부(110-140) 각각의 동작은 도 5를 통하여 설명된다.
도 5은 도 2에 도시된 제1 내지 제4 연산부의 동작을 도시한 순서도이다.
도 2 및 도 5를 참조하면, 제1 내지 제4 연산부(110-140) 각각은 부호화 모드 결정 단계(S11), 움직임 추정 및 보상 단계(S12), 양자화 단계(S13), 가변길이 부호화 단계(S14) 및 역양자화 단계(S15)를 순차적으로 수행할 수 있다.
부호화 모드 결정 단계(S11)에서 복수의 부호화 모드들 중 최소의 율-왜곡 비용값을 가지는 부호화 모드가 결정된다. 최소의 율-왜곡 비용값을 가지는 부호화 모드에 따라 움직임 벡터를 산출하는 경우 최적의 움직임 벡터가 산출될 수 있다.
본 발명의 실시예에 따른 부호화 모드는 inter 16x16 mode, inter 8x16 mode, inter 16x8 mode, inter 8x8 mode, inter 8x4 mode, inter 4x8 mode 및 inter 4x4 mode를 예시한다.
부호화 모드 결정 단계(S11)는 왜곡치를 계산하고, 상기 계산된 왜곡치와 발생 비트량을 이용하여 율-왜곡 비용값을 계산하는 단계 및 상기 계산된 율-왜곡 비용값들 중 최소의 율-왜곡 비용값을 가지는 부호화 모드를 결정하는 단계를 포함한다.
일반적으로 왜곡치를 계산하는 방법으로는 SAD(Sum of Absolute Difference) 및 SSD(Sum of Square Difference) 등이 있다. SAD 연산 방법이 SSD 연산 방법보다 연산량이 작기 때문에, SAD 연산 방법이 주로 사용된다. SAD 연산 방법은 현재 프레임과 참조 프레임들의 차를 합산하는 것이다.
율-왜곡 비용값은 수학식 1에 따라 산출된다.
율-왜곡 비용값 = 왜곡치 + λmotion ( Qp ) * Rmotion
λmotion ( Qp )는 라그랑제 상수(Lagrangian constant)이다. Rmotion는 발생 비트량이다. 즉, 율-왜곡 비용값은 발생 비트량과 라그랑제 상수의 곱에 왜곡치를 합한 것이다.
움직임 추정 및 보상 단계(S12)에서는 S11 단계에서 결정된 부호화 모드에 따라 현재 프레임과 참조 프레임을 비교하여 움직임 추정 및 보상된 영상 데이터가 생성된다.
양자화 단계(S13)에서는 상기 움직임 추정 및 보상된 영상 데이터가 양자화된다.
가변길이 부호화 단계(S14)에서는 양자화된 영상데이터에 대하여 발생확률이 높은 영상 데이터는 짧은 부호로 부호화되고, 발생확률이 낮은 영상 데이터는 긴 부호로 부호화된다.
역양자화 단계(S15)에서는 가변 부호화된 영상 데이터가 역양자화된다. 역양자화된 영상 데이터는 부호화 모드 결정 단계(S11) 및 움직임 추정 및 보상 단계(S12)에서 참조 프레임으로 사용된다.
다시 도 2을 참조하면, 제어부(101)는 발생 비트량 및 라그랑제 상수값을 데이터 메모리(102)에 저장한다. 레지스터 파일부(103)은 데이터 메모리(102)에 저장된 발생 비트량 및 라그랑제 상수값을 제1 내지 제4 레지스터(111, 121, 131, 141)에 각각 전송한다.
제1 연산부(110)는 제1 레지스터(111)에 저장된 비트 발생량과 라그랑제 상수값을 제1 로컬 메모리(112)에 저장한다. 제2 연산부(120)는 제2 레지스터(121)에 저장된 비트 발생량과 라그랑제 상수값을 제2 로컬 메모리(122)에 저장한다. 제3 연산부(130)는 제3 레지스터(131)에 저장된 비트 발생량과 라그랑제 상수값을 제3 로컬 메모리(132)에 저장한다. 그리고 제4 연산부(140)는 제4 레지스터(141)에 저장된 비트 발생량과 라그랑제 상수값을 제4 로컬 메모리(142)에 저장한다. 제1 내지 제4 연산부(110-140) 각각은 부호화 모드 결정 동작을 실행한다.
일반적으로 율-왜곡 최적화(RDO : Rate-Distortion Optimization) 기술을 이용한 최적의 부호화 모드는 모든 부호화 모드들에 대하여 움직임 추정 및 보상, 양자화, 가변길이 부호화 및 역양자화 단계를 수행하여 결정된다.
따라서, 본 발명은 먼저 최적의 부호화 모드를 결정하고, 움직임 추정 및 보상, 양자화, 가변길이 부호화, 역양자화 등의 과정을 수행한다. 또한, 본 발명은 먼저 결정된 최적의 부호화 모드에 따라 움직임 추정 및 보상, 양자화 및 역양자화를 병렬적으로 처리할 수 있다. 예를 들면, 제1 연산부(110)는 최적의 부호화 모드에 따라 움직임 추정 및 보상 과정을 실행한다. 제2 연산부(120)는 양자화 과정을 실행한다. 그리고 제3 연산부(130)는 역양자화 과정을 실행한다.
또 다른 예를 들면,. 제1 연산부(110)는 4X4 블록에 대한 SAD 연산 방법을 적용하여 왜곡치를 계산한다. 제1 연산부(110)는 계산된 왜곡치와 제1 로컬 메모리(112)에 저장된 발생 비트량을 이용하여 4X4 블록에 대한 율-왜곡 비용을 연산한다
제2 연산부(120)는 8X4 및 4x8 블록에 대한 SAD 연산 방법을 적용하여 왜곡치를 계산한다. 제2 연산부(120)는 계산된 왜곡치와 제2 로컬 메모리(122)에 저장된 발생 비트량을 이용하여 8X4 및 4x8 블록에 대한 율-왜곡 비용을 연산한다
제3 연산부(130)는 8X8 블록에 대한 SAD 연산 방법을 적용하여 왜곡치를 계산한다. 제3 연산부(130)는 계산된 왜곡치와 제3 로컬 메모리(132)에 저장된 발생 비트량을 이용하여 8X8 블록에 대한 율-왜곡 비용을 연산한다
그리고, 제4 연산부(140)는 16X16 블록에 대한 SAD 연산 방법을 적용하여 왜곡치를 계산한다. 제4 연산부(140)는 계산된 왜곡치와 제4 로컬 메모리(142)에 저장된 발생 비트량을 이용하여 16X16 블록에 대한 율-왜곡 비용을 연산한다.
이하에서, 제1 연산부(110)가 부호화 모드를 결정하는 것으로 가정하고, 제1 연산부(110)를 중심으로 동작을 설명한다.
도 6a 및 도 6b는 도 5에 도시된 부호화 모드 결정 동작을 구체적으로 도시한 순서도이다. 도 2, 도 6a 및 도 6b을 참조하면, 도 3a에 도시된 바와 같이 제1 연산부(110)는 참조 프레임으로부터 탐색 영역을 설정한다. 도 3b에 도시된 바와 같이 제1 연산부(110)는 탐색 영역에 N개의 탐색점을 설정한다.
S111 단계에서, 제1 연산부(110)는 제1 탐색점을 선택한다. 제1 연산부(110)는 16개의 4X4 블록에 대한 SAD 연산 방법을 적용하여 왜곡치를 계산한다. 제1 연산부(110)는 계산된 왜곡치와 제1 로컬 메모리(112)에 저장된 발생 비트량을 이용하여 16개의 4X4 블록에 대한 율-왜곡 비용값을 연산하고, S112 단계를 진행한다. 바람직한 실시예에 따라, 왜곡치는 SAD 연산 방법을 적용하여 계산된다.
S112 단계에서, 제1 연산부(110)는 제1 로컬 메모리(112)에 저장된 16개의 4X4 블록에 대한 최소 율-왜곡 비용값보다 작은가를 판단한다. 만약 이전에 저장된 최소 율-왜곡 비용값이 없다면, 제1 연산부(110)는 S113 단계를 진행한다.
예를 들면, S111 단계에서 제2 탐색점에 대한 16개의 4X4 블록의 왜곡치 및 율-왜곡 비용을 연산하였다면, 제1 연산부(110)는 제1 탐색점에 대한 최소 율-왜곡 비용값과 제2 탐색점에 대한 최소 율-왜곡 비용값을 비교한다. 제1 연산부(110)는 제2 탐색점에 대한 최소 율-왜곡 비용값이 더 작은 경우 S113 단계를 진행하고, 그렇지 않으면, S114 단계를 진행한다.
S113 단계에서, 제1 연산부(110)는 제1 탐색점에 대한 4X4 블록의 율-왜곡 비용값과 움직임 벡터를 제1 로컬 메모리(112)에 저장하고, S114 단계를 진행한다. S114 단계에서, 제1 연산부(110)는 4X4 블록에 대한 왜곡치와 제1 로컬 메모리(112)에 저장된 발생 비트량을 이용하여 8개의 4X8 및 8X4 블록에 대한 율-왜곡 비용을 연산하고, S115 단계를 진행한다. S115 단계에서, 제1 연산부(110)는 제1 로컬 메모리(112)에 저장된 8개의 4X8 및 8X4 블록에 대한 최소 율-왜곡 비용값보다 작은가를 판단한다. 만약 이전에 저장된 최소 율-왜곡 비용값이 없다면, 제1 연산부(110)는 S116 단계를 진행한다.
예를 들면, S114 단계에서 제2 탐색점에 대한 8개의 4X8 및 8X4 블록의 율-왜곡 비용을 연산하였다면, 제1 연산부(110)는 제1 탐색점에 대한 최소 율-왜곡 비용값과 제2 탐색점에 대한 최소 율-왜곡 비용값을 비교한다. 제1 연산부(110)는 제2 탐색점에 대한 최소 율-왜곡 비용값이 더 작은 경우 S116 단계를 진행하고, 그렇지 않으면, S117 단계를 진행한다.
S116 단계에서, 제1 연산부(110)는 제1 탐색점에 대한 4X8 및 8X4 블록에 대한 율-왜곡 비용값과 움직임 벡터를 제1 로컬 메모리(112)에 저장하고, S117 단계를 진행한다.
S117 단계에서, 제1 연산부(110)는 4X8 및 8X4 블록에 대한 왜곡치와 제1 로컬 메모리(112)에 저장된 발생 비트량을 이용하여 4개의 8X8 블록에 대한 율-왜곡 비용을 연산하고, S118 단계를 진행한다. 4X8 및 8X4 블록에 대한 왜곡치는 4X4 블록에 대한 왜곡치을 이용하여 계산된다. S118 단계에서, 제1 연산부(110)는 제1 로컬 메모리(112)에 저장된 4개의 8X8 블록에 대한 최소 율-왜곡 비용값보다 작은가를 판단한다. 만약 이전에 저장된 최소 율-왜곡 비용값이 없다면, 제1 연산부(110) 는 S119 단계를 진행한다.
예를 들면, S117 단계에서 제2 탐색점에 대한 4개의 8X8 블록의 율-왜곡 비용을 연산하였다면, 제1 연산부(110)는 제1 탐색점에 대한 최소 율-왜곡 비용값과 제2 탐색점에 대한 최소 율-왜곡 비용값을 비교한다. 제1 연산부(110)는 제2 탐색점에 대한 최소 율-왜곡 비용값이 더 작은 경우 S119 단계를 진행하고, 그렇지 않으면, S120 단계를 진행한다.
도 6a에 도시된 A는 도 6b에 도시된 A에 연결되고, 도 6a에 도시된 B는 도 6b에 도시된 B에 연결된다.
S119 단계에서, 제1 연산부(110)는 현재 탐색점에 대한 8X8 블록에 대한 율-왜곡 비용값과 움직임 벡터를 제1 로컬 메모리(112)에 저장하고, S120 단계를 진행한다.
S120 단계에서, 제1 연산부(110)는 8X8 블록에 대한 왜곡치와 제1 로컬 메모리(112)에 저장된 발생 비트량을 이용하여 2개의 16X8 및 8X16 블록에 대한 율-왜곡 비용을 연산하고, S121 단계를 진행한다. 8X8 블록에 대한 왜곡치는 4X8 및 8X4 블록에 대한 왜곡치을 이용하여 계산된다. S121 단계에서, 제1 연산부(110)는 제1 로컬 메모리(112)에 저장된 2개의 16X8 및 8X16 블록에 대한 최소 율-왜곡 비용값보다 작은가를 판단한다. 만약 이전에 저장된 최소 율-왜곡 비용값이 없다면, 제1 연산부(110)는 S122 단계를 진행한다.
예를 들면, S120 단계에서 제2 탐색점에 대한 2개의 16X8 및 8X16 블록의 율-왜곡 비용을 연산하였다면, 제1 연산부(110)는 제1 탐색점에 대한 최소 율-왜곡 비용값과 제2 탐색점에 대한 최소 율-왜곡 비용값을 비교한다. 제1 연산부(110)는 제2 탐색점에 대한 최소 율-왜곡 비용값이 더 작은 경우 S122 단계를 진행하고, 그렇지 않으면, S123 단계를 진행한다.
S122 단계에서, 제1 연산부(110)는 현재 탐색점에 대한 16X8 및 8X16 블록에 대한 율-왜곡 비용값과 움직임 벡터를 제1 로컬 메모리(112)에 저장하고, S123 단계를 진행한다.
S123 단계에서, 제1 연산부(110)는 16X8 및 8X16 블록에 대한 왜곡치와 제1 로컬 메모리(112)에 저장된 발생 비트량을 이용하여 1개의 16X16 블록에 대한 율-왜곡 비용을 연산하고, S124 단계를 진행한다. 16X16 블록에 대한 왜곡치는 16X8 및 8X16 블록에 대한 왜곡치을 이용하여 계산된다. S124 단계에서, 제1 연산부(110)는 제1 로컬 메모리(112)에 저장된 1개의 16X16 블록에 대한 최소 율-왜곡 비용값보다 작은가를 판단한다. 만약 이전에 저장된 최소 율-왜곡 비용값이 없다면, 제1 연산부(110)는 S125 단계를 진행한다.
예를 들면, S123 단계에서 제2 탐색점에 대한 2개의 16X16 블록의 율-왜곡 비용을 연산하였다면, 제1 연산부(110)는 제1 탐색점에 대한 최소 율-왜곡 비용값과 제2 탐색점에 대한 최소 율-왜곡 비용값을 비교한다. 제1 연산부(110)는 제2 탐색점에 대한 최소 율-왜곡 비용값이 더 작은 경우 S125 단계를 진행하고, 그렇지 않으면, S126 단계를 진행한다.
S126 단계에서, 제1 연산부(110)는 마지막 탐색점인가를 판단한다. 제1 연산부(110)는 탐색점을 N개로 가정하면, 제N 탐색점에 대하여 S01 단계로부터 S125 단 계가 모두 실행되었는가를 판단한다. 제1 연산부(110)는 마지막 탐색점이 아닌 경우 S111 단계를 반복하고, 마지막 탐색점인 경우 S127 단계를 진행한다.
예를 들면, 제1 탐색점에 대하여 S111 단계 내지 S125 단계가 모두 완료되면, 제1 연산부(110)는 S111 단계에서 제2 탐색점을 선택하고, 16개의 4X4 블록에 대한 왜곡치 및 율-왜곡 비용을 연산하고, S112 단계를 진행한다. 제1 연산부(110)는 제N 탐색점에 대하여 S111 단계 내지 S125 단계가 완료될 때까지 반복한다.
S127 단계에서, 제1 연산부(110)는 각 블록 사이즈마다 제1 로컬 메모리(112)에 저장된 최소 율-왜곡 비용값을 비교하여 부호화 모드들 중 최적 모드를 선택한다.
본 발명은 먼저 최적의 부호화 모드를 결정하고, 움직임 추정 및 보상, 양자화, 가변길이 부호화, 역양자화 등의 과정을 수행한다. 또한, 본 발명은 먼저 결정된 최적의 부호화 모드에 따라 움직임 추정 및 보상, 양자화 및 역양자화를 병렬적으로 처리한다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
도 1은 본 발명의 실시예에 따른 영상 처리 시스템을 도시한 블록도이다.
도 2는 도 1에 도시된 영상 처리 장치를 예시적으로 도시한 블록도이다.
도 3a는 제1 내지 제M 참조 프레임을 도시한 개념도이다.
도 3b는 도 3a에 도시된 참조 프레임에 대한 N개의 탐색점을 도시한 개념도이다.
도 4은 도 2에 도시된 데이터 메모리의 메모리맵을 도시한 블록도이다.
도 5은 도 2에 도시된 제1 내지 제4 연산부의 동작을 도시한 순서도이다.
도 6a 및 도 6b는 도 5에 도시된 부호화 모드 결정 동작을 구체적으로 도시한 순서도이다.
* 도면의 주요 부분에 대한 부호 설명 *
1000; 영상 처리 시스템 100; 영상 처리 장치
200; 롬 300; 램
400; 메모리 500; 디스플레이 장치
101; 제어부 102; 데이터 메모리
103; 레지스터 파일부 110; 제1 연산부
111; 제1 레지스터 112; 제1 로컬 메모리

Claims (8)

  1. 복수의 연산부들; 및
    율-왜곡 비용값을 산출하기 위한 발생 비트량과 라그랑제 상수를 내부의 데이터 메모리에 저장하고, 영상 부호화 동작에서 상기 발생 비트량과 상기 라그랑제 상수를 상기 복수의 연산부 각각에 전송하는 제어부를 포함하되,
    상기 복수의 연산부들 중 적어도 하나는,
    복수의 부호화 모드들에 대한 각각의 왜곡치를 산출하고, 상기 산출된 각각의 왜곡치, 상기 발생 비트량, 및 상기 라그랑제 상수를 이용하여 상기 복수의 부호화 모드들에 대한 각각의 율-왜곡 비용값을 계산하고,
    상기 발생 비트량은, 추정된 움직임 벡터와 상기 추정된 움직임 벡터들이 평균된 평균 움직임 벡터의 차이값, 그리고 상기 추정된 움직임 벡터를 생성하기 위하여 참조된 참조 프레임의 인덱스를 가변길이 부호화하여 생성되는 영상 처리 장치.
  2. 제 1 항에 있어서,
    상기 제어부는,
    상기 계산된 각각의 율-왜곡 비용값들 중 최소값을 가지는 부호화 모드를 결정하는 영상 처리 장치.
  3. 제 2 항에 있어서,
    상기 복수의 연산부들 각각은,
    상기 결정된 부호화 모드에 따라 움직임 추정 및 보상 과정, 양자화 과정, 가변길이 부호화 과정 및 역양자화 과정을 순차적으로 수행하는 영상 처리 장치.
  4. 제 2 항에 있어서,
    상기 복수의 연산부들은,
    상기 결정된 부호화 모드에 따라 움직임 추정 및 보상 과정, 양자화 과정 및 역양자화 과정을 병렬적으로 수행하는 영상 처리 장치.
  5. 제 1 항에 있어서,
    상기 복수의 부호화 모드들은 inter 16x16 mode, inter 8x16 mode, inter 16x8 mode, inter 8x8 mode, inter 8x4 mode, inter 4x8 mode 및 inter 4x4 mode 중 적어도 하나를 포함하는 영상 처리 장치.
  6. 제 1 항에 있어서,
    상기 왜곡치는 SAD 연산 방법 및 SSD 연산 방법 중 어느 하나에 의하여 산출되는 영상 처리 장치.
  7. 제 1 항에 있어서,
    상기 율-왜곡 비용값은,
    상기 발생 비트량 및 상기 라그랑제 상수를 곱한 값과 상기 왜곡치를 합하는 영상 처리 장치.
  8. 삭제
KR1020090031777A 2008-12-03 2009-04-13 영상 처리 장치 KR101221874B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/540,722 US20100135396A1 (en) 2008-12-03 2009-08-13 Image processing device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020080121789 2008-12-03
KR20080121789 2008-12-03

Publications (2)

Publication Number Publication Date
KR20100063620A KR20100063620A (ko) 2010-06-11
KR101221874B1 true KR101221874B1 (ko) 2013-01-15

Family

ID=42363542

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090031777A KR101221874B1 (ko) 2008-12-03 2009-04-13 영상 처리 장치

Country Status (1)

Country Link
KR (1) KR101221874B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101311410B1 (ko) * 2011-10-21 2013-09-25 성균관대학교산학협력단 픽쳐 그룹의 구조를 변화시키는 분산 비디오 부호화/복호화 방법 및 이러한 방법을 수행하는 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040028332A (ko) * 2002-09-30 2004-04-03 주식회사 케이티 실시간 h.263 영상 부호율 제어를 위한 비트량 예측 장치및 그 방법
KR20050061762A (ko) * 2003-12-18 2005-06-23 학교법인 대양학원 부호화 모드 결정방법, 움직임 추정방법 및 부호화 장치
KR100604169B1 (ko) 2000-06-07 2006-07-25 인텔 코포레이션 화상 상관에서의 최소 왜곡 계산을 위한 적응형 조기 탈출기술
KR100845303B1 (ko) 2006-09-29 2008-07-10 한국전자통신연구원 고속 부호화를 위한 되먹임 구조를 가진 동영상 압축부호화 장치 및 최적 모드 결정 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100604169B1 (ko) 2000-06-07 2006-07-25 인텔 코포레이션 화상 상관에서의 최소 왜곡 계산을 위한 적응형 조기 탈출기술
KR20040028332A (ko) * 2002-09-30 2004-04-03 주식회사 케이티 실시간 h.263 영상 부호율 제어를 위한 비트량 예측 장치및 그 방법
KR20050061762A (ko) * 2003-12-18 2005-06-23 학교법인 대양학원 부호화 모드 결정방법, 움직임 추정방법 및 부호화 장치
KR100845303B1 (ko) 2006-09-29 2008-07-10 한국전자통신연구원 고속 부호화를 위한 되먹임 구조를 가진 동영상 압축부호화 장치 및 최적 모드 결정 방법

Also Published As

Publication number Publication date
KR20100063620A (ko) 2010-06-11

Similar Documents

Publication Publication Date Title
JP4777889B2 (ja) 映像符号化における中間予測のためのモード判定
CN102165772B (zh) 自适应视频编码器控制
JP5133136B2 (ja) 照度補償方法及び装置、これを利用した映像の符号化、復号化方法及び装置
KR101274804B1 (ko) 통합된 공간 시간 예측
Alvar et al. Multi-task learning with compressible features for collaborative intelligence
JP4635016B2 (ja) 情報処理装置およびインター予測モード判定方法
US20090219993A1 (en) Resource Allocation for Frame-Based Controller
CN1809161B (zh) 对编码视频数据选择编码类型和预测模式
JP2010508706A (ja) ビデオシーケンスフレームを分解する方法
US20090060045A1 (en) Moving picture encoding apparatus and moving picture encoding method
US20160080769A1 (en) Encoding system using motion estimation and encoding method using motion estimation
CN103096080A (zh) 用于估计当前块的运动矢量的设备
CN104135629A (zh) 对图像进行编码
KR20140072231A (ko) 율-왜곡 비용의 확률분포를 이용한 비디오 부호화기의 고속 예측모드 결정 방법
US7978764B2 (en) Method of video encoding for handheld apparatuses selecting best prediction function according to optimal rate-distortion value
EP3053338B1 (en) Encoder and method for video coding
KR100618910B1 (ko) 최적화된 연산복잡도를 갖는 움직임 추정 장치 및 그 방법
US8718391B2 (en) Random access image encoding system and method
JP4922101B2 (ja) 情報処理装置およびインター予測モード判定方法
KR101221874B1 (ko) 영상 처리 장치
Paul et al. Interactive scheduling for mobile multimedia service in M2M environment
EP2648409B1 (en) Quantization control device and method, and quantization control program
US20100135396A1 (en) Image processing device
JP2013034151A (ja) 映像静止判定方法、映像静止判定装置、及びプログラム
JP2009111520A (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: 20151228

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161228

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171226

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 7