KR20050096790A - 다 계층의 모션 벡터를 효율적으로 압축하는 방법 및 장치 - Google Patents

다 계층의 모션 벡터를 효율적으로 압축하는 방법 및 장치 Download PDF

Info

Publication number
KR20050096790A
KR20050096790A KR1020040026778A KR20040026778A KR20050096790A KR 20050096790 A KR20050096790 A KR 20050096790A KR 1020040026778 A KR1020040026778 A KR 1020040026778A KR 20040026778 A KR20040026778 A KR 20040026778A KR 20050096790 A KR20050096790 A KR 20050096790A
Authority
KR
South Korea
Prior art keywords
motion vector
block
module
layer
predetermined
Prior art date
Application number
KR1020040026778A
Other languages
English (en)
Other versions
KR100631777B1 (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 EP05789740.7A priority Critical patent/EP1730967B1/en
Priority to PCT/KR2005/000834 priority patent/WO2006001585A1/en
Priority to US11/094,201 priority patent/US8040950B2/en
Publication of KR20050096790A publication Critical patent/KR20050096790A/ko
Application granted granted Critical
Publication of KR100631777B1 publication Critical patent/KR100631777B1/ko
Priority to US13/235,012 priority patent/US8559520B2/en

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
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09FDISPLAYING; ADVERTISING; SIGNS; LABELS OR NAME-PLATES; SEALS
    • G09F13/00Illuminated signs; Luminous advertising
    • G09F13/18Edge-illuminated signs
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09FDISPLAYING; ADVERTISING; SIGNS; LABELS OR NAME-PLATES; SEALS
    • G09F13/00Illuminated signs; Luminous advertising
    • G09F13/18Edge-illuminated signs
    • G09F2013/184Information to display
    • G09F2013/1859Frosted surface
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09FDISPLAYING; ADVERTISING; SIGNS; LABELS OR NAME-PLATES; SEALS
    • G09F13/00Illuminated signs; Luminous advertising
    • G09F13/18Edge-illuminated signs
    • G09F2013/1872Casing
    • G09F2013/1877Stand-like
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09FDISPLAYING; ADVERTISING; SIGNS; LABELS OR NAME-PLATES; SEALS
    • G09F13/00Illuminated signs; Luminous advertising
    • G09F13/18Edge-illuminated signs
    • G09F2013/1872Casing
    • G09F2013/1881Frame-like
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09FDISPLAYING; ADVERTISING; SIGNS; LABELS OR NAME-PLATES; SEALS
    • G09F13/00Illuminated signs; Luminous advertising
    • G09F13/20Illuminated signs; Luminous advertising with luminescent surfaces or parts
    • G09F13/22Illuminated signs; Luminous advertising with luminescent surfaces or parts electroluminescent
    • G09F2013/227Electroluminescent displays for vehicles

Landscapes

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

Abstract

본 발명은 다 계층 구조를 사용하는 비디오 코딩 방법에 있어서, 기초 계층(base layer)의 모션 벡터를 이용하여 향상 계층(enhanced layer)의 모션 벡터를 효과적으로 예측(prediction)하여, 모션 벡터의 압축 효율을 높이는 방법 및 장치에 관한 것이다.
본 발명에 따른 다 계층의 모션 벡터를 지원하는 비디오 인코더에 사용되는 모션 추정 장치는, 원 프레임을 각 계층에서의 프레임 크기로 다운 샘플링하는 다운 샘플링 모듈과, 상기 다운 샘플링된 프레임에 대하여 에러 또는 비용 함수가 최소가 되는 모션 벡터를 구하는 모션 벡터 검색 모듈과, 상기 소정의 향상 계층에서의 소정의 블록과 대응되는 하위 계층의 블록 및 그 주변의 블록에서의 모션 벡터를 이용하여 상기 소정의 향상 계층에서의 참조 모션 벡터를 생성하는 참조 벡터 생성 모듈과, 상기 구해진 모션 벡터와 상기 참조 모션 벡터와의 차분값을 계산하는 모션 차분 모듈로 이루어진다.

Description

다 계층의 모션 벡터를 효율적으로 압축하는 방법 및 장치{Method and apparatus for effectively compressing motion vectors in multi-layer}
본 발명은 비디오 압축 방법에 관한 것으로, 보다 상세하게는 본 발명은 다 계층 구조를 사용하는 비디오 코딩 방법에 있어서, 기초 계층(base layer)의 모션 벡터를 이용하여 향상 계층(enhanced layer)의 모션 벡터를 효과적으로 예측(prediction)하여, 모션 벡터의 압축 효율을 높이는 방법 및 장치에 관한 것이다.
인터넷을 포함한 정보통신 기술이 발달함에 따라 문자, 음성뿐만 아니라 화상통신이 증가하고 있다. 기존의 문자 위주의 통신 방식으로는 소비자의 다양한 욕구를 충족시키기에는 부족하며, 이에 따라 문자, 영상, 음악 등 다양한 형태의 정보를 수용할 수 있는 멀티미디어 서비스가 증가하고 있다. 멀티미디어 데이터는 그 양이 방대하여 대용량의 저장매체를 필요로 하며 전송시에 넓은 대역폭을 필요로 한다. 따라서 문자, 영상, 오디오를 포함한 멀티미디어 데이터를 전송하기 위해서는 압축코딩기법을 사용하는 것이 필수적이다.
데이터를 압축하는 기본적인 원리는 데이터의 중복(redundancy)을 없애는 과정이다. 이미지에서 동일한 색이나 객체가 반복되는 것과 같은 공간적 중복이나, 동영상 프레임에서 인접 프레임이 거의 변화가 없는 경우나 오디오에서 같은 음이 계속 반복되는 것과 같은 시간적 중복, 또는 인간의 시각 및 지각 능력이 높은 주파수에 둔감한 것을 고려한 심리시각 중복을 없앰으로서 데이터를 압축할 수 있다.
현재 대부분의 비디오 코딩 표준은 모션 보상 예측 코딩법에 기초하고 있는데, 시간적 중복은 모션 보상에 근거한 시간적 필터링(temporal filtering)에 의해 제거하고, 공간적 중복은 공간적 변환(spatial transform)에 의해 제거한다.
데이터의 중복을 제거한 후 생성되는 멀티미디어를 전송하기 위해서는, 전송매체가 필요한데 그 성은은 전송매체 별로 차이가 있다. 현재 사용되는 전송매체는 초당 수십 메가비트의 데이터를 전송할 수 있는 초고속통신망부터 초당 384 kbit의 전송속도를 갖는 이동통신망 등과 같이 다양한 전송속도를 갖는다.
이와 같은 환경에서, 다양한 속도의 전송매체를 지원하기 위하여 또는 전송환경에 따라 이에 적합한 전송률로 멀티미디어를 전송할 수 있도록 하는, 즉 스케일러빌리티(scalability)를 갖는 데이터 코딩방법이 멀티미디어 환경에 보다 적합하다 할 수 있다.
이러한 스케일러빌리티란, 하나의 압축된 비트 스트림에 대하여 비트 레이트, 에러율, 시스템 자원 등의 조건에 따라 디코더(decoder) 또는 프리 디코더(pre-decoder) 단에서 부분적 디코딩을 할 수 있게 해주는 부호화 방식이다.
디코더 또는 프리 디코더는 이러한 스케일러빌리티를 갖는 코딩 방식으로 부호화된 비트 스트림의 일부만을 취하여 다른 화질, 해상도, 또는 프레임 레이트를 갖는 멀티미디어 시퀀스를 복원할 수 있다.
이미, MPEG-21(moving picture experts group-21) PART-13에서 스케일러블 비디오 코딩(scalable video coding)에 관한 표준화를 진행 중에 있는데, 그 중 공간적 변환 방법에서 웨이블릿-기반의(wavelet-based) 방식이 유력한 방법으로 인식되고 있다. 또한, 시간적 스케일러빌리티를 지원하는 코딩 방법으로 최근에 Philips 사의 공개특허(US 공개번호: 2003/0202599 A1)에서 제시한 기술이 관심을 끌고 있다.
뿐만 아니라, 종래의 MPEG4 또는 H.264와 같이 웨이블릿 기반의 압축방식을 사용하지 않는 코딩 방식에서도 멀티 계층(multi-layer)를 사용하여 공간적, 시간적 스케일러빌리티를 구현하고 있다.
하나의 계층으로 구현된 스케일러빌리티는 하나의 계층에 모든 스케일러빌리티 특징(scalable feature)가 맞추어 있기 때문에 다른 계층으로 변환되면, 그만큼의 손해를 감수하여야 한다. 그에 반하여, 여러 계층 구조 구성된 경우에는 각각의 계층에 대해서 최적의 성능을 얻을 수 있도록 설계될 수 있다. 예를 들면, 기초 계층(base layer), 제1 향상 계층(enhanced layer 1), 제2 향상 계층(enhanced layer 2)의 다 계층을 두어, 각각의 계층는 해상도(QCIF, CIF, 2CIF)에 따라서 구분하고, 각 계층 안에서 SNR 스케일러빌리티와 시간적 스케일러빌리티를 갖도록 구성하는 것을 생각할 수 있다.
하지만, 각 계층은 시간적 중복성(temporal redundancy)를 제거하기 위해서 모션 벡터(motion vector; MV)를 가지기 때문에, 하나의 계층 구조보다 모션 벡터의 비트량이 상당히 증가한다. 따라서 각 계층에서 사용되는 모션 벡터의 양은 전제 압축에 할당된 비트 양(bit budget)에서 상당한 부분을 차지하게 된다. 즉, 각 계층의 모션 벡터에 대한 중복성을 효과적으로 제거하는 것이 비디오의 전체적 품질에 큰 영향을 미치게 된다.
도 1은 다 계층 구조를 이용한 스케일러블 비디오 코덱의 한 예를 보여주고 있다. 먼저 기초 계층을 QCIF(Quarter Common Intermediate Format), 15Hz(프레임 레이트)로 정의하고, 제1 향상 계층을 CIF(Common Intermediate Format), 30hz로, 제2 향상 계층을 SD(Standard Definition), 60hz로 정의한다. 만약 CIF 0.5M 스트림(stream)을 원하다면, 제1 향상 계층의 CIF_30Hz_0.7M에서 SNR만을 0.5M로 잘라서 보내면 된다. 이러한 방식으로 공간적, 시간적, SNR 스케일러빌리티를 구현할 수 있다. 도 1에서와 같이 모션 벡터는 그 수가 증가하여 기존의 한개의 계층으로 구성된 것 보다 약 2배 정도의 오버헤드(overhead)가 발생하기 때문에, 기초 계층을 통한 모션 예측(motion prediction)이 중요하다.
그러나, 종래의 다 계층에서 기초 계층을 통한 모션 예측은, 단순히 각 계층에서 구한 모션 벡터의 차분값을 압축하는 방식을 사용하고 있다. 도 2를 참조하여 종래의 방식을 살펴본다. 낮은 비트-레이트(bit-rate)를 갖는 비디오 전송에 있어에서는, 모션 벡터, 모션 추정을 수행할 가변적 블록의 크기 및 위치, 이러한 가변적 블록마다 결정되는 모션 벡터 등의 정보(이하 '모션 정보(motion information)'라 한다)에 대한 비트를 절약하여 이 비트를 텍스쳐 정보(texture information)에 할당하면 화질 개선에 보다 도움이 되는 경우가 있다. 따라서, 모션 추정 이후에 모션 정보도 계층화하여 나누어 전송하는 것이 도움이 될 수 있다.
가변적 블록 크기를 이용한 모션 예측에서, 예를 들어, 예측의 기본 단위는 16×16의 매크로블록을 사용할 수 있다. 이 경우 각각의 매크로 블록은 16×16, 16×8, 8×16, 8×8, 8×4, 4×8, 그리고 4×4의 조합으로 이루어질 수 있다. 그리고 대응하는 모션 벡터는 1 픽셀 정밀도, 1/2 픽셀 정밀도, 1/4 픽셀 정밀도 등 다양한 픽셀 정밀도에 따라서 구할 수 있다. 이러한 모션 벡터들은 하기하는 단계에 따라서 계층화하여 구현될 수 있다.
첫째, 16×16 블록 크기의 모션 검색을 1픽셀 정밀도에 따라 수행한다. 생성된 모션 벡터는 모션 벡터의 기초 계층(base layer)이 된다. 기초 계층 중 본 도에서 일 예로 든 매크로 블록의 모션 벡터(1)가 도시되어 있다.
둘째, 16×16 및 8×8 블록 크기의 모션 검색을 1/2 픽셀 정밀도에 따라 수행한다. 수행 결과 검색된 모션 벡터와 기초 계층의 모션 벡터의 차이가 제1 향상 계층(enhancement layer)의 모션 벡터 차분값으로서, 추후에 이 값이 디코더 단으로 전송된다. 도시된 모션 벡터(11, 12, 13, 및 14)는 도시한 바와 같이 제1 향상 계층에서 가변적 블록 크기를 결정하고 이에 대한 모션 벡터를 구한 것이다. 그러나, 실제로 전송되는 값은 상기 모션 벡터(11, 12, 13, 및 14)에서 기초 계층의 모션 벡터(1)를 뺀 차분값이다. 도 3을 참조하여 이를 설명하면, 제1 향상 계층의 모션 벡터 차분값은 각각 벡터(15), 벡터(16), 벡터(17), 및 벡터(18)이 된다.
셋째, 모든 서브 블록 크기의 모션 검색을 1/4 픽셀 정밀도에 따라 수행한다. 기초 계층의 모션 벡터와 제1 향상 계층의 모션 벡터 차분을 합한 값과, 상기 수행 결과 검색된 모션 벡터의 차이가, 제2 향상 계층의 모션 벡터 차분값이 되고 이 값이 전송되는 값이다. 예를 들어, 매크로 블록(A)에서 모션 벡터 차분값은 차분 벡터(142)에서 차분 벡터(14)를 뺀 값으로서, 차분 벡터(142)에서 차분 벡터(18)와 모션 벡터(1)을 더한 값을 뺀 값과 같다.
마지막으로, 상기 3개 계층의 모션 정보를 각각 인코딩한다.
도 2에서 보는 바와 같이, 오리지널 모션 벡터는 세 개의 계층으로 나뉘어진다. 시간적 분해에서 모션 정보를 갖는 각각의 프레임은 전술한 바와 같이 기초 계층과 향상 계층들로 나뉘어진다. 따라서, 전체 모션 벡터 정보는 도 1에서 보는 바와 같은 그룹으로 조직화된다. 이와 같이, 기초 계층은 최우선 순위의 모션 벡터 정보가 되며, 전송시 생략될 수 없는 성분이다.
따라서, 기초 계층의 비트 레이트는 네트워크가 지원하는 최소 밴드폭보다 작거나 같아야 하고, 기초 계층 및 향상 계층 전체를 전송시의 비트 레이트는 네트워크가 지원하는 최대 대역폭보다 작거나 같아야 한다.
광범위의 공간적 해상도와 비트레이트를 커버하기 위하여, 이와 같은 방법을 이용하면 공간적 해상도에 따라서 적합한 벡터 정밀도를 결정함으로써, 모션 정보에 대한 스케일러빌리티를 구현할 수 있다.
이와 같이, 향상 계층의 모션 벡터를 효과적으로 압축하기 위해서 기초 계층의 모션 벡터를 이용하여 모션 예측을 한다. 이 예측은 모션 벡터에 사용되는 비트를 줄이는 중요한 요소이기 때문에, 압축 성능에 중요한 영향을 미치게 된다.
그러나, 종래의 방법은 주위의 모션 벡터와의 관련성(correlation)을 이용하지 않고, 단순히 하위 계층의 모션 벡터와의 차분만을 구하고 이를 인코딩한다. 따라서, 예측이 잘 되어지지 않아서 향상 계층에서의 모션 벡터의 차분이 커지게 되고 따라서 압축 성능에 좋지 않은 영향을 미치게 된다.
본 발명은 상기한 문제점을 고려하여 창안된 것으로, 기초 계층의 모션 벡터로부터 향상 계층의 모션 벡터를 예측하는데 보다 효율적인 방법을 제공하는 것을 목적으로 한다.
또한, 본 발명은 향상 계층의 모션 벡터를 예측하는 데 있어서, 기초 계층에서 대응되는 모션 벡터 뿐만 아니라 그 주위의 모션 벡터를 고려하는 방법을 제공하는 것을 목적으로 한다.
상기한 목적을 달성하기 위하여, 본 발명에 따른 다 계층의 모션 벡터를 지원하는 비디오 인코더에 사용되는 모션 추정 장치에 있어서, 원 프레임을 각 계층에서의 프레임 크기로 다운 샘플링하는 다운 샘플링 모듈; 상기 다운 샘플링된 프레임에 대하여 에러 또는 비용 함수가 최소가 되는 모션 벡터를 구하는 모션 벡터 검색 모듈; 상기 소정의 향상 계층에서의 소정의 블록과 대응되는 하위 계층의 블록 및 그 주변의 블록에서의 모션 벡터를 이용하여 상기 소정의 향상 계층에서의 참조 모션 벡터를 생성하는 참조 벡터 생성 모듈; 및 상기 구해진 모션 벡터와 상기 참조 모션 벡터와의 차분값을 계산하는 모션 차분 모듈을 포함한다.
상기 모션 추정 장치는, 상기 참조 모션 벡터를 생성하기 위한 보간 과정에 적용할 소정의 필터를 제공하는 필터 모듈을 더 포함하는 것이 바람직하다.
상기 참조 모션 벡터를 생성하는 것은, 소정의 블록과 지역적으로 관련성을 가지는 상기 하위 계층에서 블록을 참조 블록으로 지정하고, 상기 참조 블록을 소정의 필터를 이용하여 보간함으로써 이루어지는 것이 바람직하다.
상기 보간은 상기 참조 블록에 지역적 관련성에 비례하여 반영 비율을 달리 적용함으로써 이루어지는 것이 바람직하다.
상기 참조 모션 벡터를 생성하는 것은, 고정 크기의 블록과 지역적으로 관련성을 가지는 상기 하위 계층에서 블록을 참조 블록으로 지정하고, 상기 참조 블록을 소정의 필터를 이용하여 보간하여 임시 참조 모션 벡터를 구한 후, 상기 비용 함수를 적용하여 상기 고정 크기의 블록 중 머징이 발생하는 블록은 그 블록에 포함된 상기 임시 참조 모션 벡터들을 상기 소정의 필터를 이용하여 다운 샘플링함으로써 이루어지는 것이 바람직하다.
상기한 목적을 달성하기 위하여, 다 계층의 모션 벡터를 지원하는 비디오 인코더에 있어서, 각 계층에서의 프레임에 대하여 모션 벡터를 구하고, 상기 다 계층 중 소정의 향상 계층에서의 참조 모션 벡터를 구하며, 상기 구해진 모션 벡터와 상기 참조 모션 벡터와의 차분값을 계산하는 모션 벡터 압축 모듈; 상기 구해진 모션 벡터를 이용하여 시간축 방향으로 프레임들을 필터링함으로써 시간적 중복성을 감소시키는 시간적 필터링 모듈; 상기 시간적 중복성이 제거된 프레임에 대하여 공간적 중복성을 제거함으로써 변환 계수를 생성하는 공간적 변환 모듈; 및 상기 생성된 변환 계수를 양자화하는 양자화 모듈을 포함한다.
상기 공간적 변환은 DCT 변환(Discrete Cosine Transform) 또는 웨이블릿 변환(wavelet transform) 중 어느 하나의 방법을 사용하는 것이 바람직하다.
상기 비디오 인코더는, 상기 양자화된 변환 계수와, 상기 모션 벡터 중 기초 계층의 모션 벡터와, 상기 차분값을 무손실 부호화하여 출력 비트 스트림을 출력하는 생성하는 엔트로피 부호화 모듈을 더 포함하는 것이 바람직하다.
상기 모션 벡터 압축 모듈은, 원 프레임을 각 계층에서의 프레임 크기로 다운 샘플링하는 다운 샘플링 모듈; 상기 다운 샘플링된 프레임에 대하여 에러 또는 비용 함수가 최소가 되는 모션 벡터를 구하는 모션 벡터 검색 모듈; 상기 다 계층 중 소정의 향상 계층에서의 소정의 블록과 대응되는 하위 계층의 블록 및 그 주변의 블록에서의 모션 벡터를 이용하여 상기 소정의 향상 계층에서의 참조 모션 벡터를 생성하는 참조 벡터 생성 모듈; 상기 참조 모션 벡터를 생성하기 위한 보간 과정에 적용할 소정의 필터를 제공하는 필터 모듈; 및 상기 구해진 모션 벡터와 상기 참조 모션 벡터와의 차분값을 계산하는 모션 차분 모듈을 포함하는 것이 바람직하다.
상기한 목적을 달성하기 위하여, 다 계층의 모션 벡터를 지원하는 비디오 인코더에 있어서, 입력된 비트 스트림을 해석하여 텍스쳐 정보 및 모션 정보를 추출하는 엔트로피 복호화 모듈; 상기 추출된 모션 정보를 해석하여 소정의 향상 계층에 대하여 참조 모션 벡터를 계산하고, 상기 모션 정보에 포함되는 모션 차분값과 상기 계산된 참조 모션 벡터를 합함으로써 모션 벡터를 복원하는 모션 벡터 복원 모듈; 상기 텍스쳐 정보를 역 양자화하여 변환 계수를 출력하는 역 양자화 모듈; 공간적 변환을 역으로 수행하여, 상기 변환 계수를 공간적 영역에서의 변환계수로 역 변환하는 역 공간적 변환 모듈; 및 상기 복원된 모션 벡터를 이용하여 상기 변환 계수를 역 시간적 필터링하여 비디오 시퀀스를 구성하는 프레임들을 복원하는 역 시간적 필터링 모듈을 포함한다.
상기 모션 벡터 복원 모듈은, 상기 소정의 향상 계층에서의 소정의 블록과 대응되는 하위 계층의 블록 및 그 주변의 블록에서의 모션 벡터를 이용하여 상기 소정의 향상 계층에서의 참조 모션 벡터를 생성하는 참조 벡터 계산 모듈; 상기 참조 모션 벡터를 생성하기 위한 보간 과정에 적용되는 소정의 필터를 제공하는 필터 모듈; 및 상기 구해진 참조 모션 벡터와 상기 모션 벡터 차분값을 합함으로써 모션 벡터를 생성하는 모션 가산 모듈을 포함한다.
상기한 목적을 달성하기 위하여, 다 계층의 모션 벡터를 압축하는 방법은, 원 프레임을 기초 계층에서의 프레임 크기로 다운 샘플링하고, 상기 기초 계층에 대한 모션 벡터를 구하는 단계; 필요시 원 프레임을 다운 샘플링하고, 향상 계층에 대한 모션 벡터를 구하는 단계; 상기 향상 계층에서의 소정의 블록과 대응되는 상기 기초 계층의 블록 및 그 주변의 블록에서의 모션 벡터를 이용하여 상기 소정의 향상 계층에서의 참조 모션 벡터를 생성하는 단계; 및 상기 구해진 모션 벡터와 상기 참조 모션 벡터와의 차분값을 계산하는 단계를 포함한다.
상기한 목적을 달성하기 위하여, 다 계층 비디오 인코딩 방법은, (a) 기초 계층의 모션 벡터를 이용하여 향상 계층에서의 참조 모션 벡터를 구하고, 상기 향상 계층의 모션 벡터와 상기 참조 모션 벡터와의 차분값을 계산하는 단계; (b) 상기 구해진 모션 벡터를 이용하여 시간축 방향으로 프레임들을 필터링함으로써 시간적 중복성을 감소시키는 단계; (c) 상기 시간적 중복성이 제거된 프레임에 대하여 공간적 중복성을 제거함으로써 변환 계수를 생성하는 단계; 및 (d) 상기 생성된 변환 계수를 양자화하는 단계를 포함한다.
상기 비디오 인코딩 방법은, 상기 양자화된 변환 계수와, 상기 기초 계층의 모션 벡터와, 상기 차분값을 무손실 부호화하여 출력 비트 스트림을 출력하는 생성하는 단계를 더 포함하는 것이 바람직하다.
상기 (a) 단계는, 원 프레임을 각 계층에서의 프레임 크기로 다운 샘플링하는 단계; 상기 다운 샘플링된 프레임에 대하여 에러 또는 비용 함수가 최소가 되는 모션 벡터를 구하는 단계; 상기 향상 계층에서의 소정의 블록과 대응되는 상기 기초 계층의 블록 및 그 주변의 블록에서의 모션 벡터를 이용하여 상기 향상 계층에서의 참조 모션 벡터를 생성하는 단계; 및 상기 구해진 향상 계층에서의 모션 벡터와 상기 참조 모션 벡터와의 차분값을 계산하는 단계를 포함한다.
상기한 목적을 달성하기 위하여, 다 계층 비디오 디코딩 방법은, (a) 입력된 비트 스트림을 해석하여 텍스쳐 정보 및 모션 정보를 추출하는 단계; (b) 상기 추출된 모션 정보를 해석하여 소정의 향상 계층에 대하여 참조 모션 벡터를 계산하고, 상기 모션 정보에 포함되는 모션 차분값과 상기 계산된 참조 모션 벡터를 합함으로써 모션 벡터를 복원하는 단계; (c) 상기 텍스쳐 정보를 역 양자화하여 변환 계수를 출력하는 단계; (d) 공간적 변환을 역으로 수행하여, 상기 변환 계수를 공간적 영역에서의 변환계수로 역 변환하는 단계; 및 (e) 상기 복원된 모션 벡터를 이용하여 상기 변환 계수를 역 시간적 필터링하여 비디오 시퀀스를 구성하는 프레임들을 복원하는 단계를 포함한다.
상기 (b)단계는, 상기 소정의 향상 계층에서의 소정의 블록과 대응되는 기초 계층의 블록 및 그 주변의 블록에서의 모션 벡터를 이용하여 상기 소정의 향상 계층에서의 참조 모션 벡터를 생성하는 단계; 및 상기 구해진 참조 모션 벡터와 상기 모션 벡터 차분값을 합함으로써 모션 벡터를 생성하는 단계를 포함한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
먼저, 비디오/이미지 코딩 시스템의 전체 구성을 살펴보면, 도 4에 도시하는 바와 같다. 먼저, 인코더(encoder; 100)는 입력 비디오/이미지(10)를 부호화하여 하나의 비트 스트림(20)을 생성한다. 그리고, 프리 디코더(pre-decoder; 200)는 더코더(decoder; 300)와의 통신 환경 또는 디코더(300) 단에서의 기기 성능 등을 고려한 조건, 예를 들어, 비트 레이트, 해상도 또는 프레임 레이트를 추출 조건으로 하여, 인코더(100)로부터 수신한 비트 스트림(20)을 잘라내어 다양한 비트 스트림(25)을 추출할 수 있다.
디코더(300)는 상기 추출한 비트 스트림(25)으로부터 출력 비디오/이미지(30)를 복원한다. 물론, 상기 추출 조건에 의한 비트 스트림의 추출은 반드시 프리 디코더(150)에서 수행되는 것은 아니고, 디코더(300)에서 수행될 수도 있다. 또한, 프리 디코더(150) 및 디코더(300) 모두에서 수행될 수도 있다.
도 5는 비디오 코딩 시스템 중에서 인코더(encoder)의 구성을 나타낸 블록도이다. 인코더(100)는 조각화 모듈(110), 모션 벡터 압축 모듈(120), 시간적 필터링 모듈(130), 공간적 변환 모듈(140), 양자화 모듈(150), 및 엔트로피 부호화 모듈(160)을 포함하여 구성될 수 있다.
먼저, 입력 비디오(10)는 조각화 모듈(110)에 의하여 코딩의 기본단위인 GOP(Group of Pictures)로 나뉘어진다.
모션 벡터 압축 모듈(120)은 입력된 GOP를 추출하고, 상기 GOP에 존재하는 프레임을 다운 샘플링하여 각 계층에서의 모션 벡터를 구하고, 소정의 향상 계층에서의 참조 모션 벡터를 구하며, 상기 구해진 모션 벡터와 상기 참조 모션 벡터와의 차분값을 계산한다.
도 6에 도시한 바와 같이, 모션 벡터 압축 모듈(120)은 다시, 다운 샘플링 모듈(121), 모션 벡터 검색 모듈(122), 참조 벡터 생성 모듈(123), 필터 모듈(124), 및 모션 차분 모듈(125)을 포함하여 구성될 수 있다.
다운 샘플링 모듈(121)은 원 프레임을 각 계층에서의 프레임 크기로 다운 샘플링한다.
또한, 모션 벡터 검색 모듈(122)은 상기 다운 샘플링된 프레임과, 시간적 필터링 과정에서 비교될 프레임 간에 픽셀 값의 차이(이하, '에러'라 함) 또는 '비용 함수'가 최소가 되는 모션 벡터를 구한다. 비용 함수에 대한 자세한 설명을 후술하는 식 1의 설명에서 하기로 한다.
그리고, 참조 벡터 생성 모듈(123)은 상기 소정의 향상 계층에서의 소정의 블록과 대응되는 하위 계층의 블록, 및 그 주변의 블록에서의 모션 벡터를 이용하여 상기 소정의 향상 계층에서의 참조 모션 벡터를 생성한다.
필터 모듈(124)은 상기 참조 모션 벡터를 생성하기 위한 보간 과정에 적용할 소정의 필터를 제공한다. 그리고, 모션 차분 모듈(125)은 상기 구해진 모션 벡터와 상기 참조 모션 벡터와의 차분값을 계산한다.
이하, 모션 벡터 압축 모듈(120)에서의 동작을 도 7을 참조하여 상세하게 설명한다.
먼저, 다운 샘플링 모듈(121)을 이용하여 원 프레임(orginal frame)을 기초 계층으로 다운 샘플링한다(S10). 다 계층 구조가 기초 계층과 2개의 향상 계층으로 된 경우라면, 제2 향상 계층이 원 프레임과 같은 해상도를 갖도록 하고, 제1 향상 계층은 그 해상도의 1/2을, 기초 계층은 그 해상도의 1/4을 갖도록 한다. 다운 샘플링은 여러 개의 픽셀을 하나의 픽셀로 합하는 과정으로서, 이 때, 필터 모듈(124)에서 제공하는 소정의 필터를 이용한다. 소정의 필터로는 평균 필터(mean filter), 중간값 필터(median filter), 바이-큐빅 필터(bi-cubic filter), 쿼드라틱 필터(quadradic filter) 등을 이용할 수 있다.
다음, 상기 다운 샘플링된 프레임에 대한 모션 벡터, 즉 기초 계층(base layer)의 모션 벡터(MV0)를 검색한다(S20). 일반적으로, 모션 벡터를 검색하는 방법은, 현재 영상을 소정의 픽셀 크기의 매크로 블록으로 나누고 소정의 픽셀 정밀도(1 픽셀 또는 그 이하 정밀도)에 따라서 비교 대상인 프레임 내를 움직이면서 두 영상 사이의 프레임 차이를 비교하여 그 에러(error)의 합이 최소가 되는 모션 벡터를 해당 매크로 블록의 모션 벡터로 선정하는 방법을 사용한다. 모션 벡터를 검색하는 범위는 미리 파라미터로 지정해 줄 수 있다. 검색 범위가 작으면 검색 시간이 줄고 만약 모션이 탐색 범위 내에 존재한다면 좋은 성능을 보이지만, 영상의 움직임이 너무 빨라서 탐색 범위를 벗어난다면 예측의 정확도는 떨어질 것이다. 즉 검색 범위는 영상이 갖는 특성에 따라서 적절하게 선정되어야 한다. 본 발명의 기초 계층에서의 모션 벡터는 다른 계층에서의 모션 벡터 검색의 정밀도, 효율성에 영향을 주게 되므로, 기초 계층에서의 모션 벡터는 전 영역 검색(full area search)을 하는 것으로 한다.
이와 같이 고정 크기의 매크로 블록을 사용하여 모션 추정을 하는 것에서 한 걸음 나아가 가변 크기의 블록을 이용하는 방법이 있다. 가변 블록 크기를 이용하는 방법에 대한 보다 자세한 설명은 후술하는 S50 단계의 설명에서 하기로 한다.
기초 계층에 대해서도 가변 블록 크기를 이용하여 모션 벡터 검색을 수행할 수 있겠으나, 본 발명에서는 기초 계층에 대하여는 고정 블록 크기를 사용하기로 하고, 향상 계층에 대하여는 실시예에 따라서 고정 블록 크기 또는 가변 블록 크기를 사용하기로 한다. 향상 계층은 기초 계층을 기반으로 하고, 기초 계층에서의 에러는 향상 계층에서 그대로 누적된다. 따라서, 기초 계층에 대해서는 보다 엄밀한 검색을 할 필요가 있기 때문에, 기초 계층에서는 소정의 고정 크기(예를 들어, 4×4; 이하 '기초 크기'라 함)의 블록에 대하여 모션 벡터를 검색하는 것으로 한다.
상술한 바와 같은 과정을 통하여 기초 계층에 대한 모션 벡터를 검색한(S20) 후에는, 원 프레임을 제1 향상 계층으로 다운 샘플링하고(S30), 제1 향상 계층에 대한 모션 벡터(MV1)를 검색한다(S40). 향상 계층에 대하여 모션 벡터를 검색하는데는, 도 8에 도시한 바와 같이, 고정 블록 크기를 사용하는 방법과 가변 블록 크기를 사용하는 방법이 있다. 먼저, 고정 블록 크기를 사용하는 경우에는 기초 크기를 그대로 사용하는 것으로 할 수 있고, 그러면 기초 계층에서의 하나의 블록은 제1 향상 계층에서 4개의 블록에 해당하게 된다.
그리고, 가변 블록 크기를 사용하는 경우에는 상기 기초 크기로부터 시작하여 '비용 함수'가 최소가 되는 조건에 따라 가변 블록 크기를 정하게 된다. 이 경우에는 상기 4개의 블록 간에 머징(merging)이 발생할 수도 있고 발생하지 않을 수도 있다. 그 결과, 가변 블록의 종류는 도 10에서 기초 크기의 블록(g1), 가로 머징 블록(f1), 세로 머징 블록(g2), 양방향 머징 블록(k2)과 같이 4가지가 발생할 수 있다.
이와 같이, 비용 함수에 의하여 블록의 크기를 결정하는데, 비용 함수는 식 1과 같이 표현될 수 있다.
J = E + λ×R [식 1]
식 1은 모션 추정에서 가변 블록의 크기를 결정하는데 사용된다. 여기서, E는 프레임 간의 차분값(frame difference)을 코딩하는데 사용되는 비트 수를 의미하고, R은 추정된 모션 벡터를 코딩하는데 사용되는 비트 수를 의미한다.
어떤 영역의 모션 추정을 수행함에 있어서, 기초 크기, 가로 머징, 세로 머징, 양방향 머징 중 어떠한 형태의 블록을 사용할 것인지는 상기 비용 함수가 최소가 되도록 정한다. 실제로, 블록 크기를 결정하는 것과, 해당 블록 크기에 따른 모션 벡터를 결정하는 것은 별도의 과정은 아니고, 상기 비용 함수가 최소가 되도록 하는 과정에서 블록 크기와 그에 따른 모션 벡터의 성분이 함께 결정되는 것이다.
한편, 제1 향상 계층에서의 모션 벡터 검색시에는 상기 기초 계층에서 찾아낸 모션 벡터로부터 시작하여 그 근처를 검색 영역으로 삼고 모션 벡터 검색을 수행함으로써 기초 계층에서 수행한 것보다는 훨씬 효율적인 검색이 이루어지도록 할 수 있다.
다음으로, 상기 기초 계층의 모션 벡터(MV0) 및 그 주변의 모션 벡터에 관한 정보를 이용하여 제1 향상 계층에서의 참조 모션 벡터(MV0r)를 생성한다(S50).
본 발명에 관한 이해를 돕기 위하여, 각 계층에서의 모션 벡터와, 차분을 구하기 위한 참조프레임, 그리고, 각 계층에서 저장되는 모션 차분과의 관계를 도 9에 나타내었다. 기본적으로 모션 벡터 압축 모듈(120)에서의 동작은 하위 계층에서 모션 벡터(MV0)를 구하고, 소정의 보간(interpolation) 방법을 이용하여 가상의 참조 모션 벡터(MV0r)을 생성하고, 제1 계층에서의 모션 벡터(MV1)과 상기 참조 모션 벡터(MV0r)의 차분(D1)을 저장하고 이를 저장한다(S60).
제2 계층에서도 마찬가지 방법으로, 제2 향상 계층에 대한 모션 벡터(MV2)를 검색하고(S70), 제1 향상 계층의 모션 벡터(MV1) 및 그 주변의 모션 벡터를 참조하여 참조 모션 벡터(MV1r)를 생성한다(S80). 그리고, 모션 벡터(MV2)와 가상의 참조 모션 벡터(MV1r)의 차분을 저장하고 이를 저장한다(S90).
도 9에서 보면, 소정의 보간 방법을 이용하면 MV0 및 MV1은 각각 벡터(21) 및 벡터(23)만큼 이동하는 효과를 갖는다. 따라서, 종래에는 모션 벡터와 그 하위층의 모션 벡터의 차분값, 즉 제1 향상 계층에서 벡터(22)를, 제2 향상 계층에서 벡터(24)를 저장하였지만, 본 발명에 따르면 D1 및 D2를 저장하면 되므로 모션 벡터에 필요한 비트량이 감소하게 된다.
이를 위해서는, 참조 모션 벡터(MV0r 및 MV1r)를 생성하는 과정이 첫째, 별도의 부가 정보없이 기초 계층의 모션 정보를 읽음으로써 수행되어야 하고, 둘째, 상기 참조 모션 벡터가 현재 계층의 모션 벡터와 상당히 가까운 값으로 설정되어야 한다는 조건을 갖이다.
그러면, 도 10 및 도 11을 참조하여 소정의 보간 방법을 이용하여 가상의 참조 모션 벡터를 생성하는 과정(S50)을 예를 들어 설명한다. 본 발명에서 참조 모션 벡터를 생성하는 방법에는 우선, 고정 블록 크기에 대한 참조 모션 벡터를 구하는 방법(제1 실시예라 함)과, 고정 블록 크기에 대한 참조 모션 벡터를 구하고 이를 이용한 보간을 이용하여 머징이 있는 블록에 대한 참조 모션 벡터를 구하는 방법(제2 실시예라 함)이 있다. 그리고, 머징이 있는 블록에 대한 참조 모션 벡터도 기초 계층의 모션 정보만으로 구하는 방법(제3 실시예라 함)도 있다.
이러한 참조 모션 벡터를 구하는 고정 블록 내지 가변 블록의 크기는 도 7의 S40 또는 S70에서 구한 바와 같으며, 참조 모션 벡터의 수도 거기서에서와 같다.
도 10을 참조하여, 고정 블록 크기를 갖는 경우에 참조 모션 벡터를 구하는 과정(제1 실시예)을 설명하면, 먼저, 기초 계층에서 하나의 블록은 제1 향상 계층에서 4개의 고정 블록과 대응된다. 예를 들어, 블록 f는 블록 f5, f6, f7, 및 f8로 이루어진 영역에 대응된다. 참조 모션 벡터를 구하기 위한 소정의 보간 방법을 사용하기 위해서는 우선, 기초 계층에서 참조할 블록(이하 참조 블록이라 함)의 범위를 정하고, 필요하다면 그 참조 블록의 반영 비율을 결정하여야 한다.
예를 들어, 블록 f5의 참조 모션 벡터는 블록 b, e, f를 기초 계층의 참조 블록으로 지정한다. 왜냐하면, 블록 f5는 지역적으로 볼 때 블록 f에 대응되는 영역에서 좌상 1/4부분을 차지하고 있으므로, 기초 계층에서 블록 b, 블록 e, 블록 f와 모두 상당한 지역적 관련성(area correlation)을 가지기 때문이다. 이와 같이, 참조 블록의 범위를 정한 다음에는 그 범위에 대하여 필터를 적용하여 보간한다.
이러한 필터는 필터 모듈(124)이 제공하며, 그 종류로는 평균 필터, 중간값 필터, 바이-큐빅 필터, 쿼드라틱 필터 등이 있을 수 있다. 예를 들어, 평균 필터를 사용한다면 블록 f5의 참조 모션 벡터(MVf5)는 블록 b, 블록 e, 블록 f 각각의 모션 벡터를 더해서 1/3로 나누면 될 것이다.
다르게 생각하면, 참조 블록의 범위에 블록 b, 블록 e, 블록 f 뿐만 아니라, 블록 a도 포함시킬 수 있으며, 각 블록의 반영 비율도 다르게(예를 들어, 블록 b는 25%, 블록 e는 25%, 블록 a는 10%, 블록 f는 40%) 할 수도 있다. 또 다르게 생각하면, 참조 블록의 영역을 바로 인접한 블록만이 아니라 한 블록 건너서의 블록까지 포함하여 지정하는 등, 다양한 여러 방법으로 지정할 수 있음을 당업자라면 쉽게 알 수 있을 것이다.
마찬가지로, 블록 f8의 참조 모션 벡터는 블록 f, g, j(또는 블록 f, g, j, k)를 기초 계층의 참조 블록으로 지정할 수 있다.
한편, 도 10을 참조하여 가변 블록 크기를 갖는 경우에 참조 모션 벡터를 구하는 과정(제2 실시예)을 설명하면, 블록 f1, g2, k1과 같이 머징되는 블록 상기 고정 블록 크기를 갖는 경우에 구한 참조 모션 벡터 정보를 이용하여 구할 수 있다. g1과 같이 머징이 발생하지 않는 경우는 상기 경우에서 구한 방법에 의하여 미리 결정된다.
블록 f1에서의 참조 모션 벡터(MVf1)는 이미 계산된 블록 f5의 참조 모션 벡터(MVf5) 및 블록 f6의 참조 모션 벡터(MVf6)에 필터를 적용함으로써 계산된다. 예를 들어, 평균 필터라면 MVf5와 MVf6의 평균값이 될 것이다. 이외에 얼마든지 다른 필터를 사용할 수 있다.
블록 g1에서의 참조 모션 벡터(MVg1)는 이미 계산된 블록 g6의 참조 모션 벡터(MVg6) 및 블록 g8의 참조 모션 벡터(MVg8)에 필터를 적용함으로써 계산된다. 그리고, 블록 k1에서의 참조 모션 벡터(MVk1)은 이미 계산된 블록 k5, k6, k7, k8 각각의 참조 모션 벡터에 필터를 적용함으로써 계산된다.
이와 같이, 4가지 경우(g1, f1, g2, k1)에 대하여 참조 모션 벡터를 구하는 방식과 마찬가지로, 나머지 모든 가변 블록에 대하여도 참조 모션 벡터를 구할 수 있다.
도 11을 참조하여 본 발명의 제3 실시예를 설명한다. 제3 실시예는 가변 블록 크기를 사용하는 모션 벡터 검색 방법에 관한 것으로서, 가변 블록에 대한 정보를 기초 계층의 모션 정보로부터 바로 얻어온다.
상기 모션 벡터 검색 방법은, 고정 크기의 블록과 지역적으로 관련성을 가지는 기초 계층에서 블록을 참조 블록으로 지정하고, 상기 참조 블록을 소정의 필터를 이용하여 보간하여 임시 참조 모션 벡터를 구한 후, 상기 비용 함수를 적용하여 상기 고정 크기의 블록 중 머징이 발생하는 블록은 그 블록에 포함된 상기 임시 참조 모션 벡터들을 상기 소정의 필터를 이용하여 다운 샘플링함에 의하여 이루어진다.
구체적으로 보면, 먼저 도 10의 설명에서 고정 블록 크기를 이용하는 방법에 의하여 참조 모션 벡터(이하 '임시 참조 모션 벡터'라 함)를 구한다.
다음으로, 가변 크기를 갖는 블록 중 머징이 발생하는 블록에 대응하는 상기 임시 참조 모션 벡터들을 다운 샘플링하여 상기 머징이 발생하는 블록에 대한 참조 모션 벡터를 구한다.
블록 g1는 머징이 발생하지 않았으므로, 대응하는 임시 참조 모션 벡터가 그대로 참조 모션 벡터가 된다.
블록 f1에서의 참조 모션 벡터(MVg1)는 지역적으로 볼 때 블록 f에 대응되는 영역에서 상반부를 차지하고 있으므로, 지역적으로 관련성을 가지는 블록 b, e, f, g를 기초 계층의 참조 블록으로 지정하고, 여기에 필터를 적용한다. 이 경우에도 마찬가지로 다른 반영 비율(예를 들어, 블록 b는 30%, 블록 e는 15%, 블록 f는 40%, 블록 g는 15%)을 적용할 수 있다.
마찬가지로, 블록 g2에서의 참조 모션 벡터(MVg2)는 지역적으로 볼 때 블록 g에 대응되는 영역에서 우반부를 차지하고 있으므로, 지역적으로 관련성을 가지는 블록 c, g, h, k를 기초 계층의 참조 블록으로 지정하여 필터를 적용할 수 있다.
블록 k1에서의 참조 모션 벡터(MVk1)는 지역적으로 볼 때 블록 k에 대응되는 영역 전체를 차지하고 있으므로, 지역적으로 관련성을 가지는 블록 c, f, g, h, k를 기초 계층의 참조 블록으로 지정하여 필터를 적용할 수 있다.
이와 같이, 4가지 경우(g1, f1, g2, k1)에 대하여 참조 모션 벡터를 구하는 방식과 마찬가지로, 나머지 모든 가변 블록에 대하여도 참조 모션 벡터를 구할 수 있다.
상기와 같은 도 10 또는 도 11의 과정을 통하여 참조 모션 벡터를 구하는 과정은 어떤 방식으로 참조 블록을 지정할지(반영 비율이 별도로 있다면 그 비율도 포함)와, 어떠한 필터를 사용할지가 인코더(100)와 디코더(300)간에 결정되어 있다면, 인코더(100)에서 참조 모션 벡터를 생성하는 과정 및 디코더(300)에서 참조 모션 벡터를 계산하는 과정은 단순히 기초 계층의 모션 정보를 읽어 들임으로써 수행될 수 있으며, 인코더(100)가 디코더(300)에 별도의 부가 정보를 전달할 것을 요하지 않는다.
그리고, 하위 층에서의 모션 벡터는 상위 층의 모션 벡터와 상당한 차이를 나타내는 경우가 많은데 본 발명에서와 같이 모션 벡터의 공간적 관련성을 이용하면 그 차이를 상당히 감소시킬 수 있다.
이와 같이 참조 모션 벡터를 생성한 후(S50)에는, 제1 향상 계층의 모션 벡터(MV1)에서 제1 향상 계층의 참조 모션 벡터(MV0r)를 차분함으로써, 제1 향상 계층에서의 모션 벡터 차분을 구하고 이를 저장하게 된다(S60).
다시 도 5를 참조하면, 시간적 필터링 모듈(130)는 모션 벡터 압축 모듈(110)에 의하여 구해진 모션 벡터를 이용하여 시간축 방향으로 프레임들을 저주파와 고주파 프레임으로 분해함으로써 시간적 중복성을 감소시킨다. 시간적 필터링 방법으로는, 예컨대 MCTF(motion compensated temporal filtering), UMCTF(unconstrained MCTF) 등을 사용할 수 있다.
공간적 변환 모듈(140)은 시간적 필터링부(130)에 의하여 시간적 중복성이 제거된 프레임에 대하여, DCT 변환(Discrete Cosine Transform), 또는 웨이블릿 변환(wavelet transform)을 사용함으로써 공간적 중복성을 제거할 수 있다. 이러한 공간적 변환 결과 구해지는 계수들을 변환 계수라고 한다..
양자화 모듈(150)은 공간적 변환 모듈(140)에서 구한 변환 계수를 양자화한다. 양자화란, 상기 변환 계수를 임의의 실수값으로 표현하는 것이 아니라, 불연속적인 값(discrete value)을 갖도록 일정 이하의 자릿수를 잘라내고 이를 소정의 인덱스로 매칭(matching)시키는 작업이다. 특히, 공간적 변환시에 웨이블릿 변환을 이용하는 경우에는 엠베디드 양자화를 이용하는 경우가 많다. 이러한 엠베디드 양자화 방법으로는 EZW(Embedded Zerotrees Wavelet Algorithm), SPIHT(Set Partitioning in Hierarchical Trees), EZBC(Embedded ZeroBlock Coding) 등이 있다.
마지막으로, 엔트로피 부호화 모듈(310)은 양자화 모듈(320)에 의하여 양자화된 변환 계수 및 모션 벡터 생성부(120)를 통하여 생성된 모션 정보를 무손실 부호화하여 출력 비트 스트림(20)을 출력한다.
도 12는 비디오 코딩 시스템 중에서 디코더(decoder)의 구성을 나타낸 블록도이다.
디코더(300)는 엔트로피 복호화 모듈(310), 역 양자화 모듈(320), 역 공간적 변환 모듈(330), 역 시간적 필터링 모듈(340), 및 모션 벡터 복원 모듈(350)을 포함하여 구성될 수 있다.
먼저, 엔트로피 복호화 모듈(310)은 엔트로피 부호화 방식의 역으로서, 입력된 비트 스트림(20)을 해석하여 텍스쳐 정보(인코딩된 프레임 데이터) 및 모션 정보를 추출한다.
모션 벡터 복원 모듈(350)은 엔트로피 복호화 모듈(310)로부터 상기 추출된 모션 정보를 해석하여 소정의 향상 계층에 대하여 참조 모션 벡터를 계산하고, 상기 모션 정보에 포함되는 모션 차분값과 상기 계산된 참조 모션 벡터를 합함으로써 모션 벡터를 복원한다.
도 13을 참조하여 모션 벡터 복원 모듈(350)의 구성을 상세하게 살펴보면, 모션 정보 복원 모듈(350)는 참조 벡터 계산 모듈(351), 필터 모듈(352), 및 모션 가산 모듈(353)을 포함하여 구성된다.
참조 벡터 계산 모듈(351)은 상기 소정의 향상 계층에서의 소정의 블록과 대응되는 하위 계층의 블록 및 그 주변의 블록에서의 모션 벡터를 이용하여 상기 소정의 향상 계층에서의 참조 모션 벡터를 생성한다.
필터 모듈(352)은 상기 참조 모션 벡터를 생성하기 위한 보간 과정에 적용되는 소정의 필터를 제공한다. 그리고, 모션 가산 모듈(353)은 상기 구해진 참조 모션 벡터와 상기 모션 벡터 차분값을 합함으로써 모션 벡터를 생성한다.
이하, 모션 벡터 복원 모듈(350)에서의 동작을 도 14를 참조하여 설명한다. 먼저, 상기 추출된 모션 정보로부터 기초 계층의 모션 벡터(MV0) 및 블록 크기 정보를 읽는다(S110). 기초 계층의 시퀀스를 복원하고자 하는 경우(S120의 예)에는 여기서 종료된다. 인코더(100) 단에서 기초 계층의 블록 크기는 일정한 것으로 하였으므로, 모든 블록은 같은 블록 크기 정보는 갖는다.
향상 계층의 시퀀스를 복원하고자 하는 경우(S120의 아니오)에는, 상기 추출된 모션 정보로부터 제1 향상 계층의 모션 벡터의 차분(D1) 및 블록 크기 정보를 읽는다(S130). 가변 블록을 사용하는 경우에는 각 모션 벡터 차분(D1)에 따라서 블록의 크기가 달라질 수 있으므로, 모션 벡터 차분(D1) 별로 블록의 크기를 각각 읽는다.
그리고, 기초 계층의 모션 벡터(MV0)를 이용하여 제1 향상 계층의 참조 모션 벡터(MV0r)를 계산한다(S140). 이러한 참조 모션 벡터를 계산하는 과정은 인코더(100) 단에서 참조 모션 벡터를 생성하는 과정(도 7의 S50)과 동일하다. 다만 여기서, 참조 블록의 범위, 참조 블록의 반영 비율, 및 사용할 필터의 종류, 그리고, 인코더(100)와 디코더(300) 간에 약속된 방법으로 수행하면 된다. 이러한 약속은 인코더(100)가 소정의 예비 비트에 그 정보를 실어 보내고, 인코더(100) 또는 프리 디코더(200)로부터 비트 스트림을 수신하는 디코더(300)는 그 정보를 판독하여 상기 약속 내용을 알 수 있게 된다. 단, 어떠한 위치의 비트에 상기 약속에 관한 정보를 실어 보내는가는 인코더(100)와 디코더(300)가 당연히 미리 알고 있어야 한다.
이와 같이, 디코더(300) 측에서 참조 모션 벡터(MV0r)를 계산하는 데는 비트 스트림에 필수적으로 포함되는 기초 계층의 모션 정보만을 읽으면 되고, 상기 참조 모션 벡터를 인코더(100) 측에서 비트 스트림에 실어 디코더(300)에 보낼 필요가 없게 된다.
제1 향상 계층의 참조 모션 벡터(MV0r)와 제1 향상 계층의 모션 벡터 차분(D1)을 가산하여 제1 향상 계층의 모션 벡터(MV1)를 계산한다(S150). 이로부터 모션 벡터(MV1)는 완전하게 복원되며, 제1 향상 계층의 시퀀스를 복원하고자 하는 경우(S160의 예)에는 여기서 종료되고, 복원된 모션 벡터(MV1)는 역 시간적 필터링 모듈(340)에 제공된다.
제2 향상 계층의 시퀀스를 복원하고자 하는 경우(S160의 아니오)에는, 제2 향상 계층의 모션 벡터 차분(D2) 및 블록 크기 정보를 읽는다(S170). 가변 블록을 사용하는 경우에는 각 모션 벡터 차분(D2)에 따라서 블록의 크기가 달라질 수 있으므로, 모션 벡터 차분(D2) 별로 블록의 크기를 각각 읽는다.
제1 향상 계층의 모션 벡터(MV1)를 이용하여 제1 향상 계층의 참조 모션 벡터(MV1r)를 계산한다(S180). 이 과정도 S140 과정과 마찬가지의 과정을 통하여 수행될 수 있음은 당업자에게는 너무나 자명하다.
다음으로, 제1 향상 계층의 참조 모션 벡터(MV1r)와 제2 향상 계층의 모션 벡터 차분(D2)을 가산하여 제2 향상 계층의 모션 벡터(MV2)를 계산한다(S190). 이로부터 모션 벡터(MV2)는 완전하게 복원되고, 복원된 모션 벡터(MV2)는 역 시간적 필터링 모듈(340)에 제공된다.
한편, 역 양자화 모듈(320)은 추출된 텍스쳐 정보를 역 양자화하여 변환 계수를 출력한다. 역 양자화 과정은 인코더(100) 측에서 소정의 인덱스로 표현하여 전달한 값으로부터 이와 매칭되는 양자화된 계수를 찾는 과정이다. 인덱스와 양자화 계수 간의 매칭 관계를 나타내는 테이블은 인코더(100) 단으로부터 전달된다.
역 공간적 변환 모듈(330)은 공간적 변환을 역으로 수행하여, 상기 변환계수들을 공간적 영역에서의 변환계수로 역 변환한다. 예를 들어, DCT 방식의 경우에는 주파수 영역에서 공간적 영역으로, 웨이블릿 방식의 경우에는 웨이블릿 영역에서 공간적 영역으로 변환 계수를 역 변환하는 것이다.
역 시간적 필터링 모듈(340)은 상기 공간적 영역에서의 변환 계수, 즉 시간적 차분 이미지를 역 시간적 필터링하여 비디오 시퀀스를 구성하는 프레임들을 복원한다. 역 시간적 필터링을 위하여 역 시간적 필터링 모듈(330)은 모션 벡터 복원 모듈(350)로부터 제공된 모션 벡터를 이용한다.
본 명세서에서, "모듈"이라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, 모듈은 어떤 역할들을 수행한다.  그렇지만 모듈은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다.  모듈은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다.  따라서, 일 예로서 모듈은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다.  구성요소들과 모듈들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 모듈들로 결합되거나 추가적인 구성요소들과 모듈들로 더 분리될 수 있다.  뿐만 아니라, 구성요소들 및 모듈들은 통신 시스템 내의 하나 또는 그 이상의 컴퓨터들을 실행시키도록 구현될 수도 있다.
도 15 내지 도 17은 본 발명에 따른 비트 스트림(400)의 구조를 도시한 것이다. 이 중 도 15는 비트스트림(400)의 전체적 구조를 개략적으로 도시한 것이다.
비트스트림(400)은 시퀀스 헤더(sequence header) 필드(410) 와 데이터 필드(420)로 구성되고, 데이터 필드(420)는 하나 이상의 GOP 필드(430, 440, 450)로 구성될 수 있다.
시퀀스 헤더 필드(410)에는 프레임의 가로크기(2바이트), 세로크기(2바이트), GOP의 크기(1바이트), 프레임 레이트(1바이트) 등 영상의 특징을 기록한다.
데이터 필드(420)는 전체 영상 정보 기타 영상 복원을 위하여 필요한 정보들(모션 벡터, 참조 프레임 번호 등)이 기록된다.
도 16은 각 GOP 필드(410 등)의 세부 구조를 나타낸 것이다. GOP 필드(410 등)는 GOP 헤더(460)와, 첫번째 시간적 필터링 순서를 기준으로 볼 때 첫번째 프레임(다른 프레임을 참조하지 않고 인코딩되는 프레임)에 관한 정보를 기록하는 T(0) 필드(470)와, 모션 벡터의 집합을 기록하는 MV 필드(480)와, 상기 첫번째 프레임 이외의 프레임(다른 프레임을 참조하여 인코딩되는 프레임)의 정보를 기록하는 'the other T' 필드(490)으로 구성될 수 있다.
GOP 헤더 필드(460)에는 상기 시퀀스 헤더 필드(410)와는 달리 전체 영상의 특징이 아니라 해당 GOP에 국한된 영상의 특징을 기록한다. 여기에는 시간적 필터링 순서를 기록할 수 있고, 시간적 레벨(temporal level)을 기록할 수 있다.
도 17은 MV 필드(480)의 세부 구조를 나타낸 것이다.
여기에는, 각각의 계층 별로, 가변 블록의 수만큼의 가변 블록의 크기 정보, 위치 정보, 및 모션 벡터 정보가 각각 MV(1) 내지 MV(n-1) 필드에 기록된다. 여기에는 가변 블록 정보(크기 및 위치)와 모션 벡터 정보가 짝을 이루어 기록된다. 이러한 모션 벡터 정보는 기초 계층의 경우에는 모션 벡터 자체가, 향상 계층의 경우에는 모션 벡터 차분값이 된다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
본 발명에 따르면, 다 계층의 모션 벡터를 보다 효율적으로 압축하는 효과가 있다.
또한 본 발명에 따르면, 동일한 비트 스트림을 갖는 영상에 대하여 보다 화질을 높일 수 있다.
도 1은 다 계층 구조를 이용한 스케일러블 비디오 코덱의 한 예를 보여주는 도.
도 2는 다 계층 모션 벡터를 구하는 개념을 도시한 도.
도 3은 도 2에서 제1 향상 계층의 예를 나타낸 도.
도 4는 비디오/이미지 코딩 시스템의 전체 구조를 도시한 도.
도 5는 본 발명에 따른 인코더의 구성을 나타낸 블록도.
도 6은 모션 벡터 압축 모듈의 구성을 나타낸 블록도.
도 7은 모션 벡터 압축 모듈에서의 동작 과정을 나타낸 흐름도.
도 8은 제1 향상 계층에서 고정 블록 크기를 갖는 경우와 가변 블록 크기를 갖는 경우를 예를 들어 나타낸 도.
도 9는 모션 벡터, 참조프레임, 모션 벡터 차분과의 관계를 나타낸 도.
도 10은 본 발명에 따른 제1 실시예 및 제2 실시예를 설명하는 도.
도 11은 본 발명에 따른 제3 실시예를 설명하는 도.
도 12는 본 발명에 따른 디코더의 구성을 나타낸 블록도.
도 13은 벡터 복원 모듈의 구성을 나타낸 블록도.
도 14는 벡터 복원 모듈의 동작 과정을 나타낸 블록도.
도 15는 비트스트림의 전체적 구조를 개략적으로 도시한 도.
도 16은 각 GOP 필드의 세부 구조를 나타낸 도.
도 17은 MV 필드의 세부 구조를 나타낸 도.
(도면의 주요부분에 대한 부호 설명)
100 : 인코더 120 : 모션 벡터 압축 모듈
121 : 다운 샘플링 모듈 122 : 모션 벡터 검색 모듈
123 : 참조 벡터 생성 모듈 124 : 필터 모듈
125 : 모션 차분 모듈 200 : 프리 디코더
300 : 디코더 320 : 모션 정보 복원 모듈
321 : 참조 벡터 계산 모듈 352 : 필터 모듈
353 : 모션 가산 모듈

Claims (25)

  1. 다 계층의 모션 벡터를 지원하는 비디오 인코더에 사용되는 모션 추정 장치에 있어서,
    원 프레임을 각 계층에서의 프레임 크기로 다운 샘플링하는 다운 샘플링 모듈;
    상기 다운 샘플링된 프레임에 대하여 에러 또는 비용 함수가 최소가 되는 모션 벡터를 구하는 모션 벡터 검색 모듈;
    상기 소정의 향상 계층에서의 소정의 블록과 대응되는 하위 계층의 블록 및 그 주변의 블록에서의 모션 벡터를 이용하여 상기 소정의 향상 계층에서의 참조 모션 벡터를 생성하는 참조 벡터 생성 모듈; 및
    상기 구해진 모션 벡터와 상기 참조 모션 벡터와의 차분값을 계산하는 모션 차분 모듈을 포함하는 모션 벡터 압축 장치.
  2. 제1항에 있어서,
    상기 참조 모션 벡터를 생성하기 위한 보간 과정에 적용할 소정의 필터를 제공하는 필터 모듈을 더 포함하는 모션 벡터 압축 장치.
  3. 제1항에 있어서, 상기 참조 모션 벡터를 생성하는 것은,
    소정의 블록과 지역적으로 관련성을 가지는 상기 하위 계층에서 블록을 참조 블록으로 지정하고, 상기 참조 블록을 소정의 필터를 이용하여 보간함으로써 이루어지는 것을 특징으로 하는 모션 벡터 압축 장치.
  4. 제3항에 있어서, 상기 보간은
    상기 참조 블록에 지역적 관련성에 비례하여 반영 비율을 달리 적용함으로써 이루어지는 것을 특징으로 하는 모션 벡터 압축 장치.
  5. 제1항에 있어서, 상기 참조 모션 벡터를 생성하는 것은,
    고정 크기의 블록과 지역적으로 관련성을 가지는 상기 하위 계층에서 블록을 참조 블록으로 지정하고, 상기 참조 블록을 소정의 필터를 이용하여 보간하여 임시 참조 모션 벡터를 구한 후,
    상기 비용 함수를 적용하여 상기 고정 크기의 블록 중 머징이 발생하는 블록은 그 블록에 포함된 상기 임시 참조 모션 벡터들을 상기 소정의 필터를 이용하여 다운 샘플링함으로써 이루어지는 것을 특징으로 하는 모션 벡터 압축 장치.
  6. 다 계층의 모션 벡터를 지원하는 비디오 인코더에 있어서,
    각 계층에서의 프레임에 대하여 모션 벡터를 구하고, 상기 다 계층 중 소정의 향상 계층에서의 참조 모션 벡터를 구하며, 상기 구해진 모션 벡터와 상기 참조 모션 벡터와의 차분값을 계산하는 모션 벡터 압축 모듈;
    상기 구해진 모션 벡터를 이용하여 시간축 방향으로 프레임들을 필터링함으로써 시간적 중복성을 감소시키는 시간적 필터링 모듈;
    상기 시간적 중복성이 제거된 프레임에 대하여 공간적 중복성을 제거함으로써 변환 계수를 생성하는 공간적 변환 모듈; 및
    상기 생성된 변환 계수를 양자화하는 양자화 모듈을 포함하는 것을 특징으로 하는 비디오 인코더.
  7. 제6항에 있어서, 상기 공간적 변환은 DCT 변환(Discrete Cosine Transform) 또는 웨이블릿 변환(wavelet transform) 중 어느 하나의 방법을 사용하는 것을 특징으로 하는 비디오 인코더.
  8. 제6항에 있어서,
    상기 양자화된 변환 계수와, 상기 모션 벡터 중 기초 계층의 모션 벡터와, 상기 차분값을 무손실 부호화하여 출력 비트 스트림을 출력하는 생성하는 엔트로피 부호화 모듈을 더 포함하는 비디오 인코더.
  9. 제6항에 있어서, 상기 모션 벡터 압축 모듈은,
    원 프레임을 각 계층에서의 프레임 크기로 다운 샘플링하는 다운 샘플링 모듈;
    상기 다운 샘플링된 프레임에 대하여 에러 또는 비용 함수가 최소가 되는 모션 벡터를 구하는 모션 벡터 검색 모듈;
    상기 다 계층 중 소정의 향상 계층에서의 소정의 블록과 대응되는 하위 계층의 블록 및 그 주변의 블록에서의 모션 벡터를 이용하여 상기 소정의 향상 계층에서의 참조 모션 벡터를 생성하는 참조 벡터 생성 모듈;
    상기 참조 모션 벡터를 생성하기 위한 보간 과정에 적용할 소정의 필터를 제공하는 필터 모듈; 및
    상기 구해진 모션 벡터와 상기 참조 모션 벡터와의 차분값을 계산하는 모션 차분 모듈을 포함하는 비디오 인코더.
  10. 제9항에 있어서, 상기 참조 모션 벡터를 생성하는 것은,
    소정의 블록과 지역적으로 관련성을 가지는 상기 하위 계층에서 블록을 참조 블록으로 지정하고, 상기 참조 블록을 소정의 필터를 이용하여 보간함으로써 이루어지는 것을 특징으로 하는 모션 추정 장치.
  11. 다 계층의 모션 벡터를 지원하는 비디오 인코더에 있어서,
    입력된 비트 스트림을 해석하여 텍스쳐 정보 및 모션 정보를 추출하는 엔트로피 복호화 모듈;
    상기 추출된 모션 정보를 해석하여 소정의 향상 계층에 대하여 참조 모션 벡터를 계산하고, 상기 모션 정보에 포함되는 모션 차분값과 상기 계산된 참조 모션 벡터를 가산함으로써 모션 벡터를 복원하는 모션 벡터 복원 모듈;
    상기 텍스쳐 정보를 역 양자화하여 변환 계수를 출력하는 역 양자화 모듈;
    공간적 변환을 역으로 수행하여, 상기 변환 계수를 공간적 영역에서의 변환계수로 역 변환하는 역 공간적 변환 모듈; 및
    상기 복원된 모션 벡터를 이용하여 상기 변환 계수를 역 시간적 필터링하여 비디오 시퀀스를 구성하는 프레임들을 복원하는 역 시간적 필터링 모듈을 포함하는 비디오 디코더.
  12. 제11항에 있어서, 상기 모션 벡터 복원 모듈은,
    상기 소정의 향상 계층에서의 소정의 블록과 대응되는 하위 계층의 블록 및 그 주변의 블록에서의 모션 벡터를 이용하여 상기 소정의 향상 계층에서의 참조 모션 벡터를 생성하는 참조 벡터 계산 모듈;
    상기 참조 모션 벡터를 생성하기 위한 보간 과정에 적용되는 소정의 필터를 제공하는 필터 모듈; 및
    상기 구해진 참조 모션 벡터와 상기 모션 벡터 차분값을 가산함으로써 모션 벡터를 생성하는 모션 가산 모듈을 포함하는 비디오 디코더.
  13. 원 프레임을 기초 계층에서의 프레임 크기로 다운 샘플링하고, 상기 기초 계층에 대한 모션 벡터를 구하는 단계;
    필요시 원 프레임을 다운 샘플링하고, 향상 계층에 대한 모션 벡터를 구하는 단계;
    상기 향상 계층에서의 소정의 블록과 대응되는 상기 기초 계층의 블록 및 그 주변의 블록에서의 모션 벡터를 이용하여 상기 소정의 향상 계층에서의 참조 모션 벡터를 생성하는 단계; 및
    상기 구해진 모션 벡터와 상기 참조 모션 벡터와의 차분값을 계산하는 단계를 포함하는 다 계층의 모션 벡터를 압축하는 방법.
  14. 제13항에 있어서, 상기 참조 모션 벡터를 생성하는 것은,
    소정의 블록과 지역적으로 관련성을 가지는 상기 기초 계층에서 블록을 참조 블록으로 지정하고, 상기 참조 블록을 소정의 필터를 이용하여 보간함으로써 이루어지는 것을 특징으로 하는 다 계층의 모션 벡터를 압축하는 방법.
  15. 제14항에 있어서, 상기 보간은
    상기 참조 블록에 지역적 관련성에 비례하여 반영 비율을 달리 적용함으로써 이루어지는 것을 특징으로 하는 다 계층의 모션 벡터를 압축하는 방법.
  16. 제13항에 있어서, 상기 참조 모션 벡터를 생성하는 것은,
    고정 크기의 블록과 지역적으로 관련성을 가지는 상기 기초 계층에서 블록을 참조 블록으로 지정하고, 상기 참조 블록을 소정의 필터를 이용하여 보간하여 임시 참조 모션 벡터를 구한 후,
    상기 비용 함수를 적용하여 상기 고정 크기의 블록 중 머징이 발생하는 블록은 그 블록에 포함된 상기 임시 참조 모션 벡터들을 상기 소정의 필터를 이용하여 다운 샘플링함으로써 이루어지는 것을 특징으로 하는 다 계층의 모션 벡터를 압축하는 방법.
  17. (a) 기초 계층의 모션 벡터를 이용하여 향상 계층에서의 참조 모션 벡터를 구하고, 상기 향상 계층의 모션 벡터와 상기 참조 모션 벡터와의 차분값을 계산하는 단계;
    (b) 상기 구해진 모션 벡터를 이용하여 시간축 방향으로 프레임들을 필터링함으로써 시간적 중복성을 감소시키는 단계;
    (c) 상기 시간적 중복성이 제거된 프레임에 대하여 공간적 중복성을 제거함으로써 변환 계수를 생성하는 단계; 및
    (d) 상기 생성된 변환 계수를 양자화하는 단계를 포함하는 다 계층 비디오 인코딩 방법.
  18. 제17항에 있어서, 상기 공간적 변환은 DCT 변환(Discrete Cosine Transform) 또는 웨이블릿 변환(wavelet transform) 중 어느 하나의 방법을 사용하는 것을 특징으로 하는 다 계층 비디오 인코딩 방법.
  19. 제17항에 있어서,
    상기 양자화된 변환 계수와, 상기 기초 계층의 모션 벡터와, 상기 차분값을 무손실 부호화하여 출력 비트 스트림을 출력하는 생성하는 단계를 더 포함하는 다 계층 비디오 인코딩 방법.
  20. 제17항에 있어서, 상기 (a) 단계는,
    원 프레임을 각 계층에서의 프레임 크기로 다운 샘플링하는 단계;
    상기 다운 샘플링된 프레임에 대하여 에러 또는 비용 함수가 최소가 되는 모션 벡터를 구하는 단계;
    상기 향상 계층에서의 소정의 블록과 대응되는 상기 기초 계층의 블록 및 그 주변의 블록에서의 모션 벡터를 이용하여 상기 향상 계층에서의 참조 모션 벡터를 생성하는 단계; 및
    상기 구해진 향상 계층에서의 모션 벡터와 상기 참조 모션 벡터와의 차분값을 계산하는 단계를 포함하는 다 계층 비디오 인코딩 방법.
  21. 제20항에 있어서, 상기 참조 모션 벡터를 생성하는 것은,
    소정의 블록과 지역적으로 관련성을 가지는 상기 기초 계층에서 블록을 참조 블록으로 지정하고, 상기 참조 블록을 소정의 필터를 이용하여 보간함으로써 이루어지는 것을 특징으로 하는 다 계층 비디오 인코딩 방법.
  22. 제21항에 있어서, 상기 보간은
    상기 참조 블록에 지역적 관련성에 비례하여 반영 비율을 달리 적용함으로써 이루어지는 것을 특징으로 하는 다 계층 비디오 인코딩 방법.
  23. 제20항에 있어서, 상기 참조 모션 벡터를 생성하는 것은,
    고정 크기의 블록과 지역적으로 관련성을 가지는 상기 기초 계층에서 블록을 참조 블록으로 지정하고, 상기 참조 블록을 소정의 필터를 이용하여 보간하여 임시 참조 모션 벡터를 구한 후,
    상기 비용 함수를 적용하여 상기 고정 크기의 블록 중 머징이 발생하는 블록은 그 블록에 포함된 상기 임시 참조 모션 벡터들을 상기 소정의 필터를 이용하여 다운 샘플링함으로써 이루어지는 것을 특징으로 하는 다 계층 비디오 인코딩 방법.
  24. (a) 입력된 비트 스트림을 해석하여 텍스쳐 정보 및 모션 정보를 추출하는 단계;
    (b) 상기 추출된 모션 정보를 해석하여 소정의 향상 계층에 대하여 참조 모션 벡터를 계산하고, 상기 모션 정보에 포함되는 모션 차분값과 상기 계산된 참조 모션 벡터를 가산함으로써 모션 벡터를 복원하는 단계;
    (c) 상기 텍스쳐 정보를 역 양자화하여 변환 계수를 출력하는 단계;
    (d) 공간적 변환을 역으로 수행하여, 상기 변환 계수를 공간적 영역에서의 변환계수로 역 변환하는 단계; 및
    (e) 상기 복원된 모션 벡터를 이용하여 상기 변환 계수를 역 시간적 필터링하여 비디오 시퀀스를 구성하는 프레임들을 복원하는 단계를 포함하는 다 계층 비디오 디코딩 방법.
  25. 제24항에 있어서, 상기 (b)단계는,
    상기 소정의 향상 계층에서의 소정의 블록과 대응되는 기초 계층의 블록 및 그 주변의 블록에서의 모션 벡터를 이용하여 상기 소정의 향상 계층에서의 참조 모션 벡터를 생성하는 단계; 및
    상기 구해진 참조 모션 벡터와 상기 모션 벡터 차분값을 가산함으로써 모션 벡터를 생성하는 단계를 포함하는 다 계층 비디오 디코딩 방법.
KR1020040026778A 2004-03-31 2004-04-19 다 계층의 모션 벡터를 효율적으로 압축하는 방법 및 장치 KR100631777B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP05789740.7A EP1730967B1 (en) 2004-03-31 2005-03-23 Method and apparatus for effectively compressing motion vectors in multi-layer structure
PCT/KR2005/000834 WO2006001585A1 (en) 2004-03-31 2005-03-23 Method and apparatus for effectively compressing motion vectors in multi-layer structure
US11/094,201 US8040950B2 (en) 2004-03-31 2005-03-31 Method and apparatus for effectively compressing motion vectors in multi-layer structure
US13/235,012 US8559520B2 (en) 2004-03-31 2011-09-16 Method and apparatus for effectively compressing motion vectors in multi-layer structure

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US55770904P 2004-03-31 2004-03-31
US60/557,709 2004-03-31

Publications (2)

Publication Number Publication Date
KR20050096790A true KR20050096790A (ko) 2005-10-06
KR100631777B1 KR100631777B1 (ko) 2006-10-12

Family

ID=37276800

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040026778A KR100631777B1 (ko) 2004-03-31 2004-04-19 다 계층의 모션 벡터를 효율적으로 압축하는 방법 및 장치

Country Status (3)

Country Link
US (2) US8040950B2 (ko)
KR (1) KR100631777B1 (ko)
CN (1) CN100593339C (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100678911B1 (ko) * 2005-07-21 2007-02-05 삼성전자주식회사 방향적 인트라 예측의 적용을 확장하여 비디오 신호를인코딩하고 디코딩하는 방법 및 장치
KR100733966B1 (ko) * 2005-04-13 2007-06-29 한국전자통신연구원 움직임 벡터 예측 장치 및 방법
WO2007081082A1 (en) * 2006-01-12 2007-07-19 Samsung Electronics Co., Ltd. Multilayer-based video encoding/decoding method and video encoder/decoder using smoothing prediction
KR100759870B1 (ko) * 2006-03-24 2007-09-18 경희대학교 산학협력단 Cbp에 기초하여 선택된 보간 필터를 이용하여 공간 계층 간의 예측을 수행하는 h.264 스케일러블 영상 부호화/복호화 방법 및 그 장치
KR100759722B1 (ko) * 2006-05-12 2007-09-20 경희대학교 산학협력단 영상 프레임의 크기에 따라 계층 간의 영상 프레임들을서로 다른 예측 구조로 움직임 보상을 수행하는 h.264기반 스케일러블 부호화 방법
KR101277355B1 (ko) * 2004-10-13 2013-06-20 톰슨 라이센싱 복잡도 스케일러블 비디오 인코딩 및 디코딩을 위한 방법및 장치

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6765964B1 (en) 2000-12-06 2004-07-20 Realnetworks, Inc. System and method for intracoding video data
KR20060059764A (ko) * 2004-11-29 2006-06-02 엘지전자 주식회사 앞서 변환된 에이취-픽처를 기준픽처로 이용하는 영상신호의 엔코딩 방법 및 장치와 그 영상신호를 디코딩하는 방법및 장치
US20060120454A1 (en) * 2004-11-29 2006-06-08 Park Seung W Method and apparatus for encoding/decoding video signal using motion vectors of pictures in base layer
KR20060059769A (ko) * 2004-11-29 2006-06-02 엘지전자 주식회사 영상신호의 엔코딩시에 베이스 레이어 픽처의 벡터를이용하기 위한 미세정보를 코딩하는 방법과 그 미세정보를이용하는 디코딩 방법
KR20060069227A (ko) * 2004-12-16 2006-06-21 엘지전자 주식회사 영상신호의 엔코딩/디코딩시에 영상블록을 위한 모션벡터를베이스 레이어 픽처의 모션벡터로부터 유도하는 방법 및장치
US20060288065A1 (en) * 2005-06-17 2006-12-21 Docomo Communications Laboratories Usa, Inc. Method and apparatus for lapped transform coding and decoding
JP2007081720A (ja) * 2005-09-13 2007-03-29 Sanyo Electric Co Ltd 符号化方法
KR100763194B1 (ko) * 2005-10-14 2007-10-04 삼성전자주식회사 단일 루프 디코딩 조건을 만족하는 인트라 베이스 예측방법, 상기 방법을 이용한 비디오 코딩 방법 및 장치
JP4529874B2 (ja) * 2005-11-07 2010-08-25 ソニー株式会社 記録再生装置および記録再生方法、記録装置および記録方法、再生装置および再生方法、並びにプログラム
US8687688B2 (en) 2006-01-09 2014-04-01 Lg Electronics, Inc. Inter-layer prediction method for video signal
KR100763205B1 (ko) * 2006-01-12 2007-10-04 삼성전자주식회사 모션 역변환을 사용하여 모션 예측을 수행하는 방법 및장치
KR101356734B1 (ko) * 2007-01-03 2014-02-05 삼성전자주식회사 움직임 벡터 트랙킹을 이용한 영상의 부호화, 복호화 방법및 장치
US8199812B2 (en) * 2007-01-09 2012-06-12 Qualcomm Incorporated Adaptive upsampling for scalable video coding
US8411734B2 (en) 2007-02-06 2013-04-02 Microsoft Corporation Scalable multi-thread video decoding
US9648325B2 (en) * 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
KR20100011628A (ko) * 2008-07-25 2010-02-03 삼성전자주식회사 코딩 방법 및 코딩 장치
EP2152009A1 (en) * 2008-08-06 2010-02-10 Thomson Licensing Method for predicting a lost or damaged block of an enhanced spatial layer frame and SVC-decoder adapted therefore
TWI401972B (zh) * 2009-06-23 2013-07-11 Acer Inc 時間性錯誤隱藏方法
GB2471323B (en) * 2009-06-25 2014-10-22 Advanced Risc Mach Ltd Motion vector estimator
US8462852B2 (en) * 2009-10-20 2013-06-11 Intel Corporation Methods and apparatus for adaptively choosing a search range for motion estimation
US8917769B2 (en) 2009-07-03 2014-12-23 Intel Corporation Methods and systems to estimate motion based on reconstructed reference frames at a video decoder
US20110002387A1 (en) * 2009-07-03 2011-01-06 Yi-Jen Chiu Techniques for motion estimation
US9654792B2 (en) 2009-07-03 2017-05-16 Intel Corporation Methods and systems for motion vector derivation at a video decoder
KR20110017302A (ko) * 2009-08-13 2011-02-21 삼성전자주식회사 움직임 벡터의 정확도 조절을 이용한 영상 부호화, 복호화 방법 및 장치
US8462797B2 (en) * 2009-11-30 2013-06-11 Alcatel Lucent Method of priority based transmission of wireless video
JP2011259093A (ja) * 2010-06-07 2011-12-22 Sony Corp 画像復号化装置と画像符号化装置およびその方法とプログラム
EP2656610A4 (en) 2010-12-21 2015-05-20 Intel Corp SYSTEM AND METHOD FOR EXTENDED DMVD PROCESSING
US9706214B2 (en) 2010-12-24 2017-07-11 Microsoft Technology Licensing, Llc Image and video decoding implementations
US8731067B2 (en) 2011-08-31 2014-05-20 Microsoft Corporation Memory management for video decoding
CN104205844B (zh) 2011-09-29 2017-09-26 杜比实验室特许公司 降低复杂度的运动补偿的时间处理方法及***
US9819949B2 (en) 2011-12-16 2017-11-14 Microsoft Technology Licensing, Llc Hardware-accelerated decoding of scalable video bitstreams
US9460495B2 (en) 2012-04-06 2016-10-04 Microsoft Technology Licensing, Llc Joint video stabilization and rolling shutter correction on a generic platform
EP2849441B1 (en) 2012-05-10 2019-08-21 LG Electronics Inc. Method and apparatus for processing video signals
TWI499283B (zh) * 2012-07-05 2015-09-01 Ind Tech Res Inst 視訊壓縮方法與視訊壓縮裝置
US9338452B2 (en) * 2012-07-09 2016-05-10 Qualcomm Incorporated Motion vector difference coding extension for enhancement layer
TW201406166A (zh) 2012-07-27 2014-02-01 Novatek Microelectronics Corp 視訊編碼方法與視訊編碼裝置
CN103581689A (zh) * 2012-08-07 2014-02-12 联咏科技股份有限公司 视频编码方法与视频编码装置
JP6057629B2 (ja) * 2012-09-07 2017-01-11 キヤノン株式会社 画像処理装置、その制御方法、および制御プログラム
US20140192880A1 (en) * 2013-01-04 2014-07-10 Zhipin Deng Inter layer motion data inheritance
CN105580369B (zh) * 2013-03-11 2019-04-26 杜比实验室特许公司 使用分层编码对多格式高动态范围视频进行编解码的方法、装置及***
US9432667B2 (en) * 2013-06-11 2016-08-30 Qualcomm Incorporated Processing bitstream constraints relating to inter-layer prediction types in multi-layer video coding
US9774881B2 (en) 2014-01-08 2017-09-26 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream
US9749642B2 (en) 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision
US9942560B2 (en) 2014-01-08 2018-04-10 Microsoft Technology Licensing, Llc Encoding screen capture data
US9712837B2 (en) * 2014-03-17 2017-07-18 Qualcomm Incorporated Level definitions for multi-layer video codecs
US10134110B1 (en) * 2015-04-01 2018-11-20 Pixelworks, Inc. Temporal stability for single frame super resolution
CN106303543B (zh) 2015-05-15 2018-10-30 华为技术有限公司 视频图像编码和解码的方法、编码设备和解码设备
CN110447052B (zh) * 2017-04-05 2023-03-14 奥林巴斯株式会社 相关值运算装置
CN109391814B (zh) 2017-08-11 2023-06-06 华为技术有限公司 视频图像编码和解码的方法、装置及设备
US20230128502A1 (en) * 2021-10-21 2023-04-27 Tencent America LLC Schemes for Adjusting Adaptive Resolution for Motion Vector Difference

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0730899A (ja) 1993-07-12 1995-01-31 Kyocera Corp 階層的動きベクトル検出方式
US5594504A (en) 1994-07-06 1997-01-14 Lucent Technologies Inc. Predictive video coding using a motion vector updating routine
KR960028481A (ko) 1994-12-29 1996-07-22 배순훈 움직임 추정 장치
TW358296B (en) 1996-11-12 1999-05-11 Matsushita Electric Ind Co Ltd Digital picture encoding method and digital picture encoding apparatus, digital picture decoding method and digital picture decoding apparatus, and data storage medium
US6057884A (en) 1997-06-05 2000-05-02 General Instrument Corporation Temporal and spatial scaleable coding for video object planes
KR100275694B1 (ko) 1998-03-02 2000-12-15 윤덕용 실시간 동영상 부호화를 위한 초고속 움직임 벡터 추정방법
US6275531B1 (en) 1998-07-23 2001-08-14 Optivision, Inc. Scalable video coding method and apparatus
KR100335434B1 (ko) 1998-12-30 2002-06-20 윤종용 움직임 추정방법
US6614936B1 (en) * 1999-12-03 2003-09-02 Microsoft Corporation System and method for robust video coding using progressive fine-granularity scalable (PFGS) coding
US6510177B1 (en) * 2000-03-24 2003-01-21 Microsoft Corporation System and method for layered video coding enhancement
US6934336B2 (en) * 2001-07-26 2005-08-23 Matsushita Electric Industrial Co., Ltd. Area expansion apparatus, area expansion method, and area expansion program
KR100396558B1 (ko) * 2001-10-25 2003-09-02 삼성전자주식회사 적응 움직임 보상형 프레임 및/또는 레이트 변환 장치 및그 방법
US20030202599A1 (en) 2002-04-29 2003-10-30 Koninklijke Philips Electronics N.V. Scalable wavelet based coding using motion compensated temporal filtering based on multiple reference frames

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101277355B1 (ko) * 2004-10-13 2013-06-20 톰슨 라이센싱 복잡도 스케일러블 비디오 인코딩 및 디코딩을 위한 방법및 장치
KR101407748B1 (ko) * 2004-10-13 2014-06-17 톰슨 라이센싱 복잡도 스케일러블 비디오 인코딩 및 디코딩을 위한 방법 및 장치
KR100733966B1 (ko) * 2005-04-13 2007-06-29 한국전자통신연구원 움직임 벡터 예측 장치 및 방법
KR100678911B1 (ko) * 2005-07-21 2007-02-05 삼성전자주식회사 방향적 인트라 예측의 적용을 확장하여 비디오 신호를인코딩하고 디코딩하는 방법 및 장치
WO2007081082A1 (en) * 2006-01-12 2007-07-19 Samsung Electronics Co., Ltd. Multilayer-based video encoding/decoding method and video encoder/decoder using smoothing prediction
KR100772873B1 (ko) * 2006-01-12 2007-11-02 삼성전자주식회사 스무딩 예측을 이용한 다계층 기반의 비디오 인코딩 방법,디코딩 방법, 비디오 인코더 및 비디오 디코더
KR101033548B1 (ko) * 2006-01-12 2011-05-11 삼성전자주식회사 스무딩 예측을 이용한 다계층 기반의 비디오 인코딩 방법,디코딩 방법, 비디오 인코더 및 비디오 디코더
KR100759870B1 (ko) * 2006-03-24 2007-09-18 경희대학교 산학협력단 Cbp에 기초하여 선택된 보간 필터를 이용하여 공간 계층 간의 예측을 수행하는 h.264 스케일러블 영상 부호화/복호화 방법 및 그 장치
KR100759722B1 (ko) * 2006-05-12 2007-09-20 경희대학교 산학협력단 영상 프레임의 크기에 따라 계층 간의 영상 프레임들을서로 다른 예측 구조로 움직임 보상을 수행하는 h.264기반 스케일러블 부호화 방법

Also Published As

Publication number Publication date
US20050220190A1 (en) 2005-10-06
CN100593339C (zh) 2010-03-03
CN1961582A (zh) 2007-05-09
US8559520B2 (en) 2013-10-15
KR100631777B1 (ko) 2006-10-12
US8040950B2 (en) 2011-10-18
US20120039387A1 (en) 2012-02-16

Similar Documents

Publication Publication Date Title
KR100631777B1 (ko) 다 계층의 모션 벡터를 효율적으로 압축하는 방법 및 장치
KR100664929B1 (ko) 다 계층 기반의 비디오 코더에서 모션 벡터를 효율적으로압축하는 방법 및 장치
KR100586882B1 (ko) 모션 스케일러빌리티를 지원하는 코딩 방법 및 장치
KR100679011B1 (ko) 기초 계층을 이용하는 스케일러블 비디오 코딩 방법 및 장치
KR100621581B1 (ko) 기초 계층을 포함하는 비트스트림을 프리디코딩,디코딩하는 방법, 및 장치
KR100704626B1 (ko) 다 계층 기반의 모션 벡터를 압축하는 방법 및 장치
KR100703774B1 (ko) 인트라 코딩을 선택적으로 적용하여 인트라 bl 예측모드의 비디오 신호를 인코딩 및 디코딩하는 방법 및 장치
KR100763181B1 (ko) 기초계층과 향상계층의 데이터를 바탕으로 예측 정보를코딩하여 코딩율을 향상시키는 방법 및 장치
KR100703724B1 (ko) 다 계층 기반으로 코딩된 스케일러블 비트스트림의비트율을 조절하는 장치 및 방법
KR100703760B1 (ko) 시간적 레벨간 모션 벡터 예측을 이용한 비디오인코딩/디코딩 방법 및 장치
KR100703740B1 (ko) 다 계층 기반의 모션 벡터를 효율적으로 부호화하는 방법및 장치
US20060120448A1 (en) Method and apparatus for encoding/decoding multi-layer video using DCT upsampling
KR20060063532A (ko) 다 계층 기반의 비디오 인코딩 방법, 디코딩 방법 및 상기방법을 이용한 장치
EP1659797A2 (en) Method and apparatus for compressing motion vectors in video coder based on multi-layer
KR20060085147A (ko) 비동기 프레임을 효율적으로 예측하는 비디오 코딩 방법 및장치
KR100621584B1 (ko) 스무딩 필터를 이용하는 비디오 디코딩 방법 또는 비디오디코더
KR100703751B1 (ko) 가상 영역의 영상을 참조하여 인코딩 및 디코딩 하는 방법및 장치
EP1730967B1 (en) Method and apparatus for effectively compressing motion vectors in multi-layer structure
WO2006098586A1 (en) Video encoding/decoding method and apparatus using motion prediction between temporal levels

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

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130829

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140828

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee