KR100246167B1 - 듀얼프라임 움직임 추정시스템 및 방법 - Google Patents

듀얼프라임 움직임 추정시스템 및 방법 Download PDF

Info

Publication number
KR100246167B1
KR100246167B1 KR1019960052609A KR19960052609A KR100246167B1 KR 100246167 B1 KR100246167 B1 KR 100246167B1 KR 1019960052609 A KR1019960052609 A KR 1019960052609A KR 19960052609 A KR19960052609 A KR 19960052609A KR 100246167 B1 KR100246167 B1 KR 100246167B1
Authority
KR
South Korea
Prior art keywords
macroblock
dual prime
field
parity
motion vector
Prior art date
Application number
KR1019960052609A
Other languages
English (en)
Other versions
KR970064265A (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 KR970064265A publication Critical patent/KR970064265A/ko
Application granted granted Critical
Publication of KR100246167B1 publication Critical patent/KR100246167B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • 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
    • 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/112Selection of coding mode or of prediction mode according to a given display mode, e.g. for interlaced or progressive display mode
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/172Methods 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 picture, frame or field
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/197Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
    • 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
    • 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/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/527Global motion vector estimation
    • 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
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer

Abstract

F1과 F2패리티의 영상을 가지는 동화상에서 화면 간 비디오 압축을 위한 듀얼 프라임 움직임 추정의 최적 정합을 식별하고 이에 따르는 움직임 벡터를 발생하기 위한 장치 및 방법을 개시되어 있다. 본 명세서에 기술된 움직임 추정의 듀얼 프라임 방법은 움직임 벡터를 발생하는 방법을 포함한다. 움지임 벡터는 F1과 F2패리티의 영상을 가지는 동화상에서의 화면 간 비디오 압축을 위해 현재 필드의 매크로블럭으로부터 과거 필드의 매크로블럭으로 향한다. 본 방법의 제1 단계는 현재 화면의 패리티 필드에서 매크로블럭을 정의하는 것이다. 다음은 이전 필드에서 제1최적 정합 매크로블럭을 찾기 위해 동일 또는 반대 패리티의 이전 필드가 탐색된다. 최적 정합 매크로블럭을 찾으면, 현재 패리티 필드의 현재 매크로블럭으로부터 이전 패리티 필드의 제1 최적 정합 매크로블럭으로 벡터가 형성된다. 이 벡터는 듀얼 프라임 탐색 원도우의 중앙을 정의하는 제1 최적 정합 매크로블럭에 대하여 반대 패리티를 갖는 패리티 필드인 반대 패리티 필드에서 제2의 듀얼 프라임 매크로블럭을 가리키도록 스케일된다. 이어서, 제1 최적 정합 매크로블럭과 듀얼 프라임 탐색 원도우의 제2의 듀얼 프라임 매크로블럭의 세트와의 평균이 취해지며, 최적 정합 듀얼 프라임 매크로블럭을 결정하기 위하여 탐색 윈도우가 탐색된다. 이 탐색은 하나의 직사각형 픽셀 듀얼 프라임 탐색 윈도우 내의 하프 픽셀 위치에서 전형적으로 수행된다. 적절한 듀얼 프라임 움직임 벡터와 차이 움직임 벡터(dmv)가 형성된다. 이들은 제1 최적 정합 매크로블럭과 최적 정합 듀얼 프라임 매크로블럭 모두를 가리키는 움직임 벡터이다.

Description

[듀얼프라임 움직임 추정시스템 및 방법]
본 발명은 디지털 시각 영상의 압축에 관한 것으로, 특히 화면들 사이의 중복성(redundancy)인 시간 압축에 관한 것이다. 움직임 벡터의 사용을 통해 화면들 사이의 중복성이 감소되거나 심지어는 제거되기도 한다.
지난 십년 동안, 세계적인 전자 통신 시스템의 출현으로 사람들이 정보를 보내고 받을 수 있는 방법이 향상되었다. 특히, 최근 수년 동안에 실시간(real-time)비디오와 오디오 시스템 기능이 크게 개선되었다. 주문형 비디오(video-on-demand) 및 화상회의(video conferencing)와 같은 서비스를 가입자에게 제공하기 위해서는, 엄청난 양의 망 대여폭(network bandwidth)이 필요하다. 실제로, 망 대여폭이 이러한 시스템의 효율성에 대한 주요 장애물인 경우가 자주 있다.
망에 의해 부과되는 제한들을 극복하기 위하여, 압축 시스템이 출현되었다. 이러한 시스템은 화면 시퀀스 내의 중복성을 제거함으로써 전송되어야 할 비디오와 오디오 양을 감소시킨다. 수신 종단에서, 화면 시퀀스는 압축해제(uncompressed)되며 실시간으로 표시될 수 있다.
비디오 압축 표준의 일예로서“MPEG(Moving Picture Experts Group, 동화상 전문가 그룹)” 표준이 마련되고 있다. MPEG 표준에서, 비디오 압축은 주어진 화면 내에서 그리고 화면 사이에서 모두 행하여지도록 정의되어 있다. 화면 내에서의 비디오 압축은 이산 코사인 변환(discrete cosine transform)에 이한 시간 영역에서 주파수 영역으로의 디지털 영상 변환, 양자화(quantization), 가변 길이 코딩(variable length coding) 및 호프만 코딩(Huffman coding)에 의해 이루어진다. 화면 사이의 비디오 압축은 어느 한 화면에서 다른 화면으로의 픽셀 세트 (a set of picture elements(pels)의 이동을 기술하기 위해 움직임 벡터(motion vector)가 사용되는 움직임 보상(motion compensation)이라는 처리를 통해 이루어진다.
본 발명의 목적은 영상을 효율적으로 복원(압축해제)하기 위해 사용될 수 있는 고속의 효율적인 움직임 추정(motion estimation, 시간 압축)을 제공하는 것이다.
본 발명의 이러한 목적 및 기타 목적들은 F1 및 F2 패리티의 영상을 가지는 동화상에서 화면간 비디오 압축을 위해 움직임 벡터를 발생시키는 방법에 의하여 이루어진다. 움직임 벡터는 현재 필드 매크로블럭으로부터 과거 필드 매크로블럭으로 연장된다. 본 발명의 방법은 현재 필드의 현재 매크로블럭으로부터 시작된다. 먼저 시간상 역방향으로 진행되어 이전 필드를 탐색하여 이전 화면에서 제1 최적 정합 매크로블럭을 찾는다.
본 명세서에서“기준 MB” 또는“기준 매크로블럭” 은 비-듀얼 프라임 탐색 원도우(non-dual prime search window)에서의 최적 정합을 표시하는 이전 화면으로 부터의 매크로블럭으로부터 이전 필드의 최적 정합 매크로블럭으로 연장되는 벡터가 형성된다. 이 벡터는 기준 매크로블럭에 대하여 반대 패리티 필드 내의 다른 매크로블럭 즉, 제2의 매크로블럭 또는“듀얼 프라임 기준(DPR : Dual Prime Reference)” 매크로블럭을 가리키도록 스케일(scaled)된다. 스케일된 벡터는“듀얼 프라임 움직임 벡터(DPMV : Dual Prime Motion Vector)” 라고 부른다.
탐색은 기준 매크로블럭에 대하여 평균된 듀얼 프라임 기준 매크로블럭(DPR MB)위치의 세트를 사용함으로써 이루어진다. 평균된 매크로블럭들의 세트는“가상” 또는“듀얼 프라임” 매크로블럭이라고 부를 수 있다. 최적 정합 듀얼 프라임 매크로블럭은 현재 매크로블럭과 비교하여 발생된 차이 에러의 절대값이 가장 작은 것 (smallest absolute difference error generated when compared to the current macroblock)을 기초로 하여 선택된다. 같은 절대값을 가진 매크로블럭이 여럿인 경우에는, 그 차이 움직임 벡터(dmv : differential motion vector)가 가장 효율적으로 인코딩될 수 있는 매크로블럭이 최적 정합 듀얼 프라임 매크로블럭으로서 선택된다.
제1도는 일반화된 MPEG에 따르는 인코더(11)의 흐름도. 이 인코더(11)은 이산 코사인 변환기(21), 양자화기(23), 가변 길이 코더(25), 역양자화기(29), 역이산 코사인 변환기(31), 움직임 보상부(41), 프레임 메모리(42), 및 움직임 추정부(43)를 포함한다. 데이터 경로는 i 번째 화면 입력(111), 차이 데이터(112), 움직임 벡터(113), 화면 출력(121), 움직임 추정과 보상을 위한 피드백 화면(131), 및 움직임 보상된 화면(101)을 포함한다. 제1도는 i 번째 화면이 프레임 메모리 또는 프레임 저장기(42)에 존재하며, i+1번째 화면이 움직임 추정에 의해 인코딩되고 있다고 가정한다.
제2도는 I, P 및 B 화면들, 그들의 표시 및 전송 순서의 예, 및 순방향과 역방향 움직임 예측을 예시한 도면.
제3도는 현재 프레임 또는 화면의 움직임 추정 블럭으로부터 다음 또는 이전 프레임 또는 화면의 최적 정합 블럭까지의 탐색을 예시한 도면. 요소(211과 211′)는 두 화면 내에서 동일한 위치를 나타낸다.
제4도는 블럭들의 이전 화면에서의 위치로부터 새로운 화면으로의 움직임 벡터에 따른 블럭들의 움직임, 및 움직임 벡터를 사용한 후에 조정된 이전 화면의 블럭들을 예시한 도면.
제5도는 모두 F1또는 모두 F2인 동일 패리티 기준을 가지는 필드 화면에 대한 듀얼 프라임 벡터를 나타낸 도면. 제5도는 opmv와 spmv와 벡터, 기준 DPR과 R, 및 듀얼 프라임 탐색 영역을 나타낸다.
제6도는 하나는 F1이고 하나는 F2인 반대 패리티 기준을 가지는 필드 화면에 대한 듀얼 프라임 벡터를 나타낸 도면. 제6도는 opmv와 spmv 벡터, 기준 DPR과 R, 및 듀얼 프라임 탐색 영역을 나타낸다.
제7도는 프레임 화면에 대한 듀얼 프라임 벡터를 나타낸 도면. 제7도는 opmv′, opmv″, spmv′, 및 spmv″ 벡터, 기준 DPR′,DPR″, R′, 및 R″, 및 듀얼 프라임 탐색 영역을 나타낸다.
제8도는 비디오 화면 듀얼 프라임 탐색 영역의 패턴을 예시한 도면, 제8도에서 직선 블럭은 듀얼 프라임 움직임 벡터가 가리키는 픽셀 위치를 나타내며, 화살표는 DPR 데이터 패치를 개시하는 시작 픽셀 위치를 나타내고, 점선 박스는 탐색되는 DPR 매크로블럭의 시작 픽셀 위치를 나타낸다.
제9도는 듀얼 프라임 탐색 동작 결과 우선순위를 예시한 도면, 점선으로 된 박스 안의“e”는 듀얼 프라임 탐색 윈도우의 중앙을 나타낸다. 우선순위 그룹과 탐색 위치는 제9도의 일부인 표에 나타나 있다.
* 도면의 주요부분에 대한 부호의 설명
1 : 인코더 41 : 움직임 보상부
43 : 움직임 추정부
본 발명은 MPEG 및 HDTV에 따르는 인코더와 인코딩 처리에 관한 것이다. 인코더에 의해 수행되는 인코딩 기능은 데이터 입력, 움직임 추정, 매크로블럭 모드 발생, 데이터 복원, 엔트로피 코딩(entropy coding), 및 데이터 출력을 포함한다. 움직임 추정 및 보상은 시간적 압축 함수이다. 이들은 수반되는 계산상 요구도가 높은 반복적인 함수이며, 역이산 코사인 변환(inverse discrete cosine transformation), 역양자화(inverse quantization) 및 움직임 보상(motion compensation)과 같은 강도 높은 복원 처리를 포함한다.
특히, 본 발명은 움직임 추정, 보상 및 예측과 특히 움직임 벡터의 계산에 관한 것이다. 움직임 보상은 현재 화면을 블럭들, 이를테면 매크로블럭들로 나눈 다음 이전에 전송된 화면에서 유사한 내용의 부근 블럭을 탐색함으로써 시간적 중복성울 이용한다. 현재 블럭 픽셀들과 기준 화면으로부터 추출된 예측된 블럭 픽셀들 사이의 차이 만이 실제로 전송을 위해 압축되며 그 후 전송된다.
움직임 보상 및 예측의 가장 간단한 방법은“I” 화면의 모든 픽셀의 휘도(luminance) 및 색도(chrominance) 즉, 명도(intensity) 및 색(color)을 기록한 후, 후속되는 화면의 각 특정 픽셀에 대하여 휘도 및 색도 즉, 명도 및 색의 변화를 기록하는 것이다. 그러나, 물체들이 화면들 사이에서 움직이기 때문에 즉, 픽셀의 내용이 한 화면의 한 위치로부터 후속되는 화면의 다른 위치로 움직이기 때문에, 위 방법은 전송 매체 대역폭, 메모리, 프로세서 용량 및 처리 시간에 있어서 비경제적이다. 보다 진보된 방법은 이전 화면을 사용하여 이를테면 움직임 벡터에 의해 픽셀들의 블럭이 후속되는 화면 또는 화면들의 어디에 위치하는지를 예측하고, 그 결과를“예측 화면(predicted pictures)” 또는“P” 화면으로서 기록하는 것이다. 특히, 이 방법은 i+1 번째 화면의 픽셀들 또는 픽셀 블럭이 i 번째 화면에서 위치하는 곳을 가장 잘 추정 또는 예측한다. 중간 화면 또는“B”화면에서 픽셀 블럭이 위치하는 곳을 예측하기 위해 후속 화면과 이전 화면 모두를 사용하는 한 단계 더 진보된 방법도 있다.
주목하여야 할 것은 화면 인코딩 순서 및 화면 전송 순서가 화면 표시 순서와 반드시 일치하는 것은 아니라는 것이다. 제2도를 보면, I-P-B 시스템의 경우 입력 화면 전송 순서는 인코딩 순서와 다르며, 입력 화면은 인코딩을 위해 사용될 때까지 임시 저장되어야 한다. 버퍼는 이 입력 화면이 사용될 때까지 이 입력 화면을 저장한다.
예시 목적으로, MPEG에 따른 인코딩의 일반적인 흐름도가 제1도에 나타나 있다. 흐름도에서, i번째 화면과 i+1 번째 화면의 영상들은 움직임 벡터들을 발생하기 위하여 처리된다. 움직 벡터는 픽셀들의 매크로블럭이 이전 및/또는 후속 화면에 어디에 위치하는 지를 예측한다. 영상 전부 대신에 움직임 벡터들을 사용하는 것이 MPEG 과 HDV 표준에서의 시간 압축이 가지는 중용한 특징이다. 제1도에 나타낸 바와 같이, 움직임 벡터는 일단 발생되면 픽셀들의 매크로블럭을 i번째 화면에서 i+1번째 화면으로 이동(translation)시키는데 사용된다.
제1도에 나타낸 바와 같이, 인코딩 처리에서, i번째 화면과 I+1 번째 화면의 영상들은 인코더(11)에서 처리되어, 예컨대 i+1 번째 및 후속 화면들이 인코딩되어 전송되는 형태인 움직임 벡터를 발생시킨다. 후속 화면의 입력 영상(111)은 인코더의 움직임 추정부(43)으로 간다. 움직임 벡터(113)이 움직이 추정부(43)의 출력으로서 형성된다. 이 벡터는 움직임 보상부(41)에 의해 그 출력으로서“기준” 데이터라는 매크로블럭 데이터를 이전 및/또는 미래 화면들로부터 얻기 위해 사용된다. 움직임 보상부(41)의 한 출력과 움직임 추정부(43)으로부터의 출력이 감산되어, 이산 코사인 변환기(Discrete Cosine Transformer, 21)의 입력으로 간다. 이산 코사인 변환기(21)의 출력은 양자화기(Quantizer, 23)에서 양자화된다. 양자화기(23)의 출력은 두 개의 출력(121 및 131)로 갈라진다. 한 출력(121)은 예를 들면 실행 길이 인코더(run length encoder)로 전송하기 전에 더 압축하고 처리하기 위한 다운스트림 요소(downstream element, 25)로 간다. 다른 출력(131)은 프레임 메모리(42)에 저정되도록 인코딩된 픽셀들의 매크로블럭의 복원 과정을 거친다. 도시된 인코더에서 예시의 목적으로, 이 제2 출력(131)은 차이 매크로블럭의 감소된 형태(lossy version of the difference macroblock)를 만들기 위해 역양자화기(29)와 역이산 코사인 변환기(31)을 거친다. 이 데이터는 움직임 보상부(41)의 출력과 합산되어 원래 화면의 감손된 형태(lossy version of the original picture)를 프레임 메모리(42)로 보낸다.
제2도에 나타낸 바와 같이, 화면에는 3가지 유형이 있다. 전체가 인코딩되어 전송되는“인트라 화면(Intra pictures)” 또는“I” 화면이 있는데, 이는 움직임 벡터가 정의될 필요가 없다. 이“I” 화면이 움직임 벡터의 발생원으로 사용된다. 이전 화면으로부터의 움직임 벡터에 의해 형성되는“예측 화면(Predicted pictures)” 또는 “P” 화면이 있는데, 이는 이후의 화면에 대해 움직임 벡터의 발생원으로 사용될 수 있다. 마지막으로, 과거와 미래의 두 개의 다른 화면들로부터의 움직임 벡터에 의해 형성된 양방향 화면(Bidirectional pictures)” 또는“B” 화면이 있는데, 이는 움직임 벡터의 발생원으로 사용될 수 없다. 움직임 벡터는“I” 및“P” 화면들로부터 발생되며,“P” 및“B” 화면들을 형성하기 위해 사용된다.
제3도에 나타낸 바와 같이, 움직임 추정이 수행되는 한 방법은 ㅑ+1 번째 화면의 매크로블럭(211)로부터 시작하여 최적 정합 매크로블럭(213)을 찾기 위해 이전 화면의 영역 전체에 걸쳐 탐색하는 것이다 (211′는 211과 같은 위치이지만 이전 화면에 있다). 이런 방식으로 매크로블럭들을 이동(translating the macroblocks)하여 제4도에 나타낸 바와 같은 i+1 번째 화면에 대한 매크로블럭들의 패턴을 얻는다. 이와 같이 하여 i+1번째 화면을 발생하기 위해 i번째 화면은 예컨대 움직임 벡터와 차이 테이타에 의해 적은 양만큼 변경된다. 움직임 벡터와 차이 데이터가 인코딩되며, i+1번째 화면 전체가 인코딩되지는 않는다. 움직임 벡텨는 영상의 위치를 한 화면에서 다른 화면으로 변환하며, 차이 데이터는 색과 밝기의 변화인 색도, 휘도 및 채도의 변화를 전달한다.
제3도를 다시 참조하면, i+1 번째 화면에서의 (211)과 동일한 i번째 화면에서의 위치(211″)에서부터 시작하여 잘 정합되는지를 탐색한다. 탐색 윈도우가 i번째 화면에 생성된다. 이 탐색 원도우 내에서 최적 정합이 되는지를 탐색한다. 탐색하여 찾아 내면, 그 매크로블럭에 대하여 가장 잘 정합되는 움직임 벡터들을 코딩한다. 최적 정합 매크로블럭의 코딩은 움직임 벡터를 포함하는데, 이는 그 최적 정합 매크로블럭이 다음 화면에서 x 방향 및 y 방향으로 각각 몇 개의 픽셀만큼 변위되었는가를 나타낸다.“예측 에러(prediction error)” 라고 부르기도 하는 차이 데이터도 인코딩되는데, 이는 현재 매크로블럭과 최적 정합 기준 매크로블럭 사이의 색도 및 휘도의 차이이다.
듀얼 프라임 움직임 추정 (Dual Prime Motion Estimation)
본 발명의 듀얼 프라임 방법은 예측 벡터 즉, 움직임 벡터와 차이를 발생시키는 움직임 추정에 대한 최적 정합 블럭을 얻어 더욱 많은 시간 압축 결과를 얻는 더욱 정교한 방법이다. 움직임 추정의 듀얼 프라임 방법은 가상 과거 기준 매크로블럭을 유도하기 위하여 두 개의 과거 기준 매크로블럭을 사용한다. 최적 정합 매크로블럭이 두 개의 과거 기준 화면들, 즉 두 개의 필드의 평균으로부터 구해질 수 있다는 사실이 듀얼 프라임 움직임 보상의 중심이 된다. 이런 이유로, 듀얼 프라임 방법은 화면의 F1및 F2의 두 패리티를 모두 사용하며, 최적 정합 매크로블럭을 찾도록 시간상에서 역방향으로 가리키도록 이 두 패리티를 선형 보간(linear interpolation)하여, 그 움직임 벡터와 차이 데이터를 인코딩한다. 이렇게 하여, 전체 매크로블럭 대신에 움직임 벡터와 차이 데이터 만이 인코딩된다.
MPEG2에 정의된 필드 화면(field picture)에 대한 듀얼 프라임 움직임 보상의 경우 디코더는 동일 패리티 필드의 제1 기준 매크로블럭으로 향한 벡터로부터 시작되며, 이 벡터를 반으로 스케일하고, 반대 패리티 필드의 제2 기준 매크로블럭을 식별하기 위하여 작은 차이 움직임 벡터(dmv : differential motion vector)를 더한다. 이 두 개의 기준 매크로블럭이 함께 평균되어 움직임 보상을 위한 예측 매크로블럭을 발생한다.
본 명세서에 기술되는 움직임 추정의 듀얼 프라임 방법은 움직임 벡터를 발생하는 방법을 포함한다. 움직임 벡터는 F1과 F2패리티의 영상을 가진 동화상에서의 화면 간 비디오 압축(inter-picture compression)을 위하여 현재 필드의 매크로블럭으로부터 과거 필드의 매크로블럭을 향한다. 이 방법의 제1 단계는 현재 화면의 패리티 필드에서 매크로블럭을 정의하는 것이다. 다음은 제1 최적 정합 매크로블럭을 이전 필드에서 찾기 위해 동일 또는 반대 패리티의 이전 필드를 탐색하는 것이다. 최적 정합 매크로블럭을 찾으면, 현재 패리티 필드의 현재 매크로블럭으로부터 이전 패리티 필드의 제1 최적 정합 매크로블럭으로 벡터가 형성된다. 이 벡터는 듀얼 프라임 탐색 원도우의 중앙을 정의하는 제1 최적 정합 매크로블럭에 대하여 반대 패리티를 가지는 패리티 필드인 반대 패리티 필드 내의 제2 듀얼 프라임 매크로블럭을 가리키도록 스케일된다. 다음은 제1 최적 정합 매크로블럭과 듀얼 프라임 탐색 윈도우에 있는 제2의 듀얼 프라임 매크로블럭 세트의 평균을 취하고 최적 정합 듀얼 프라임 매크로블럭을 결정하기 위하여 탐색 윈도우를 탐색한다. 이 탐색은 전형적으로 하나의 직사각형 픽셀 듀얼 프라임 탐색 윈도우 내의 하프 픽셀 위치(half pixel locations inside a one square pixel dual prime window)에서 수행된다. 적합한 듀얼 프라임 움직임 벡터와 차이 움직임 벡터(dmv)가 형성된다. 이들은 제1 최적 정합 매크로블럭과 최적 정합 듀얼 프라임 매크로블럭을 모두 가리키는 움직임 벡터들이다.
전형적으로, 제1 최적 정합 매크로블럭은 현재의 매크로블럭으로부터 d 픽셀만큼 변위되어 있고, 제2의 최적 정합 매크로블럭은 현재의 매크로블럭으로부터 d/2, 3d/2, 또는 2d 픽셀만큼 변위된다. 전형적으로, 최적 정합 듀얼 프라임 매크로블럭의 탐색은 하나의 직사각형 픽셀 탐색 영역 (one square pixel search area)내에서 수행되며 9점 탐색(nine point search)이다.
제5도를 참조하면, 최적 정합을 찾기 위한 반대 패리티 필드의 탐색을 하는 필드 화면에 대한 듀얼 프라임 방법을 도시하였다. 도면에 나타낸 바와 같이, 현재 매크로블럭과 동일 패리티 필드의 픽셀 R에서 출발해서 현재 매크로블럭으로부터 d 픽셀만큼 변위된 기준 매크로블럭이 기본 움직임 벡터(base motion vector)를 제공한다. 다음은 벡터 d가 1/2로 스케일되며, 이것으로 9점 듀얼 프라임 탐색 윈도우의 중앙을 정의하는 반대 패리티 필드내의 매크로블럭 위치를 식별한다. 이어서 동일 패리티 기준 매크로블럭과“듀얼 프라임” 기준 매크로블럭의 세트로서의 각각의 9개의 반대 패리티 기준 매크로블럭의 평균을 사용하여 듀얼 프라임 탐색 동작을 수행한다. 이 탐색으로 얻은 최적 정합 듀얼 프라임 결과는 그와 관련된 2개의 움직임 벡터 뿐만 아니라 MPEG2 표준에 따라 모두 직접 인코딩될 수 있는 차이 매크로블럭을 갖는다. 이 두 개의 움직임 벡터는 동일 패리티 기준 필드를 가리키는 움직임 벡터 d와 최적 정합 듀얼 프라임 결과를 계산하기 위해 사용되는 반대 패리티 필드 매크로블럭의 듀얼 프라임 탐색 윈도우의 중앙으로부터 하프 픽셀 변위를 제공하는 차이 움직임 벡터(dmv)이다.
본 발명은 마이크로코드 및 하드웨어를 사용하여 인코더 내에서 듀얼 프라임 움직임 추정을 수행하기 위한 효율적이고 융통성 있는 시스템을 포함한다. 기재된 환경에서, 마이크로코드는 MPEG 표준에 규정되어 있는 움직임 벡터 스케일 동작을 수행하는데에 이용된다. 이 계산으로 설정 파라미터가 얻어지는데, 시스템은 이 파라미터를 사용하여, 듀얼 프라임 탐색 원도우의 크기를 결정하고, 탐색 윈도우에 속한 필요한 듀얼 프라임 기준 데이터를 페치하며, 듀얼 프라임 움직임 추정 계산을 수행하고, 움직임 추정 및 인코딩 효율 측면에서 최적 정합을 제공하는 계산값 및 그에 상응하는 위치를 선택한다.
본 발명의 바람직한 실시 태양에서, 마이크로코드에는 최적 정합 기준 매크로블럭(MB)의 위치를 주어진 현재 MB 위치에 대하여 지정하는 기준 데이터 움직임 벡터가 제공된다. 마이크로코드에는 또한 수평 및 수직 화면 크기 이외에 화면 구조가 프레임인지 아니면 필드인지가 제공된다.
마이크로코드에 의해 수행되는 제1 단계는 기준 데이터 움직임 벡터를 스케일하고, 화면 구조가 필드인지 아니면 프레임인지에 따라 각각 1개 또는 2개의 듀얼 프라임 데이터 움직임 벡터를 발생시키는 것이다. 필드 구조의 화면에 대하여, 마이크로코드는 기준 데이터 움직임 벡터를 다음 2가지 방법 중 어느 하나로 스케일 하는 융통성을 갖는다. 첫 번째 방법은 MPEG 표준에 제공된 그대로의 방법(straight-forward method)으로, 최적 정합 기준 MB 가 현재 MB에 대하여 동일 패리티를 갖는다. 제5도에 나타낸 바와 같이, 최적 정합 기준 MB 의 시작 위치 R을 가리키는 기준 데이터 움직임 벡터 spmv 가 0.5 만큼 스케일되고 움직임 벡터 opmv로 나타내어진다. 듀얼 프라임 데이터 움직임 벡터를 나타내는 이 스케일된 움직임 벡터는 듀얼 프라임 기준 데이터의 시작 위치 DPR을 가리킨다. 현재 MB 및 기준 MB 모두에 대하여 반대되는 패리티인 이 위치는 듀얼 프라임 움직임 추정을 위하여 최적 정합을 탐색할 수 있는 하나의 직사각형 픽셀 윈도우의 중앙을 나타낸다.
필드 구조의 화면에 대하여 마이크로코드가 기준 데이터 움직임 벡터를 스케일할 수 있는 두 번째 방법은 신규한 것으로, 현재 MB에 대하여 반대 패리티를 갖는 최적 정합 기준 MB 가 제공된다. 제6도에 나타낸 바와 같이, 최적 정합 기준 MB의 시작 위치 R을 가리키는 기준 데이터 움직임 벡터 opmv 는 2만큼 스케일되고 움직임 벡터 spmv 로 나타내어진다. 듀얼 프라임 데이터 움직임 벡터를 나타내는 이 스케일된 움직임 벡터는 듀얼 프라임 기준 데이터의 시작 위치 DPR을 가리킨다. 현재 MB에 대해서는 동일 패리티이지만 기준 MB 에 대해서는 반대 패리티인 이 위치는 듀얼 프라임 움직임 추정을 위하여 최적 정합을 탐색할 수 있는 4개의 직사각형 픽셀 윈도우의 중앙을 나타낸다.
후자의 방법을 사용하여, 최적 정합 기준 MB 와 듀얼 프라임 탐색 윈도우의 중앙에 위치하는 듀얼 프라임 기준 MB 데이터의 위치들의 패리티가 전자의 방법에 대하여 반대라는 것이 밝혀졌다. 이 상황에서 듀얼 프라임 움직임 추정의 최적 정합을 제공하는 것으로 밝혀진다면, 인코딩된 움직임 벡터는 최적 정합 기준 MB 의 패리티가 현재 MB의 패리티와 동일하다는 것을 반영해야 한다. 이것은 후자의 방법을 사용하여 유도한 움직임 벡터가 마이크로코드에 의해 적합한 포맷으로 변환될 것을 요구한다.
필드 구조의 화면에 대한 듀얼 프라임 움직임 추정에 따르는 인코딩된 움직임 벡터를 계산하기 위하여, MPEG 표준에 하기 식이 정의되어 있다.
듀얼 프라임 식
OP_HMV = (SP_HMV*M) //2 + HDMV
0P_HMV = (SP_VMV*M) //2 + E + VDMV
식 중, OP_HMV = 반대 패리티 수평 움직임 벡터.
OP_VMV = 반대 패리티 수직 움직임 벡터.
SP_HMV = 동일 패리티 수평 움직임 벡터.
SP_VMV = 동일 패리티 수직 움직임 벡터.
HDMV = 수평 차이 움직임 벡터. (값 = - 1, 0, +1)
VDMV = 수직 차이 움직임 벡터. (값 = - 1, 0, +1)
M = 2개의 필드 사이의 필드 거리, 이것은 필드 사이의 시간적 거리에 기초하여 움직임 벡터를 스케일하는데 사용된다. (값 = 1, 3)
E = 상부 필드 (top field)와 저부 필드(bottom field)사이의 수직 이동을 반영하기 위한 보정값. (상부 필드로부터 저부 필드로 가는 OP_VMV의 경우 e = -1, 저부 필드로부터 상부 필드로 가는 OP_VMV의 경우 e = +1)
// = 0으로부터 가장 가까운 정수로 반올림하되 정수의 절반인 수는 0으로부터 먼 정수로 반올림하는 나눗셈(divide with a round away from 0 to the nearest whole number)을 나타낸다.
모든 벡터는 1/2 픽셀 표시로 나타내었다.
상기 식은 동일 패리티 움직임 벡터로부터 반대 패리티 움직임 벡터를 계산하는데 사용된다. 필드 화면의 경우, 기준 필드가 탐색되는 현재 필드에 대해 동일 패리티일 때 마이크로 코드는 움직임 벡터 (SP_HMV, SP_VMV)를 직접 받을 것이다. 마이크로코드는 이어서 현재 필드 바로 앞의 반대 패리티 필드를 가리키는 반대 패리티 움직임 벡터 (OP_HMV, OP_VMV)를 계산하기 위하여 상기 식을 이용할 것이다. (OP_VMV, OP_HMV)를 계산하기 위하여, 마이크로코드는 모든 필드 화면에 대하여 m = 1을 사용하고 차이 움직임 벡터 (HDMV, VDMV)를 0으로 설정한다. E는 현재 필드가 상부(F1) 또는 저부(F2)인지를 기초로 하여 설정된다. 이 시스템은 이어서 최상의 예측을 달성하기 위하여 이 위치 주변의 하나의 직사각형 픽셀 거리를 탐색한다. 최적 정합 예측 위치는 차이 움직임 벡터(HDMV, VDMV)를 갖는 하드웨어에 의해 나타내어진다.
기준 필드가 탐색되는 현재 필드에 대해 반대되는 패리티인 필드 화면의 특별한 경우, 마이크로코드는 반대 패리티 움직임 벡터 (OP_HMV, OP_VMV)를 받을 것이다. 이어서 하기에 나타낸 바와 같이 동일 패리티 움직임 벡터에 대하여 듀얼 프라임 식을 풀어야 한다.
역듀얼 프라임 식 (필드 화면에 대하여 M = 1)
SP_HMV = 2 * OP_HMV -2 * HDMV
SP_VMV = 2 * OP_VMV -2 * E - 2 * VDMV
식 중, OP_HMV = 반대 패리티 수평 움직임 벡터.
OP_VMV = 반대 패리티 수직 움직임 벡터.
SP_HMV = 동일 패리티 수평 움직임 벡터.
SP_VMV = 동일 패리티 수직 움직임 벡터.
HDMV = 수평 차이 움직임 벡터. (값 = -1, 0, +1)
VDMV = 수직 차이 움직임 벡터. (값 = -1, 0, +1)
M = 2개의 필드 사이의 필드 거리. 이것은 필드 사이의 시간적 거리에 기초하여 움직임 벡터를 스케일하는데 사용된다. (값 = 1, 3)
E = 상부 필드와 저부 필드 사이의 수직 이동을 반영하기 위한 보정값. (상부 필드로부터 저부 필드로 가는 OP_VMV의 경우 e = -1, 저부 필드로부터 상부 필드로 가는 OP_VMV 의 경우 e = +1)
모든 벡터는 1/2 픽셀 표시로 나타내었다.
앞의 경우에서와 같이, 마이크로코드는 M = 1 을 사용하고, (HDMV, VDMV)를 0으로 설정하며, 탐색되는 현재 필드가 F1또는 F2인지를 기초로 하여 E 를 설정한다. 이렇게 하여, 마이크로 코드에 의해 동일 패리티 움직임 벡터(SP_HMV, SP_VMV )를 계산할 수 있다.
하드웨어 탐색을 수행함에 있어서, HDMV 및 VDMV로 반환되는 허용가능한 값들은 -1/2, 0 및 +1/2이다. 따라서, -2 * HDMV 및 -2 * VDMV는 -1, 0 및 +1과 같다. 이것은 유효한 탐색 위치가 풀 픽셀 위치에만 있는 4개의 직사각형 픽셀의 탐색 윈도우에 해당한다. 듀얼 프라임 식에서 발생하는 반올림을 이해함으로써 단순화가 달성될 수 있다. 이렇게 하여, 듀얼 프라임 추정을 수행하기 위해 4개의 직사각형 픽셀 탐색 윈도우내의 각 1/2 픽셀 위치가 사용될 수 있다.
일단 최적 정합 탐색 위치가 식별되면, 새로운 동일 패리티 움직임 벡터(SP_HMV′, SP_VMV′) 및 차이 움직임 벡터(HDMV, VDMV)를 하기 식을 사용하여 유도할 수 있다.
SP_HMV′= SP_HMV + BM_HDMV
SP_VMV′= SP_VMV + BM_VDMV
HDMV = OP_HMV - (SP_HMV′//2)
VDMV = OP_VMV - (SP_VMV′//2) -E
식 중, SP_HMV = 반대 패리티 수평 움직임 벡터.
SP_VMV = 반대 패리티 수직 움직임 벡터.
SP_HMV = 동일 패리티 수평 움직임 벡터.
SP_VMV = 동일 패리티 수직 움직임 벡터.
OP_HMV = 반대 패리티 수평 움직임 벡터.
OP_VMV = 반대 패리티 수직 움직임 벡터.
HDMV = 수평 차이 움직임 벡터. (값 = -1, 0, +1)
VDMV = 수직 차이 움직임 벡터. (값 = -1, 0, +1)
BM_HDMV = 최적 정합 수평 차이 움직임 벡터.
(값 = -2, -1, 0, +1, +2)
BM_VDMV = 최적 정합 수직 차이 움직임 벡터.
(값 = -2, -1, 0, +1, +2)
모든 벡터는 1/2 픽셀 표시로 나타내었다.
반올림 항(rounding term) //는 탐색의 1/2 픽셀 위치를 유효하게 만든다. 벡터의 크기를 더 크게 만드는 1/2 픽셀 위치는 어느 것이나 탐색 윈도우의 중앙점으로부터 멀어져 갈 것이다. 벡터의 크기를 더 작게 만드는 1/2 픽셀 위치는 어느 것이나 탐색 윈도우의 중앙점으로 가까워질 것이다.
특별한 경우의 유용성은 반대 패리티 필드를 먼저 탐색할 수 있다는 것으로, 이는 동일 패리티 필드보다 시간상 더 가깝기 때문에 최적 정합을 보다 잘 생성할 것이다. 4개의 직사각형 픽셀 탐색 영역내의 어떠한 1/2 픽셀 위치라도 탐색할 수 있음으로 해서, 1/2 픽셀 듀엘 프라임 탐색을 수행하는데 사용되는 것과 동일한 범용 하드웨어(general purpose hardware)(다음에 정의함)를 상기 특별한 경우를 위한 듀얼 프라임 탐색을 수행하는데 이용할 수 있다.
제6도에 나타낸 바와 같이, 9개의 가능한 위치 중 하나를 사용하여 탐색 하드웨어에 대해 듀얼 프라임 탐색 윈도우의 중앙을 식별할 수 있었다. 듀얼 프라임 탐색을 수행하기 위해 마이크로코드에 의해 식별된 실제의 위치는 듀얼 프라임 움직임 벡터가 가리키는 위치에 해당한다. 이 위치는 이 벡터에 가장 가까운 픽셀을 탐색하기 위하여 선택된다.
이 특별한 경우에 1/2 픽셀 탐색 원도우만을 사용하여, (HDMV, VDMV)를 아래에 나타낸 바와 같이 (BM_HDMV, BM_VDMV)로부터 구할 수 있다.
SP_HMV = 0인 경우, HDMV = -BM_HDMV
SP_VMV = 0인 경우, VDMV = -BM_VDMV
SP_HMV > 0인 경우, (BM_HDMV = +1)에 대해 HDMV = -1
(BM_HDMV = -1 또는 0)에 대해 HDMV = 0
SP_VMV > 0인 경우, (BM_VDMV = +1)에 대해 VDMV = -1
(BM_VDMV = -1 또는 0)에 대해 VDMV = 0
SP_HMV < 0인 경우, (BM_HDMV = -1)에 대해 HDMV = +1
(BM_HDMV = +1 또는 0)에 대해 HDMV = 0
SP_HMV < 0인 경우, (BM_VDMV = -1)에 대해 VDMV = +1
(BM_VDMV = -1 또는 0)에 대해 VDMV = 0
식중, SP_HMV = 동일 패리티 수평 움직임 벡터.
SP_VMV = 동일 패리티 수직 움직임 벡터.
HDMV = 수평 차이 움직임 벡터. (값 = -1, 0, +1)
VDMV = 수직 차이 움직임 벡터. (값 = -1, 0, +1)
BM_HDMV = 최적 정합 수평 차이 움직임 벡터.
(값 = -2, -1, 0, +1, +2)
BM_VDMV = 최적 정합 수직 차이 움직임 벡터.
(값 = -2, -1, 0, +1, +2)
모든 벡터는 1/2 픽셀 표시로 나타내었다.
프레임 구조의 화면에 대하여, MPEG 표준에 따라 최적 정합 기준 MB 의 상대적 패리티는 현재 MB 의 상대적 패리티와 맞아야 한다. 이 경우, 기준 MB 를 구성하는 각 패리티 필드에 대하여 하나씩 2가지 독립적인 움직임 벡터 스케일 동작을 수행한다. 제7도에 나타낸 바와 같이, 최적 정합 기준 MB 의 시작 위치 R′를 가리키는 기준 데이터 움직임 벡터 spmv 는 0.5만큼 스케일되고 움직임 벡터 opmv′로 나타내어진다. 현재 MB 의 첫 번째 필드에 대한 듀얼 프라임 움직임 벡터를 나타내는 상기 스케일된 움직임 벡터는 듀얼 프라임 기준 데이터의 시작 위치 R″를 가리킨다. 또한, 최적 정합 기준 MB 의 시작 위치 R″를 가리키는 기준 데이터 움직임 벡터 spmv 는 1.5만큼 스케일되고 움직임 벡터 opmv″로 나타내어진다. 현재 MB 의 두 번째 필드에 대한 듀얼 프라임 움직임 벡터를 나타내는 상기 스케일된 움직임 벡터는 듀얼 프라임 기준 데이터의 시작 위치 DPR″를 가리킨다. 현재 MB 및 기준 MB 모두에 대하여 반대되는 패리티인 이들 위치는 듀얼 프라임 움직임 추정을 위하여 최적 정합을 탐색할 수 있는 하나의 직사각형 픽셀 윈도우의 중앙을 나타낸다.
듀얼 프라임 기준 움직임 벡터(들)을 유도했을 때, 마이크로코드는 하기 데이터를 출력하여 하드웨어가 듀얼 프라임 탐색 동작을 수행할 수 있게 한다.
듀얼 프라임 어드레스는 풀 픽셀 DPR 데이터가 페치되는 시작 메모리 어드레스를 나타낸다.
듀얼 프라임 풀 픽셀 X-Y 포인터는 페치되는 DPR 데이터에 따르는 듀얼 프라임 움직임 벡터가 x (수평) 및 y(수직) 방향 모두에서 풀 픽셀 또는 하프 픽셀을 가리키는지를 나타낸다. 2개의 비트를 정의하여 4가지 상태 (XFULL-YFULL, XFULL-YHALF, XHALF-YFULL, XHALF-YHALF)를 표시할 수 있다.
듀얼 프라임 경계 검출(Dual Prime Edge Detection)은 페치되는 DPR 데이터에 따르는 듀얼 프라임 움직임 벡터가 하나 또는 그 이상의 화면 경계(picture boundaries)에 놓인 위치를 가리키는지를 나타낸다. 4개의 비트(Top, Bottom, Left, Right)를 정의하여 9가지 상태를 표시할 수 있다(경제 접촉 없음(NONE), Top(T), Bottom(B), Left(L), Right(R), Top-Left(TL), Bottom-Left(BL), Top-Right(TR), Bottom-Right(BR)).
상기 시스템은 프레임 구조의 화면을 인코딩할 때 2가지 독립적인 듀얼 프라임 필드 탐색이 일어날 수 있도록 마이크로코드에 의해 출력된 상기 기준 데이터의 세트를 2개 유지한다는 것에 주목하여야 한다.
일단 시스템이 마이크로코드에 의해 개시된 듀얼 프라임 탐색을 완료하면, 두가지 결과가 마이크로코드가 사용하도록 반환된다. 이는 최적 정합 듀얼 프라임 누적 차이(Best Match Dual Prime Accumlated Difference) 및 오프셋 위치 (Offset Location)인데, 이들은 다음에 더 상세히 기술한다. 최적 정합 듀얼 프라임 누적 차이는 주어진 MB에 대하여 최상의 비듀얼 프라임 결과와 비교되고, 마이크로코드는 하드웨어에 의한 출력을 위해 전체적인 최적 정합 결과를 선택한다. 마이크로코드는 최적 정합 결과 장비(Best Match Result facility)에 기록함으로써 현재의 MB 및 최적 정합 기준 MB를 모두 출력하기 위하여 시스템을 프롬프트(prompts)시킨다.
[하드웨어 기능]
일단 마이크로코드가 듀얼 프라임 동작을 개시하면 시스템이 수행하는 제1단계는 탐색을 수행하기 위하여 페치되는 DPR 데이터의 양과, 수행되는 듀얼 프라임 탐색의 실제 횟수를 결정하는 것이다. 하드웨어는 픽셀 구조(즉, 필드 또는 프레임)뿐만 아니라 듀얼 프라임 풀 픽셀 X-Y 포인터 및 듀얼 프라임 경계 검출 장비로 마이크로코드에 의해 설정된 값들을 기초로 하여 상기 양들을 구한다. 표 2는 DPR 데이터 페치 크기 및 유효한 듀얼 프라임 탐색의 횟수를 모두 결정하는데 사용되는 변환 메카니즘을 나타낸다. 이 표는 비디오 화면이 특히 그 경계에서 어떻게 구성되는가를 고려하여 얻었다. 이러한 화면의 예를 제8도에 도시하였다.
제8도에서, 화면은 3가지 픽셀 유형으로 구성되는 것으로 나타난다. X로 표시된 제1 유형은 풀 픽셀 위치로 부른다. 실제 비디오 화면에서, 그들은 조사되는 실제의 디스플레이 위치이다. 나머지 픽셀 유형은 인접한 풀 픽셀 위치로부터 보간법에 의해 또는 평균을 내어 구한다. O로 표시되는 제2 픽셀 유형은 하프 픽셀 위치로 부른다. 이 픽셀 유형은 수직 화면 평면에서 2개의 인접한 풀 픽셀을 평균하여 구한 수직 하프 픽셀, 또는 수평 화면 평면에서 2개의 인접한 풀 픽셀을 평균하여 구한 수평 하프 픽셀로 더욱 세분될 수 있다. 0-X로 표시되는 제3 픽셀 유형은 쿼터 픽셀 위치로 부르며, 4개의 인접한 풀 픽셀을 평균하여 구한다. 이러한 픽셀 유형들은 각각 듀얼 프라임 탐색 동작을 수행하는데에 사용될 수 있다. 추가로, 화면 경계 위치는 도면에서 T(Top), B(Bottom), L(Left), 및 R(Right)의 세트로 표시하였다.
제8도에 나타낸 바와 같이, 가능한 듀얼 프라임 탐색 횟수는 듀얼 프라임 경계 검출 장비에 의해 지정되는 듀얼 프라임 움직임 벡터에 의해 접촉된 화면 경계의 수를 기초로 하여 완전히 결정될 수 있다. 구체적으로, 화면 경계 위치가 접촉되지 않을 때에는 9개의 듀얼 프라임 탐색 위치인 최대의 세트가 검사되고, 1 또는 2개의 화면 경계 위치가 접촉되었을 때에는 각각 6개 또는 4개의 듀얼 프라임 탐색 위치가 확인된다.
페치 크기는 3가지 인자에 의해 결정한다.
[화면 구조(필드 또는 프레임)]
표 2에 나타낸 바와 같이, 프레임 구조 화면에 비해 필드 구조 화면을 프로세싱할 때에는 페치당 거의 두배 많은 DPR 데이터가 필요하다. 이것은 필드 구조 화면 MB가 단일의 필드(F1또는 F2)만으로 구성되는 반면에 프레임 구조 화면은 두가지 필드(F1및 F2)로 구성되기 때문이다. 듀얼 프라임 움직임 추정은 필드 기준이므로, 프레임 구조 화면을 프로세싱할 때에는 주어진 페치에 대하여 수직 방향으로 단지 절반의 데이터만이 페치되어야 한다. 그러나, 필드 구조 화면에 대해서는 2개의 필드가 각 MB를 구성하기 때문에 2배 많은 페치가 필요하다. 따라서, 전체 필드 또는 프레임 MB의 듀얼 프라임 탐색을 위해 페치되는 DPR 데이터의 총량은 대략 같다.
[듀얼 프라임 경계 검출값]
앞서 언급한 바와 같이, 실행가능한 듀얼 프라임 탐색 위치의 최대수는 듀얼 프라임 움직임 벡터에 의해 접촉되는 경계의 수와 함께 감소한다. 탐색 횟수가 감소할수록 전체 탐색 동작을 위해 페치되는 DPR 데이터의 양도 감소한다. 따라서, 페치되는 DPR 데이터의 양은 접촉되는 경계의 수가 증가할수록 감소한다.
[듀얼 프라임 풀 픽셀 X-Y 포인터값]
앞서 언급한 바와 같이, 이 장비의 값은 듀얼 프라임 벡터에 의해 참조되는 픽셀의 유형을 결정한다. XFULL-YFULL의 값은 풀 픽셀 위치가 참조되는 것을 의미하고, XFULL-YHALF 또는 XHALF-YFULL의 값은 각각 수직 또는 수평의 하프 픽셀 위치가 참조되는 것을 의미하며, XHALF-YHALF의 값은 쿼터 픽셀 위치가 참조되는 것을 의미한다. 이 픽셀은 듀얼 프라임 탐색 윈도우의 중앙점을 나타내고, 여기서 유효 탐색 위치는 수직 및 수평 픽셀 평면에서 최대로 플러스 또는 마이너스 하프 픽셀 만큼 이동시켜서 찾을 수 있다. 모든 페치된 DPR 데이터는 화면의 경계내에 있어야 하므로, 듀얼 프라임 움직임 벡터가 하나 또는 그 이상의 화면 경계와 접촉할 때에는 일부 듀얼 프라임 탐색 위치가 제외된다.
제8도에 나타낸 바와 같이, 듀얼 프라임 경계 검출 및 풀 픽셀 X-Y 포인터 장비에 포함된 값들을 기초로 하여 16개의 유일한 듀얼 프라임 탐색 윈도우가 정의되어 있다. 점선으로 둘러싸인 픽셀 세트는 듀얼 프라임 탐색 동작에 참여하는 DPR MB의 시작 위치를 정의한다. 필드 구조의 화면에 대하여, 각 DPR MB 는 256개의 픽셀로 이루어지고, 16 X 16개의 블럭으로 구성된다. 프레임 구조의 화면에 대해서는, 각각 128 픽셀로 이루어지고 16 X 8의 블럭으로 구성되는 2가지 독립된 DPR MB 탐색이 수행된다. 추가로, 보간된 픽셀 탐색 위치가 주어진 픽셀 세트의 상부 또는 저부에서 나타나는 경우, 탐색될 필요한 DPR MB 데이터를 얻기 위하여 추가의 수평 및/또는 수직 데이터가 페치된다. 일반적으로, 하기 식이 이용될 수 있다.
Y_FETCH = 18 - [YHALF + T + B + (8)(FRM_PIC)]
X_FETCH = 18 - [XHALF + L + R]
이들 식에서, X_FETCH는 페치될 행 당 픽셀의 수를 나타내며, Y_FETCH는 페치될 행의 수를 나타내며, XHALF는 수평 축에서 듀얼 프라임 움직임 벡터가 하프 픽셀 위치 또는 풀 픽셀 위치를 가리키는지를 나타내며(풀 픽셀의 경우 0, 하프 픽셀의 경우 1), YHALF는 수직 축에서 듀얼 프라임 움직임 벡터가 하프 픽셀 위치 또는 풀 픽셀 위치를 가리키는지를 나타내며 (풀 픽셀의 경우 0, 하프 픽셀의 경우 1), T 는 듀얼 프라임 움직임 벡터가 화면 최상단에 부딪치는 지를 나타내며 (비접촉의 경우 0, 최상단 접촉의 경우 1), B는 듀얼 프라임 움직임 벡터가 화면 최하단데 부딪치는 지를 나타내며 (비접촉의 경우, 최하단의 접촉의 경우 1), L은 듀얼 프라임 움직임 벡터가 화면 좌측단에 부딪치는 지를 나타내며 (비접촉의 경우 0, 좌측단 접촉의 경우1), R은 듀얼 프라임 움직임 벡터가 화면 우측단에 부딪치는 지를 나타내며 (비접촉의 경우 0, 우측단 접촉의 경우 1), FRM_PIC는 화면 구조를 나타낸다(필드의 경우 0, 프레임의 경우 1).
페치 크기가 유도되면, 현재 MB, 기준 MB 및 DPR 데이터가 메모리로부터 페치되며, 듀얼 프라임 탐색 동작이 시작된다. 다음 하드웨어 알고리즘은 주어진 듀얼 프라임 탐색 윈도우에 대하여 모든 듀얼 프라임 탐색 동작을 수행하기 위하여 구현된다.
/* 제1 부분 - 변수 초기화 */
/* 제2 부분 - 필요한 현재, 기준 및 DPR MB 데이타를 페치 */
/* 제3 부분 - 듀얼 프라임 탐색 동작 수행 */
위 알고리즘은 세 부분으로 나누어진다.
(1) 변수 초기화
이 부분은 알고리즘의 다른 부분에서 요구되는 변수들을 초기화한다. 변수 y_max(탐색되는 행의 최대 개수) 및 loop-cnt(알고리즘들 통틀어 지나간 횟수)은 화면 구조가 필드인지 또는 프레임인지에 따라 다르게 초기화된다. 프레임 화면의 경우, 전술한 필드 화면에 비하여 보면 y_max 는 2로 나누어지며 loop_cnt 는 2로 곱하여진다. 또한 벡터 dp_accum(1:9)은 9회까지의 듀얼 프라임 탐색 동작 결과를 저장하는데 사용되는데, 0으로 초기화된다.
(2) 데이터 페치
이 부분은 필요한 현재의 MB(cmb), 기준 MB(rmb) 및 듀얼 프라임 기준 (dpr) 데이터를 메모리로부터 페치한다. 요구되는 페치를 수행하기 위하여 3가지 서비스가 제공된다. 첫째로, fetch_mb를 사용하여 MB 포맷 내에서 필요한 데이터를 페치한다. 이는 데이터 페치가 순간적 (progressive fashion)으로 (즉, 행을 건너뛰지 않고) 행을 페치하도록 된 것을 의미한다. 이 서비스는 화면 구노가 필드일 때 사용된다. 둘째 서비스, fetch_F1은 홀수 행의 데이터 만을 페치하기 위하여 사용된다 (즉, 짝수 행을 건너 뛴다). 마지막으로 서비스, fetch_F2는 짝수 행의 데이터 만을 페치하기 위하여 사용된다(즉, 홀수 행을 건너 뛴다). 나중의 두 서비스는 화면 구조가 동일 패리티 필드가 페치되며, DPR 데이터의 경우에는 프레임 화면의 특정 필드 상에 듀얼 프라임 탐색 동작을 수행하기 위하여 반대 패리티 필드가 페치된다.
(3) 듀얼 프라임 탐색 동작
알로리즘의 마지막 부분은 실제의 듀얼 프라임 탐색 동작을 수행한다. 변수 max_search_num은 표2에 정의된 바와 같이 현재 탐색 윈도우에 대하여 수행될 탐색의 회수를 식별한다. 서비스 find_seach_unit는 현재의 듀얼 프라임 MB 탐색 동작을 위해 사용되는 적합한 누적기(accumlator)를 식별하는데 사용된다. 이 서비스는 프레임 구조의 화면에서 수행되는 두 개의 독립적인 필드 탐색을 위한 사응하는 윈도우 오프셋이 동일한 누적기를 향하도록 보장한다. 이 목적을 달성하기 위하여, find_search_unit의 구성은 주어진 탐색 원도우에 대하여 듀얼 프라임 움직임 벡터가 향하는 DPR 픽셀 위치들의 세트를 할당하여 누적기(5)에 의해 탐색하도록 이루어진다. 이 위치에 대한 좌상측, 상측, 우상측, 좌측, 우측, 좌하측, 하측 및 우하측으로의 DPR 픽셀 위치들의 세트는 할당되어 각각 누적기(1, 2, 3, 4, 6, 7, 8 및 9)에 의해 탐색된다. 따라서, find_search_unit 호출 각각은 현재 탐색되고 있는 픽셀 위치들의 세트에 기초하여 적합한 누적기 값을 출력한다.
변수 y와 y′는 특정 행을 식별하는데 사용되며, x와 x′는 각각 현재/기준 MB들과 DPR MB 데이터 내에서 탐색되고 있는 행에서의 특정 픽셀 위치를 식별하는데 사용된다. 두가지 부가적인 서비스가 y′와 x′ 변수의 일부로서 정의된다. 이는 dpr_y_offset 및 dpr_x_offset이다. 이들 루틴(routines)은 현재의 듀얼 프라임 MB탐색 동작을 수행하기 위하여 요구되는 DPR 데이터를 액세스할 y 및 x 화면 평면의 DPR 데이터 오프셋 값들을 출력하는데 사용된다.
실제의 듀얼 프라임 탐색 계산을 수행하는 첫 단계는 요구되는 적합한 DPR 데이터값을 결정하는 것이다. 이 목적을 위해 사용되는 변수가 dar_ave 이다. 이 변수에 할당되는 값은 요구되는 현재의 DPR MB 가 각각 하프/쿼터 또는 풀 픽셀들 로 이루어지는지에 따라 보간(평균)되거나 보간되지 않을(풀 픽셀 값)수 있다. 현재의 듀얼 프라임 탐색 동작에 사용되고 있는 DPR 픽셀 유형을 결정하기 위하여 4개의 추가적인 서비스가 정의된다. dpr_fp_search, dpr_hhp_search, dp_vhp_search 및 dp_qp_search 루틴들은 각각 현재의 듀얼 프라임 탐색 동작을 위한 DPR 픽셀 유형이 풀, 수평 하프, 수직 하프 및 쿼터의 어느 것인지를 결정한다. MPEG 표준에 따라, 모든 DPR 보간 동작은 가장 가까운 정수로 반올림하되 정수의 절반인 수는 0으로부터 먼 정수로 반올림하는 정수 나눗셈 (integer division with rounding away from zero)을 규정하고 있다.
듀얼 프라임 탐색 계산을 수행하는 마지막 단계는 현재의 픽셀 위치 탐색 결과를 가지고 특정 누적기를 갱신하는 것이다. 더해지는 값들을 보간된 DPR 데이터 dpr_ave 에 의해 기준 MB 픽셀 위치 rmb(x,y)를 보간한 것과 현재 MB 픽셀 위치 cmb(x,y) 사이의 차이의 절대값을 나타낸다. 이 동일한 처리가 탐색되는 DPR MB 를 이루는 각각의 픽셀 위치에 대하여 반복된다.
특정의 DPR 탐색 윈도우에 해당하는 모든 듀얼 프라임 탐색 동작이 수행되면, 두가지 결과가 마이크로코드로 출력된다.
그 하나는 최적 정합 듀얼 프라임 누적 차이(Best Match Dual Prime Accumulated Difference)이다. 이 결과는 듀얼 프라임 탐색 동작을 수행하기 위해 수행되는 누적기들의 세트 중의 최소값에 해당한다.
나머지 하나는 최적 정합 듀얼 프라임 오프셋 위치(Best Match Dual Prime Offset Location)이다. 이 결과는 차이 움직임 벡터(dmv : differential motion vector)라는 움직임 벡터 오프셋을 나타내는데, 이는 누적된 차이의 최소값에 해당한다. dmv의 x와 y 성분 모두는 그 크기가 -1/2에서 +1/2 픽셀까지 변화하며, 이들 모두는 원래의 듀얼 프라임 움직임 벡터에 의해 참조되는 픽셀 위치에 해당하는 원점 (즉, 듀얼 프라임 탐색 윈도우의 중앙)에 대하여 계산된다.
여러개의 듀얼 프라임 탐색 위치가 발생하는 최소의 결과값이 동일한 경우에, 그 중 하나의 오프셋 위치를 선택하도록 알고리즘이 고안되어야 한다. 고안된 알고리즘은 움직임 벡터 인코딩 효율을 최적화한다. MPEG 표준에 따라, DPR 데이터에 관계되는 dmr는 가변 길이 인코딩된다. 이 인코딩 체계에서, dmr 성분 값 이 0인 픽셀들에는 하나의 인코딩된 비트가 필요하며, 값이 -1/2 및 +1/2인 픽셀에는 두 개의 인코딩된 비트가 필요하다. 최대의 듀얼 프라임 탐색 윈도우 크기를 위한 인코딩 효율을 최적화하기 위해서는, x 및 y dmv 성분 모두를 인코딩하기 위해 필요한 비트의 총수에 따라 9개의 탐색 위치의 우선 순위가 먼저 3개의 그룹으로 나뉘어진다. 제9도는 가능한 9개의 탐색 위치를 a에서 i까지로 표기하여 나타내었으며, 위치 e는 듀얼 프라임 탐색 윈도우의 중앙에 해당한다. 우선 순위가 가장 높은 그룹은 위치 e를 포함하는데, 이는 이 위치에서 인코딩하는데 필요한 비트의 수(2)가 가장 적기 때문이다. 그 다음으로 높은 우선 순위를 갖는 그룹은 위치 b, d, f 및 h를 포함하는데, 이는 이 위치들의 경우 인코딩하는데 그 다음으로 적은 수의 비트(3)이 필요하기 때문이다. 가장 낮은 우선 순위의 그룹은 위치 a, c, g 및 i를 포함하는데, 이는 이들의 경우 가장 많은 수의 비트(4)가 인코딩하는데 필요하기 때문이다. 낮은 우선 순위의 그룹에서는 dmv 가 선택되는 순서가 움직임 벡터 인코딩 효율 면에서 중요하지 않다는 점에 주목하여야 한다. 제9도에 이 위치들을 나열한 순서는 각 그룹 내에서의 우선 순위에 해당한다.
본 발명이 소정의 바람직한 실시 태양 및 예를 참조하여 기술되었으나, 본 발명의 범위는 이에 의해 제한되는 것이 아니며, 첨부된 청구범위에 의해서만 해석된다.
본 발명은 영상을 효율적으로 복원(압축해제)하기 위해 사용될 수 있는 고속의 효율적인 움직임 추정(시간 압축)을 제공하였다. 본 발명에 따르면, 반대 패리티 필드를 먼저 탐색할 수 있으므로, 동일 패리티 필드보다 시간상 더 가까워서 최적 정합을 보다 잘 생성할 수 있다.
[표 2]

Claims (6)

  1. F1과 F2 패리티(F1and F2parities)의 영상들을 가지는 동화상에서 화면 간의 비디오 압축(inter-picture video compression)을 위해 현재 필드의 매크로블럭(macroblock)으로부터 이전 필드의 매크로블럭까지의 움직임 벡터들(motion vectors)을 발생시키기 위한 방법으로서, a. 상기 현재 화면의 일 패리티 필드(a parity field of the current picture)에서 매크로블럭을 정의하는 단계, b. 이전 필드에서 제1 최적 정합 매크로블럭(first best match macroblock)을 찾기 위해 동일 패리티 또는 반대 패리티의 이전 필드를 탐색하는 단계, c. 현재 패리티 필드에 있는 현재 매크로블럭으로부터 상기 동일 또는 반대 패리티의 이전 패리티 필드에 있는 상기 제1 최적 정합 매크로블럭까지 벡터를 형성하는 단계, d. 상기 단계 c에서 형성된 벡터가 듀얼 프라임 탐색 윈도우(dual prime search window)의 중앙을 정의하는 상기 제1 최적 정합 매크로블럭에 대하여 반대 패리티 필드에 있는 듀얼 프라임 매크로블럭(dual prime macroblock)을 가리키도록 상기 벡터를 스케일하는 단계, e. 상기 제1 최적 정합 매크로블럭과 상기 듀얼 프라임 탐색 윈도우에서 듀얼 프라임 매크로블럭 위치의 세트의 평균을 취하고, 최적 정합 듀얼 프라임 매크로 블럭을 결정하기 위하여 탐색하는 단계, f. 상기 제1 최적 정합 매크로블럭과 상기 최적 정합 듀얼 프라임 매크로블럭 모두를 가리키는 듀얼 프라임 움직임 벡터와 차이 움직임 벡터(dmv : differential motion vector)를 형성하는 단계를 포함하는 움직임 벡터 발생 방법.
  2. 제1항에 있어서, 상기 제1 최적 정합 매크로블럭은 상기 현재의 매크로블럭으로부터 d 픽셀 - 여기서, d는 정수 - 만큼 변위되는 움직임 벡터 발생 방법.
  3. 제1항에 있어서, 제2의 최적 정합 매크로블럭은 상기 현재의 매크로블럭으로부터 d/2, 3d/2, 또는 2d 픽셀 - 여기서, d는 정수 - 만큼 변위되는 움직임 벡터 발생 방법.
  4. 제1항에 있어서, 하나의 직사각형 픽셀 탐색 영역 내에서(within a one square pixel search ared) 상기 최적 정합 듀얼 프라임 매크로블럭의 탐색을 수행하는 단계를 포함하는 움직임 벡터 발생 방법.
  5. 제4항에 있어서, 9점 탐색(nine point search)을 수행하는 단계를 포함하는 움직임 벡터 발생 방법.
  6. 제1항에 있어서, 4개의 직사각형 픽셀 듀얼 프라임 탐색 윈도우의 하프 픽셀 위치에서(at half pixel locations inside a four square pixel dual prime search window)탐색을 수행하는 단계를 포함하는 움직임 벡터 발생 방법.
KR1019960052609A 1996-02-14 1996-11-07 듀얼프라임 움직임 추정시스템 및 방법 KR100246167B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US8/601,486 1996-02-14
US08/601,486 1996-02-14
US08/601,486 US6049362A (en) 1996-02-14 1996-02-14 Dual prime motion estimation system and method

Publications (2)

Publication Number Publication Date
KR970064265A KR970064265A (ko) 1997-09-12
KR100246167B1 true KR100246167B1 (ko) 2000-03-15

Family

ID=24407672

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960052609A KR100246167B1 (ko) 1996-02-14 1996-11-07 듀얼프라임 움직임 추정시스템 및 방법

Country Status (6)

Country Link
US (1) US6049362A (ko)
EP (1) EP0790580B1 (ko)
JP (1) JPH09233477A (ko)
KR (1) KR100246167B1 (ko)
DE (1) DE69713923T2 (ko)
TW (1) TW324878B (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU1941797A (en) * 1997-03-17 1998-10-12 Mitsubishi Denki Kabushiki Kaisha Image encoder, image decoder, image encoding method, image decoding method and image encoding/decoding system
US6269174B1 (en) * 1997-10-28 2001-07-31 Ligos Corporation Apparatus and method for fast motion estimation
EP0917363A1 (en) * 1997-11-17 1999-05-19 STMicroelectronics S.r.l. Motion estimator algorithm and system's architecture
US6501799B1 (en) * 1998-08-04 2002-12-31 Lsi Logic Corporation Dual-prime motion estimation engine
JP3957915B2 (ja) * 1999-03-08 2007-08-15 パイオニア株式会社 フェード検出装置及び情報符号化装置
US6519005B2 (en) * 1999-04-30 2003-02-11 Koninklijke Philips Electronics N.V. Method of concurrent multiple-mode motion estimation for digital video
US6687295B1 (en) * 2000-07-27 2004-02-03 Ati International Method and apparatus for motion estimation for encoding sequential frames
WO2002071758A2 (en) * 2001-03-07 2002-09-12 Pts Corporation Local constraints for motion estimation
US8406301B2 (en) 2002-07-15 2013-03-26 Thomson Licensing Adaptive weighting of reference pictures in video encoding
US7376186B2 (en) * 2002-07-15 2008-05-20 Thomson Licensing Motion estimation with weighting prediction
US7057664B2 (en) * 2002-10-18 2006-06-06 Broadcom Corporation Method and system for converting interlaced formatted video to progressive scan video using a color edge detection scheme
JP2004213641A (ja) * 2002-12-20 2004-07-29 Sony Computer Entertainment Inc 画像処理装置、画像処理方法、情報処理装置、情報処理システム、半導体デバイス、コンピュータプログラム
FR2852179A1 (fr) * 2003-03-06 2004-09-10 Thomson Licensing Sa Procede de codage d'une image video
US7602849B2 (en) * 2003-11-17 2009-10-13 Lsi Corporation Adaptive reference picture selection based on inter-picture motion measurement
US7474807B2 (en) * 2004-02-20 2009-01-06 Fuji Xerox Co., Ltd. System and method for generating usable images
US7558428B2 (en) * 2004-09-13 2009-07-07 Microsoft Corporation Accelerated video encoding using a graphics processing unit
WO2006085726A1 (en) * 2005-02-14 2006-08-17 Samsung Electronics Co., Ltd. Method and apparatus for encoding/decoding and referencing virtual area image
KR100703751B1 (ko) * 2005-02-14 2007-04-06 삼성전자주식회사 가상 영역의 영상을 참조하여 인코딩 및 디코딩 하는 방법및 장치
JP4866417B2 (ja) * 2006-03-09 2012-02-01 パイオニア株式会社 画像処理装置、画像処理方法、および画像処理プログラム
GB201007351D0 (en) * 2010-04-30 2010-06-16 Imagination Tech Ltd Varying temporal interpolation in a motion compensated frame interpolation system
US9769494B2 (en) * 2014-08-01 2017-09-19 Ati Technologies Ulc Adaptive search window positioning for video encoding
CN105007493B (zh) * 2015-07-17 2018-06-29 珠海市杰理科技股份有限公司 基于运动搜索窗的匹配搜索方法和系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5467136A (en) * 1991-05-31 1995-11-14 Kabushiki Kaisha Toshiba Video decoder for determining a motion vector from a scaled vector and a difference vector
US5210605A (en) * 1991-06-11 1993-05-11 Trustees Of Princeton University Method and apparatus for determining motion vectors for image sequences
CA2079434A1 (en) * 1991-09-30 1993-03-31 Derek Andrew Motion vector estimation, motion picture encoding and storage
US5414469A (en) * 1991-10-31 1995-05-09 International Business Machines Corporation Motion video compression system with multiresolution features
US5398078A (en) * 1991-10-31 1995-03-14 Kabushiki Kaisha Toshiba Method of detecting a motion vector in an image coding apparatus
US5253056A (en) * 1992-07-02 1993-10-12 At&T Bell Laboratories Spatial/frequency hybrid video coding facilitating the derivatives of variable-resolution images
DE4322343C2 (de) * 1992-07-06 1996-10-02 Mitsubishi Electric Corp Mittel zum Erfassen eines Bewegungsvektors und Verfahren zum Bestimmen eines Bewegungsvektors
US5448310A (en) * 1993-04-27 1995-09-05 Array Microsystems, Inc. Motion estimation coprocessor
US5436666A (en) * 1993-05-21 1995-07-25 Intel Corporation Limited-domain motion estimation/compensation for video encoding/decoding
US5398068A (en) * 1993-09-02 1995-03-14 Trustees Of Princeton University Method and apparatus for determining motion vectors for image sequences
US5438374A (en) * 1993-12-10 1995-08-01 At&T Corp. System and method for filtering video signals
US5500689A (en) * 1994-10-26 1996-03-19 Thomson Consumer Electronics, Inc. System for detecting a video signal image intensity gradient
US5619268A (en) * 1995-01-17 1997-04-08 Graphics Communication Laboratories Motion estimation method and apparatus for calculating a motion vector

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IEEE JOURNAL OF SOLID-STATE CIRCUITS, vol 30, no 12, pages 1502-1508(''95. 12. 1) *

Also Published As

Publication number Publication date
DE69713923D1 (de) 2002-08-22
EP0790580A2 (en) 1997-08-20
TW324878B (en) 1998-01-11
JPH09233477A (ja) 1997-09-05
EP0790580A3 (en) 1998-04-15
KR970064265A (ko) 1997-09-12
US6049362A (en) 2000-04-11
EP0790580B1 (en) 2002-07-17
DE69713923T2 (de) 2003-02-13

Similar Documents

Publication Publication Date Title
KR100246167B1 (ko) 듀얼프라임 움직임 추정시스템 및 방법
KR101932735B1 (ko) 다중 참조를 허용하는 비디오 코덱에서 모션 벡터를 예측하는 방법, 및 그 방법을 이용한 모션 벡터 부호화/복호화 장치
US5661524A (en) Method and apparatus for motion estimation using trajectory in a digital video encoder
KR100294999B1 (ko) 디지탈비디오데이타스트림의시간적인압축방법및탐색프로세서
US5210605A (en) Method and apparatus for determining motion vectors for image sequences
US5398068A (en) Method and apparatus for determining motion vectors for image sequences
US6005980A (en) Motion estimation and compensation of video object planes for interlaced digital video
US6275532B1 (en) Video coding device and video decoding device with a motion compensated interframe prediction
US6859494B2 (en) Methods and apparatus for sub-pixel motion estimation
US8401079B2 (en) Image coding apparatus, image coding method, image decoding apparatus, image decoding method and communication apparatus
KR100739281B1 (ko) 움직임 추정 방법 및 장치
JP3386142B2 (ja) 画像復号装置および画像復号方法
RU2307478C2 (ru) Компенсация глобального движения для видеоизображений
EP0762776B1 (en) A method and apparatus for compressing video information using motion dependent prediction
KR102036771B1 (ko) 동화상 예측 부호화 장치, 동화상 예측 부호화 방법, 동화상 예측 부호화 프로그램, 동화상 예측 복호 장치, 동화상 예측 복호 방법 및 동화상 예측 복호 프로그램
JPH07193823A (ja) 映像データ・ブロック変換システム
KR19980080014A (ko) 양방향으로 예측된 비디오 객체면과 같은 디지털비디오 화상의 코딩을 위한 방법 및 장치
EP1835757B1 (en) Motion picture encoding
WO2002071741A2 (en) A device and method for performing half-pixel accuracy fast search in video coding
KR100240620B1 (ko) 양방향의 반화소 움직임 추정을 위한 대칭 탐색 윈도우를 형성하는 방법 및 장치
KR100189268B1 (ko) 프레임 화상에서 필드 모션 추정의 산출 방법 및 장치
KR100617177B1 (ko) 움직임 추정 방법
KR100252346B1 (ko) 개선된 텍스쳐 움직임 벡터 부호화 장치 및 그 방법
JP3237029B2 (ja) 動画像圧縮装置
KR100238891B1 (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: 20101109

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee