KR20040008360A - 개선된 움직임 벡터 부호화 및 복호화 방법과 그 장치 - Google Patents

개선된 움직임 벡터 부호화 및 복호화 방법과 그 장치 Download PDF

Info

Publication number
KR20040008360A
KR20040008360A KR1020020041986A KR20020041986A KR20040008360A KR 20040008360 A KR20040008360 A KR 20040008360A KR 1020020041986 A KR1020020041986 A KR 1020020041986A KR 20020041986 A KR20020041986 A KR 20020041986A KR 20040008360 A KR20040008360 A KR 20040008360A
Authority
KR
South Korea
Prior art keywords
motion vector
length
run
encoding
unit
Prior art date
Application number
KR1020020041986A
Other languages
English (en)
Other versions
KR100906473B1 (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 KR1020020041986A priority Critical patent/KR100906473B1/ko
Priority to AU2003219589A priority patent/AU2003219589A1/en
Priority to PCT/KR2003/000701 priority patent/WO2004010708A1/en
Priority to US10/435,670 priority patent/US20040013200A1/en
Publication of KR20040008360A publication Critical patent/KR20040008360A/ko
Application granted granted Critical
Publication of KR100906473B1 publication Critical patent/KR100906473B1/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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length 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/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/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Abstract

본 발명은 움직임 벡터를 부호화하기 위한 부호화 및 복호화 방법과 그 장치에 관한 것으로서, 본 발명에 따른 움직임 벡터를 부호화하기 위한 부호화 방법은 (a) 해당 블록의 움직임 벡터와 기준 블록의 움직임 벡터 간의 움직임 벡터 차분값(motion vector difference: MVD)을 계산하는 단계; 및 (b) 상기 (a) 단계에서 계산되는 상기 움직임 벡터 차분값에 대해 적어도 하나 이상의 매크로블록으로 이루어진 선정된 그룹 단위로 런-길이 부호화(run-length coding)를 수행하는 단계를 포함하는 것을 특징으로 하며, 움직임 벡터들 간의 공간적 상관성을 이용하여 선정된 단위로 런-길이 부호화를 수행한 후, 가변 길이 부호화를 수행하도록 함으로써, 움직임 벡터 부호화의 효율을 높이는 효과가 있다.

Description

개선된 움직임 벡터 부호화 및 복호화 방법과 그 장치{Advanced Method for coding and decoding motion vector and apparatus thereof}
본 발명은 동영상 부호화 방법 및 장치에 관한 것으로서, 특히 움직임 보상에 기반한 동영상 압축 기술에서 움직임 벡터를 효율적으로 부호화 및 복호화하기 위한 방법 및 그 장치에 관한 것이다.
MPEG 이나 H.26x 동영상 codec 등 대부분의 동영상 압축 표준이 움직임 보상 기법과 변환에 기반한 압축 방식을 채택하고 있다. 이러한, 움직임 보상 기반 부호화에서는 각 블록의 움직임 벡터 정보를 부호화해서 전송해야 한다. QCIF나 CIF 영상을 저 전송율로 부호화하는 경우, 움직임 벡터의 정보량이 통상적으로 30%를 넘기 때문에, 움직임 벡터를 어떻게 부호화하느냐에 따라 압축 효율이 크게 달라진다.
도 1은 일반적인 동영상 부호화를 위한 인코더(100)를 도시하는 블록도이다.
VOD 서비스나 동영상 통신을 위해, 인코더(100)는 압축 기술에 의해 부호화된 비트 스트림을 생성하여, 생성된 스트림을 출력한다.
먼저, DCT(Discrete Cosine Transform)부(110)는 공간적 상관성을 제거하기 위해 8 ×8 화소 블록 단위로 입력되는 영상 데이터에 대해 DCT 연산을 수행하고, 양자화부(Quantization: Q)(120)는 DCT부(110)에서 얻어진 DCT 계수에 대해 양자화를 수행하여, 몇 개의 대표 값으로 표현함으로써, 고효율 손실 압축을 수행한다.
역양자화부(Inverse Quantization: IQ)(130)는 양자화부(120)에서 양자화된 영상 데이터를 역양자화한다. IDCT부(140)는 역양자화부(130)에서 역양자화된 영상 데이터에 대해 IDCT(Inverse Discrete Cosine Transform) 변환을 수행한다. 프레임 메모리부(150)는 IDCT부(140)에서 IDCT 변환된 영상 데이터를 프레임 단위로저장한다.
움직임 추정부(Motion Estimation: ME)(160)는 입력되는 현재 프레임의 영상 데이터와 프레임 메모리부(150)에 저장된 이전 프레임의 영상 데이터를 이용하여 매크로 블록당 움직임 벡터(MV)를 계산한다.
가변 길이 부호화부(variable length coding: VLC)(170)는 움직임 추정부(160)에서 구해진 움직임 벡터(MV)를 입력받아 부호화하여, 통계적 중복성을 제거한다.
현재 매크로블록이 인터모드로 인터 모드로 결정되는 경우, 해당 매크로 블록에 대한 움직임 벡터는 전송되어야 한다. 이때, 움직임 벡터의 수평 및 수직 성분은 도 2에 도시된 바와 같이, 현재 매크로 블록의 주변에 위치한 세 개의 매크로 블록의 움직임 벡터들 중 하나를 이용하여, 차분 부호화(differential coding)된다.
도 2는 MPEG-4에서의 움직임 벡터 예측 방식을 설명하기 위한 것으로서, 프레임 가장 자리에서의 예외적인 예측 방식을 함께 도시하고 있다. 이하에서는, MPEG-4에서의 움직임 벡터 예측 방법을 설명한다.
도 2(a)(b)(c)(d)에 도시된 주변의 세 움직임 벡터들은 차분 부호화를 위한 후보 예측자들(predictors)이다. 여기에서, MV는 현재 매크로 블록의 움직임 벡터(current motion vector), MV1은 이전 매크로블록의 움직임 벡터(previous motion vector), MV2는 상위 매크로블록의 움직임 벡터(above motion vector), MV3는 상위 우측 매크로블록의 움직임 벡터(above right motion vector)를 의미한다.또한, 점선은 현재 매크로블록이 속한 프레임, 예를 들어 MPEG-4에서의 VOP(video object plane) 경계(border)를 의미한다. 현재 프레임의 가장 자리에 위치한 매크로블록들에 대해서는 아래의 규칙들이 적용된다.
1. 하나의 후보 예측자를 갖는 매크로블록이 프레임 바깥에 위치하는 경우, 해당 매크로블록의 후보 예측자는 (0,0)으로 설정된다.
2. 후보 예측자들을 갖는 두 개의 매크로블록들이 프레임 바깥에 위치하는 경우, 해당 매크로블록들의 후보 예측자들은 프레임 내에 위치하는 매크로블록의 후보 예측자와 같은 값으로 설정된다.
3. 후보 예측자들은 갖는 모든 매크로블록들이 프레임 바깥에 위치하는 경우, 해당 매크로블록들의 후보 예측자들은 모두 (0,0)으로 설정된다.
매크로블록당 하나의 움직임 벡터를 전송하는 경우, 도 3에 도시된 바와 같은 해당 매크로블록의 주변 매크로블록들의 움직임 벡터,즉 후보 예측자들을 이용하여, 예측자를 결정하고, 결정된 예측자와 현재 매크로블록 간의 차이값을 전송한다.
이하에서는, 도 2를 참조하여 예측값을 구하는 방법을 설명한다.
현재 매크로블록의 움직임 벡터가 MV이고, 이미 부호화된 주변 매크로블록들의 움직임 벡터가 MV1, MV2, MV3인 경우, MV에 대응하는 예측값은 주변 움직임 벡터들의 중간값(median)이다. 또한, 움직임 벡터 부호화는 수직 수평 방향 성분들에 대해 독립적으로 이루어진다. 따라서, 아래 수학식과 같이 각 성분에 대해 세 주변 후보 예측자들의 동일 성분들의 중간 값이 계산된다.
예를 들어, MV1 = (-2,3), MV2 = (1,5), MV3 = (-1,7)인 경우, 수학식 1 및 2에 따라 Px는 -1이고, Py는 5가 얻어진다.
한편, MPEG-2 및 MPEG-4에서 error_resilient_disable_flag이 설정되어 있지 않는 경우에는, 아래 수학식 3 및 4와 같이 한 방향 예측이 사용된다.
이때, 재동기 마커(resyncronization marker)가 발생한 직후인 경우에는, MV1은 (0,0)으로 설정된다.
수학식 1 및 2에 의해 구해진 중간값 Px, Py또는 수학식 3 및 4에 의해 구해진 예측값 Px, Py을 이용하여, 아래 수학식 5 및 6에 의해, 벡터 차 성분 MVDx, MVDy를 계산한다.
상기 수학식 5 및 6에 따라, 벡터 차 성분들을 구한 후, 상기 성분들을 각각 가변 길이 부호화기(variable length coder)를 이용하여 통계적 중복성이 제거된 비트스트림으로 변형한다. 이때, MVDx, MVDy를 위한 가변 길이 부호화를 위한 코드(code)들은 표준에 따라 조금씩 달라진다.
하지만, 종래 기술에서는 움직임 벡터 부호화시 모든 처리를 매크로블록 단위로 처리하기 때문에, 많은 영상에서 MVDx및 MVDy가 '0'의 값을 가짐에도 불구하고, 이에 대한 정보도 1 비트씩 전송하여야 한다. 이로 인해, 움직임이 없거나, 균일한 움직임 벡터 필드를 갖는 프레임에 대해서도 움직임 벡터 정보량이 불필요하게 발생하는 문제점이 있었다.
본 발명이 이루고자하는 기술적 과제는 상기와 같은 종래 기술에 따른 움직임 벡터 부호화 방법 및 장치에서의 문제점을 해결하여, 움직임 벡터의 부호화 효율을 높일 수 있는 개선된 움직임 벡터 부호화 방법 및 그 장치를 제공하기 위한 것이다.
본 발명이 이루고자하는 또 다른 기술적 과제는 움직임 벡터의 부호화 효율을 높일 수 있는 개선된 움직임 벡터 복호화 방법 및 그 장치를 제공하기 위한 것이다.
도 1은 일반적인 동영상 부호화를 위한 인코더를 도시하는 블록도
도 2(a)(b)(c)(d)는 움직임 벡터 부호기에서의 움직임 벡터 예측 방법을 설명하기 위한 참고도
도 3은 본 발명의 일실시예에 따른 움직임 벡터 부호화기
도 4는 본 발명의 또 다른 실시예에 따른 움직임 벡터 부호화기
도 5는 본 발명의 일 실시예에 따른 움직임 벡터 복호화기
도 6은 본 발명의 일실시예에 따른 움직임 벡터 부호화 방법을 도시하는 플로우차트
도 7은 본 발명의 또 다른 실시예에 따른 움직임 벡터 부호화 방법을 도시하는 플로우차트도
8은 본 발명의 일실시예에 따른 부호화된 움직임 벡터 비트스트림의 복호화 방법을 도시하는 플로우차트
상기의 기술적 과제를 해결하기 위하여, 본 발명에 움직임 벡터를 부호화하기 위한 부호화 방법은 움직임 벡터를 부호화하기 위한 부호화 방법은 (a) 해당 블록의 움직임 벡터와 기준 블록의 움직임 벡터 간의 움직임 벡터 차분값(motion vector difference: MVD)을 계산하는 단계; 및 (b) 상기 (a) 단계에서 계산되는 상기 움직임 벡터 차분값에 대해 적어도 하나 이상의 매크로블록으로 이루어진 선정된 그룹 단위로 런-길이 부호화(run-length coding)를 수행하는 단계를 포함한다.
상기 기술적 과제를 해결하기 위한, 본 발명에 따른 보다 바람직한 움직임 벡터 부호화 방법에서는 상기 선정된 그룹 단위는 하나의 매크로블록, 1/2 슬라이스(half slice), 하나의 슬라이스, 복수개의 슬라이스, 하나의 프레임 중 하나인 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위한, 본 발명에 따른 보다 바람직한 움직임 벡터 부호화 방법에서는 (c) 상기 (b) 단계에서 런-길이 부호화된 움직임 벡터 차이값을 나타내는 (런, 길이) 벡터에 대해 가변 길이 부호화(variable length coding)를 수행하는 단계를 더 포함하는 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위한, 본 발명에 따른 보다 바람직한 움직임 벡터 부호화 방법에서는 (d) 상기 부호화된 데이터에 상기 (b) 단계에서의 런-길이 부호화를 위한 상기 선정된 그룹 단위를 표시하는 부호화 단위 표시 정보를 삽입하는 단계를 더 포함하는 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위한, 본 발명에 따른 움직임 벡터 부호화 방법에서는 (a) 해당 블록의 움직임 벡터와 기준 블록의 움직임 벡터 간의 움직임 벡터 차분값(motion vector difference: MVD)을 계산하는 단계; (b1) 상기 (a) 단계에서 계산되는 상기 움직임 벡터 차분값에 대해 적어도 하나 이상의 매크로블록으로 이루어진 제1 그룹 단위로 런-길이 부호화(run-length coding)를 수행하는 단계; 및 (b2) 상기 (a) 단계에서 계산되는 상기 움직임 벡터 차분값에 대해 적어도 하나 이상의 매크로블록으로 이루어진 제2 그룹 단위로 런-길이 부호화를 수행하는 단계를 포함하는 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위한, 본 발명에 따른 보다 바람직한 움직임 벡터 부호화 방법에서는 (c1) 상기 (b1) 단계에서 상기 제1 그룹 단위로 런-길이 부호화된 움직임 벡터 차이값을 나타내는 (런, 길이) 벡터에 대해, 상기 제1 그룹 단위로 작성된 가변길이 부호화 테이블에 기초하여 가변 길이 부호화를 수행하는 단계와, (c2) 상기 (b2) 단계에서 상기 제2 그룹 단위로 런-길이 부호화된 움직임 벡터 차이값을 나타내는 (런, 길이) 벡터에 대해, 상기 제2 그룹 단위로 작성된 가변 길이 부호화 테이블에 기초하여 가변 길이 부호화를 수행하는 단계를 더 포함하는 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위한, 본 발명에 따른 보다 바람직한 움직임 벡터 부호화 방법에서는 상기 제1 그룹 단위 및 상기 제2 그룹 단위는 하나의 매크로블록, 1/2 슬라이스(half slice), 하나의 슬라이스, 복수개의 슬라이스, 하나의 프레임으로 이루어진 그룹 중 하나이며, 상기 제1 그룹 단위 및 상기 제2 그룹 단위는 서로 다른 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위한, 본 발명에 따른 보다 바람직한 움직임 벡터 부호화 방법에서는 (d) 상기 (c1) 단계에서 상기 제1 그룹 단위로 부호화된 움직임 벡터 비트 스트림의 데이터량과 상기 (c2) 단계에서 상기 제2 그룹 단위로 부호화된 움직임 벡터 비트 스트림의 데이터량을 비교하여 데이터량이 작은 단위로 부호화된 데이터를 선택하는 단계와, (e) 상기 (d) 단계에서 상기 선택된 데이터에 대한 부호화 단위를 표시하는 부호화 단위 표시 정보를 상기 선택된 움직임 벡터 비트 스트림에 삽입하는 단계를 더 포함하는 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위한, 본 발명에 따른 부호화된 움직임 벡터 비트 스트림을 복호화하기 위한 복호화 방법은 (a) 입력된 움직임 벡터 비트 스트림에 대해 선정된 그룹 단위로 가변 길이 복호화를 수행하는 단계; (b) 상기 (a) 단계에서 가변 길이 복호화된 움직임 벡터 비트 스트림에 대해 상기 선정된 그룹 단위로 런-길이 복호화를 수행하는 단계; (c) 상기 (b) 단계에서 런-길이 복호화된 데이터로부터 해당 블록의 움직임 벡터와 기준 블록의 움직임 벡터 간의 움직임 벡터 차분값을 계산하는 단계; 및 (d) 상기 (c) 단계에서 계산된 움직임 벡터 차분값에 기초하여 현재 블록의 움직임 벡터를 계산하는 단계를 포함한다.
상기 기술적 과제를 해결하기 위한, 본 발명에 따른 보다 바람직한 움직임 벡터 복호화 방법에서는 상기 선정된 그룹 단위는 하나의 매크로블록, 1/2 슬라이스, 하나의 슬라이스, 복수개의 슬라이스, 하나의 프레임 중 하나인 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위한, 본 발명에 따른 보다 바람직한 움직임벡터 복호화 방법에서는 상기 (a) 단계는 (a1) 상기 입력된 움직임 벡터 비트 스트림에 포함된 부호화 단위 표시 정보로부터 상기 움직임 벡터 비트 스트림에 대한 부호화 단위를 판독하고, 상기 판독된 부호화 단위의 가변 길이 복호화 테이블에 기초하여 가변 길이 복호화를 수행하는 단계를 더 포함하는 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위한, 본 발명에 따른 움직임 벡터 부호화 장치는 해당 블록의 움직임 벡터와 기준 블록의 움직임 벡터 간의 움직임 벡터 차분값을 계산하는 움직임 벡터 차분값 계산부; 및 상기 움직임 벡터 차분값 계산부에서 계산된 상기 움직임 벡터 차분값에 대해 적어도 하나 이상의 매크로블록으로 이루어진 선정된 그룹 단위로 런-길이 부호화를 수행하는 런-길이 부호화부를 포함하는 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위한, 본 발명에 따른 움직임 벡터 부호화 장치는 해당 블록의 움직임 벡터와 기준 블록의 움직임 벡터 간의 움직임 벡터 차분값을 계산하는 움직임 벡터 차분값 계산부; 상기 움직임 벡터 차분값 계산부에서 계산된 상기 움직임 벡터 차분값에 대해 적어도 하나 이상의 매크로블록으로 이루어진 제1 그룹 단위로 런-길이 부호화를 수행하는 제1 런-길이 부호화부; 및 상기 움직임 벡터 차분값 계산부에서 계산된 상기 움직임 벡터 차분값에 대해 적어도 하나 이상의 매크로블록으로 이루어진 제2 그룹 단위로 런-길이 부호화를 수행하는 제2 런-길이 부호화부를 포함하는 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위한, 본 발명에 따른 부호화된 움직임 벡터 비트 스트림을 복호화하기 위한 복호화 장치는 입력된 움직임 벡터 비트 스트림을선정된 그룹 단위로 가변 길이 복호화를 수행하는 가변 길이 복호화부; 상기 가변 길이 복호화부에서 복호화된 움직임 벡터 비트 스트림에 대해 상기 선정된 그룹 단위로 런-길이 복호화를 수행하는 런-길이 복호화부; 및 상기 런-길이 복호화부에서 런-길이 복호화된 데이터로부터 해당 블록의 움직임 벡터와 기준 블록의 움직임 벡터 간의 움직임 벡터 차분값을 계산하는 움직입 벡터 차분값 계산부를 포함하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명한다.
도 3은 본 발명의 일 실시예에 따른 움직임 벡터 부호화 장치를 도시하는 블록도이다.
본 발명에 따른 움직임 벡터 부호화 장치는 현재 블록의 주변 블록의 움직임 벡터들을 저장하는 주변 움직임 벡터 저장부(320), 상기 주변 움직임 벡터 저장부(320)에 저장된 주변 움직임 벡터 정보를 이용하여, 현재 블록의 움직임 벡터에 대한 예측자를 탐색하는 움직임 벡터 예측부(340), 상기 움직임 벡터 예측부(340)에서 탐색된 현재 블록의 움직임 벡터에 대한 예측자와 현재 블록의 움직임 벡터의 차분 값, 즉 MVD를 계산하기 위한 움직임 벡터 차분값 계산부(350)와, 상기 계산된 MVD를 소정의 단위, 예를 들어 슬라이스 단위 또는 프레임 단위로 런-길이 부호화(run length coding: RLC) 부호화하는 런-길이 부호화부(360)와, 상기 런-길이 부호화부(360)의 출력을 가변 길이 부호화(variable length coding: VLC)하기 위한 가변 길이 부호화부(380)를 포함한다.
이하에서는, 도 3을 참조하여 본 발명에 따른 움직임 벡터 부호화 방법을 설명한다.
움직임 벡터들은 주변 움직임 벡터들과 공간적 상관성이 강하여, 균일한 움직임 벡터 필드를 형성하는 경우가 많다. 따라서, 수학식 1 내지 4에 의해 구해진 예측자들과 현재 블록의 MV가 동일한 경우, 즉 MVDx= 0 (또는 MVDy= 0)인 경우가 많이 존재하며, MVD가 연속하여 0인 경우도 많이 존재한다. 본 발명은 이러한 특성을 이용한 것이다.
본 발명에 따른 일 실시예에 따르면 움직임 벡터 예측기(340)에서는 주변 움직임 벡터 저장부(320)에 저장된 움직임 벡터 정보를 이용하여, 중간값 필터링 방식의 수학식 1 및 2를 이용하여 예측자 Px, Py를 계산하지만, 선택적으로 수학식 3 및 4를 이용하여 Px, Py를 계산하는 것도 가능하다.
움직임 벡터 차분치 계산부(350)에서는 현재 움직임 벡터 정보와 움직임 벡터 예측부(440)에서 얻어진 예측자 Px, Py를 이용하여, MVD를 계산한다.
런-길이 부호화부(360)는 움직임 벡터 차분값 계산부(350)에서 계산된 MVD에 대해, 선정된 그룹 단위로 런-길이 부호화를 수행한다. 본 실시예에서는 슬라이스 단위 또는 프레임 단위, 예를 들어 현재 프레임 크기가 352 × 288이고, 모든 매크로블록이 인터 모드(inter mode)인 경우, 프레임 단위, 즉 396개의 MVD 값에 대해 런-길이 부호화를 수행하거나, 또는 슬라이스 단위, 즉 22개의 MVD 값에 대해 런-길이 부호화를 수행한다. 하지만, 선택적으로 하나 이상의 매크로블록으로 이루어진 또 다른 크기의 그룹 단위, 예를 들어 1/2 슬라이스, 하나 이상의 슬라이스 단위로 런-길이 부호화를 수행하도록 하는 것도 가능하다.
본 실시예에서의 런-길이 부호화부(360)는 2차원 런-길이 부호화를 수행하여, (런, 길이)의 집합을 생성하여 출력한다. 여기에서, '런(run)'은 현재의 '0이 아닌 MVD(non-zero MVD)에 앞서 있는 '0'의 개수이며, '길이(length)'는 '0이 아닌 MVD'의 크기를 의미한다.
선택적으로, 런-길이 부호화부(360)에는 3차원 런-길이 부호화가 사용될 수 있으며, 이 경우 런-길이 부호화부(360)는 (라스트, 런, 길이) 집합을 생성하여 출력한다. 이때, '라스트(last)'는 현재 MVD가 마지막 '0이 아닌 MVD'인지 여부를 나타내는 1 비트 정보이다.
가변 길이 부호화부(380)는 상기 런-길이 부호화부(360)에서 출력된 (런, 길이) 벡터에 대해 가변 길이 부호화를 수행한다. 본 실시예에서는 (런, 길이) 벡터에 대해 가변 길이 부호화를 수행하였지만, 선택적으로 (런, 길이) 벡터의 '런'에 대해서는 고정 길이 부호화부(390)를 이용하여 고정 길이 부호화를 수행하고, '길이'에 대해서는 가변 길이 부호화부(380)를 이용하여 가변 길이 부호화를 수행하도록 하는 것이 가능하다.
또한, 선택적으로 부호화 단위 표시 정보 삽입부 (도시되지 않음)를 이용하여, 출력된 움직임 벡터 비트 스트림에 부호화 단위를 나타내는 부호화 단위 표시 정보를 삽입하도록 하는 것도 가능하다.
도 4는 본 발명의 또 다른 실시예에 따른 움직임 벡터 부호화 장치를 도시하는 블록도이다.
도 4에 도시된 움직임 벡터 부호화 장치는 현재 블록의 주변 블록의 움직임 벡터들을 저장하는 주변 움직임 벡터 저장부(420), 상기 주변 움직임 벡터 저장부(420)에 저장된 주변 움직임 벡터 정보를 이용하여, 현재 블록의 움직임 벡터에 대한 예측자를 탐색하는 움직임 벡터 예측부(440), 상기 움직임 벡터 예측부(440)에서 탐색된 현재 블록의 움직임 벡터에 대한 예측자와 현재 블록의 움직임 벡터의 차분 값, 즉 MVD를 계산하기 위한 움직임 벡터 차분값 계산부(450)와, 상기 계산된 MVD를 제1 그룹 단위로 런-길이 부호화하는 제1 런-길이 부호화부(460)와, 상기 계산된 MVD를 제2 그룹 단위로 런-길이 부호화하는 제2 런-길이 부호화부(470)와, 상기 런-길이 부호화부(460,470)의 출력을 입력받아 제1 그룹 단위 및 제2 그룹 단위의 가변 길이 부호화 테이블에 기초하여 가변 길이 부호화를 수행하는 제1 및 제2 가변 길이 부호화부(462,472)와, 제1 및 제2 가변 길이 부호화부(462,472)로부터의 움직임 벡터 비트 스트림으로부터 하나의 비트 스트림을 선택하고, 선택된 비트 스트림의 부호화 단위 표시 정보를 상기 선택된 비트 스트림에 삽입하는 비트 스트림 선택 및 부호화 단위 표시 정보 삽입부(480)를 포함한다.
도 4에 도시된 움직임 벡터 부호화 장치의 주변 움직임 벡터 저장부(420), 움직임 벡터 예측부(440), 움직임 벡터 차분값 계산부(450)와, 제1 및 제2 런-길이 부호화부(460, 470)와, 제1 및 제2 가변 길이 부호화부(462, 472)는 도 3에 도시된 움직임 벡터 부호화 장치의 대응 기능부와 동일한 기능을 수행하므로, 설명의 간단을 위해 상세한 설명은 생략한다.
도 4의 비트 스트림 선택 및 부호화 단위 표시 정보 삽입부(480)는 제1 가변 길이 부호화부(462)로부터의 부호화된 움직임 벡터 비트 스트림의 발생 비트량과, 제2 가변 길이 부호화부(472)로부터의 부호화된 움직임 벡터 비트 스트림의 발생 비트량을 프레임 단위로 비교하여, 발생 비트량이 작은 움직임 벡터 비트 스트림을 선택하고, 선택된 움직임 벡터 비트 스트림의 런-길이 부호화 및 가변 길이 부호화에 있어서의 부호화 단위를 표시하는 부호화 단위 표시 정보를 선택된 움직임 벡터 비트 스트림에 삽입한다.
예를 들어, 제1 그룹 단위가 프레임이고, 제2 그룹 단위가 슬라이스 인 경우, 제1 가변 길이 부호화부(462)로부터 출력되는 움직임 벡터 비트스트림의 데이터량과, 제2 가변 길이 부호화부(472)로부터 출력되는 움직임 벡터 비트스트림의 한 프레임에 대한 데이터량을 비교한 결과, 제1 가변 길이 부호화부(462)로부터 출력되는 움직임 벡터 비트스트림을 최종 출력되는 움직임 벡터 비트스트림으로 선택하고, 제1 런-길이 부호화부(460) 및 제1 가변 길이 부호화부(462)에서의 부호화 단위가 프레임이었음을 나타내는 부호화 단위 표시 정보를 선택된 움직임 벡터 비트스트림에 삽입한다.
본 실시예에서는 상기 부호화 단위 표시 정보는 프레임 단위로 설정하고, 1 비트의 플래그(flag)를 이용하지만, 선택적으로 소정의 그룹 단위로 설정하고, 소정 비트의 플래그를 사용하는 것도 가능하다.
도 5는 본 발명의 일 실시예에 따른 움직임 벡터 정보 복호화 장치를 도시하는 블록도이다.
본 발명에 따른 움직임 벡터 복호화 장치는 입력된 비트 스트림을 가변 길이 복호화하여 (런, 길이) 벡터를 생성하는 가변 길이 복호화부(520), 상기 가변 길이 복호화부(520)에서 생성된 (런, 길이) 정보에 대해 런-길이 복호화를 수행하여 MVD를 생성하는 런-길이 복호화부(540), 상기 런-길이 복호화부(540)에 의해 생성된 MVD 및 주변 움직임 벡터 저장부(560)의 움직임 벡터 정보를 이용하여 매크로블록 별로 움직임 벡터를 복원한다.
필요한 경우, 예를 들어 부호화부에서 (런, 길이) 벡터 중 '런'에 대해서는 고정 길이 부호화가 이루어진 경우에는, 고정 길이 복호화부(530)를 이용하여 (런, 길이) 벡터 중 '런'에 대해서는 고정 길이 복호화(fixed length decoding)를 수행하도록 하는 것도 가능하다.
도 6은 본 발명의 일실시예에 따른 움직임 벡터를 부호화하는 방법을 설명하기 위한 플로우차트이다. 이하에서는, 도 3을 참조하여 본 발명에 따른 움직임 벡터 부호화 방법을 설명한다.
단계 620에서는 현재 블록의 주변 블록들의 움직임 벡터 정보를 이용하여, 현재 블록의 움직임 벡터에 대한 예측자를 탐색한다. 본 실시예에서는 움직임 벡터 예측부(340)는 주변 움직임 벡터 저장부(320)에 저장된 현재 블록의 주변 블록들의 움직임 벡터 정보에 기초하여, 중간값 필터링 방식의 수학식 1 및 2를 이용하여 예측자 Px, Py를 계산하지만, 선택적으로 수학식 3 및 4를 이용하여 Px, Py를 계산하는 것도 가능하다.
단계 640에서는 상기 단계 620에서 계산된 예측자와 현재 블록의 움직임 벡터 정보로부터, 이들 값의 차분값, 즉 MVD를 계산한다. 본 실시예에 따르면, 움직임 벡터 차분치 계산부(350)에서는 현재 블록의 움직임 벡터 정보와 움직임 벡터 예측부(340)에서 얻어진 예측자 Px, Py를 이용하여, MVD를 계산한다.
단계 660에서는 단계 640에서 계산된 MVD를 소정의 그룹 단위, 예를 들어 슬라이스 단위로 런-길이 부호화를 수행한다. 본 실시예에 따르면, 단계 640에서 계산된 MVD를 슬라이스 단위로 런-길이 부호화하였지만, 선택적으로 프레임 단위 또는 임의의 크기의 그룹 단위로 런-길이 부호화하는 것도 가능하다.
단계 680에서는 단계 660에서 얻어진 런-길이 부호화된 데이터에 대해 가변 길이 부호화를 수행한다.
도 7은 본 발명의 또 다른 실시예에 따른 움직임 벡터를 부호화하는 방법을 설명하기 위한 플로우차트이다. 이하에서는, 도 4를 참조하여 본 발명에 따른 움직임 벡터 부호화 방법을 설명한다.
단계 710에서는 현재 블록의 주변 블록들의 움직임 벡터 정보를 이용하여, 현재 블록의 움직임 벡터에 대한 예측자를 탐색한다. 본 실시예에서는 움직임 벡터 예측부(440)는 주변 움직임 벡터 저장부(420)에 저장된 현재 블록의 주변 블록들의 움직임 벡터 정보에 기초하여, 중간값 필터링 방식의 수학식 1 및 2를 이용하여 예측자 Px, Py를 계산하지만, 선택적으로 수학식 3 및 4를 이용하여 Px, Py를 계산하는 것도 가능하다.
단계 720에서는 상기 단계 710에서 계산된 예측자와 현재 움직임 벡터 정보로부터, 이들 값의 차분값, 즉 MVD를 계산한다. 본 실시예에 따르면, 움직임 벡터 차분값 계산부(450)에서는 현재 움직임 벡터 정보와 움직임 벡터 예측부(440)에서 얻어진 예측자 Px, Py를 이용하여, MVD를 계산한다.
단계 730에서는 단계 720에서 계산된 MVD를 제1 그룹 단위로 런-길이 부호화를 수행하고, 단계 732에서는 단계 730에서 얻어진 런-길이 부호화된 움직임 벡터 비트 스트림에 대해 제1 그룹 단위의 가변 길이 테이블을 이용하여 가변 길이 부호화를 수행한다.
단계 740에서는 단계 720에서 계산된 MVD를 제2 그룹 단위로 런-길이 부호화를 수행하고, 단계 742에서는 단계 740에서 얻어진 런-길이 부호화된 움직임 벡터 비트 스트림에 대해 제2 그룹 단위의 가변 길이 테이블을 이용하여 가변 길이 부호화를 수행한다.
단계 750에서는 단계 732에서 얻어진 제1 그룹 단위로 부호화된 움직임 벡터 비트 스트림의 데이터량과, 단계 742에서 얻어진 제2 그룹 단위로 부호화된 움직임 벡터 비트 스트림의 데이터량을 프레임 단위로 비교하여, 제1 그룹 단위로 부호화된 움직임 젝터 비트 스트림의 데이터량이 제2 그룹 단위로 부호화된 데이터량 보다 작은 경우에는 단계 760으로 진행한다. 또한, 제2 그룹 단위로 부호화된 움직임 벡터 비트 스트림의 데이터량이 제1 그룹 단위로 부호화된 데이터량 보다 작은 경우에는 단계 770으로 진행한다.
단계 760에서는 단계 732에서 얻어진 움직임 벡터 비트 스트림을 선택하고, 단계 762에서는 단계 760에서 부호화 단위가 제1 그룹 단위임을 표시하는 부호화단위 표시 정보를 상기 단계 760에서 선택된 움직임 벡터 스트림에 삽입한다.
단계 770에서는 단계 742에서 얻어진 움직임 벡터 비트 스트림을 선택하고, 단계 772에서는 단계 770에서 부호화 단위가 제2 그룹 단위임을 표시하는 부호화 단위 표시 정보를 상기 단계 770에서 선택된 움직임 벡터 스트림에 삽입한다.
본 실시예에서는 단계 750에서 프레임 단위로 움직임 벡터 비트 스트림의 발생 데이터량을 비교하였지만, 선택적으로 임의의 그룹 단위, 예를 들어 하나의 슬라이스 또는 복수개의 슬라이스 단위로 데이터량을 비교하는 것도 가능하다.
도 8은 본 발명의 일실시예에 따른 부호화된 움직임 벡터를 복호화하는 방법을 설명하기 위한 플로우차트이다. 이하에서는, 도 5를 참조하여 본 발명에 따른 움직임 벡터 복호화 방법을 설명한다.
단계 810에서는 입력된 움직임 벡터 비트 스트림의 부호화 단위 표시 정보로부터 부호화 단위를 판독한다.
단계 820에서는 상기 단계 810에서 판독된 부호화 단위의 가변 길이 테이블을 이용하여 가변 길이 복호화를 수행한다. 본 실시예에서 상기 부호화 단위는 프레임 또는 슬라이스 단위이지만, 선택적으로 적어도 하나의 매크로블록으로 이루어진 임의의 그룹 단위로 설정하는 것도 가능하다.
단계 830에서는 단계 820에서 얻어진 가변 길이 복호화된 움직임 벡터 비트 스트림에 대해 런-길이 복호화를 수행한다.
단계 840에서는 단계 830에서 얻어진 런-길이 복호화된 데이터로부터 해당 블록의 움직임 벡터와 기준 블록의 움직임 벡터 간의 움직임 벡터 차분값(MVD)을계산한다.
단계 850에서는 단계 840에서 계산된 선정된 그룹 단위의 움직임 벡터 차분값(MVD)으로부터 현재 블록의 움직임 벡터를 계산한다.
또한, 본 실시예에서는 소정의 그룹 단위, 예를 들러 프레임 또는 슬라이스 단위로 움직임 벡터의 부호화를 수행하는 것만을 예시하였지만, 선택적으로 부호화된 비트 스트림에 선택 모드를 추가함으로써, 영상에 따라 프레임 단위 또는 슬라이스 단위로 런-길이 부호화 및 가변 길이 부호화를 수행한 결과, 예를 들어 프레임 또는 슬라이스 단위의 발생 비트량을 고려하여, 적응적으로 매크로블록 단위로 부호화를 수행하도록 하는 것도 가능하다.
본 발명은 상술한 실시예에 한정되지 않으며, 본 발명의 사상내에서 당업자에 의한 변형이 가능함은 물론이다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 하드디스크, 플로피디스크, 플래쉬 메모리, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브 (예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
상술한 바와 같이 본 발명에 따른 움직임 벡터 부호화 방법 및 장치를 사용하는 경우, 움직임 벡터들 간의 공간적 상관성을 이용하여 선정된 단위로 런-길이 부호화를 수행한 후, 가변 길이 부호화를 수행하도록 함으로써, 움직임 벡터 부호화의 효율을 높이는 것이 가능하며, 따라서 동영상 부호화기의 압축율을 향상시킬 수 있다는 효과가 있다.

Claims (28)

  1. 움직임 벡터를 부호화하기 위한 부호화 방법에 있어서,
    (a) 해당 블록의 움직임 벡터와 기준 블록의 움직임 벡터 간의 움직임 벡터 차분값(motion vector difference: MVD)을 계산하는 단계; 및
    (b) 상기 (a) 단계에서 계산되는 상기 움직임 벡터 차분값에 대해 적어도 하나 이상의 매크로블록으로 이루어진 선정된 그룹 단위로 런-길이 부호화(run-length coding)를 수행하는 단계를 포함하는 것을 특징으로 하는 부호화 방법.
  2. 제1항에 있어서, 상기 선정된 그룹 단위는 하나의 매크로블록, 1/2 슬라이스(half slice), 하나의 슬라이스, 복수개의 슬라이스, 하나의 프레임으로 이루어진 그룹 중 하나인 것을 특징으로 하는 부호화 방법.
  3. 제1항에 있어서, (c) 상기 (b) 단계에서 런-길이 부호화된 움직임 벡터 차이값을 나타내는 (런, 길이) 벡터에 대해 가변 길이 부호화(variable length coding)를 수행하는 단계를 더 포함하는 것을 특징으로 하는 부호화 방법.
  4. 제1항에 있어서, (c) 상기 (b) 단계에서 런-길이 부호화된 움직임 벡터 차이값을 나타내는 (런, 길이) 벡터의 '런'에 대해서는 고정 길이 부호화(fixed length coding)를 수행하고, '길이'에 대해서는 가변 길이 부호화(variable length coding)를 수행하는 단계를 더 포함하는 것을 특징으로 하는 부호화 방법.
  5. 제1항, 제3항, 또는 제4항 중 어느 한 항에 있어서,
    (d) 상기 부호화된 데이터에 상기 (b) 단계에서의 런-길이 부호화를 위한 상기 선정된 그룹 단위를 표시하는 부호화 단위 표시 정보를 삽입하는 단계를 더 포함하는 것을 특징으로 하는 부호화 방법.
  6. 움직임 벡터를 부호화하기 위한 부호화 방법에 있어서,
    (a) 해당 블록의 움직임 벡터와 기준 블록의 움직임 벡터 간의 움직임 벡터 차분값(motion vector difference: MVD)을 계산하는 단계;
    (b1) 상기 (a) 단계에서 계산되는 상기 움직임 벡터 차분값에 대해 적어도 하나 이상의 매크로블록으로 이루어진 제1 그룹 단위로 런-길이 부호화(run-length coding)를 수행하는 단계; 및
    (b2) 상기 (a) 단계에서 계산되는 상기 움직임 벡터 차분값에 대해 적어도 하나 이상의 매크로블록으로 이루어진 제2 그룹 단위로 런-길이 부호화를 수행하는단계를 포함하는 것을 특징으로 하는 부호화 방법.
  7. 제6항에 있어서,
    (c1) 상기 (b1) 단계에서 상기 제1 그룹 단위로 런-길이 부호화된 움직임 벡터 차이값을 나타내는 (런, 길이) 벡터에 대해, 상기 제1 그룹 단위로 작성된 가변길이 부호화 테이블에 기초하여 가변 길이 부호화를 수행하는 단계와,
    (c2) 상기 (b2) 단계에서 상기 제2 그룹 단위로 런-길이 부호화된 움직임 벡터 차이값을 나타내는 (런, 길이) 벡터에 대해, 상기 제2 그룹 단위로 작성된 가변 길이 부호화 테이블에 기초하여 가변 길이 부호화를 수행하는 단계를 더 포함하는 것을 특징으로 하는 부호화 방법.
  8. 제6항에 있어서,
    (c1) 상기 (b1) 단계에서 상기 제1 그룹 단위로 런-길이 부호화된 움직임 벡터 차이값을 나타내는 (런, 길이) 벡터에 대해, '런'에 대해서는 고정 길이 부호화를 수행하고, '길이'에 대해서는 상기 제1 그룹 단위로 작성된 가변 길이 부호화 테이블에 기초하여 가변 길이 부호화를 수행하는 단계와,
    (c2) 상기 (b2) 단계에서 상기 제2 그룹 단위로 런-길이 부호화된 움직임 벡터 차이값을 나타내는 (런, 길이) 벡터에 대해, '런'에 대해서는 고정 길이 부호화를 수행하고, '길이'에 대해서는 상기 제2 그룹 단위로 작성된 가변 길이 부호화 테이블에 기초하여 가변 길이 부호화를 수행하는 단계를 더 포함하는 것을 특징으로 하는 부호화 방법.
  9. 제6항 내지 제8항 중 어느 한 항에 있어서, 상기 제1 그룹 단위 및 상기 제2 그룹 단위는 하나의 매크로블록, 1/2 슬라이스, 하나의 슬라이스, 복수개의 슬라이스, 하나의 프레임으로 이루어진 그룹 중 하나이며, 상기 제1 그룹 단위 및 상기 제2 그룹 단위는 서로 다른 것을 특징으로 하는 부호화 방법.
  10. 제7항 또는 제8항에 있어서,
    (d) 상기 (c1) 단계에서 상기 제1 그룹 단위로 부호화된 움직임 벡터 비트 스트림의 데이터량과 상기 (c2) 단계에서 상기 제2 그룹 단위로 부호화된 움직임 벡터 비트 스트림의 데이터량을 비교하여 데이터량이 작은 단위로 부호화된 데이터를 선택하는 단계를 더 포함하는 것을 특징으로 하는 부호화 방법.
  11. 제10항에 있어서,
    (e) 상기 (d) 단계에서 상기 선택된 데이터에 대한 부호화 단위를 표시하는 부호화 단위 표시 정보를 상기 선택된 움직임 벡터 비트 스트림에 삽입하는 단계를 더 포함하는 것을 특징으로 하는 부호화 방법.
  12. 부호화된 움직임 벡터 비트 스트림을 복호화하기 위한 복호화 방법에 있어서,
    (a) 입력된 움직임 벡터 비트 스트림에 대해 선정된 그룹 단위로 가변 길이 복호화를 수행하는 단계;
    (b) 상기 (a) 단계에서 가변 길이 복호화된 움직임 벡터 비트 스트림에 대해 상기 선정된 그룹 단위로 런-길이 복호화를 수행하는 단계;
    (c) 상기 (b) 단계에서 런-길이 복호화된 데이터로부터 해당 블록의 움직임 벡터와 기준 블록의 움직임 벡터 간의 움직임 벡터 차분값을 계산하는 단계; 및
    (d) 상기 (c) 단계에서 계산된 움직임 벡터 차분값에 기초하여 현재 블록의 움직임 벡터를 계산하는 단계를 포함하는 것을 특징으로 하는 복호화 방법.
  13. 제12항에 있어서,
    상기 선정된 그룹 단위는 하나의 매크로블록, 1/2 슬라이스, 하나의 슬라이스, 복수개의 슬라이스, 하나의 프레임 중 하나인 것을 특징으로 하는 복호화 방법.
  14. 제12항에 있어서,
    상기 (a) 단계는 (a1) 상기 입력된 움직임 벡터 비트 스트림에 포함된 부호화 단위 표시 정보로부터 상기 움직임 벡터 비트 스트림에 대한 부호화 단위를 판독하고, 상기 판독된 부호화 단위의 가변 길이 복호화 테이블에 기초하여 가변 길이 복호화를 수행하는 단계를 더 포함하는 것을 특징으로 하는 복호화 방법.
  15. 움직임 벡터를 부호화하기 위한 부호화 장치에 있어서,
    해당 블록의 움직임 벡터와 기준 블록의 움직임 벡터 간의 움직임 벡터 차분값을 계산하는 움직임 벡터 차분값 계산부; 및
    상기 움직임 벡터 차분값 계산부에서 계산된 상기 움직임 벡터 차분값에 대해 적어도 하나 이상의 매크로블록으로 이루어진 선정된 그룹 단위로 런-길이 부호화를 수행하는 런-길이 부호화부를 포함하는 것을 특징으로 하는 부호화 장치.
  16. 제15항에 있어서,
    상기 선정된 그룹 단위는 하나의 매크로블록, 1/2 슬라이스, 하나의 슬라이스, 복수개의 슬라이스, 하나의 프레임 중 하나인 것을 특징으로 하는 부호화 장치.
  17. 제15항에 있어서,
    상기 런-길이 부호화부에서 런-길이 부호화된 움직임 벡터 차이값을 나타내는 (런, 길이) 벡터에 대해 가변 길이 부호화를 수행하는 가변 길이 부호화부를 더 포함하는 것을 특징으로 하는 부호화 장치.
  18. 제15항에 있어서,
    상기 런-길이 부호하부에서 런-길이 부호화된 움직임 벡터 차이값을 나타내는 (런, 길이) 벡터의 '런'에 대해서는 고정 길이 부호화를 수행하고, '길이'에 대해서는 가변 길이 부호화를 수행하는 고정 길이 및 가변 길이 부호화부를 더 포함하는 것을 특징으로 하는 부호화 장치.
  19. 제17항 또는 제18항에 있어서,
    상기 부호화부는 부호화된 데이터에 상기 런-길이 부호화부에서의 런-길이 부호화를 위한 상기 선정된 그룹 단위를 표시하는 부호화 단위 표시 정보를 삽입하는 것을 특징으로 하는 부호화 장치.
  20. 움직임 벡터를 부호화하기 위한 부호화 장치에 있어서,
    해당 블록의 움직임 벡터와 기준 블록의 움직임 벡터 간의 움직임 벡터 차분값을 계산하는 움직임 벡터 차분값 계산부;
    상기 움직임 벡터 차분값 계산부에서 계산된 상기 움직임 벡터 차분값에 대해 적어도 하나 이상의 매크로블록으로 이루어진 제1 그룹 단위로 런-길이 부호화를 수행하는 제1 런-길이 부호화부; 및
    상기 움직임 벡터 차분값 계산부에서 계산된 상기 움직임 벡터 차분값에 대해 적어도 하나 이상의 매크로블록으로 이루어진 제2 그룹 단위로 런-길이 부호화를 수행하는 제2 런-길이 부호화부를 포함하는 것을 특징으로 하는 부호화 장치.
  21. 제20항에 있어서,
    상기 제1 런-길이 부호화부에서 상기 제1 그룹 단위로 런-길이 부호화된 움직임 벡터 차이값을 나타내는 (런, 길이) 벡터에 대해, 상기 제1 그룹 단위로 작성된 가변길이 부호화 테이블에 기초하여 가변 길이 부호화를 수행하는 제1 가변 길이 부호화부와,
    상기 제2 런-길이 부호화부에서 상기 제2 그룹 단위로 런-길이 부호화된 움직임 벡터 차이값을 나타내는 (런, 길이) 벡터에 대해, 상기 제2 그룹 단위로 작성된 가변 길이 부호화 테이블에 기초하여 가변 길이 부호화를 수행하는 제2 가변 길이 부호화부를 더 포함하는 것을 특징으로 하는 부호화 장치.
  22. 제20항에 있어서,
    상기 제1 런-길이 부호화부에서 상기 제1 그룹 단위로 런-길이 부호화된 움직임 벡터 차이값을 나타내는 (런, 길이) 벡터에 대해, '런'에 대해서는 고정 길이 부호화를 수행하고, '길이'에 대해서는 상기 제1 그룹 단위로 작성된 가변 길이 부호화 테이블에 기초하여 가변 길이 부호화를 수행하는 제1 가변 길이 부호화부와,
    상기 제1 런-길이 부호화부에서 상기 제2 그룹 단위로 런-길이 부호화된 움직임 벡터 차이값을 나타내는 (런, 길이) 벡터에 대해, '런'에 대해서는 고정 길이 부호화를 수행하고, '길이'에 대해서는 상기 제2 그룹 단위로 작성된 가변 길이 부호화 테이블에 기초하여 가변 길이 부호화를 수행하는 제2 가변 길이 부호화부를 더 포함하는 것을 특징으로 하는 부호화 장치.
  23. 제20항 내지 제22항 중 어느 한 항에 있어서,
    상기 제1 그룹 단위 및 상기 제2 그룹 단위는 하나의 매크로블록, 1/2 슬라이스(half slice), 하나의 슬라이스, 복수개의 슬라이스, 하나의 프레임으로 이루어진 그룹 중 하나이며, 상기 제1 그룹 단위 및 상기 제2 그룹 단위는 서로 다른 것을 특징으로 하는 부호화 장치.
  24. 제21항 또는 제22항에 있어서,
    상기 제1 가변 길이 부호화부에서 상기 제1 그룹 단위로 부호화된 움직임 벡터 비트 스트림의 데이터량과 상기 제2 가변 길이 부호화부에서 상기 제2 그룹 단위로 부호화된 움직임 벡터 비트 스트림의 데이터량을 비교하여 데이터량이 작은 움직임 벡터 비트 스트림을 선택하는 최적 움직임 벡터 비트 스트림 선택부를 더 포함하는 것을 특징으로 하는 부호화 장치.
  25. 제24항에 있어서,
    상기 최적 움직임 벡터 비트 스트림 선택부는 상기 선택된 움직임 벡터 비트 스트림의 부호화 단위를 표시하는 부호화 단위 표시 정보를 상기 선택된 비트 스트림에 삽입하는 것을 특징으로 하는 부호화 장치.
  26. 부호화된 움직임 벡터 비트 스트림을 복호화하기 위한 복호화 장치에 있어서,
    입력된 움직임 벡터 비트 스트림을 선정된 그룹 단위로 가변 길이 복호화를수행하는 가변 길이 복호화부;
    상기 가변 길이 복호화부에서 복호화된 움직임 벡터 비트 스트림에 대해 상기 선정된 그룹 단위로 런-길이 복호화를 수행하는 런-길이 복호화부; 및
    상기 런-길이 복호화부에서 런-길이 복호화된 데이터로부터 해당 블록의 움직임 벡터와 기준 블록의 움직임 벡터 간의 움직임 벡터 차분값을 계산하는 움직입 벡터 차분값 계산부를 포함하는 것을 특징으로 하는 복호화 장치.
  27. 제26항에 있어서,
    상기 선정된 그룹 단위는 하나의 매크로블록, 1/2 슬라이스, 하나의 슬라이스, 복수개의 슬라이스, 하나의 프레임 중 하나인 것을 특징으로 하는 복호화 장치.
  28. 제26항에 있어서,
    상기 가변 길이 복호화부는 상기 입력된 움직임 벡터 비트 스트림에 포함된 부호화 단위 표시 정보로부터 상기 움직임 벡터 비트 스트림에 대한 부호화 단위를 판독하고, 판독된 그룹 단위의 가변 길이 복호화 테이블에 기초하여 가변 길이 복호화를 수행하는 것을 특징으로 하는 복호화 장치.
KR1020020041986A 2002-07-18 2002-07-18 개선된 움직임 벡터 부호화 및 복호화 방법과 그 장치 KR100906473B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020020041986A KR100906473B1 (ko) 2002-07-18 2002-07-18 개선된 움직임 벡터 부호화 및 복호화 방법과 그 장치
AU2003219589A AU2003219589A1 (en) 2002-07-18 2003-04-08 Advanced method of coding and decoding motion vector and apparatus therefor
PCT/KR2003/000701 WO2004010708A1 (en) 2002-07-18 2003-04-08 Advanced method of coding and decoding motion vector and apparatus therefor
US10/435,670 US20040013200A1 (en) 2002-07-18 2003-05-12 Advanced method of coding and decoding motion vector and apparatus therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020041986A KR100906473B1 (ko) 2002-07-18 2002-07-18 개선된 움직임 벡터 부호화 및 복호화 방법과 그 장치

Publications (2)

Publication Number Publication Date
KR20040008360A true KR20040008360A (ko) 2004-01-31
KR100906473B1 KR100906473B1 (ko) 2009-07-08

Family

ID=30439328

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020041986A KR100906473B1 (ko) 2002-07-18 2002-07-18 개선된 움직임 벡터 부호화 및 복호화 방법과 그 장치

Country Status (4)

Country Link
US (1) US20040013200A1 (ko)
KR (1) KR100906473B1 (ko)
AU (1) AU2003219589A1 (ko)
WO (1) WO2004010708A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007069829A1 (en) * 2005-12-12 2007-06-21 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding video signals on group basis
KR101226497B1 (ko) * 2010-12-28 2013-01-25 연세대학교 산학협력단 움직임 벡터 부호화 방법 및 장치
KR101277713B1 (ko) * 2007-02-08 2013-06-24 삼성전자주식회사 비디오 부호화 장치 및 그 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100414508C (zh) * 2004-03-19 2008-08-27 皇家飞利浦电子股份有限公司 媒体信号处理方法,负载调整方法以及相应设备
US20110176611A1 (en) * 2010-01-15 2011-07-21 Yu-Wen Huang Methods for decoder-side motion vector derivation
US20130083210A1 (en) * 2011-09-30 2013-04-04 Successfactors, Inc. Screen and webcam video capture techniques

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5455629A (en) * 1991-02-27 1995-10-03 Rca Thomson Licensing Corporation Apparatus for concealing errors in a digital video processing system
EP0535746B1 (en) * 1991-09-30 1997-01-29 Philips Electronics Uk Limited Motion vector estimation, motion picture encoding and storage
JP3263960B2 (ja) * 1991-10-22 2002-03-11 ソニー株式会社 動きベクトル符号器および復号器
KR0128245B1 (ko) * 1992-10-07 1998-04-02 배순훈 화면 분할 기능을 갖는 디지탈 방식 고선명 텔레비젼
FR2725577B1 (fr) * 1994-10-10 1996-11-29 Thomson Consumer Electronics Procede de codage ou de decodage de vecteurs mouvement et dispositif de codage ou de decodage mettant en oeuvre ledit procede
TW293227B (ko) * 1994-11-24 1996-12-11 Victor Company Of Japan
EP0777387B1 (en) * 1995-12-06 2003-08-13 Harman/Becker Automotive Systems (XSYS Division) GmbH Method and apparatus for encoding digital video signals
JPH09322169A (ja) * 1996-03-22 1997-12-12 Sony Corp 画像信号の符号化装置及び符号化方法、復号装置及び復号方法並びに記録媒体
US5982434A (en) * 1996-03-22 1999-11-09 Sony Corporation Image signal coding method and device thereof, image signal decoding method and device thereof, and recording medium
US5826225A (en) * 1996-09-18 1998-10-20 Lucent Technologies Inc. Method and apparatus for improving vector quantization performance
US5821887A (en) * 1996-11-12 1998-10-13 Intel Corporation Method and apparatus for decoding variable length codes
KR100216777B1 (ko) * 1996-12-31 1999-09-01 서평원 화상 회의 시스템의 비디오 코딩장치
DE69835058D1 (de) * 1997-03-12 2006-08-10 Matsushita Electric Ind Co Ltd Verfahren und vorrichtung zur videosignalkodierung
US6078616A (en) * 1997-03-13 2000-06-20 Sony Corporation Methods and apparatus for error concealment utilizing temporal domain motion vector estimation
US6141448A (en) * 1997-04-21 2000-10-31 Hewlett-Packard Low-complexity error-resilient coder using a block-based standard
US5903311A (en) * 1997-05-30 1999-05-11 Sony Corporation Run level pair buffering for fast variable length decoder circuit
JP2897763B2 (ja) * 1997-07-28 1999-05-31 日本ビクター株式会社 動き補償符号化装置、復号化装置、符号化方法及び復号化方法
KR100249223B1 (ko) * 1997-09-12 2000-03-15 구자홍 엠팩(mpeg)-4의움직임벡터코딩방법
JP4573366B2 (ja) * 1997-09-25 2010-11-04 株式会社大宇エレクトロニクス 動きベクトル符号化方法及び符号化装置
KR100523908B1 (ko) * 1997-12-12 2006-01-27 주식회사 팬택앤큐리텔 격행주사 영상에 대한 영상신호 부호화 장치 및 그 방법
US6122321A (en) * 1998-05-12 2000-09-19 Hitachi America, Ltd. Methods and apparatus for reducing the complexity of inverse quantization operations
US6983018B1 (en) * 1998-11-30 2006-01-03 Microsoft Corporation Efficient motion vector coding for video compression
US6987805B1 (en) * 1999-09-24 2006-01-17 Lsi Logic Corporation Macroblock level intrarefresh technique for encoded video
KR100349649B1 (ko) * 2000-07-11 2002-08-24 주식회사 큐리텔 동영상압축 부호화장치의 가변 길이 부호화기
KR20020011247A (ko) * 2000-08-01 2002-02-08 구자홍 디지털 텔레비젼의 화질 향상장치 및 방법
JP4114859B2 (ja) * 2002-01-09 2008-07-09 松下電器産業株式会社 動きベクトル符号化方法および動きベクトル復号化方法
JP4130783B2 (ja) * 2002-04-23 2008-08-06 松下電器産業株式会社 動きベクトル符号化方法および動きベクトル復号化方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007069829A1 (en) * 2005-12-12 2007-06-21 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding video signals on group basis
KR100736096B1 (ko) * 2005-12-12 2007-07-06 삼성전자주식회사 비디오 신호를 그룹별로 인코딩 및 디코딩하는 방법 및장치
KR101277713B1 (ko) * 2007-02-08 2013-06-24 삼성전자주식회사 비디오 부호화 장치 및 그 방법
KR101226497B1 (ko) * 2010-12-28 2013-01-25 연세대학교 산학협력단 움직임 벡터 부호화 방법 및 장치

Also Published As

Publication number Publication date
US20040013200A1 (en) 2004-01-22
KR100906473B1 (ko) 2009-07-08
WO2004010708A1 (en) 2004-01-29
AU2003219589A1 (en) 2004-02-09

Similar Documents

Publication Publication Date Title
US10306236B2 (en) Image coding device and image decoding device
US6438168B2 (en) Bandwidth scaling of a compressed video stream
CN101406056B (zh) 减少数字视频编码器中的内预测和模式判决处理中的计算的方法
RU2720975C2 (ru) Способ кодирования и декодирования изображений, устройство кодирования и декодирования и соответствующие компьютерные программы
TWI407798B (zh) 運動預測方法與視訊編解碼器
US8194748B2 (en) Apparatus for scalable encoding/decoding of moving image and method thereof
US20150016526A1 (en) Image encoding/decoding method and device
EP1359770B1 (en) Signaling for fading compensation in video encoding
KR100694137B1 (ko) 동영상 부호화 장치, 동영상 복호화 장치, 및 그 방법과,이를 구현하기 위한 프로그램이 기록된 기록 매체
KR20050045746A (ko) 계층 구조의 가변 블록 크기를 이용한 움직임 추정 방법및 장치
JP2009530960A (ja) 照明変化補償動き予測符号化および復号化方法とその装置
KR20050089838A (ko) 선택된 매크로블록에 대한 스킵 모션 추정으로 비디오인코딩하는 방법
KR20100102386A (ko) 레지듀얼 값 분포에 적응적인 부호표 선택에 기초한 영상 부호화, 복호화 방법 및 장치
US20050207494A1 (en) Method and apparatus for encoding moving picture using fast motion estimation algorithm
JP2004215275A (ja) 動き補償に基づいた改善されたノイズ予測方法及びその装置とそれを使用した動画符号化方法及びその装置
CN114845102A (zh) 光流修正的提前终止
CN108401185B (zh) 参考帧选择方法、视频转码方法、电子设备和存储介质
JP2006135376A (ja) 動画像符号化装置、動画像符号化方法、動画像復号化装置および動画像復号化方法
KR100906473B1 (ko) 개선된 움직임 벡터 부호화 및 복호화 방법과 그 장치
KR101596085B1 (ko) 적응적인 인트라 예측을 이용한 영상 부호화/복호화 장치 및 방법
US20070165718A1 (en) Encoding apparatus, encoding method and program
KR101911587B1 (ko) 적응적인 인트라 예측을 이용한 영상 부호화/복호화 장치 및 방법
US20130083858A1 (en) Video image delivery system, video image transmission device, video image delivery method, and video image delivery program
KR20130023444A (ko) 다단계 화면간 예측을 이용한 영상 부호화/복호화 장치 및 방법
KR20200132985A (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: 20130530

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140529

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150528

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160530

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee