KR100246168B1 - 격행비디오를 위한 계층적 움직임 추정 - Google Patents

격행비디오를 위한 계층적 움직임 추정 Download PDF

Info

Publication number
KR100246168B1
KR100246168B1 KR1019960053041A KR19960053041A KR100246168B1 KR 100246168 B1 KR100246168 B1 KR 100246168B1 KR 1019960053041 A KR1019960053041 A KR 1019960053041A KR 19960053041 A KR19960053041 A KR 19960053041A KR 100246168 B1 KR100246168 B1 KR 100246168B1
Authority
KR
South Korea
Prior art keywords
resolution
frame
field
motion
error
Prior art date
Application number
KR1019960053041A
Other languages
English (en)
Other versions
KR970064259A (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 KR970064259A publication Critical patent/KR970064259A/ko
Application granted granted Critical
Publication of KR100246168B1 publication Critical patent/KR100246168B1/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/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/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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/53Multi-resolution motion estimation; Hierarchical motion estimation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Analysis (AREA)

Abstract

움직임 추정을 수행하기 위한 시스템 및 방법이 개시된다. 격행 프레임들은 필드에 기초한 스케일링을 사용하여 해상도가 감소되고, 감소된 해상도의 프레임들에 대하여 제1탐색이 수행된다. 이 제1탐색은 현재 프레임의 필드들과 기준 프레임의 필드들 사이의 움직임 에러들을 계산하여 필드간 움직임을 대략적으로 묘사하는 벡터들을 얻음으로써 수행된다. 상기 움직임 에러들을 사용하여 프레임 에러들을 계산하고, 프레임 에러들은 프레임간 움직임을 대략적으로 묘사하는 벡터들을 얻는데 사용된다. 대략적인 필드 벡터와 프레임 벡터는 그 후 정밀화되어 더욱 정확한 벡터들을 얻게 된다.

Description

격행비디오를 위한 계층적 움직임 추정
본 발명은 데이타 압축 분야에 관한 것으로서, 더욱 구체적으로는 디지탈 동화상 신호(digital motion video signals)를 압축하기 위한 시스템 및 방법에 관한 것이다.
디지탈 전송 네트워크, 디지탈 저장 매체, 고밀도 집적 회로, 비디오 및 오디오 신호의 디지탈 처리에서의 기술적 진보는 매우 다양한 응용들에 있어서, 디지탈 비디오의 전송과 저장을 경제적으로 만드는 데 집중되고 있다. 디지탈 비디오 신호의 저장과 전송이 매우 다양한 응용들에 있어서 필수적이기 때문에, 그리고 비디오 신호를 압축하지 않고 나타내면 대용량의 저장 수단을 필요로 하기 때문에, 이러한 진보된 기술에서는 디지탈 비디오 압축 기법을 사용하는 것이 필수적이다. 이와 관련하여, 지난 10년 동안 디지탈 비디오 신호의 압축에 대한 몇가지 국제 표준이 등장했고, 더 많은 표준이 개발중이다. 이들 표준들은 화상 전화(vedeo-telephony), 화상 회의 (teleconferencing), 지상 방송과 직접 방송 위성 뿐만 아니라 동축 케이블 및 광섬유 네트워크를 통한 고품질 디지탈 텔레비젼 전송을 비롯한 다양한 종류의 응용과 CD-ROM, 디지탈 오디오 테이프, 윈체스터 디스크 드라이브(Winchester disk drive)에 대한 상호작용적 멀티미디어 제품들(interactive multimedia products)에서 압축된 디지탈 비디오의 전송과 저장을 위한 알고리즘에 적용된다.
이들 표준들 중의 어떤 것들은 예를 들어, CCITT (Consultative Committee on International Telegraphy and Telephony) 추천 H.120, CCITT 추천 H.261, 및 ISO/IEC MPEG-1 및 MPEG-2 표준과 같은 일반적인 압축 기법에 기초를 둔 알고리즘들을 사용한다. MPEG 알고리즘들은 국제 표준 위원회(International Standards Organization: ISO)와 국제 전자 기술 위원회(International Electrotechnical Commission: IEC)의 합동 기술 위원회의 일부인 동화상 전문가 그룹(Moving Pictures Experts Group: MPEG)에 의하여 개발되었다. MPEG 위원회는 비디오 신호 및 이와 관련된 오디오 신호의 멀티플렉스된, 압축 표현에 대한 표준을 개발중이다. 이 표준은 압축된 비트 스트림(bit stream)의 신텍스(syntax)와 디코딩 방법을 규정하지만, 인코더에서 사용되는 알고리즘의 신규성과 다양성에는 상당한 정도의 자유를 주고 있다.
MPGE-1 및 MPEG-2 알고리즘 모두는 하이브리드 변환 인코딩/움직임 보상 인코더 (hybrid transform encoding/motion compensation encoder)로서 설명할 수 있다. 인코더가 움직임 보상을 효율적으로 사용하기 위해서는, 전형적으로 움직임 추정(motion estimation)이라는 작업을 수행해야 한다.
움직임 추정은 일반적인 용어로 설명하자면 화상에서의 특정 영역이, 시간적으로, 일시적으로 빨리 또는 늦게 나타나는 화상의 어느 곳에서 왔는지를 결정하고, 얼마나 정확하게 현재의 화상의 한 영역이 다른 화상들로부터 왔다고 할 수 있는지를 결정하는 것을 말한다.
움직임 추정은 MPEG-2 인코더가 수행하는 가장 계산 강도가 높은 작업중의 하나이다. 따라서, MPEG-2 인코더를 만들 때 중요한 고려 사항은 경제적인 움직임 추정 기법을 사용하는 것이다.
제1도는 화상 그룹(Groups of Pictures: 이하 GOP′s)의 예시적인 쌍을 도시한 도면.
제2도는 (4:2:0 포맷을 위한)화상의 예시적인 매크로블럭(macroblock: MB)부분할(subdivision)을 도시한 도면.
제3도는 (4:2:0 포맷을 위한)매크로블럭의 블록 부분할을 도시한 도면.
제4도는 비디오 인코더의 블록도.
제5도는 제11도의 계층적 필드/프레임 계산 엔진의 블록도.
제6도는 본 발명의 원리에 따른 움직임 추정 방법을 설명하는 흐름도.
제7(a)도 및 제7(b)도는 본 발명의 원리에 따른 수평 화상 스케일링(horizontal image scaling)의 예를 도시한 도면.
제8(a)도 및 제8(b)도는 본 발명의 원리에 따른 수직 화상 스케일링(vertical image scaling)의 예를 도시한 도면.
제9(a)도 및 제9(b)도는 본 발명의 원리에 따른, 프레임 형태로 도시된 감소 해상도 프레임(reduced resolution frame)과 매크로블럭의 예를 도시한 도면.
제10(a)도, 제10(b)도, 제10(c)도 및 제10(d)도는 본 발명의 원리에 따른, 프레임 형태로 도시된, 감소된 해상도 프레임과 매크로블럭의 예를 도시한 도면.
제11도는 본 발명의 일 실시예에 따른 움직임 추정 유닛의 블록도.
제12도는 본 발명의 일 실시예에 따른 인코더 및 디코더 쌍의 블록도.
* 도면의 주요부분에 대한 부호의 설명
504 : 최대 해상도 데이타용 메모리 525 : 정밀화 유닛
506 : 스케일러 510 : 감소 해상도 데이타용 메모리
514 : 필드 에러 계산 유닛 518 : 필드 에러 대 프레임 에러 유닛
522 : 정밀화 결정 유닛 525 : 정밀화 유닛
본 발명은 움직임 추정을 위한 시스템 및 방법에 관한 것이다. 격행 프레임들(interlaced frames)은 필드-기초 스케일링(field-based scaling)을 사용하여 해상도가 감소되고, 이 감소된 해상도의 프레임들에 대하여 제1탐색(first search)이 수행된다. 상기 제1탐색은 현재의 프레임의 필드들과 기준 프레임의 필드들 사이의 움직임 에러들(motion errors)을 계산하여 필드간 움직임(inter-field motion)을 대략적으로 묘사하는 벡터들을 얻도록 수행된다. 이 움직임 에러들을 사용하여 프레임 에러들(frame errors)을 계산하게 되고, 이 프레임 에러들을 사용하여 프레임간의 움직임(inter-frame motion)을 대략적으로 묘사하는 벡터들을 얻게 된다. 대략적인 필드 (벡터와 프레임 벡터들을 정밀화하여 (refine) 더욱 정확한 벡터을 얻게 된다. 본 발명은 ISO/IEC MPEG-2 표준에서 사용하기에 적합한 인코더로 구현할 수 있는 장점이 있다.
a. MPEG-2 환경
본 발명은 MPEG-2 인코더와 관련하여 적용될 수 있으므로, 본 발명의 이해를 돕기 위하여, MPEG-2 압축 알고리즘의 몇 가지 관련 있는 특징들에 대하여 검토하기로 한다. 그러나, 본 발명은 MPEG 알고리즘과 몇 가지 특징이 공통인 여타의 비디오 코딩 알고리즘들에도 적용할 수 있다는 것에 주목해야 한다.
우선, 일 페이지의 텍스트, 화상, 음성의 일부분, 또는 비디오 시퀀스(video sequence)와 같은 데이타 오브젝트의 압축은 하기와 같은 일련의 단계들로서 생각할 수 있음을 알 것이다. 즉, (1)데이타 오브젝트를 토큰들의 집합으로 분할하는 단계, (2) 이 토큰들을 어떤 의미에서 최소 길이를 갖는 이진 스트링으로 나타내는 단계, 및 (3) 잘 정의된 순서로 이 스트링들을 연접시키는 (concatenate)단계로서 생각할 수 있다. 단계(2)와 단계(3)은 손실이 없고, 즉 역행(reversal)시에 원래의 데이타가 충실히 복원될 수 있고, 단계(2)는 엔트로피 코딩으로 알려져 있다. 단계(1)은 일반적으로 무손실이거나 유손실일 수 있다. 대부분의 비디오 압축 알고리즘들은 엄격한 비트율 (bit-rate) 요건들 때문에 손실이 생긴다. 성공적인 유손실 압축 알고리즘은 중복성(redundant) 및 관계없는 정보를 제거하여, 시각적으로 중요하지 않을 것같은 곳에서는 상대적으로 큰 에러를 허용하고 인간 관찰자에게 매우 민감한 곳에는 시퀀스의 특징들을 조심스럽게 나타낸다. 단계(1)을 위한 MPEG-2 알고리즘에서 사용되는 기법은 예측성/보간 움직임 보상 하이브리드 DCT/DPCM코딩 (predicitve/interpolative motion-compensated hybrid DCT/DPCM coding)으로서 설명할 수 있다. 또한, 가변 길이 코딩으로 알려진 허프만 코딩(Huffman coding)도 단계(2)에서 사용된다. 그러나, 전술한 바와 같이, MPEG-2 표준은 디코더와 압축 비트 스트림 신텍스를 지정하는 것이지만, MPEG-2의 스펙 (specification)에 대한 이하의 설명은 편의를 위하여 인코더측 입장에서 되어 있다.
MPEG-2 비디오 표준은 「1994, 국제 표준, 비디오, ISO-IEC JTC1/ SC29/WG11의 동화상 및 연관된 오디오 정보의 일반적 코딩」에 지정된 대로 전송을 위하여 비디오의 코딩된 표현을 지정한다. 이 알고리즘은 격행 (interlaced)또는 비격행(noninterlaced) 성분 비디오에 동작하도록 고안되었다. 각각의 화상은 3개의 성분, 즉 휘도(luminance: Y), 적색차(red color difference: Cr), 및 청색차(blue color difference: Cb)를 가지고 있다. 비디오 데이타는 각각의 Y 샘플에 대하여 하나의 Cr샘플과 Cb샘플이 있는 4:4:4 포맷, 또는 수평 방향으로 휘도 샘플의 절반 만큼의 Cr샘플과 Cb샘플이 있는 4:2:2 포맷, 또는 수평 및 수직 방향 모두에 휘도 샘플의 절반만큼의 Cr샘플과 Cb샘플이 있는 4:2:0 포맷으로 코딩될 수 있다.
MPEG-2 데이타 스트림은 시스템 정보와 다른 비트스트림과 함께 패킹되어(packed) 충화된 (layered)것으로 간주할 수 있는 시스템 데이타 스트림으로 된 비디오 스트림 및 오디오 스트림으로 구성된다. MPEG-2 데이타 스트림의 비디오 층내에서, 압축된 데이타는 더 층화된다. 이 층들(layers)의 구성에 대한 설명은 본 발명을 이해하는데 도움이 된다. MPEG-2 비디오 층하된 구조(Video Layered Structure)의 층들은 제1도 내지 제3도에 도시되어 있다. 이 층들은 압축 비트 스트림의 구성 뿐만 아니라 압축 알고리즘의 동작에 관련된다. 최고층은 비디오 시퀀스층(Video Sequence Layer)이고, 이는 제어 정보 및 전체 시퀀스에 대한 파라메터를 포함하고 있다. 다음 층에서는 시퀀스가 연속된 화상들의 세트로 분할되는데, 이들 각각은“화상 그룹 (Group of Pictures: GOP)”으로 알려져 있다. 이 층에 대한 일반적인 예시가 제1도에 도시되어 있다. 디코딩은 선행 GOP와 관계없이 어떠한 GOP의 시작에서도 개시될 수 있다. 하나의 GOP에 들어갈 수 있는 화상들의 수에는 제한이 없으며, 모든 GOP에 동일한 개수의 화상들이 있어야 하는 것도 아니다.
제3층 또는 화상층 (Picture Layer)은 단일 화상이다. 이 층에 대한 일반적인 예시는 제2도에 도시되어 있다. 각각의 화상의 휘도 성분은 16×16 영역으로 분할된다. 색차 성분들(color difference components)은 상기 16×16 휘도 영역과 공간적으로 동일 위치에 있는 적절한 크기의 블록으로 분할된다. 4:4:4 비디오에서는 색차 성분은 16×16이고, 4:2:2 비디오에서는 색차 성분은 8×16이고, 4:2:0 비디오에서는 색차 성분은 8×8이다. 이들을 모아서, 이들 동일 위치에 있는 휘도 영역과 색차 영역은 매크로블럭(“macroblock”:MB)이라고 일컫는 제5층을 구성한다. 화상내의 매크로블럭은 매크로블럭 1로부터 시작하여 사전적 순서로 연속적으로 번호가 부여된다.
화상과 MB층 사이에는 제4층, 즉“슬라이스층 (slice layer)”이 있다. 각각의 슬라이스는 수개의 연속적인 MB로 구성된다. 최종적으로, 각각의 MB는 8×8 휘도 블록과, (4:4:4, 4:2:2 및 4:2:0 비디오에 대하여) 8, 4 또는 2개의 크로미넌스 블록 (chrominance block)으로 구성된다. 시퀀스, GOP, 화상 및 슬라이스층은 모두 그들과 연관된 해더(header)를 가지고 있다. 헤더들은 바이트-정렬 개시 코드(byte-aligned Start Codes)와 함께 시작되고 그 대응하는 층에 포함된 데이타에 관계있는 정보를 포함한다.
화상은 필드-구조이거나 프레임-구조일 수 있다. 프레임-구조 화상은 전체 프레임, 즉 홀수 라인을 포함하는 하나의 필드와 짝수 라인을 포함하는 나머지 필드의 조합을 복원할 정보를 포함한다. 필드-구조 화상은 하나의 필드를 복원할 정보를 포함한다. (화소에서) 각각의 휘도 프레임의 폭을 C 라고 하고 높이를 R 이라고 하면(C는 칼럼을 나타내고 R은 로우를 나타냄), 프레임 구조 화상은 C×R 개의 화소에 대한 정보를 포함하고, 필드-구조 화상은 C×R/2개의 화소에 대한 정보를 포함한다.
필드-구조 화상에서 매크로블럭은 하나의 필드로부터의 16×16 화소 세그먼트를 포함하다. 프레임-구조 화상에서의 매크로블럭은 2개의 필드가 구성하는 프레임으로부터의 16×16 화소 세그먼트를 포함한다. 각각의 매크로블럭은 2개의 필드 각각으로부터의 16×8 영역을 포함한다.
GOP 내에는, 3가지 종류의 화상이 나타날 수 있다. 화상 종류를 구별시키는 차이점은 사용된 압축 방법이다. 인트라모드 화상(Intramode pictures)또는 Ⅰ-화상이라고 하는 제1형은 다른 화상과 독립적으로 압축된다. Ⅰ-화상간의 거리에는 고정된 상한이 없지만, 시퀀스 도처에 빈번하게 배치되어 랜덤 액세스 및 다른 특별한 동작 모드를 용이하게 할 것으로 기대된다. 예측성 움직임-보상 화상 (Predictively motion-compensated pictures: P-화상)은 압축 데이타로부터 복원되어 그 화상에 이전에 디스플레이된 Ⅰ-화상 또는 P-화상으로부터의 2개의 복원된 필드들을 가산한 것으로 된다. 양방향성 움직임-보상 화상 (B-화상)은 압축 데이타로부터 복원되어 그 화상에 이전에 디스플레이된 I-화상 또는 P-화상으로부터의 2개의 복원된 화상과, 미래에 디스플레이될 Ⅰ-화상 또는 P-화상으로부터의 2개의 복원된 필드드를 가산한 것이 된다. 복원된 I-화상 또는 P-화상은 다른 화상을 복원하는데 사용할 수 있기 때문에, 이들은 앵커 화상(anchor pictures)이라고 불린다.
통상의 압축 기법은 변환 코딩(transform coding)이다. MPEG-2 및 수개의 다른 압축 표준들에서, 이산 코사인 변환 (discrete cosine transform: DCT)이 선택할 수 있는 변환이다. Ⅰ-화상의 압축은, (1) 화소 블록들의 DCT를 취하는 단계, (2) DCT 계수들을 양자화하는 단계, 및 (3) 그 결과를 허프만 코딩하는 단계로 달성된다. MPEG-2에서는, DCT 연산이 n×n 화소들이 블럭을 n×n 세트의 변환 계수들로 변환한다. 몇 가지 국제 압축 표준에서와 마찬가지로, MPEG-2 알고리즘은 8×8 크기의 DCT 블록을 사용한다. DCT 변환 자체는 무손실 연산이고, 이는 계산 장치의 정확도와 수행 알고리즘에 따라 반전될 수 있다.
DCT 계수들의 양자화 단계인 제2단계는 MPEG-2 알고리즘의 손실의 주원인이다. 절단 정정(truncation correction) 또는 라운딩 정정(rounding correction)을 제외하고, DCT 계수의 2차원 배열의 요소들을 cmn이라고 하면 (여기서 m과 n은 0 내지 7), 양자화는 각각의 DCT 계수 cmn을 Wmn×QP 로 나눔으로써 달성된다(여기서 Wmn은 가중치 인자이고 QP는 양자화 파라메터이다). 가중치 인자 wmn은 시각적으로 덜 중요한 계수에는 더 저해상도(coarser) 양자화를 할 수 있도록 허용한다. 양자화 파라메터 QP는 품질 대 비트율 (quality vs. bit-rate)을 타협하는 주요 수단이다. QP는 화상 내에서 MB별로 변할 수 있다는 것에 주목해야 한다.
양자화 이후에, 각각의 MB에 대한 DCT에 대한 DCT 계수 정보는 허프만 코드의 세트를 사용하여 조직되고 코딩된다. 이 단계에 대한 상세한 설명은 본 발명의 이해에 필수적이지는 않고 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 일반적으로 이해할 것이므로, 본 명세서에서는 더 이상의 상세한 설명을 하지 않는다.
대부분의 비디오 시퀀스는 연속된 화상 사이에 고도의 상관성(correlation)이 있다. 화상을 코딩하기 이전에 이러한 중복성을 제거하는 유용한 방법은“움직임 보상”이다. MPEG-2는 (이하에 설명하는 바와 같이) 몇가지 움직임 보상 방법의 수단을 제공한다.
많은 움직임 보상 방법은 다음과 같은 공통점이 있다. 각각의 매크로블럭에 대하여, 하나 이상의 움직임 벡터가 비트 스트림으로 인코딩된다. 이들 움직임 벡터는 디코더로 하여금 예측성 매크로블럭(predictive macroblock)이라고 불리는 매크로블럭을 복원할 수 있도록 한다. 인코더는 인코딩될 매크로블럭으로부터“예측성”매크로블럭을 감산하여“차동”매크로블럭 (“difference” macroblock)을 형성한다. 인코더는 인트라 매크로블럭(intra macroblock)을 압축하는데 사용하는 수단과 본질적으로 유사한 수단을 사용하여 차동 매크로블럭을 압축한다.
화상의 종류(I, P 또는 B)와 구조(필드 또는 프레임)에 따라 사용할 움직임 보상 방법을 결정한다. 인코더는 화상 내의 각각의 매크로블럭에 대하여 이들 방법중에서 선택한다. 또한, 인코더는 각각의 매크로블럭에 대한 선택된 움직임 보상방법과 함께 어느 움직임 벡터를 사용할 것인지를 선택한다. 이 프로세스를“움직임 추정”이라고 한다. 바람직한 실시예에서는, 본 발명은 프레임-구조 화상에 대하여 움직임 추정을 다룬다. 프레임-구조 화상에 대한 움직임 보상에 대하여 이하에 설명한다.
움직임 보상 방법은 사용된 매크로블럭 모드와 움직임 보상 모드에 의하여 설명된다. 4개의 매크로블럭 모드, 즉 인트라 모드(intra mode:Ⅰ-모드), 순방향 모드(forward mode:F-모드), 역방향 모드(backward mode: B-모드) 및 보간 순방향-역방향 모드(interpolative forward-backward mode: FB 모드)가 있다. Ⅰ-모드에서는, 움직임 보상이 사용되지 않는다. 다른 매크로블럭 모드에서는, 프레임 (FR)또는 필드(FI)움직임 보상 모드가 사용될 수 있다. (어떤 경우에는 다른 모드(이중 프라임: dual prime)가 사용될 수 있다. 이중 프라임에 대한 움직임 추정 방법은 본 발명의 목적이 아니므로, 이중 프라임 움직임 보상에 대하여는 본 명세서에서 설명하지 않는다.) 본 명세서에는 매크로블럭 모드와 그 매크로블럭 모드에 의하여 사용되는 움직임 보상 모드의 결합을 움직임 보상“방법”이라고 한다. 그러한 방법에는 6가지, 즉 F/FR, B/FR, FB/FR, F/FI, B/FI, FB/FI가 있다. 이들 방법에 대하여 이하 설명한다.
어떤 화상의 매크로블럭이라도 Ⅰ매크로블럭 모드로 압축할 수 있다. 이것은 Ⅰ-화상에서 사용할 수 있는 유일한 매크로블럭 모드이고, 움직임 보상을 사용하지 않는다.
F 매크로블럭 모드는 P-화상 또는 B-화상에서는 사용할 수 있지만, Ⅰ-화상에서는 사용할 수 없다. F 매크로블럭 모드가 사용되면, 예측성 매크로블럭은 현재 화상 이전에 디스플레이될 앵커 화상(이전 앵커 프레임)으로부터의 가장 최근에 디코딩된 최상부 및 최하부 필드로부터 형성된다.
B 또는 FB 매크로블럭 모드는 B-화상에서는 사용할 수 있지만, Ⅰ또는 P 화상에서는 사용할 수 없다. B 매크로블럭 모드가 사용되면, 예측성 매크로블럭은 현재 화상 이후에 디스플레이될 2개의 가장 최근에 디코딩된 앵커 필드들(미래 앵커 프레임)로부터 형성된다. FB 매크로블럭 모드가 사용되면, 예측성 매크로블럭은 미래 앵커 프레임과 이전 앵커 프레임으로부터 형성된다.
F 매크로블럭 모드와 FR 움직임 보상 모드를 사용하는 움직임 보상 방법(F/FR)에 대하여 이하 설명한다. 인코더는 비트 스트림 내에 하나의 벡터를 보낸다. 이 벡터는 이전 프레임에서 지표(indices)의 세트를 발생시키는데 사용되고, 예측성 매크로블럭은 이들 지표에 위치하는 16×16 영역이다. 이러한 움직임 보상 방법이 사용되면, 2개의 필드를 구별하지 않는다. 즉, 이전 프레임과 현재의 매크로블럭은(2개의 필드가 아닌)단일 화상으로서 관찰되고, 예측성 매크로블럭은 이전 프레임 어디에서든지 시작할 수 있다.
B/FR 움직임 보상 방법은 예측성 매크로블럭을 발생시킴에 있어서 이전 프레임 대신에 미래 프레임을 사용한다는 것을 제외하고는 F/FR 방법과 동일하다.
F 매크로블럭 모드와 FI 움직임 보상 모드를 사용하는 움직임 보상 방법(F/FI)에 대하여 이하 설명한다. 인코더는 비트 스트림 내에 2개의 벡터를 보낸다. 각각의 벡터는 이전 프레임 내의 필드들 중의 하나의 필드로부터 16×8 화소 배열을 형성하는데 사용된다. 각각의 벡터와 함께 기준 프레임의 어느 필드를 사용할 것인지를 나타내는 2개의 비트가 보내진다. 예측성 매크로블럭은 이들 2개의 배열을 끼워 짜서(interleave) 형성한다. 즉, 제1 배열은 예측성 매크로블럭의 홀수 라인을 제공하고, 제2배열은 짝수 라인을 제공한다. (각각의 배열은 예측성 매크로블럭에서 상이한 필드에 대하여 사용된다.)
B/FI 움직임 보상 방법은 예측성 매크로블럭을 발생시킴에 있어서 이전 프레임 대신에 미래 프레임을 사용한다는 것을 제외하고는 F/FI 방법과 동일하다.
FB/FR 움직임 보상 방법은 다음과 같이 동작한다. 인코더는 2개의 움직임 벡터, 즉 순방향 벡터와 역방향 벡터를 보낸다. 순방향 벡터는 F/FR 움직임 보상방법에서 예측성 매크로블럭을 형성하는데 있어서 벡터가 사용되는 것과 동일한 방식으로 이전 프레임으로부터 매크로블럭을 만드는데 사용되고, 역방향 벡터는 B/FR 움직임 보상 방법에서 예측성 매크로블럭을 형성하는데 있어서 벡터가 사용되는 것과 동일한 방식으로 미래 프레임으로부터 매크로블럭을 만드는데 사용된다. 이들 2개의 매크로블럭은 평균되어 예측성 매크로블럭을 형성한다.
FB/FI 움직임 보상 방법은 다음과 같이 동작한다. 인코더는 4개의 움직임 벡터, 즉 2개의 순방향 벡터와 2개의 역방향 벡터를 보낸다. 순방향 벡터는 F/FI 움직임 보상 방법에서 예측성 매크로블럭을 형성함에 있어서 2개의 벡터가 사용되는 것과 동일한 방식으로 이전 프레임으로부터 매크로블럭을 만드는데 사용되고, 역방향 벡터는 B/FI 움직임 보상 방법에서 예측성 매크로블럭을 형성함에 있어서 2개의 벡터가 사용되는 것과 동일한 방식으로 미래 프레임으로부터 매크로블럭을 만드는데 사용된다. 이들 2개의 매크로블럭은 평균되어 예측성 매크로블럭을 형성한다.
어떤 모드의 움직임 보상을 위하여 보내어진 벡터라도 절반-화소 유닛 내에 있을수 있다. F/FR, F/FI, B/FR 및 B/FI 움직임 보상 방법의 경우에, 사용된 벡터가 절반-화소 유닛에 있으면, 공간 보간 (spatial interpolation)을 사용하여 예측성 매크로블럭을 발생시킨다. FB/FR 및 FB/FI 방법의 경우에는, 사용된 벡터가 절반-화소 유닛에 있을 때에는, 공간 보간을 사용하여 예측성 매크로블럭을 만들도록 평균되는 매크로블럭을 발생시킨다.
인코더는 움직임 추정을 수행하여 움직임 보상 방법과 사용할 움직임 벡터를 결정한다. 인코더가 사용할 수 있는 하나의 방법은 벡터들과 움직임 보상 방법들의 모든 합법적인 조합들을 검사하고, 각각의 조합에 대하여 에러를 계산하고, 가장 에러가 작은 것을 선택하는 것이다. 에러 측정의 예는 움직임 보상 방법과 움직임 벡터의 특정 조합에 의하여 사용될 차동 매크로블럭의 노르마(norm)이다. 이 방법(고갈 탐색: Exhaustive Search)은 계산을 많이 필요로 하므로 실제로는 거의 사용되지 않는다.
각각의 MB를 코딩하기 위하여 사용되는 MB 모드 및 그 모드와 관련된 어떠한 움직임 벡터에 관련된 사이드 정보(side information)를 코딩할 필요를 차치하더라도, 움직임-보상된 매크로블럭들의 코딩은 인트라모드 MB 들의 코딩과 매우 유사하다. 양자화에 있어서 약간의 차이는 있지만, wmn×QP에 의하여 나누는 모델은 그대로 유지된다.
MPEG-2 알고리즘은 고정 비트율 전송 매체(fixed bit-rate transmission media)와 함께 사용할 수 있다. 그러나, 각각의 화상의 비트수는 시간에 따라 코딩되는 장면의 공간적-시간적 복잡성(spatio-temporal complexity)이 변화하는 것뿐만 아니라 상이한 종류의 화상 처리 때문에 정확하게 일정하지는 않다. MPEG-2 알고리즘은 버퍼-기초 비율 제어 기법(buffer-based rate control strategy)을 사용하여 비트율에서 허용되는 변화에 의미 있는 한계를 둔다. 비디오 버퍼 확인기(Video Buffer Verifier:VBB)는 가상 버퍼(virtual buffer)의 형태로 고안되는데, 그 유일한 임무는 각각의 화상을 코딩하는데 사용되는 비트수에 제한을 두어서 전체 비트율이 목표 할당치(target allocation)와 일치하도록 하고 그 목표치로부터의 단기 편차(short-term deviation)가 제한되도록 하는 것이다. 이러한 비율 제어 기법은 다음과 같이 설명할 수 있다. 가상적 디코더가 뒤따르는 버퍼로 구성된 시스템을 생각해 보자. 버퍼는 저장 매체로부터의 비트 스트림 내의 압축 데이타로써 일정한 비트율로 채워진다. 버퍼 크기와 비트율 모두가 압축 비트 스트림에서 전달되는 파라메터들이다. 비트 스트림 내의 정보로부터 파생되는 초기 지연후에, 가상적 디코더는 순간적으로 제1 화상과 연관된 모든 데이타를 버퍼로부터 제거한다. 그 후, 시퀀스의 화상율 (picture rate)과 일치하는 간격으로, 디코더는 버퍼 내의 최초의 화상과 연관된 모든 데이타를 제거한다.
비트 스트림이 MPEG-2 비율 제어 요구 조건을 만족시키기 위해서는, 각각의 화상에 대한 모든 데이타가 디코더에 의하여 필요로 하는 순간에 버퍼 내에서 사용할 수 있게 되고, 버퍼는 결코 오버플로우(overflow)되지 않는다. 이러한 사용 가능성 요구 조건(availability requirement)은 통상 각각의 화상에서 허용되는 비트수의 상한과 하한으로 변환된다. 소정에 화상에 대한 상한과 하한은 그 화상에 선행하는 모든 화상에 사용되는 비트수에 따라 결정된다. 이러한 요구 조건을 만족시키는 비트 스트림을 생성하는 것이 인코더의 기능이다.
제4도는 종래의 MPEG-2 인코더를 간략하게 도시한 블록도이다. MPEG-2 인코딩은 일반적으로 관련 기술 분야에서 알려져 있기 때문에, 도면에는 모든 MPEG-2 부분들을 도시하지는 않았고, 대신에 주요 부분 및 본 발명의 특징을 이해하는데 필요한 부분에 초점을 맞추었다. 특히, 다음과 같은 MPEG-2 인코더의 부분들을 도시하였다: 프레임 메모리(401), 움직임 추정 유닛(402), 비율 제어 유닛(403), 움직임 보상 유닛(413), 변환 유닛 (transformation unit; 414), 양자화 유닛(415), 가변 길이 인코더 유닛(419), 및 출력 버퍼(421), 제4도에 도시된 비디오 인코더로의 입력은 Y, Cb 및 Cr 화소 데이타를 포함하는 신호(409)이다. 출력은 압축된 비트 스트림(422)이다.
제4도의 인코더에서는, 입력 화소 데이타는 프레임 메모리에 저장된다. 움직임 추정 유닛(402)는 각각의 매크로블럭에 대한 움직임 추정을 행한다. 특히, 각각의 매크로블럭에 대하여 움직임 추정 유닛은 어느 움직임 보상 방법을 사용할 것인지와 어느 움직임 벡터를 사용할 것인지에 대하여 결정한다.
움직임 추정 유닛은 움직임 보상 유닛으로 움직임 보상 방법과 움직임 벡터를 신호(412)로서 보낸다. 이 신호는 신호(411)로서 프레임 메모리로부터 검색된 화소 데이타와 함께 차동 매크로블럭을 계산하도록 움직임 보상 유닛에 의하여 사용되고, 이 차동 매크로블럭은 변환 유닛(426)으로 신호(426)으로서 보내진다.
변환 유닛은 차동 매크로블럭(신호(426))을 8×8 블록으로 분할하고 각각의 블록의 DCT 를 계산한다. 이들은 신호(425)로서 양자화 유닛(415)에 보내진다.
양자화 유닛(415)는 (후술하는) 비율 제어 유닛으로부터 신호(417)로서 보내진 양자화 파라메터(Qp)에 기초하여 각각의 DCT 계수를 양자화한다. 이들 양자화된 DCT 계수들은 신호(424)로서 가변 길이 인코더 유닛에 보내진다.
각각의 매크로블럭에 대하여, 가변 길이 인코더 유닛은 양자화된 DCT 계수(양자화 유닛으로부터의 신호(424)), 매크로블럭 모드, 움직임 보상 모드와 움직임 벡터(움직임 추정 유닛으로부터의 신호(416)) 및 Qp (비율 제어 유닛으로부터의 신호(418))에 대한 압축된 표현을 생성한다. 압축 매크로블럭은 신호(420)로서 출력 버퍼(421)에 보내진다.
출력 버퍼는 가변 길이 인코더로부터의 신호(420)로서 각각의 매크로블럭에 대한 압축된 표현을 수신한다. 그 후, 출력 버퍼는 먼저 온 것을 먼저 내보내는 방식으로 수신한 비트를 신호(422)로서 내보낸다. 출력 버퍼가 가득 찼다는 것을 나타내는 신호가 비율 제어 유닛에 신호(423)로서 보내진다.
비율 제어 유닛은 각각의 매크로블럭에 대한 Qp 값을 결정한다. 비율 제어 유닛은 통상 출력 버퍼가 각각 거의 찼거나 거의 비었으면 Qp 값을 각각 증가시키거나 감소시킨다.
“1993, 드래프트, 테스트 모델 5, ISO-IEC/JTC1/SC29 화상 및 음성 정보의 코딩된 표현”에는 종래의 움직임 추정 유닛에 대하여 설명이 되어 있다. 이하, 상기 인용 문헌에 설명된 방법과 유사한 움직임 추정 방법에 대하여 설명한다. 각각의 움직임 보상 방법 (F/FR, F/FI, B/FR, B/FI, FB/FR, FB/FI)에 대하여, 후보 벡터 (또는 벡터 세트)가 선택된다.“예측 에러”가 가장 적은 방법이 그 매크로블럭에 대하여 사용할 방법으로서 선택되고, 그 방법에 대하여 이전에 선택된 후보 벡터(또는 벡터 세트)가 사용될 벡터 (또는 벡터 세트)이다. 예측 에러는 예측성 매크로블럭이 현재 매크로블럭(인코딩되고 있는 매크로블럭)과 불일치하는 정도를 나타내는 수이다. 예를 들어, 예측 에러로서 차동 매크로블럭의“1-노르마(one norm)”를 항상 사용하는 종래의 움직임 추정 유닛에 대하여 설명한다. 숫자들의 세트의 1-노르마는 이들 수의 절대값의 합이다. 따라서, 예측성 매크로블럭의 i행 j열의 화소를 a(i,j)라고 현재 매크로블럭의 i행 j열의 화소를 c(i,j)라고 하면, 차동 매크로블럭의 1-노르마 Δa는:
임시 보간을 사용하지 않는 각각의 방법에 대하여 (F/FR, F/FI, B/FR 및 B/FI), 소정 범위 내의 각각의 벡터(또는 벡터들)를 검사한다. 각각의 벡터(또는 벡터들)에 대하여 예측 에러를 계산한다. 각각의 방법에 대하여 예측 에러가 가장 적은 벡터 또는 벡터 세트가 후보 벡터 또는 벡터 세트로서 선택된다. FB/FR 방법에 대하여는, 후보 벡터는 F/FR 방법 및 B/FR 방법에 대한 후보로서 선택된 벡터와 동일한 벡터이다. FB/FI 방법에 대하여는, 후보 벡터는 F/FI 방법과 B/FI 방법에 대하여 후보로서 선택된 벡터와 동일한 벡터이다. 별도의 계산을 하여 소정의 후보 벡터로서 FB/FI 방법에 대한 예측 에러를 계산한다.
각각의 방법에 대하여 벡터(또는 벡터 세트)가 선택된 후에, 1-노르마가 가장 적은 방법 및 후보 벡터(또는 세트)가 선택된다.
본 발명의 비디오 인코더는 제11도에 도시한 바와 같은 움직임 추정 유닛을 가진, 제4도에 도시한 형태의 인코더이다. 제11도의 움직임 추정 유닛의 동작은 다음과 같이 설명할 수 있다.
비디오 데이타는 메모리(1104)에 신호(1102)로서 보내진다. 계층적 필드/프레임 계산 엔진(1108)은 메모리에 저장된 비디오 데이타를 신호(1106)으로서 판독하고, 각각의 매크로블럭에 대하여 F/FR, F/FI, B/FR 및 B/FI 움직임 보상 방법에 대하여 후보 벡터를 계산하고, 이들은 보간기 (interpolator)와 최종 결정기 (final decision maker: 1114)에 신호(1110)에 보내진다. 보간기와 최종 결정기는 F/FB 및 FB/FI 방법에 대하여 후보 움직임 벡터를 계산하고 어느 움직임 보상 방법을 사용할 것인지를 결정한다.
보간기와 최종 결정기의 동작은 통상의 기술이다. 예를 들어“1993, 드래프트, 테스트 모델 5, ISO-IEC/JTC1/SC29/WG11 화상 및 오디오 정보의 코딩된 표현”에서 움직임 추정기는 제11도의 추정기와 함께 사용하기에 적합한 보간기와 최종 결정기를 가지고 있다.
제5도는 계층적 필드/프레임 계산 엔진(1108)의 더욱 상세한 블록도이다. (최대 해상도의) 비디오 데이타는 신호(502)로서 입력되고, (최대 해상도 비디오 데이타를 저장하는) 메모리 장치(504)의 스케일러(506)로 간다. 스케일러는 그 해상도를 감소시키기 위하여 입력 비디오에 대한 필드-기초 스케일링 (field-based scaling)을 수행하고, 결과인 감소된 해상도 비디오 데이타 (reduced resolution video data)를 신호(508)로서 출력한다. 신호(508)에 의하여 제공되는 감소된 해상도 비디오 데이타는 메모리(510)에 저장된다. (필드-기초 스케일링이란 각각의 필드가 스케일링되어 그 수평 및/또는 수직 해상도를 감소시키고, 스케일링된 필드는 더 낮은 해상도의 프레임으로 재배열된다는 의미이다.)
필드 에러 계산 유닛(514)은 메모리(510)로부터의 신호(512)로서 감소된 해상도 비디오를 판독하고 각각의 매크로블럭에 대하여 필드 움직임 보상 모드 및 역방향 또는 순방향 매크로블럭 모드 (F/FI 및 B/FI 움직임 보상 모드)에 대한 상이한 저해상도 (coarse) 벡터에 대하여 에러를 계산한다. 벡터들을 저해상도 벡터 (coarse vector)라고 하는 것은 그들이 감소 해상도 데이타로부터 계산되어서 최대 해상도 데이타로부터 계산된 벡터만큼 높은 정밀도와 정확도로 움직임을 묘사하지 못하기 때문이다. 이들 에러와 벡터들은 필드 에러 대 프레임 에러 유닛(field errors to frame errors unit; 518)에 의하여 신호(516)로서 판독되고, 필드 에러 대 프레임 에러 유닛(518)은 필드 에러로부터 각각의 매크로블럭에 대하여 프레임 움직임 보상 모드 및 역방향 또는 순방향 매크로블럭 모드(F/FI 및 B/FI 움직임 보상 방법)에 대한 상이한 저해상도 움직임 벡터에 대한 에러를 계산한다. 바람직한 실시예에서는, 필드 에러 대 프레임 에러 유닛은 각각의 프레임 에러를 그 프레임 에러에 대응하는 데이타와 함께 계산된 2개의 필드 에러의 합으로서 계산한다. 필드에러와 벡터 (신호(516)) 뿐만 아니라, 이들 에어와 벡터 (신호(520))는 정밀화 결정 유닛(refine decision unit; 522)에 의하여 판독된다.
정밀화 결정 유닛(522)는 어느 저해상도 움직임 벡터를 정밀화할지를 결정한다. 예를 들어, 하나의 실시예에서 정밀화 결정 유닛은, 각각의 방향에 대하여 (P-화상에 대해서는 순방향, B-화상에 대해서는 순방향 및 역방향), 에러가 가장 적은 저해상도 프레임 벡터를 결정하고, 각각의 매크로블럭의 최상부 및 최하부 필드 각각에 대하여 가장 에러가 적은 저해상도 필드 벡터가 정밀화된다. 정밀화될 벡터를 식별하게 하는 데이타가 정밀화 결정 유닛에 의하여 발생되어 정밀화 유닛(525)에 신호(523)으로서 보내지고, 정밀화 유닛(525)은 신호(524)로서 메모리(504)로부터 최대 해상도 화소 데이타를 판독함으로써 저해상도 벡터를 정밀화하여, 신호(526)로서 최종 후보 벡터를 생성한다.
필드-기초 스케일링을 수행하기 위하여 스케일러가 어떻게 동작하는지의 첫 번째 예는 제7(a)도 및 제7(b)도를 보면 알 수 있다. 이 예에서는, 수평 스케일링만이 수행된다. 제7(a)도에는 최대 해상도 프레임이 도시되어 있고, 제7(b)도에는 수평으로 4:1로 스케일링된 동일한 프레임이 도시되어 있다. 이 예에서는, 스케일링은 4개의 화소의 평균을 구함으로써 행해진다. 최대 해상도 프레임 (7A)은 20개의 칼럼 (A--X)을 가지고 있는 반면에, 감소된 해상도 프레임 (7B)은 5개만을 가지고 있는데 이중에서 첫 번째는 제7(a)도로부터의 열 (A, B, C, D)의 평균이고, 두 번째는 열 (E, F, G, H)의 평균인 방식이다.
스케일러가 어떻게 필드-기초 스케일링을 수행하는지에 관한 두 번째 예는 제8(a)도 및 제8(b)도를 보면 알 수 있다. 이 예에서는, 수직 스케일링만이 수행한다. 제8(a)도는 최대 해상도 프레임만이 도시되어 있고, 제8(b)도에는 수직으로 2:1로 스케일링된 동일 프레임이 도시되어 있다. 이 예에서, 스케일링은 2개의 화소의 평균을 구함으로써 행해진다. 최대 해상도 프레임 (8A)은 20개의 행 (A--X)을 가지고 있는 반면에, 감소된 해상도 프레임 (8B)은 10개만을 가지고 있는데 이중에서 첫 번째는 제8(a)도로부터의 행(A와 C)의 평균이고 두 번째는 행(B와 D)의 평균이고, 세 번째는 행(E와 G)의 평균이며, 네 번째는 행(F와 H)의 평균인 방식이다. 감소된 해상도 프레임(8B)에서는 최상부 필드 (홀수행)는 최대 해상도 프레임 (8A)의 최상부 필드 (홀수행)으로부터의 데이타를 스케일링함으로써 형성된다는 점에 주목해야 한다. 이와 유사한 방식으로, 감소된 해상도 프레임(8B)에서는, 최하부 필드(짝수행)는 최대 해상도 프레임(8A)의 최하부 필드 (짝수행)로부터의 데이타를 스케일링함으로써 형성된다.
제9(a)도 및 제9(b)도는 스케일링이 수평으로 2:1, 수직으로 2:1로 행해지는 감소된 해상도 기준 프레임 및 현재 매크로블럭을 도시한다. 제9(a)도는 (원래 프레임은 20×20개의 화소라는 것을 의미하는) 10×10 화소 크기의 감소된 해상도의 기준 프레임을 도시한다. 제9(b)도는 감소된 해상도의 현재 매크로블럭을 도시한다. 최대 해상도 매크로블럭은 16×16이기 때문에, 감소된 해상도 매크로블럭은 8×8이다. 제10(a)도 및 제10(b)도는 제9(a)도의 프레임을 2개의 필드로서 도시하고 있다. 제10(a)도는 최상부 필드 (top field)를 도시하고, 제10(b)도는 최하부 필드 (bottom field)를 도시한다. 제10(c)도 및 제10(d)도는 제9(b)도의 프레임을 2개의 필드로서 도시한다. 제10(c)도 및 제10(d)도는 매크로블럭의 2개의 필드로서 제9(b)도의 매크로블럭을 도시한다. 제10(c)도는 최상부 필드를 도시하고, 제10(d)도는 최하부 필드를 도시한다. 제9(a)도, 제9(b)도, 제10(a)도, 제10(b)도, 제10(c)도 및 제10(d)도는 필드 에러 계산 유닛(514)와 필드 에러 대 프레임 에러 유닛(518)의 동작의 예를 도시하는데 사용될 것이다.
제10(c)도에서 매크로블럭의 최상부 필드를 살펴본다. 이 영역은 제10(a)도에 도시된 최상부 필드에서 8개의 유사한 크기의 영역에 비교될 수 있다. 필드 에러 계산 유닛은 이들 각각의 경우에 대하여 에러를 계산한다.
또한, 필드 에러 계산 유닛은 최상부 매크로블럭 필드와 최하부 기준 필드 사이의 에러를 계산한다:
또한, 필드 에러 계산 유닛은 최하부 매크로블럭 필드와 최상부 기준 필드 사이의 에러를 계산한다.
또한, 필드 에러 계산 유닛은 최하부 매크로블럭 필드와 최하부 기준 필드 사이의 에러를 계산한다:
예를 들어, 에러 (BT_0_1)은
과,
의 차를 측정한 것이다.
예를 들어, 만일 에러가 1-노르마로 계산된다면, BT_0_1은 상기 블럭 내의 대응하는 값들의 절대값의 합일 것이다. 에러(TB_1_1)은
과,
의 차를 측정하는 것이다.
이들 2개의 에러를 결합하여 (제9(a)도에 도시된 프레임에서) 위치 A1_1에서 시작하는 프레임 블록과 (전체) 매크로블럭 (제9(b)도) 사이의 에러를 계산할 수 있다.
물론,
과,
사이의 화소 차의 절대값의 합은 BT_0_1과 TB_1_1의 합과 일치한다. 전술한 바와 같이, 바람직한 실시예에서는 , 필드 에러 대 프레임 에러 유닛은 각각의 프레임 에러를 그 프레임 에러에 대응하는 데이타로 계산된 2개의 필드 에러의 합으로서 계산한다. 제9(a)도와 제9(b)도에 있는 모든 매치(matches)에 대한 프레임 에러가 어떻게 계산되는지에 대한 목록은 다음과 같이 계산된다:
바람직한 실시예에서는, 필드 에러 대 프레임 에러 유닛은 상기 목록으로부터 명백한 패턴을 따르는 프레임 에러를 계산한다. 수평 방향으로 x 화소 및 수직방향으로 y 화소의 오프셋으로 현재 매크로블럭의 최상부 필드를 예측하는 기준 프레임의 최상부 필드에 대한 저해상도 필드 에러가, 수평 방향으로 x 화소 및 수직 방향으로 y 화소의 오프셋으로 현재 매크로블럭의 최하부 필드를 예측하는 기준 프레임의 최하부 필드에 대한 저해상도 필드 에러에 가산되어, 수평 방향으로 x 화소, 수직방향으로 2y 화소의 오프셋에 대응하는 프레임 에러를 얻을 수 있게 되고, 수평 방향으로 x 화소 및 수직 방향으로 y 화소의 오프셋으로 현재 매크로블럭의 최상부 필드를 예측하는 기준 프레임의 최하부 필드에 대한 저해상도 필드 에러가, 수평 방향으로 x 화소 및 수직 방향으로 y+1 화소의 오프셋으로 현재 매크로블럭의 최하부 필드를 예측하는 기준 프레임의 최상부 필드에 대한 저해상도 필드 에러에 가산되어, 수평 방향으로 x 화소, 수직 방향으로 2y+1 화소의 오프셋에 대응하는 프레임 에러를 얻을 수 있게 된다.
전술한 바와 같이, 하나의 실시예에서 정밀화 결정 유닛은, 각각의 방향에 대하여 (P-화상에 대해서는 순방향, B-화상에 대해서는 순방향 및 역방향), 에러가 가장 적은 저해상도 프레임 벡터가 정밀화 될 것이라는 것을 결정하고 각각의 매크로블럭의 최상부 및 최하부 필드 각각에 대해서 가장 에러가 적은 저해상도 필드 벡터가 정밀화될 것이라는 것을 결정한다. 또 하나의 실시예에서는, 각각의 매크로블럭과 각각의 방향에 대하여, 정밀화 결정 유닛은 프레임 벡터 또는 필드 벡터만을 정밀화한다; 필드 에러가 프레임 에러보다 상당히 크면 (예를 들어, 프레임 에러의 1.5배 이상이면) 프레임 벡터를 정밀화하고, 그 반대이면 필드 벡터를 정밀화한다.
정밀화 유닛(525)은 다음과 같이 동작한다. 저해상도 (필드 또는 프레임) 벡터는 스케일링된 비디오 데이타에 의하여 계산되었다는 것을 보상하도록 저해상도 벡터를 스케일링함으로써 정밀화된다. 예를 들어, 스케일러(506)가 수평 방향으로 4:1, 수직 방향으로 2:1로 비디오를 스케일링한다고 가정하자. x개의 수평 화소와 y개의 수직 화소로 된 저해상도 벡터는 4x 개의 수평 화소와 2y개의 수직 화소로 된 벡터로 스케일링된다. 그 후, 스케일링된 벡터를 중심으로 한 직사각형 영역 내의 벡터에 대한 에러가 계산된다. 이전의 예에서는, 정밀화 유닛은 수평 성분은 [4x-7, 4x+7]의 구간에 있고 수직 성분은 [4y-3, 4y+3)의 구간에 있는 모든 벡터를 볼 수 있었다. 그 후, 가장 에러가 적은 벡터가 선택된다.
디코더에 접속된 본 발명의 인코더에 대한 블록도가 제12도에 도시되어 있다. 비디오 인코더(1202)는 계층적 필드/프레임 계산 엔진(1206)을 포함하고 있는 움직임 추정 유닛(1204)를 포함한다. 비디오 인코더는 비디오 디코더(1210)로 보내지는 압축된 유닛(1204)를 포함한다. 비디오 인코더는 비디오 디코더(1210)로 보내지는 압축된 비디오 스크림(1208)을 생성한다. 비디오 디코더는 비디오를 해압하고(decompress), 해압된 비디오를 신호(1212)로서 디스플레이 또는 저장 장치(1214)에 보낸다.
본 발명에서 사용되는 움직임 추정 방법에 대한 개략적인 설명이 제6도에 도시되어 있다. 단계(602)에서, 현재 프레임과 기준 프레임이 입력된다. 단계(604)에서, 기준 프레임은 더 작은 프레임으로 스케일링되고, 단계(606)에서 현재 프레임은 더 작은 프레임으로 스케일링된다. 2가지 경우 모두에 있어서, 필드-기초 스케일링이 사용된다. 단계(608)에서, 현재 프레임 내의 각각의 매크로블럭의 각각의 필드 내의 데이타를 기준 프레임 내의 유사한 크기의 영역에 비교함으로써 필드-기초 에러가 계산된다. 단계(610)에서 프레임-기초 에러가 필드-기초 에러로부터 계산된다. 단계(612)에서 필드 벡터가 정밀화 후보로서 선택된다. 단계(616)에서, 어느 정밀화 후보가 정밀화될지에 대한 결정을 한다. 단계(618)에서, 정밀화 후보가 정밀화된다.
본 발명은 응용 주문형 집적 회로(application specific integrated circuit: ASIC) 또는 범용 컴퓨터에서 실행되는 프로그램 코드로서 실시할 수 있다.
본 발명에 대하여 바람직한 실시예에 의하여 설명하였지만, 관련 기술 분야에서 통상의 지식을 가진 자라면 다양한 변경과 개량을 할 수 있을 것이다. 따라서, 바람직한 실시예는 하나의 예로서 제공된 것이고 본 발명을 제한하지 않는다. 본 발명의 범위는 특허 청구의 범위에 의하여 정해진다.

Claims (14)

  1. 움직임 추정 유닛(motion estimation unit)에 있어서, 수평 방향과 수직 방향 중의 적어도 한 방향에서 최대 해상도의 입력 비디오에 대해 필드에 기초한 스케일링 (field-based scaling)을 수행하여 감소된 해상도의 비디오를 형성하기 위한 스케일러 (scaler)와, 상기 스케일러에 접속되어, 감소된 해상도의 현재 프레임의 각 필드 내의 영역들과 감소된 해상도의 기준 프레임의 각 필드 내의 영역들 사이의 필드 에러들을 계산하기 위한 필드 에러 계산 유닛 (field error computation unit)과, 상기 필드 에러 계산 유닛에 접속되어, 상기 감소된 해상도의 현재 프레임내의 영역들과 상기 감소된 해상도의 기준 프레임 내의 영역들 사이의 프레임 에러들을 계산하기 위한 필드 에러 대 프레임 에러 유닛 (field errors to frame errors unit)과, 상기 필드 에러 계산 유닛 상기 필드 에러 대 프레임 에러 유닛에 접속되어, 정밀화할 저해상도 벡터들 (coarse vectors)을 선택하기 위한 정밀화 결정 유닛(refine decision unit)과, 상기 정밀화 결정 유닛에 접속되어, 상기 저해상도 벡터들에 의해 한정된 상기 최대 해상도의 입력 비디오의 영역들을 사용하여 상기 정밀화 결정 유닛에 의해 선택된 상기 저해상도 벡터들을 정밀화하기 위한 정밀화 유닛 (refine unit)을 포함하는 움직임 추정 유닛.
  2. 제1항에 있어서, 상기 스케일러는 수평 방향으로만 비디오를 스케일링하는 움직임 추정 유닛.
  3. 제2항에 있어서, 상기 스케일러는 수평 방향으로 4대 1 비율로 상기 비디오를 스케일링하는 움직임 추정 유닛.
  4. 제1항에 있어서, 상기 스케일러는 수평 방향과 수직 방향으로 비디오를 스케일링하는 움직임 추정 유닛.
  5. 제1항에 있어서, 상기 필드 에러 대 프레임 에러 유닛은 필드 에러들의 합으로서 프레임 에러들을 계산하는 움직임 추정 유닛.
  6. 제1항에 있어서, 상기 스케일러 및 상기 정밀화 유닛에 접속되고, 비디오 소스 (video source)로부터 인코딩될 화상을 비롯한 소소 비디오 데이타 (source video data)를 수신하고 저장하도록 접속된 프레임 메모리 (frame memory)를 더 포함되는 움직임 추정 유닛.
  7. 비디오 인코딩 (video encoding)과 연계하여 사용하기 위한 움직임 추정 방법 (method for motion estimation)에 있어서, 최대 해상도의 기준 프레임 및 현재 프레임의 적어도 하나의 최대해상도의 영역을 필드에 기초하여 스케일링(field-based scaling)하여 감소된 해상도의 기준 프레임 및 상기 현재 프레임의 적어도 하나의 감소된 해상도의 영역을 형성하는 단계와, 상기 스케일링에 응답하여, 현재 프레임 내의 상기 적어도 하나의 감소된 해상도의 영역에 대하여, 상기 적어도 하나의 감소된 해상도의 영역 내의 최상부 필드 (top field)와 상기 감소된 해상도의 기준 프레임 내의 제1 영역 사이의 제1 저해상도 필드간 에러 (first coarse inter-field error) 및 상기 적어도 하나의 감소된 해상도의 영역 내의 최하부 필드 (bottom field)와 상기 감소된 해상도의 기준 프레임 내의 제2 영역 사이의 제2 저해상도 필드간 에러를 계산하는 단계와, 상기 제1 저해상도 필드간 에러와 상기 제2 저해상도 필드간 에러의 합으로서 프레임간 에러 (inter-frame error)를 계산하는 단계와, 상기 프레임간 에러와, 상기 제1 및 제2 저해상도 필드간 에러들의 계산에 응답하여, 최소의 에러를 갖는 선택된 움직임 벡터 (motion vector)를 결정하는 단계와, 상기 선택된 움직임 벡터를 결정하는 단계 및 상기 선택된 움직임 벡터에 의해 한정된 현재 프레임의 적어도 하나의 최대 해상도 영역에 응답하여, 상기 선택된 움직임 벡터를 정밀화하여 상기 현재 프레임의 적어도 하나의 최대 해상도 영역의 프레임간 움직임을 묘사하는 정밀화된 움직임 벡터를 형성하는 단계를 포함하는 움직임 추정 방법.
  8. 제7항에 있어서, 상기 필드에 기초한 스케일링 단계는 상기 비디오를 수평 방향으로만 스케일링하는 단계를 포함하는 움직임 추정 방법.
  9. 제7항에 있어서, 상기 필드에 기초한 스케일링 단계는 수평 방향으로만 4대 1의 비율로 상기 비디오를 스케일링하는 단계를 포함하는 움직임 추정 방법.
  10. 제7항에 있어서, 상기 필드에 기초한 스케일링 단계는 수평 방향과 수직 방향으로 상기 비디오를 스케일링하는 단계를 포함하는 움직임 추정 방법.
  11. 움직임 추정을 수행하기 위한 전자적 방법 (electronic method)에 있어서, 복수의 감소된 해상도의 프레임들 (reduced resolution frames)을 생성하기 위해 필드에 기초한 스케일링에 의하여 최대 해상도의 격행 프레임들 (interlaced frames)의 해상도를 감소시키는 단계와, 감소된 해상도의 현재 프레임의 필드들과 감소된 해상도의 기준 프레임의 필드들 사이의 필드 움직임 에러들을 계산하여 상기 감소된 해상도의 현재 프레임의 필드들과 상기 감소된 해상도의 기준 프레임의 필드들 사이의 필드간 움직임 (interfield motion)을 대략적으로 묘사하는 벡터들을 얻음으로써 상기 감소된 해상도 프레임들에 대해 제1 탐색을 수행하는 단계와, 상기 필드 움직임 에러들을 사용하여 프레임 움직임 에러들을 계산하는 단계와, 상기 프레임 움직임 에러들을 사용하여 프레임간 움직임 (inter-frame motion)을 대략적으로 묘사하는 저해상도 벡터들을 얻는 단계와, 더 정확한 벡터들을 얻기 위해 상기 저해상도 벡터들에 의해 한정된 상기 최대 해상도의 격행 프레임들의 영역들에 대한 제2 탐색을 수행하여, 상기 필드간 움직임을 대략적으로 묘사하는 상기 저해상도 벡터들과 상기 프레임간 움직임을 대략적으로 묘사하는 상기 벡터들을 정밀화하는 단계를 포함하는 방법.
  12. 제1항에 있어서, 상기 스케일러는 상기 입력 비디오의 해상도를 감소시킴에 의해 스케일링을 수행하여 스케일된 필드들을 제공하고 상기 스케일된 필드들을 상기 입력 비디오보다 더 낮은 해상도의 프레임으로 재구성하는 움직임 추정 유닛.
  13. 제7항에 있어서, 상기 필드에 기초한 스케일링 단계는 상기 현재 프레임의 한 영역의 해상도를 감소시켜 스케일된 필드들을 제공하고 상기 스케일된 필드들을 현재 프레임보다 더 낮은 해상도의 프레임으로 재구성하는 움직임 추정 방법.
  14. 제11항에 있어서, 해상도를 감소시키는 단계는 상기 격행 프레임들 각각의 한 영역의 해상도를 감소시켜 스케일된 영역들을 제공하고 상기 스케일된 영역들을 상기 복수의 감소된 해상도의 프레임들로 재구성하는 방법.
KR1019960053041A 1996-02-05 1996-11-09 격행비디오를 위한 계층적 움직임 추정 KR100246168B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/596,933 1996-02-05
US08/596,933 US5737023A (en) 1996-02-05 1996-02-05 Hierarchical motion estimation for interlaced video
US8/596,933 1996-02-05

Publications (2)

Publication Number Publication Date
KR970064259A KR970064259A (ko) 1997-09-12
KR100246168B1 true KR100246168B1 (ko) 2000-03-15

Family

ID=24389334

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960053041A KR100246168B1 (ko) 1996-02-05 1996-11-09 격행비디오를 위한 계층적 움직임 추정

Country Status (3)

Country Link
US (1) US5737023A (ko)
JP (1) JPH09224254A (ko)
KR (1) KR100246168B1 (ko)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108039A (en) * 1996-05-23 2000-08-22 C-Cube Microsystems, Inc. Low bandwidth, two-candidate motion estimation for interlaced video
US5905542A (en) * 1996-12-04 1999-05-18 C-Cube Microsystems, Inc. Simplified dual prime video motion estimation
US6005621A (en) * 1996-12-23 1999-12-21 C-Cube Microsystems, Inc. Multiple resolution video compression
US6229850B1 (en) 1997-07-22 2001-05-08 C-Cube Semiconductor Ii, Inc. Multiple resolution video compression
KR100556450B1 (ko) * 1998-05-28 2006-05-25 엘지전자 주식회사 움직임 벡터 추정에 의한 오류 복원 방법
US6249617B1 (en) * 1998-11-16 2001-06-19 Winbond Electronics, Corp. Video encounter having an integrated scaling mechanism
US6421466B1 (en) 1999-09-29 2002-07-16 Neomagic Corp. Hierarchical motion estimation with levels of varying bit width for digital video compression
US6483876B1 (en) * 1999-12-28 2002-11-19 Sony Corporation Methods and apparatus for reduction of prediction modes in motion estimation
KR100396892B1 (ko) * 2000-10-05 2003-09-03 삼성전자주식회사 비디오 mp3 시스템, 축소 비디오데이터 생성장치와생성방법 및 축소 비디오데이터 복원장치 및 복원방법
US7023491B2 (en) * 2001-02-28 2006-04-04 Thomson Licensing Method and device for displaying frozen pictures on video display device
US6914938B2 (en) * 2002-06-18 2005-07-05 Motorola, Inc. Interlaced video motion estimation
US7088776B2 (en) * 2002-07-15 2006-08-08 Apple Computer, Inc. Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding
AU2008201106C1 (en) * 2002-07-15 2011-06-09 Apple Inc. Method and bitstream for variable accuracy inter-picture timing specification for digital video encoding
KR20040008359A (ko) * 2002-07-18 2004-01-31 삼성전자주식회사 계층적 움직임 벡터 탐색을 이용한 움직임 추정 방법 및장치 및 그를 적용한 동영상 부호화 시스템
US6728315B2 (en) 2002-07-24 2004-04-27 Apple Computer, Inc. Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding with reduced requirements for division operations
US8254461B2 (en) * 2002-07-24 2012-08-28 Apple Inc. Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding with reduced requirements for division operations
US7170934B2 (en) * 2002-12-20 2007-01-30 Lsi Logic Corporation Method and/or apparatus for motion estimation using a hierarchical search followed by a computation split for different block sizes
US7502415B2 (en) * 2003-07-18 2009-03-10 Microsoft Corporation Range reduction
US8014450B2 (en) 2003-09-07 2011-09-06 Microsoft Corporation Flexible range reduction
US7649539B2 (en) * 2004-03-10 2010-01-19 Microsoft Corporation Image formats for video capture, processing and display
US8509308B2 (en) * 2004-09-16 2013-08-13 Samsung Electronics Co., Ltd. Wavelet transform apparatus and method, scalable video coding apparatus and method employing the same, and scalable video decoding apparatus and method thereof
JP4166781B2 (ja) * 2005-12-09 2008-10-15 松下電器産業株式会社 動きベクトル検出装置および動きベクトル検出方法
US8880571B2 (en) * 2006-05-05 2014-11-04 Microsoft Corporation High dynamic range data format conversions for digital media
EP1879399A1 (en) * 2006-07-12 2008-01-16 THOMSON Licensing Method for deriving motion data for high resolution pictures from motion data of low resolution pictures and coding and decoding devices implementing said method
US8054886B2 (en) * 2007-02-21 2011-11-08 Microsoft Corporation Signaling and use of chroma sample positioning information
DE102009001520B4 (de) * 2009-03-12 2016-02-25 Entropic Communications, Inc. Vorrichtung und Verfahren zur Zwischenbildinterpolation
KR101702553B1 (ko) * 2009-07-04 2017-02-03 에스케이 텔레콤주식회사 영상 부호화/복호화 방법 및 장치
US8325815B2 (en) * 2010-02-08 2012-12-04 Himax Technologies Limited Method and system of hierarchical motion estimation
GB2501535A (en) 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193003A (en) * 1989-08-15 1993-03-09 Sony Corporation Apparatus for decoding digital video data with small memory requirement
US5134478A (en) * 1991-02-19 1992-07-28 Intel Corporation Method and apparatus for compressing and decompressing a digital video signal using predicted and error images
US5436665A (en) * 1992-03-03 1995-07-25 Kabushiki Kaisha Toshiba Motion picture coding apparatus
US5270813A (en) * 1992-07-02 1993-12-14 At&T Bell Laboratories Spatially scalable video coding facilitating the derivation of variable-resolution images
US5463422A (en) * 1993-10-13 1995-10-31 Auravision Corporation Data processing technique for limiting the bandwidth of data to be stored in a buffer
TW283289B (ko) * 1994-04-11 1996-08-11 Gen Instrument Corp

Also Published As

Publication number Publication date
US5737023A (en) 1998-04-07
JPH09224254A (ja) 1997-08-26
KR970064259A (ko) 1997-09-12

Similar Documents

Publication Publication Date Title
KR100246168B1 (ko) 격행비디오를 위한 계층적 움직임 추정
KR100253931B1 (ko) 디지탈 영상 시퀀스의 디코딩 방법 및 장치
US9549195B2 (en) Image decoding device and method thereof using inter-coded predictive encoding code
US5719632A (en) Motion video compression system with buffer empty/fill look-ahead bit allocation
Le Gall The MPEG video compression algorithm
US6173013B1 (en) Method and apparatus for encoding enhancement and base layer image signals using a predicted image signal
US7349473B2 (en) Method and system for selecting interpolation filter type in video coding
US5633682A (en) Stereoscopic coding system
US20020090136A1 (en) Method for computational graceful degradation in an audiovisual compression system
EP1940177B1 (en) Apparatus for encoding interlaced macroblock texture information
KR100238622B1 (ko) 새로운 적응형 양자화기를 이용한 동영상 압축 시스템 및 방법
US6829373B2 (en) Automatic setting of optimal search window dimensions for motion estimation
US20040234142A1 (en) Apparatus for constant quality rate control in video compression and target bit allocator thereof
US5652629A (en) Bidirectional motion estimation in a motion video compression system
US5757967A (en) Digital video decoder and deinterlacer, format/frame rate converter with common memory
KR100227298B1 (ko) 부호화 화상의 부호량 제어 방법
JP3463291B2 (ja) 圧縮ディジタル・ビデオ・シーケンスをデコードし表示する方法および装置
US20060280243A1 (en) Image coding apparatus and image coding program
US7426311B1 (en) Object-based coding and decoding apparatuses and methods for image signals
JP3481207B2 (ja) 画像信号伝送方法及び装置、並びに画像信号復号化方法及び装置
JPH06334985A (ja) 画像符号化装置
JPH09261631A (ja) 目標符号量制御方法
Lauzon et al. Performance evaluation of MPEG-2 for HDTV

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee