KR100703760B1 - 시간적 레벨간 모션 벡터 예측을 이용한 비디오인코딩/디코딩 방법 및 장치 - Google Patents

시간적 레벨간 모션 벡터 예측을 이용한 비디오인코딩/디코딩 방법 및 장치 Download PDF

Info

Publication number
KR100703760B1
KR100703760B1 KR1020050037238A KR20050037238A KR100703760B1 KR 100703760 B1 KR100703760 B1 KR 100703760B1 KR 1020050037238 A KR1020050037238 A KR 1020050037238A KR 20050037238 A KR20050037238 A KR 20050037238A KR 100703760 B1 KR100703760 B1 KR 100703760B1
Authority
KR
South Korea
Prior art keywords
motion vector
frame
motion
temporal level
difference
Prior art date
Application number
KR1020050037238A
Other languages
English (en)
Other versions
KR20060101131A (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 PCT/KR2006/000931 priority Critical patent/WO2006098586A1/en
Priority to US11/378,357 priority patent/US20060209961A1/en
Publication of KR20060101131A publication Critical patent/KR20060101131A/ko
Application granted granted Critical
Publication of KR100703760B1 publication Critical patent/KR100703760B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • H04N19/615Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding using motion compensated temporal filtering [MCTF]
    • 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/187Methods 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 a scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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/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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • 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]

Landscapes

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

Abstract

본 발명은 비디오 코딩에 관한 것으로서, 보다 상세하게는 계층적인 시간적 레벨 분해 과정을 포함하는 비디오 코덱에 있어서, 모션 벡터를 보다 효율적으로 압축/압축해제 하는 방법 및 장치에 관한 것이다.
본 발명에 따른 계층적인 시간적 레벨 분해 과정을 포함하는 비디오 인코딩 방법은, 하위 시간적 레벨에 존재하는 제1 프레임에 대한 제1 모션 벡터로부터 현재 시간적 레벨에 존재하는 제2 프레임에 대한 예측 모션 벡터를 구하는 단계와, 상기 예측 모션 벡터를 시작 위치로 하여 소정의 모션 탐색 범위 내에서 모션 추정을 수행함으로써 상기 제2 프레임에 대한 제2 모션 벡터를 구하는 단계와, 상기 구한 제2 모션 벡터를 이용하여 상기 제2 프레임을 부호화하는 단계를 포함한다.
MCTF, 스케일러빌리티, 모션 벡터, 시간적 레벨, 모션 예측

Description

시간적 레벨간 모션 벡터 예측을 이용한 비디오 인코딩/디코딩 방법 및 장치{Video encoding/decoding method using motion prediction between temporal levels and apparatus thereof}
도 1은 5/3 MCTF에 따른 인코딩 과정을 도시한 도면.
도 2는 주위 블록의 모션 벡터를 이용하여 현재 블록의 모션 벡터를 예측하는 종래의 방법을 설명하는 도면.
도 3은 종래의 다이렉트 모드에 따른 모션 벡터 예측법을 설명하는 도면.
도 4는 모션 추정시 모션 탐색 범위 및 초기 위치의 예를 도시하는 도면.
도 5는 T(N)이 양방향 참조이고, T(N+1)이 순방향 참조인 경우의 제1 모션 예측 방법을 나타내는 도면.
도 6은 T(N)이 순방향 참조이고, T(N+1)이 순방향 참조인 경우의 제1 모션 예측 방법을 나타내는 도면.
도 7은 T(N)이 역방향 참조이고, T(N+1)이 순방향 참조인 경우의 제1 모션 예측 방법을 나타내는 도면.
도 8은 T(N)이 양방향 참조이고, T(N+1)이 역방향 참조인 경우의 제1 모션 예측 방법을 나타내는 도면.
도 9는 T(N)이 순방향 참조이고, T(N+1)이 역방향 참조인 경우의 제1 모션 예측 방법을 나타내는 도면.
도 10은 T(N)이 역방향 참조이고, T(N+1)이 역방향 참조인 경우의 제1 모션 예측 방법을 나타내는 도면.
도 11은 제1 모션 예측시 대응되는 모션 벡터의 위치를 정하는 방법을 설명하는 도면.
도 12와 도 11의 방법 중 일치하지 않는 시간적 위치를 보정한 후 모션 벡터를 예측하는 방법을 설명하는 도면.
도 13은 T(N+1)이 순방향 참조인 경우의 제2 모션 예측 방법을 나타내는 도면.
도 14는 T(N+1)이 역방향 참조인 경우의 제2 모션 예측 방법을 나타내는 도면.
도 15는 제2 모션 예측시 대응되는 모션 벡터의 위치를 정하는 방법을 설명하는 도면.
도 16은 본 발명의 일 실시예에 따른 비디오 인코더의 구성을 도시한 블록도.
도 17은 본 발명의 일 실시예에 따른 비디오 디코더의 구성을 나타낸 블록도.
도 18은 본 발명의 일 실시예에 따른 비디오 인코더, 또는 비디오 디코더의 동작을 수행하기 위한 시스템의 구성도.
도 19는 본 발명의 일 실시예에 따른 비디오 인코딩 방법을 설명하는 흐름 도.
도 20은 본 발명의 일 실시예에 따른 비디오 디코딩 방법을 설명하는 흐름도.
(도면의 주요부분에 대한 부호 설명)
100 : 비디오 인코더 111 : 분리부
112 : 모션 보상부 113 : 모션 벡터 버퍼
114 : 모션 예측부 115 : 모션 추정부
116 : 업데이트부 117 : 프레임 버퍼
118 : 차분기 120 : 변환부
130 : 양자화부 140 : 엔트로피 부호화부
150 : 모션 벡터 부호화부 200 : 비디오 디코더
210 : 엔트로피 복호화부 220 : 모션 벡터 복원부
230 : 모션 벡터 버퍼 240 : 모션 보상부
250 : 역 양자화부 260 : 역 변환부
270 : 가산기 280 : 프레임 버퍼
본 발명은 비디오 코딩에 관한 것으로서, 보다 상세하게는 계층적인 시간적 레벨 분해 과정을 포함하는 비디오 코덱에 있어서, 모션 벡터를 보다 효율적으로 압축/압축해제 하는 방법 및 장치에 관한 것이다.
인터넷을 포함한 정보통신 기술이 발달함에 따라 문자, 음성뿐만 아니라 화상통신이 증가하고 있다. 기존의 문자 위주의 통신 방식으로는 소비자의 다양한 욕구를 충족시키기에는 부족하며, 이에 따라 문자, 영상, 음악 등 다양한 형태의 정보를 수용할 수 있는 멀티미디어 서비스가 증가하고 있다. 멀티미디어 데이터는 그 양이 방대하여 대용량의 저장매체를 필요로 하며 전송시에 넓은 대역폭을 필요로 한다. 예를 들면 640*480의 해상도를 갖는 24 bit 트루 컬러의 이미지는 한 프레임당 640*480*24 bit의 용량 다시 말해서 약 7.37Mbit의 데이터가 필요하다. 이를 초당 30 프레임으로 전송하는 경우에는 221Mbit/sec의 대역폭을 필요로 하며, 90분 동안 상영되는 영화를 저장하려면 약 1200G bit의 저장공간을 필요로 한다. 따라서 문자, 영상, 오디오를 포함한 멀티미디어 데이터를 전송하기 위해서는 압축코딩기법을 사용하는 것이 필수적이다.
데이터를 압축하는 기본적인 원리는 데이터의 중복(redundancy)을 제거하는 과정이다. 이미지에서 동일한 색이나 객체가 반복되는 것과 같은 공간적 중복이나, 동영상 프레임에서 인접 프레임이 거의 변화가 없는 경우나 오디오에서 같은 음이 계속 반복되는 것과 같은 시간적 중복, 또는 인간의 시각 및 지각 능력이 높은 주파수에 둔감한 것 등을 고려하여 중복적 요소를 제거함으로써 데이터를 압축할 수 있다. 데이터 압축의 종류는 소스 데이터의 손실 여부와, 각각의 프레임에 대해 독립적으로 압축하는 지 여부와, 압축과 복원에 필요한 시간이 동일한 지 여부에 따라 각각 손실/무손실 압축, 프레임 내/프레임간 압축, 대칭/비대칭 압축으로 나 눌 수 있다. 이 밖에도 압축 복원 지연 시간이 50ms를 넘지 않는 경우에는 실시간 압축으로 분류하고, 프레임들의 해상도가 다양한 경우는 스케일러블 압축으로 분류한다. 문자 데이터나 의학용 데이터 등의 경우에는 무손실 압축이 이용되며, 멀티미디어 데이터의 경우에는 주로 손실 압축이 이용된다. 한편 공간적 중복을 제거하기 위해서는 프레임 내 압축이 이용되며 시간적 중복을 제거하기 위해서는 프레임간 압축이 이용된다.
멀티미디어를 전송하기 위한 전송매체는 매체 별로 그 성능이 다르다. 현재 사용되는 전송매체는 초당 수십 메가비트의 데이터를 전송할 수 있는 초고속통신망부터 초당 384 킬로비트의 전송속도를 갖는 이동통신망 등과 같이 다양한 전송속도를 갖는다. MPEG-1, MPEG-2, H.263 또는 H.264와 같은 종전의 비디오 코딩은 모션 보상 예측법에 기초하여 시간적 중복은 모션 보상에 의해 제거하고 공간적 중복은 변환 코딩에 의해 제거한다. 이러한 방법들은 좋은 압축률을 갖고 있지만 주 알고리즘에서 재귀적 접근법을 사용하고 있어 진정한 스케일러블 비트스트림(true scalable bitstream)을 위한 유연성을 갖지 못한다. 이에 따라 최근에는 웨이블릿 기반의 스케일러블 비디오 코딩에 대한 연구가 활발하다. 스케일러블 비디오 코딩은 스케일러빌리티를 갖는 비디오 코딩을 의미한다. 스케일러빌리티란 압축된 하나의 비트스트림으로부터 부분 디코딩, 즉, 다양한 비디오를 재생할 수 있는 특성을 의미한다. 스케일러빌리티는 비디오의 해상도를 조절할 수 있는 성질을 의미하는 공간적 스케일러빌리티와 비디오의 화질을 조절할 수 있는 성질을 의미하는 SNR(Signal-to-Noise Ratio) 스케일러빌리티와, 프레임 레이트를 조절할 수 있는 시간적 스케일러빌리티와, 이들 각각을 조합한 것을 포함하는 개념이다.
최근 들어서는 이 중에서도, 기 압축된 비트 스트림으로부터 다양한 프레임률을 갖는 비트 스트림을 생성해 낼 수 있는 기능, 즉 시간적 스케일러빌리티를 요구하는 경우가 많아졌다. 현재 MPEG(Motion Picture Expert Group)과 ITU(International Telecommunication Union) 간의 연합 그룹(joint group)인 JVT(Joint Video Team)에서는 H.264 Scalable Extension (이하 "H.264 SE"라 함)의 표준화가 진행되고 있다. H.264에서는 시간적 스케일러빌리티를 구현하기 위해서 모션 보상 시간적 필터링(motion compensated temporal filtering; 이하 "MCTF"라 함)이라는 기술을 채택하고 있는데, 이 중에서도 한 프레임을 예측함에 있어서 인접한 양쪽 프레임을 모두 참조하는 5/3 MCTF를 현재 표준안으로서 채택하고 있다. 이 경우, 하나의 GOP(group of pictures) 내의 각 프레임들은 다양한 프레임률을 지원할 수 있도록 계층적으로 나열되게 된다.
도 1은 5/3 MCTF에 따른 인코딩 과정을 도시한 도면이다. 도 1에서 빗금으로 표시된 프레임은 원 프레임(original frame)을, 흰색으로 표시된 프레임은 저주파 프레임(L 프레임)을, 그리고 음영으로 표시된 프레임은 고주파 프레임(H 프레임)을 각각 나타낸다. 비디오 시퀀스는 복수의 시간적 레벨 분해 과정을 거치게 되는데 이 중에서 일부의 시간적 레벨을 선택함으로써 시간적 스케일러빌리티를 구현할 수 있는 것이다.
각각의 시간적 레벨에서, 비디오 시퀀스는 저주파 프레임과 고주파 프레임으로 분해된다. 먼저, 고주파 프레임은 인접한 2개의 입력 프레임으로부터 시간적 예 측(temporal prediction)을 수행하여 생성된다. 이 때 시간적 예측은 순방향 예측과 역방향 예측을 모두 사용할 수 있다. 한편 각각의 시간적 레벨에서, 저주파 프레임은 상기 생성된 고주파 프레임들 중 가장 가까운 2개의 고주파 프레임을 이용하여 업데이트된다.
이러한 시간적 레벨 분해 과정은 한 GOP에서 두 개의 프레임이 남을 때까지 반복될 수 있다. 최후의 두 프레임은 참조할 프레임이 하나 밖에 없으므로 단방향으로 한 프레임만을 이용하여 시간적 예측 및 업데이트 단계를 적용할 수도 있고, 현재의 H.264 SE 표준안에서처럼 H.264의 I-픽쳐, P-픽쳐 신택스(syntax)를 이용하여 코딩할 수도 있다.
인코더 단에서는 상기 시간적 레벨 분해 과정을 통하여 생성된 최상위 시간적 레벨(T(2))의 저주파 프레임 1개(18)와, 상기 시간적 레벨 분해 과정에서 생성된 고주파 프레임들(11 내지 17)을 디코더 단으로 전송하게 된다. 디코더 단에서는 상기 시간적 레벨 분해 과정 중 시간적 예측 과정을 역으로 수행함으로써 원 프레임을 복원한다.
그런데, MPEG-4, H.264등 기존 비디오 코덱(video codec)들은 모션 보상(motion compensation)을 기반으로 인접한 프레임들 간 유사성을 없애는 방식으로 시간적 예측을 수행한다. 이 과정에서 매크로블록 혹은 서브블록(sub-block) 단위로 최적 모션 벡터를 탐색하고, 상기 최적 모션 벡터들을 이용하여 각 프레임의 텍스쳐 데이터를 코딩하게 된다. 인코더 단에서 디코더 단으로 전송하여야 할 데이터는 이와 같은 텍스쳐 데이터와, 상기 최적 모션 벡터 등의 모션 데이터를 포함한 다. 따라서, 모션 벡터를 보다 효율적으로 압축하는 것 또한 매우 중요한 이슈 중의 하나이다.
따라서, 상기 기존의 비디오 코덱에서는, 모션 벡터 자체를 그대로 코딩하면 효율이 떨어지기 때문에 인접한 모션 벡터들이 갖는 유사성을 활용하여 현재 모션 벡터를 예측하고, 예측 값과 현재 값 간 차분만을 코딩함으로써 효율을 높이는 방법을 사용하고 있다.
도 2는 주위 블록(A, B, C)의 모션 벡터를 이용하여 현재 블록(M)의 모션 벡터를 예측하는 종래의 방법을 설명하는 도면이다. 이 방법에 따르면, 현재 블록(M)과 인접한 세 개의의 블록(A, B, C)이 갖는 모션 벡터들에 대하여 메디안(median) 연산을 수행하고(메디안 연산은 모션 벡터의 가로, 세로 성분에 대해서 각각 수행된다), 그 결과를 현재 블록의 모션 벡터(M)의 예측 값으로 사용한다. 상기 예측 값과 실제 탐색된 현재 블록(M)의 모션 벡터의 차분을 구하고 이 차분을 부호화 함으로써 모션 벡터에 소요되는 비트 수를 감소시킬 수 있는 것이다.
시간적 스케일러빌리티를 고려할 필요가 없는 비디오 코덱에서는 이와 같이 주변 블록의 모션 벡터(이하 "주변 모션 벡터"라 함)를 이용하여 현재 블록의 모션 벡터를 예측(공간적 모션 예측)하는 것만으로 충분하다. 그러나, MCTF와 같이 계층적 분해 과정을 거치는 비디오 코덱에서는 모션 벡터들은 상기와 같은 공간적인 관련성을 가질 뿐 아니라, 시간적 레벨 간에서도 관련성을 갖는다. 이하 본 명세서에서는 어떠한 관련성을 이용하여 예측된 모션 벡터를 이용하여 실제의 모션 벡터를 예측하는 것을 "모션 예측"이라고 정의하기로 한다.
도 1에서, 실선 화살표로 표시한 것은 시간적 예측 단계, 추정된 모션 벡터에 의해 모션 보상을 수행함으로써 잔차 신호(H 프레임)을 얻는 과정을 의미한다. 그런데, 도 1을 보면 시간적 레벨 별로 프레임들이 분해되기 때문에 실선 화살표들의 배치 역시 계층적인 구조를 가짐을 알 수 있다. 이와 같이, 계층적인 모션 벡터들의 관계를 활용하면 보다 효율적으로 모션 벡터를 예측할 수 있다.
그런데, 높은 시간적 레벨의 모션 벡터를 이용하여 낮은 시간적 레벨의 모션 벡터를 예측하는 알려진 방법으로는 H.264의 다이렉트 모드(direct mode)가 있다.
도 3에서 보는 바와 같이, 다이렉트 모드에서의 모션 추정은 높은 시간적 레벨로부터 낮은 시간적 레벨로 수행된다. 따라서, 상대적으로 참조 거리가 긴 모션 벡터를 이용하여 상대적으로 참조 거리가 짧은 모션 벡터를 예측하는 방식을 사용한다. 반면에, MCTF는 낮은 시간적 레벨로부터 모션 추정이 진행되므로 이에 대응하여 모션 예측 또한 낮은 시간적 레벨로부터 높은 시간적 레벨로 수행되어야 한다. 따라서, 상기 다이렉트 모드를 직접 MCTF에 적용할 수는 없다.
그런데, MCTF의 경우 모션 추정시에는 이와 같이 낮은 시간적 레벨로부터 모션 예측을 수행할 수 있지만, 각 시간적 레벨 별로 추정된 모션 벡터를 실제로 부호화(내지 양자화)할 때에는 시간적 스케일러빌리티의 특성상 높은 시간적 레벨로부터 모션 예측을 수행하여야 한다. 따라서 MCTF 구조에서는, 모션 추정시에서 사용되는 모션 예측의 방향과, 모션 벡터 부호화(내지 양자화)시에 사용되는 모션 예측의 방향은 서로 반대로 되어야 하므로 이러한 특성을 고려하여 비대칭적인 모션 예측 방법을 고안할 필요성이 있다.
본 발명은 상기한 필요성을 고려하여 고안된 것으로, 모션 벡터들이 시간적 레벨 별로 계층적인 관계를 갖도록 나열되어 있을 때, 상기 계층적인 관계를 이용하여 모션 벡터를 효율적으로 예측함으로써 압축 효율을 향상시키는 방법을 제공하는 것을 목적으로 한다.
특히, 본 발명은 MCTF 기반의 비디오 코덱에서 효율적인 모션 추정 및 효율적인 모션 벡터 부호화를 수행하기 위하여, MCTF 구조에 적합한 모션 벡터를 예측하는 방법을 제공하는 것을 목적으로 한다.
상기한 목적을 달성하기 위하여, 본 발명에 따른 계층적인 시간적 레벨 분해 과정을 포함하는 비디오 인코딩 방법은, (a) 하위 시간적 레벨에 존재하는 제1 프레임에 대한 제1 모션 벡터로부터 현재 시간적 레벨에 존재하는 제2 프레임에 대한 예측 모션 벡터를 구하는 단계; (b) 상기 예측 모션 벡터를 시작 위치로 하여 소정의 모션 탐색 범위 내에서 모션 추정을 수행함으로써 상기 제2 프레임에 대한 제2 모션 벡터를 구하는 단계; 및 (c) 상기 구한 제2 모션 벡터를 이용하여 상기 제2 프레임을 부호화하는 단계를 포함한다.
상기한 목적을 달성하기 위하여, 본 발명에 따른 계층적인 시간적 레벨 분해 과정을 포함하는 비디오 인코딩 방법은, (a) 복수의 시간적 레벨들에 존재하는 소정의 프레임에 대한 모션 벡터를 구하는 단계; (b) 상기 구한 모션 벡터를 이용하여 상기 프레임을 부호화하는 단계; (c) 상기 모션 벡터 중 상위 시간적 레벨에 존 재하는 제1 프레임에 대한 모션 벡터로부터 현재 시간적 레벨에 존재하는 제2 프레임에 대한 예측 모션 벡터를 구하는 단계; (d) 상기 제2 프레임에 대한 모션 벡터와 상기 예측 모션 벡터와의 차분을 구하는 단계; 및 (e) 상기 부호화된 프레임 및 상기 차분을 포함하는 비트스트림을 생성하는 단계를 포함한다.
상기한 목적을 달성하기 위하여, 본 발명에 따른 계층적인 시간적 레벨 분해 과정을 포함하는 비디오 인코딩 방법은, (a) 복수의 시간적 레벨들에 존재하는 소정의 프레임에 대한 모션 벡터를 구하는 단계; (b) 상기 구한 모션 벡터를 이용하여 상기 프레임을 부호화하는 단계; (c) 상기 모션 벡터 중 상위 시간적 레벨에 존재하는 제1 프레임에 대한 모션 벡터로부터 현재 시간적 레벨에 존재하는 제2 프레임에 대한 예측 모션 벡터를 구하고 상기 제2 프레임에 대한 모션 벡터와 상기 예측 모션 벡터와의 차분을 구하는 단계; (d) 상기 제2 프레임 내의 주변 모션 벡터를 이용하여 상기 제2 프레임에 대한 예측 모션 벡터를 구하고 상기 제2 프레임에 대한 모션 벡터와 상기 주변 모션 벡터를 이용하여 구한 예측 모션 벡터와의 차분을 구하는 단계; (e) 상기 (c) 단계에서 구한 차분과 상기 (d) 단계에서 구한 차분 중 비트량이 적게 소요되는 차분을 선택하는 단계; 및 (f) 상기 부호화된 프레임 및 상기 선택된 차분을 포함하는 비트스트림을 생성하는 단계를 포함한다.
상기한 목적을 달성하기 위하여, 본 발명에 따른 계층적인 시간적 레벨 복원 과정을 포함하는 비디오 디코딩 방법은, (a) 입력된 비트스트림으로부터 복수의 시간적 레벨들에 존재하는 소정의 프레임에 대한 텍스쳐 데이터 및 모션 벡터 차분을 추출하는 단계; (b) 상위 시간적 레벨에 존재하는 제1 프레임에 대한 모션 벡터를 복원하는 단계; (c) 상기 복원된 모션 벡터로부터 현재 시간적 레벨에 존재하는 제2 프레임에 대한 예측 모션 벡터를 구하는 단계; (d) 상기 모션 벡터 차분 중 상기 제2 프레임에 대한 모션 벡터 차분과 상기 예측 모션 벡터를 가산함으로써 상기 제2 프레임에 대한 모션 벡터를 복원하는 단계; 및 (e) 상기 복원된 제2 프레임에 대한 모션 벡터를 이용하여 상기 제2 프레임을 복원하는 단계를 포함한다.
상기한 목적을 달성하기 위하여, 본 발명에 따른 계층적인 시간적 레벨 복원 과정을 포함하는 비디오 디코딩 방법은, (a) 입력된 비트스트림으로부터 소정의 플래그, 복수의 시간적 레벨들에 존재하는 소정의 프레임에 대한 텍스쳐 데이터 및 모션 벡터 차분을 추출하는 단계; (b) 상위 시간적 레벨에 존재하는 제1 프레임에 대한 모션 벡터를 복원하는 단계; (c) 현재 시간적 레벨에 존재하는 제2 프레임 중 주변 모션 벡터를 복원하는 단계; (d) 상기 플래그의 값에 따라서 상기 제1 프레임에 대한 모션 벡터 및 상기 주변 모션 벡터 중 하나로부터 현재 시간적 레벨에 존재하는 제2 프레임에 대한 예측 모션 벡터를 구하는 단계; (e) 상기 모션 벡터 차분 중 상기 제2 프레임에 대한 모션 벡터 차분과 상기 예측 모션 벡터를 가산함으로써 상기 제2 프레임에 대한 모션 벡터를 복원하는 단계; 및 (f) 상기 복원된 제2 프레임에 대한 모션 벡터를 이용하여 상기 제2 프레임을 복원하는 단계를 포함한다.
상기한 목적을 달성하기 위하여, 본 발명에 따른 계층적인 시간적 레벨 분해 과정을 수행하는 비디오 인코더는, 하위 시간적 레벨에 존재하는 제1 프레임에 대한 제1 모션 벡터로부터 현재 시간적 레벨에 존재하는 제2 프레임에 대한 예측 모 션 벡터를 구하는 수단; 상기 예측 모션 벡터를 시작 위치로 하여 소정의 모션 탐색 범위 내에서 모션 추정을 수행함으로써 상기 제2 프레임에 대한 제2 모션 벡터를 구하는 수단; 및 상기 구한 제2 모션 벡터를 이용하여 상기 제2 프레임을 부호화하는 수단을 포함한다.
상기한 목적을 달성하기 위하여, 본 발명에 따른 계층적인 시간적 레벨 분해 과정을 수행하는 비디오 인코더는, 복수의 시간적 레벨들에 존재하는 소정의 프레임에 대한 모션 벡터를 구하는 수단; 상기 구한 모션 벡터를 이용하여 상기 프레임을 부호화하는 수단; 상기 모션 벡터 중 상위 시간적 레벨에 존재하는 제1 프레임에 대한 모션 벡터로부터 현재 시간적 레벨에 존재하는 제2 프레임에 대한 예측 모션 벡터를 구하는 수단; 상기 제2 프레임에 대한 모션 벡터와 상기 예측 모션 벡터와의 차분을 구하는 수단; 및 상기 부호화된 프레임 및 상기 차분을 포함하는 비트스트림을 생성하는 수단을 포함한다.
상기한 목적을 달성하기 위하여, 본 발명에 따른 계층적인 시간적 레벨 복원 과정을 수행하는 비디오 디코더는, 입력된 비트스트림으로부터 복수의 시간적 레벨들에 존재하는 소정의 프레임에 대한 텍스쳐 데이터 및 모션 벡터 차분을 추출하는 수단; 상위 시간적 레벨에 존재하는 제1 프레임에 대한 모션 벡터를 복원하는 수단; 상기 복원된 모션 벡터로부터 현재 시간적 레벨에 존재하는 제2 프레임에 대한 예측 모션 벡터를 구하는 수단; 상기 모션 벡터 차분 중 상기 제2 프레임에 대한 모션 벡터 차분과 상기 예측 모션 벡터를 가산함으로써 상기 제2 프레임에 대한 모션 벡터를 복원하는 수단; 및 상기 복원된 제2 프레임에 대한 모션 벡터를 이용하 여 상기 제2 프레임을 복원하는 수단을 포함한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
도 2와 같은 종래의 공간적 모션 예측 방법은, 서로 다른 시간적 레벨에서 구한 모션 벡터들 간의 연관성은 고려하지 않고, 동일 프레임 내에서 인접한 블록의 모션 벡터들만을 고려하여 모션 벡터를 예측한다. 그러나 본 발명에서는 서로 다른 시간적 레벨의 모션벡터들이 갖는 유사성을 이용하여 모션 벡터를 예측하는 방법을 제안하고자 한다. 이하 본 발명에서, 모션 예측은 두 가지 단계에서 사용된다. 하나는 모션 추정시 모션 탐색의 초기 위치(initial point) 및 최적 모션 벡터를 결정하는 단계에서 사용되고, 다른 하나는 실제 모션 벡터와 모션 예측된 값을 차분을 구하는 모션 벡터 부호화 단계에서 사용된다. 상술한 바와 같이 MCTF의 특성상 상기 두 단계에서는 서로 다른 모션 예측 방법이 이용된다.
도 4는 모션 추정시 모션 탐색 범위(23) 및 초기 위치(24)의 예를 도시하는 도면이다. 모션 벡터를 탐색하는 방식으로는 프레임 전체에서 모션 벡터를 탐색하 는 전 영역 탐색(full area search) 방식과 소정의 제한된 영역에서 모션 벡터를 탐색하는 일부 영역 탐색(local area search) 방식이 있다. 모션 벡터는 보다 유사한 텍스쳐 블록을 대응시킴으로써 텍스쳐 차분의 크기를 줄이기 위하여 사용되는 것이지만, 모션 벡터 자체도 디코더 단으로 전송되어야 하는 데이터의 일부이고, 주로 손실 없는 부호화 방법이 적용되기 때문에 모션 벡터에 할당되는 비트량도 상당하다. 따라서, 텍스쳐 데이터의 비트량을 줄이는 것 못지 않게 모션 벡터의 비트량을 줄이는 것도 비디오 압축 성능을 향상 시키는 데 있어서 매우 중요하다. 따라서, 최근의 대부분의 비디오 코덱들은 주로 일부 영역 탐색 방식을 이용하여 모션 벡터의 크기를 제한하고 있다.
만약 보다 정확히 예측된 모션 벡터(24)를 초기치로 하여 모션 탐색 범위(23) 내에서 모션 벡터 탐색을 한다면, 모션 벡터 탐색에 소요되는 계산량을 줄일 수 있을 뿐만 아니라, 예측된 모션 벡터(내지 모션 벡터의 예측 값)와 실제 모션 벡터와의 차분(25)도 감소시킬 수 있다.
이상과 같이 모션 추정 단계에서 사용되는 모션 예측 방법을 제1 모션 예측 방법이라고 명명한다.
두 번째로, 본 발명에 따른 또 다른 모션 예측 방법이 적용되는 단계는 실제로 탐색된 모션 벡터를 부호화하는 단계이다. 통상 종래의 모션 예측 방법들은 모션 추정 단계에서 사용된 모션 예측 방법을 그대로 모션 벡터 부호화시에 적용하였지만, MCTF는 그 구조적 특성상 양자에 동일한 예측 방법을 적용할 수 없다.
다시 도 1을 참조하면, MCTF의 시간적 레벨 분해 과정은 낮은 시간적 레벨로 부터 높은 시간적 레벨 순으로 진행되므로, 모션 추정시에는 참조 거리가 짧은 모션 벡터를 이용하여 참조 거리가 긴 모션 벡터를 예측하여야 한다. 그러나, MCTF의 시간적 스케일러빌리티의 특성상 최상위 시간적 레벨의 프레임들(17, 18)은 필수적으로 전송되지만 그 이외의 레벨의 프레임들(11 내지 16)은 선택적으로 전송된다. 따라서, 모션 추정 단계와는 달리 최상위 시간적 레벨의 프레임들(17, 18)에 대한 모션 벡터를 기준으로 하여, 그보다 하위의 시간적 레벨의 프레임들에 대한 모션 벡터를 예측하여야 할 것이다. 따라서, 모션 추정 과정에서의 모션 예측과는 그 방향이 반대로 된다. 이와 같이 모션 벡터 부호화 단계에서 사용되는 모션 예측 방법을 상기 제1 모션 예측 방법과 구별되도록 제2 모션 예측 방법이라고 명명한다.
모션 추정 단계에서의 제1 모션 예측 방법
제1 모션 예측 방법은 전술한 바와 같이, 참조 거리(참조되는 프레임과 참조하는 프레임 간의 시간적 거리)가 가까운 모션 벡터로부터 참조 거리가 먼 모션 벡터를 예측하는 과정으로 수행된다. 다만, 양방향 참조를 허용하는 5/3 MCTF에 있어서도 반드시 양방향 참조를 하여야 하는 것은 아니고, 양방향 참조, 역방향 참조, 및 순방향 참조 중 비트 수가 적게 소요되는 참조 방식을 택일적으로 선택할 수 있다. 따라서, 시간적 레벨 간의 모션 벡터 예측시 나타날 수 있는 가능한 경우는 도 5 내지 도 10의 총 6가지가 있을 수 있다.
도 5 내지 도 10은 제1 모션 예측 방법을 설명하는 도면으로서, 이 중에서 도 5 내지 도 7은 예측될 모션 벡터가 순방향 참조(시간적으로 이전 프레임을 참조)를 하는 경우를 나타내고, 도 8 내지 도 10은 역방향 참조(시간적으로 이후 프 레임을 참조)를 하는 경우를 나타낸다.
이하 본 명세서에서, T(N)은 N번째 시간적 레벨을 나타내고, M(0) 및 M(1)은 T(N)에서의 탐색된 모션 벡터를, M(2)는 T(N+1)에서 탐색된 모션 벡터를 나타내는 것으로 한다. 또한 M(0)', M(1)', 및 M(2)'는 각각 M(0), M(1), 및 M(2)에 대하여 예측된 모션 벡터를 나타내는 것으로 한다.
도 5는 T(N)이 양방향 참조이고, T(N+1)이 순방향 참조인 경우를 나타낸다. 이 경우, T(N+1)에서의 프레임(32)의 모션 벡터 M(2)는 T(N)에서의 프레임(31)의 모션 벡터 M(0), M(1)로부터 예측된다.
일반적으로 많은 경우 물체는 일정한 방향 및 속도로 움직인다. 특히 배경이 일정하게 움직이거나 특정 물체에 대해서도 짧은 관찰할 경우 이러한 성질이 만족되는 경우가 많다. 따라서, M(0)-M(1)는 M(2)와 유사할 것으로 추측할 수 있다. 따라서, M(2)의 예측 모션 벡터인 M(2)'는 다음의 수학식 1과 같이 정의될 수 있다.
M(2)' = M(0) - M(1)
M(0)는 M(2)와 같은 방향이므로 양의 부호로 가산되도록 하고, M(1)은 M(2)와 다른 방향이므로 음의 부호로 가산되도록 하여 M(2)'를 생성하는 것이다.
도 6은 T(N)이 순방향 참조이고, T(N+1)이 순방향 참조인 경우를 나타낸다. 이 경우, T(N+1)에서의 프레임(32)의 모션 벡터 M(2)는 T(N)에서의 프레임(31)의 순방향 모션 벡터 M(0)로부터 예측된다. 이 때, M(2)의 예측 모션 벡터인 M(2)'는 다음의 수학식 2와 같이 정의될 수 있다.
M(2)' = 2×M(0)
수학식 2는 M(2)가 M(0)와 같은 방향이고, M(2)의 참조 거리가 M(0)의 참조 거리의 2배임을 고려하여 M(2)'를 생성하는 과정을 나타낸다.
도 7은 T(N)이 역방향 참조이고, T(N+1)이 순방향 참조인 경우를 나타낸다. 이 경우, T(N+1)에서의 프레임(32)의 모션 벡터 M(2)는 T(N)에서의 프레임(31)의 역방향 모션 벡터 M(1)로부터 예측된다. 이 때, M(2)의 예측 모션 벡터인 M(2)'는 다음의 수학식 3과 같이 정의될 수 있다.
M(2)' = -2×M(1)
수학식 3은 M(2)가 M(1)과 다른 방향이고, M(2)의 참조 거리가 M(1)의 참조 거리의 2배임을 고려하여 M(2)'를 생성하는 과정을 나타낸 것이다.
한편, 도 8은 T(N)이 양방향 참조이고, T(N+1)이 역방향 참조인 경우를 나타낸다. 이 경우, T(N+1)에서의 프레임(32)의 모션 벡터 M(2)는 T(N)에서의 프레임(31)의 모션 벡터 M(0) 및 M(1)으로부터 예측된다. 이 때, M(2)의 예측 모션 벡터인 M(2)'는 다음의 수학식 4와 같이 정의될 수 있다.
M(2)' = M(1) - M(0)
즉, M(1)은 M(2)와 같은 방향이므로 양의 부호로 가산되도록 하고, M(0)은 M(2)와 다른 방향이므로 음의 부호로 가산되도록 하여 M(2)'를 생성하는 것이다.
도 9는 T(N)이 순방향 참조이고, T(N+1)이 역방향 참조인 경우를 나타낸다. 이 경우, T(N+1)에서의 프레임(32)의 모션 벡터 M(2)는 T(N)에서의 프레임(31)의 역방향 모션 벡터 M(0)로부터 예측된다. 이 때, M(2)의 예측 모션 벡터인 M(2)'는 다음의 수학식 5와 같이 정의될 수 있다.
M(2)' = -2×M(0)
수학식 5는 M(2)가 M(0)과 다른 방향이고, M(2)의 참조 거리가 M(0)의 참조 거리의 2배임을 고려하여 M(2)'를 생성하는 과정을 나타낸 것이다.
마지막으로 도 10은 T(N)이 역방향 참조이고, T(N+1)이 역방향 참조인 경우를 나타낸다. 이 경우, T(N+1)에서의 프레임(32)의 모션 벡터 M(2)는 T(N)에서의 프레임(31)의 역방향 모션 벡터 M(1)로부터 예측된다. 이 때, M(2)의 예측 모션 벡터인 M(2)'는 다음의 수학식 6과 같이 정의될 수 있다.
M(2)' = 2×M(1)
수학식 6은 M(2)가 M(1)과 같은 방향이고, M(2)의 참조 거리가 M(1)의 참조 거리의 2배임을 고려하여 M(2)'를 생성하는 과정을 나타낸 것이다.
이상 도 5 내지 도 10에서는 낮은 시간적 레벨에서의 모션 벡터를 통하여 높은 시간적 레벨의 모션 벡터를 예측하는 다양한 경우들을 설명하고 있다. 그런데, 낮은 시간적 레벨의 프레임(31)과 높은 시간적 레벨의 프레임(32)의 시간적 위치가 일치하지는 않으므로, 어떤 위치의 모션 벡터끼리 예측을 위하여 대응시키는가가 문제로 될 수 있다.
이에 대한 해결책은 여러 가지가 있을 수 있다. 먼저, 동일한 위치의 블록에 대한 모션 벡터끼리 대응시키는 방법을 생각할 수 있다. 이 경우 양 프레임(31, 32) 간의 시간적 위치가 일치하지 않아서 다소 예측이 부정확할 수는 있지만 모션의 변화가 급격하지 않는 비디오 시퀀스에서는 충분히 좋은 효과를 나타낼 수 있다. 도 11을 참조하면, 낮은 시간적 레벨의 프레임(31) 내의 어떤 블록(51)에 대한 모션 벡터(41, 42)는, 높은 시간적 레벨의 프레임(32)에서 상기 블록(51)과 동일 위치의 블록(52)에 대한 모션 벡터(43)를 예측하는 데 사용될 수 있다.
다음으로, 일치하지 않는 시간적 위치를 보정한 후 모션 벡터를 예측하는 방법을 생각할 수 있다. 도 11에서, 높은 시간적 레벨의 프레임(32) 내의 어떤 블록(52)에서의 모션 벡터(43)의 프로파일을 따를 때 낮은 시간적 레벨의 프레임(31)에서 대응되는 영역(53)에서의 모션 벡터(44, 45)를, 상기 모션 벡터(43)를 예측하는 데 사용할 수 있다. 다만, 상기 영역(53)은 모션 벡터가 각각 할당되는 블록과 일치되지 않지만, 면적 가중 평균을 구한다든지, 메디안 값을 구한다든지 하여 하나의 대표 모션 벡터(44, 45)를 구할 수 있다.
예를 들어, 도 12와 같이 상기 영역(53)이 4개의 블록과 겹쳐진 위치에 놓여진다고 할 때, 상기 영역(53)에 대한 모션 벡터(MV)는 면적 가중 평균을 이용하는 경우라면 수학식 7에 따라서, 메디안 연산을 이용할 경우라면 수학식 8에 따라서 구해질 수 있다. 만약, 양방향 참조의 경우는 각 블록이 갖는 모션 벡터도 2가지 이므로 각각에 대하여 연산을 수행하면 된다.
Figure 112005023411639-pat00001
Figure 112005023411639-pat00002
이상의 과정을 통하여 예측 모션 벡터 M(2)'를 구하였다면 이를 이용하여 모션 추정을 수행할 수 있다. 다시 도 4를 참조하면, 이와 같이 생성된 예측 모션 벡터 M(2)'를 이용하여 T(N+1)에서의 모션 예측시, 모션 벡터 탐색을 위한 초기 위치(24)를 결정한다. 그 다음, 상기 초기 위치(24)로부터 모션 탐색 범위(23)를 움직이면서 최적 모션 벡터(25)를 탐색한다.
상기 최적 모션 벡터(25)는 상기 모션 탐색 범위(23) 내에서 다음의 수학식 9와 같은 비용 함수(C)가 최소가 되는 모션 벡터를 의미한다. 여기서, E는 원래 프레임 내의 소정 블록의 텍스쳐와 참조 프레임 내에서 대응 영역의 텍스쳐 간의 차분(difference)을 의미하고, Δ는 예측된 모션 벡터와 상기 모션 탐색 범위 내의 임의의 모션 벡터 간의 차분을 의미한다. 그리고, λ는 라그랑지안 계수(Lagrangian multiplier)로서 E와 Δ의 반영 비율을 조절할 수 있는 계수를 의미한다.
C = E + λ×Δ
의미를 명확히 하기 위하여 부연하면, 상기 임시 모션 벡터는 모션 탐색 범위(23) 내에서 임의로 선택된 모션 벡터를 의미한다. 즉, 다수의 임시 모션 벡터들 중 하나가 최적 모션 벡터(25)로 선정되는 것이다.
고정 크기의 블록에 대하여 모션 추정을 하는 경우라면 수학식 9의 비용 함수를 통하여 최적 모션 벡터(25)만이 결정되겠지만, 가변 크기 블록에 대하여 모션 추정을 하는 경우라면 최적 모션 벡터(25) 및 매크로블록 패턴(Macroblock pattern)이 함께 결정될 것이다.
모션 벡터 부호화 단계에서의 제2 모션 예측 방법
제2 모션 예측 방법은 전술한 바와 같이, 참조 거리가 먼 모션 벡터로부터 참조 거리가 가까운 모션 벡터를 예측하는 과정으로 수행된다. 도 13은 높은 시간적 레벨의 프레임(32)이 순방향 참조를 하는 경우를, 도 14는 역방향 참조를 하는 경우를 각각 나타낸다.
먼저 도 13을 참조한다. T(N)에서의 프레임(31)의 모션 벡터인 M(0), M(1)은 T(N+1)에서의 프레임(32)의 순방향 모션 벡터 M(2)로부터 예측된다.
일반적으로 많은 경우 물체는 일정한 방향 및 속도로 움직인다. 특히 배경이 일정하게 움직이거나 특정 물체에 대해서도 짧은 관찰할 경우 이러한 성질이 만족되는 경우가 많다. 따라서, M(0)-M(1)는 M(2)와 유사할 것으로 추측할 수 있다. 또한, 실제 상황에서는 M(0)와 M(1)이 서로 방향이 반대이며 크기의 절대 값이 유사한 경우가 많이 발견된다. 이는 물체가 움직이는 속도가 짧은 시간적 구간에서는 큰 변화가 없기 때문이다. 따라서, M(0)' 및 M(1)'은 다음의 수학식 10과 같이 정의될 수 있다.
M(0)' = M(2)/2
M(1)' = -M(2) +M(0)
수학식 10에 따르면, M(0)는 M(2)를 이용하여 예측되고(M(0)'가 생성됨), M(1)은 M(0) 및 M(2)를 이용하여 예측된다(M(1)'가 생성됨)는 것을 알 수 있다. 그런데, T(N)에서 M(0) 혹은 M(1)이 존재하지 않을 수 있다. 이는 비디오 코덱이 압축 효율에 따라 순방향, 역방향, 및 양방향 참조 중에서 가장 적합한 것을 선택하기 때문이다. 만약, T(N)에서 역방향 참조만 존재하는 경우, 즉 M(0)는 존재하지 않고 M(1)만 존재하는 경우에는 수학식 10에서 M(1)'을 구하는 식은 이용할 수 없게 된다. 이 경우에는 M(0)이 -M(1)과 유사할 것으로 추측되므로 M(1)'은 다음의 수학식 11와 같이 나타낼 수 있다.
M(1)'= -M(2)+M(0) = -M(2) -M(1)
이 경우 M(1)과 그의 예측 값 M(1)'간의 차분은 2×M(1)+M(2)가 될 것이다.
다음, 도 14를 참조한다. T(N)에서의 프레임(31)의 모션 벡터인 M(0), M(1)은 T(N+1)에서의 프레임(32)의 역방향 모션 벡터 M(2)로부터 예측된다. 이 경우 M(0)' 및 M(1)'은 다음의 수학식 12와 같이 정의될 수 있다.
M(0)' = -M(2)/2
M(1)' = M(2) +M(0)
수학식 12에 따르면, M(0)는 M(2)를 이용하여 예측되고(M(0)'가 생성됨), M(1)은 M(0) 및 M(2)를 이용하여 예측된다(M(1)'가 생성됨). 만약, T(N)에서 역방향 참조만 존재하는 경우, 즉 M(0)는 존재하지 않고 M(1)만 존재하는 경우에는 수학식 12에서 M(1)'을 구하는 식은 이용할 수 없으므로, M(1)'는 다음의 수학식 13과 같이 변형될 수 있다.
M(1)'= M(2)+M(0) = M(2) -M(1)
이상의 수학식 10 및 수학식 12는 M(0)를 M(2)로부터 예측하고(M(0)'가 생성됨), M(0) 및 M(2)를 이용하여 M(1)을 예측하는(M(1)'가 생성됨) 경우를 나타낸 것이다. 그러나, M(1)을 M(2)로부터 예측하고(M(1)'가 생성됨), M(1) 및 M(2)를 이용하여 M(0)를 예측하는 방법(M(0)'가 생성됨)도 생각할 수 있다. 이 방법에 따르면, 도 13과 같은 경우에 M(0)' 및 M(1)'은 다음의 수학식 14와 같이 정의될 수 있다.
M(1)' = -M(2)/2
M(0)' = M(2)+M(1)
마찬가지로, 도 14와 같은 경우에는 M(0)' 및 M(1)'은 다음의 수학식 15와 같이 정의될 수 있다.
M(1)' = M(2)/2
M(0)' = -M(2)+M(1)
이상 도 13 및 도 14는 높은 시간적 레벨에서의 모션 벡터를 통하여 낮은 시간적 레벨의 모션 벡터를 예측하는 다양한 몇 가지 경우를 설명하고 있다. 그런데, 낮은 시간적 레벨의 프레임(31)과 높은 시간적 레벨의 프레임(32)의 시간적 위치가 일치하지는 않으므로 어떤 위치의 모션 벡터끼리 예측을 위하여 대응시키는가가 문제로 될 수 있다. 그러나, 제1 모션 예측 방법에서와 마찬가지로 이 문제는 다음의 방법들에 의해 해결될 수 있다.
먼저, 동일한 위치의 블록에 대한 모션 벡터끼리 대응시키는 방법이다. 도 15를 참조하면, 높은 시간적 레벨의 프레임(32) 내의 어떤 블록(52)에 대한 모션 벡터(52)는, 낮은 시간적 레벨의 프레임(31)에서 상기 블록(52)과 동일 위치의 블록(51)에 대한 모션 벡터(41, 42)를 예측하는 데 사용될 수 있다.
다음으로, 일치하지 않는 시간적 위치를 보정한 후 모션 벡터를 예측하는 방법이 있다. 도 15에서, 낮은 시간적 레벨의 프레임(31)의 어떤 블록(51)에서의 역방향 모션 벡터(42)의 프로파일을 따를 때, 높은 시간적 레벨의 프레임(31)에서 대응되는 영역(54)에서의 모션 벡터(46)를, 상기 모션 벡터(41, 43)를 예측하는 데 사용할 수 있다. 다만, 상기 영역(54)은 모션 벡터가 각각 할당되는 블록과 일치되지 않지만, 면적 가중 평균을 구한다든지, 메디안 값을 구한다든지 하여 하나의 대표 모션 벡터(46)를 구할 수 있다. 면적 가중 평균, 또는 메디안을 구하는 방법은 수학식 7 및 수학식 8에서 나타낸 바와 같다.
이상의 과정을 통하여 예측 모션 벡터 M(0)', 및 M(1)'를 구하였다면 이를 이용하여 모션 벡터를 효율적으로 압축할 수 있다. 즉, M(1)을 그대로 전송하는 대 신에 그 값과 예측 값의 모션 벡터 차분, 즉 M(1)-M(1)'를 전송하고, M(0)을 그대로 전송하는 대신에 M(0)-M(0)'를 전송함으로써 모션 벡터에 소요되는 비트량을 감소시킬 수 있는 것이다. 마찬가지로, 더 낮은 시간적 레벨, 즉 T(N-1)에서의 모션 벡터는 M(0) 이나 M(1) 중 시간적으로 더 가까운 모션 벡터를 이용하여 예측/압축될 수 있다.
참조 거리가 서로 다른 경우
한편, MCTF라고 해도 순방향 참조 거리와 역방향 참조 거리가 서로 다른 경우가 있을 수 있다. 다중 참조(Multiple reference)를 지원하는 MCTF에서는 이와 같은 경우가 발생될 수 있는데, 이 경우는 M(0)'과 M(1)'을 계산할 때 가중치를 두어 처리하면 될 것이다.
예를 들어, 도 13에서 시간적 레벨 N에서 좌측 참조 프레임이 2칸, 우측 참조 프레임이 1칸 떨어져 있다면, 수학식 10에서 M(0)'은 참조 거리에 비례하여 M(2)/2 대신 M(2)×2/3으로 계산되어야 할 것이다. 이 때, M(1)'을 계산하는 식은 바뀌지 않는다. 만약 수학식 11을 사용한다면 M(1)'은 -M(2)×2/3로 계산되어야 할 것이다.
일반적으로 표현하면, 도 13과 같이 M(2)가 순방향 모션 벡터인 경우에는 순방향 모션 벡터 M(0)에 대한 예측 모션 벡터 M(0)'는 관계식 M(0)'=a×M(2)/(a+b)에 따라서 구해지고, 역방향 모션 벡터 M(1)에 대한 예측 모션 벡터 M(1)'는 관계식 M(1)'= -M(2)+M(0)에 따라서 구해진다. 여기서, 상기 a는 순방향 거리 비율로서, 순방향 참조 거리를 순방향 참조 거리와 역방향 참조 거리의 합으로 나눈 값이 다. 그리고, b는 역방향 거리 비율로서, 역방향 참조 거리를 상기 거리의 합으로 나눈 값이다.
마찬가지로, 도 14와 같이 M(2)가 역방향 모션 벡터인 경우에는 순방향 모션 벡터 M(0)에 대한 예측 모션 벡터 M(0)'는 관계식 M(0)'=-a×M(2)/(a+b)에 따라서 구해지고, 역방향 모션 벡터 M(1)에 대한 예측 모션 벡터 M(1)'는 관계식 M(1)'= M(2)+M(0)에 따라서 구해진다.
종래의 공간적 모션 예측 방법과 시간적 레벨간 모션 예측 방법의 적응적 사용
종래의 공간적 모션 예측 방법은 같은 프레임 내의 인접 모션 벡터들의 패턴이 일정할 경우 유리한 효과를 나타내는 데 비해, 본 발명에서 제안된 방법의 경우 시간적 흐름에 대하여 모션 벡터가 일정한 경우 보다 유리한 효과를 나타낸다. 특히 제안한 방법의 경우 같은 프레임 내 인접 모션 벡터들의 패턴이 크게 변화하는 부분(물체 경계 등)에서 상기 공간적 모션 예측 방법에 비해 효율을 향상시킬 수 있다.
반면에, 제안한 방법의 경우 시간적으로 모션 벡터가 크게 변화하는 경우에는 제안된 방법이 상기 공간적 모션 예측 방법에 비해 효율이 낮을 수 있다. 이러한 문제를 해결하기 위해서는, 슬라이스(slice), 혹은 매크로블록(macroblock) 단위로 1비트의 플래그(flag)를 삽입하여 기존 방법과 제안된 방법 중 더 나은 방법을 선택하도록 할 수 있다.
상기 플래그를 "motion_pred_method_flag"라고 할 때, motion_pred_method_flag가 0이면 종래의 공간적 모션 예측 방법을 이용하여 모션 벡터 차분을 구하고, motion_pred_method_flag가 1이면 제안한 방법을 이용하여 모션 벡터 차분을 구한다. 양자 중에서 더 나은 방법을 선택하기 위해서는 구해진 모션 벡터 차분을 실제로 코딩(무손실 부호화)해 보고 더 적은 비트를 소모하는 방법을 선택하면 될 것이다.
이하에서는 본 발명에서 제안한 방법들을 구현한 비디오 인코더 및 비디오 디코더의 구성에 대하여 설명한다. 먼저, 도 16은 본 발명의 일 실시예에 따른 비디오 인코더(100)의 구성을 도시한 블록도로서, 상기 비디오 인코더(100)는 계층적인 MCTF에 따른 시간적 레벨 분해 과정을 포함한다.
분리부(111)는 입력된 프레임(O)을 고주파 프레임 위치(H 위치)의 프레임과, 저주파 프레임 위치(L 위치)의 프레임으로 분리한다. 일반적으로 고주파 프레임은 홀수 위치(2i+1)에, 저주파 프레임은 짝수 위치(2i)에 위치하게 된다. 여기서, i는 프레임 번호를 나타내는 인덱스로서 0이상의 정수 값을 갖는다. 상기 H 위치의 프레임들은 시간적 예측(여기서, 시간적 예측은 모션 벡터의 예측이 아니라 텍스쳐의 예측을 의미함) 과정을 거치게 되고, 상기 L 위치의 프레임들은 업데이트 과정을 거치게 된다.
H 위치의 프레임은 모션 추정부(115), 모션 보상부(112) 및 차분기(118)로 입력된다.
모션 추정부(113)는 H 위치에 있는 프레임(이하 현재 프레임)에 대하여 주변 프레임(시간적으로 다른 위치에 있는 동일 시간적 레벨의 프레임)을 참조하여 모션 추정을 수행함으로써 모션 벡터를 구한다. 이와 같이 참조되는 주변 프레임을 '참조 프레임'이라고 한다.
현재 시간적 레벨이 0인 경우에는 하위 시간적 레벨이 존재하지 않으므로 다른 시간적 레벨의 모션 벡터와 무관하게 모션 추정이 이루어진다. 일반적으로 이러한 움직임 추정을 위해 블록 매칭(block matching) 알고리즘이 널리 사용되고 있다. 즉, 주어진 블록을 참조 프레임의 특정 탐색영역 내에서 픽셀 또는 서브 픽셀(1/4 픽셀 등) 단위로 움직이면서 그 에러가 최저가 되는 경우의 변위를 움직임 벡터로 추정하는 것이다. 모션 추정을 위하여 고정된 블록을 이용할 수도 있지만, 계층적 가변 사이즈 블록 매칭법(Hierarchical Variable Size Block Matching; HVSBM)에 의한 계층적인 방법을 사용할 수도 있다.
만약 현재 시간적 레벨이 0이 아닌 경우에는 하위 시간적 레벨이 존재하므로 모션 추정 이전에 하위 시간적 레벨에서 구한 모션 벡터를 이용하여 현재 시간적 레벨에서의 모션 벡터를 예측하는 과정이 선행되어야 한다. 이러한 모션 벡터 예측 과정은 모션 예측부(114)에 의하여 수행된다.
모션 예측부(114)는 모션 벡터 버퍼(113)로부터 제공된 하위 시간적 레벨에서의 모션 벡터(MVn-1)를 이용하여 현재 시간적 레벨에서의 예측 모션 벡터(MVn')를 구하고 이를 모션 추정부(115)에 제공한다. 이러한 예측 모션 벡터를 구하는 과정은 도 5 내지 도 10의 설명에서 전술한 바 있으므로 중복된 설명은 생략하기로 한다. 다만, 도 5 내지 도 10에서 M(2)가 MVn에 해당되고, M(2)'가 MVn'에 해당되며, MVn-1은 M(0) 또는 M(1)에 해당된다는 것을 확인하여 둔다.
이와 같이 예측 모션 벡터가 구해지면, 모션 추정부(115)는 상기 예측 모션 벡터가 나타내는 위치를 초기 위치로 하여 소정의 모션 탐색 범위 내에서 모션 추정을 수행한다. 상기 모션 추정시 최적의 모션 벡터는 수학식 9에서 설명한 바와 같이 임시 모션 벡터들 중에서 비용함수가 최소가 되는 모션 벡터를 구함으로써 결정될 수 있으며, 상기 HVSBM을 사용하는 경우에는 이와 함께 최적 매크로블록 패턴도 결정될 수 있다.
모션 벡터 버퍼(113)는 모션 추정부(115)에서 해당 시간적 레벨에서의 최적 모션 벡터를 저장하였다가 모션 예측부(114)에서 상위 시간적 레벨에서의 모션 벡터를 예측할 때 모션 예측부(114)에 제공한다.
모션 추정부(115)에서 결정된 현재 시간적 레벨에서의 모션 벡터(MVn)은 모션 부상부(112)에 제공된다.
모션 보상부(112)는 상기 구한 모션 벡터(MVn) 및 상기 참조 프레임을 이용하여 현재 프레임에 대한 모션 보상 프레임(motion compensated frame)을 생성한다. 그리고, 차분기(118)는 현재 프레임과 모션 보상부(112)에 의하여 제공되는 모션 보상 프레임의 차분을 구함으로써, 고주파 프레임(H 프레임)을 생성한다. 상기 고주파 프레임은 차분 결과라는 의미로 잔차 프레임(residual frame)이라고 불리기도 한다. 상기 생성된 고주파 프레임들은 업데이트부(116) 및 변환부(120)에 제공된다.
한편, 업데이트부(116)는 상기 생성된 고주파 프레임을 이용하여 L 위치의 프레임들을 업데이트 한다. 만약, 5/3 MCTF의 경우에는, 어떤 L 위치의 프레임은 시간적으로 인접한 두 개의 고주파 프레임을 이용하여 업데이트 될 것이다. 만약, 상기 고주파 프레임을 생성하는 과정에서 단방향(순방향 또는 역방향) 참조가 이용되었다면, 마찬가지로 업데이트 과정도 단방향으로 이루어질 수 있다. 상기 MCTF 업데이트 과정에 관한 보다 구체적인 관계식은 당업계에 충분히 잘 알려져 있으므로 그 설명은 생략하기로 한다.
업데이트부(116)는 업데이트된 L 위치의 프레임들을 프레임 버퍼(117)에 저장하고, 프레임 버퍼(117)는 저장된 L 위치의 프레임을 상위 시간적 레벨에서의 MCTF 분해 과정을 위하여 분리부(111)에 제공한다. 그런데, 만약 L 위치의 프레임이 최종 L 프레임인 경우에는 상위 시간적 레벨은 존재하지 않으므로, 상기 최종 L 프레임을 변환부(120)에 제공한다.
분리부(111)는 프레임 버퍼(117)로부터 제공된 프레임들을 다시 상위 시간적 레벨에서 H 위치의 프레임과 L 위치의 프레임으로 분리한다. 그러면, 이 후 마찬가지로 상위 시간적 레벨에서 시간적 예측 과정과 업데이트 과정이 수행된다. 이러한 반복적인 MCTF 분해 과정은 최종적으로 하나의 L 프레임이 남을 때까지 반복적으로 수행될 수 있다.
변환부(120)는 상기 제공된 최종 L 프레임과, H 프레임에 대하여, 공간적 변환을 수행하고 변환 계수(C)를 생성한다. 이러한 공간적 변환 방법으로는, DCT(Discrete Cosine Transform), 웨이블릿 변환(wavelet transform) 등의 방법이 사용될 수 있다. DCT를 사용하는 경우 상기 변환 계수는 DCT 계수가 될 것이고, 웨이블릿 변환을 사용하는 경우 상기 변환 계수는 웨이블릿 계수가 될 것이다.
양자화부(130)는 상기 변환 계수(C)를 양자화(quantization) 한다. 상기 양자화(quantization)는 임의의 실수 값으로 표현되는 상기 변환 계수를 불연속적인 값(discrete value)으로 나타내는 과정을 의미한다. 예를 들어, 양자화부(130)는 임의의 실수 값으로 표현되는 상기 변환 계수를 소정의 양자화 스텝(quantization step)으로 나누고, 그 결과를 정수값으로 반올림하는 방법으로 양자화를 수행할 수 있다. 상기 양자화 스텝은 미리 약속된 양자화 테이블로부터 제공될 수 있다.
한편, 모션 벡터 부호화부(150)는 모션 벡터 버퍼(113)로부터 제공되는 각 시간적 레벨 별 모션 벡터들(MVn, MVn-1 등)을 제공 받아 최상위 시간적 레벨을 제외한 이외의 시간적 레벨에서 모션 벡터 차분을 각각 구하고, 상기 구한 모션 벡터 차분 및 최상위 시간적 레벨에서의 모션 벡터를 엔트로피 부호화부(140)에 제공한다.
상기 모션 벡터 차분을 구하는 과정은 도 13 및 도 14의 설명에서 전술한 바 있으나, 간단히 살펴 보면 다음과 같다. 먼저, 상위 시간적 레벨의 모션 벡터를 이용하여 현재 시간적 레벨의 모션 벡터를 예측한다. 상기 모션 벡터는 수학식 10 내지 15에 따라서 예측될 수 있다. 그 다음, 현재 시간적 레벨의 모션 벡터와 상기 예측된 모션 벡터와의 차분을 구한다. 이와 같이 계산된 차분을 각 시간적 레벨에 대한 모션 벡터 차분이라 한다.
그런데, 최상위 시간적 레벨에서의 모션 벡터도 부호화되지 않은 상태로 엔트로피 부호화부(140)에 제공되는 것 보다는, 도 2에서와 같이 종래의 공간적 모션 예측 방법을 이용한 차분의 형태로 엔트로피 부호화부(140)에 제공되는 것이 코딩 효율면에서 보다 바람직할 수 있다.
엔트로피 부호화부(140)는 양자화부(130)에 의하여 양자화된 결과(T)와, 모션 벡터 부호화부(150)로부터 제공되는 최상위 시간적 레벨의 모션 벡터 및 이외의 시간적 레벨의 모션 벡터 차분을 무손실 부호화하여 비트 스트림을 생성한다. 이러한 무손실 부호화 방법으로는, 허프만 부호화(Huffman coding), 산술 부호화(arithmetic coding), 가변 길이 부호화(variable length coding), 기타 다양한 방법이 이용될 수 있다.
한편, 본 발명의 다른 실시예에 있어서, 종래의 공간적 모션 예측 방법과 본 발명에서 제안된 시간적 레벨간 모션 예측 방법을 혼용할 수도 있다. 이 경우 모션 벡터 부호화부(150)는 현재 시간적 레벨의 모션 벡터를 하위 시간적 레벨의 모션 벡터로부터 예측한 경우와, 주변의 모션 벡터로부터 예측한 경우를 비교하여 보다 유리한 경우를 선택하여 부호화한다. 즉 모션 벡터 부호화부(150)는, 하위 시간적 레벨의 모션 벡터로부터 예측된 모션 벡터와 상기 현재 시간적 레벨의 모션 벡터를 차분한 결과(제1 차분)와, 주변의 모션 벡터로부터 예측된 모션 벡터와 상기 현재 시간적 레벨의 모션 벡터를 차분한 결과(제2 차분)를 각각 무손실 부호화하여 그 비트량이 작은 예측 방법을 선택하는 것이다.
이러한 적응적(adaptive) 모션 벡터 부호화 방식은 프레임 단위, 슬라이스 단위, 또는 이 보다 세분화된 매크로블록 단위로 서로 다른 모션 예측 방식을 허용한다. 이러한 선택 결과를 비디오 디코더 단에서도 알 수 있도록 하기 위하여, 1비트의 motion_pred_method_flag를 사용하여 프레임 헤더, 슬라이스 헤더 또는 매크로블록 헤더에 기입할 수 있다. 예를 들어, motion_pred_method_flag가 0이면 종래의 공간적 모션 예측 방법을 이용하는 것을 의미하고, motion_pred_method_flag가 1이면 시간적 레벨간 모션 예측 방법을 이용하여 모션 벡터 차분을 구한다.
도 17은 본 발명의 일 실시예에 따른 비디오 디코더(200)의 구성을 나타낸 블록도로서, 상기 비디오 디코더(200)는 계층적인 MCTF에 따른 시간적 레벨 복원 과정을 포함한다.
엔트로피 복호화부(210)는 무손실 복호화를 수행하여, 입력된 비트스트림으로부터 각 프레임에 대한 텍스쳐 데이터, 각 시간적 레벨 별 모션 벡터 데이터를 추출한다. 상기 모션 벡터 데이터는 각 시간적 레벨 별 모션 벡터 차분을 포함한다. 상기 추출된 텍스쳐 데이터는 역 양자화부(250)에 제공되고 상기 추출된 모션 벡터 데이터는 모션 벡터 버퍼(230) 제공된다.
모션 벡터 복원부(220)는 비디오 인코더(100)의 모션 벡터 부호화부(150)에서와 마찬가지 방법으로 예측 모션 벡터를 구하고, 상기 구한 예측 모션 벡터와 모션 벡터 차분을 가산하여 각 시간적 레벨 별로 모션 벡터를 복원한다. 상기 예측 모션 벡터를 구하는 방법은 도 13 및 도 14의 설명에서 전술한 바와 같다. 즉 미리 복원되어 모션 벡터 버퍼(230)에 저장된 상위 시간적 레벨의 모션 벡터(MVn+1)를 이 용하여 현재 시간적 레벨의 모션 벡터(MVn)를 예측하여 예측 모션 벡터를 구하고, 상기 예측 모션 벡터와 현재 시간적 레벨의 모션 벡터 차분을 가산함으로써 현재 시간적 레벨의 모션 벡터(MVn)를 복원할 수 있다. 복원된 모션 벡터(MVn)는 다시 모션 벡터 버퍼(230)에 저장된다.
만약, 비디오 인코더(100) 단에서 적응적 모션 벡터 부호화 방식이 사용된 경우라면, 모션 벡터 복원부(220)는 motion_pred_method_flag를 확인하여 그 값이 0이면 공간적 모션 예측 방법에 따라서 예측 모션 벡터를 생성하고, 그 값이 1이면 도 13 및 도 14에서와 같은 시간적 레벨간 모션 예측 방법에 따라서 예측 모션 벡터를 생성한다. 그리고, 생성된 예측 모션 벡터와 상기 모션 벡터 차분을 가산함으로써 현재 시간적 레벨의 모션 벡터(MVn)를 복원할 수 있다. 이러한 적응적 모션 예측 과정은 구현하는 예에 따라 프레임 별, 슬라이스 별, 또는 매크로블록 별로 수행되도록 할 수 있다.
한편, 역 양자화부(250)는 엔트로피 복호화부(210)로부터 출력되는 텍스쳐 데이터를 역 양자화한다. 이러한 역 양자화 과정은 양자화 과정에서 사용된 것과 동일한 양자화 테이블을 이용하여 양자화 과정에서 생성된 인덱스로부터 그에 매칭되는 값을 복원하는 과정이다.
역 변환부(260)는 상기 역 양자화된 결과에 대하여 역 변환을 수행한다. 이러한 역 변환은 비디오 인코더(100) 단의 변환부(120)에 대응되는 방식으로서 수행되며, 구체적으로 역 DCT 변환, 역 웨이블릿 변환 등이 사용될 수 있다. 상기 역 변환된 결과, 즉 복원된 고주파 프레임은 가산기(270)에 제공된다.
모션 보상부(240)는 모션 벡터 복원부(220)로부터 제공된 현재 시간적 레벨의 모션 벡터 및, 현재 시간적 레벨의 고주파 프레임에 대한 참조 프레임(기 복원되어 프레임 버퍼(280)에 저장됨)을 이용하여 모션 보상 프레임을 생성하여 이를 가산기(270)에 제공한다.
가산기(270)는 상기 제공된 고주파 프레임과 상기 모션 보상 프레임을 가산하여 현재 시간적 레벨의 어떤 프레임을 복원하고 이를 프레임 버퍼(280)에 저장한다.
이러한 모션 보상부(240)에 의한 모션 보상 과정 및 가산기(270)에 의한 가산 과정은 수신된 최상위 시간적 레벨로부터 최하위 시간적 레벨까지 모든 프레임이 복원될 때까지 반복하여 수행될 수 있다. 마지막으로, 프레임 버퍼(280)에 저장되어 있는 복원된 프레임은 디스플레이 장치에 의하여 시각적으로 출력될 수 있다.
도 18은 본 발명의 일 실시예에 따른 비디오 인코더(100), 또는 비디오 디코더(200)의 동작을 수행하기 위한 시스템의 구성도이다. 상기 시스템은 TV, 셋탑박스, 데스크 탑, 랩 탑 컴퓨터, 팜 탑(palmtop) 컴퓨터, PDA(personal digital assistant), 비디오 또는 이미지 저장 장치(예컨대, VCR(video cassette recorder), DVR(digital video recorder) 등)를 나타내는 것일 수 있다. 뿐만 아니라, 상기 시스템은 상기한 장치들을 조합한 것, 또는 상기 장치가 다른 장치의 일부분으로 포함된 것을 나타내는 것일 수도 있다. 상기 시스템은 적어도 하나 이상의 비디오 소스(video source; 910), 하나 이상의 입출력 장치(920), 프로세서 (940), 메모리(950), 그리고 디스플레이 장치(930)를 포함하여 구성될 수 있다.
비디오 소스(910)는 TV 리시버(TV receiver), VCR, 또는 다른 비디오 저장 장치를 나타내는 것일 수 있다. 또한, 상기 소스(910)는 인터넷, WAN(wide area network), LAN(local area network), 지상파 방송 시스템(terrestrial broadcast system), 케이블 네트워크, 위성 통신 네트워크, 무선 네트워크, 전화 네트워크 등을 이용하여 서버로부터 비디오를 수신하기 위한 하나 이상의 네트워크 연결을 나타내는 것일 수도 있다. 뿐만 아니라, 상기 소스는 상기한 네트워크들을 조합한 것, 또는 상기 네트워크가 다른 네트워크의 일부분으로 포함된 것을 나타내는 것일 수도 있다.
입출력 장치(920), 프로세서(940), 그리고 메모리(950)는 통신 매체(960)를 통하여 통신한다. 상기 통신 매체(960)에는 통신 버스, 통신 네트워크, 또는 하나 이상의 내부 연결 회로를 나타내는 것일 수 있다. 상기 소스(910)로부터 수신되는 입력 비디오 데이터는 메모리(950)에 저장된 하나 이상의 소프트웨어 프로그램에 따라 프로세서(940)에 의하여 처리될 수 있고, 디스플레이 장치(930)에 제공되는 출력 비디오를 생성하기 위하여 프로세서(940)에 의하여 실행될 수 있다.
특히, 메모리(950)에 저장된 소프트웨어 프로그램은 본 발명에 따른 방법을 수행하는 스케일러블 비디오 코덱을 포함할 수 있다. 상기 인코더 또는 상기 코덱은 메모리(950)에 저장되어 있을 수도 있고, CD-ROM이나 플로피 디스크와 같은 저장 매체에서 읽어 들이거나, 각종 네트워크를 통하여 소정의 서버로부터 다운로드한 것일 수도 있다. 상기 소프트웨어에 의하여 하드웨어 회로에 의하여 대체되거 나, 소프트웨어와 하드웨어 회로의 조합에 의하여 대체될 수 있다.
도 19는 본 발명의 일 실시예에 따른 비디오 인코딩 방법을 나타내는 흐름도이다.
먼저, 모션 예측부(114)는 하위 시간적 레벨에 존재하는 제1 프레임에 대한 제1 모션 벡터로부터 현재 시간적 레벨에 존재하는 제2 프레임에 대한 예측 모션 벡터를 구한다(S10). 여기서 하위 시간적 레벨이란 현재 시간적 레벨을 기준으로 할 때 그 보다 한 단계 낮은 시간적 레벨을 의미한다. 이와 같은 예측 모션 벡터를 구하는 과정은 도 5 내지 도 10을 통하여 전술한 바 있으므로 중복된 설명은 생략하기로 한다.
모션 추정부(115)는 상기 예측 모션 벡터를 시작 위치로 하여 소정의 모션 탐색 범위 내에서 모션 추정을 수행함으로써 상기 제2 프레임에 대한 제2 모션 벡터를 구한다(S20). 예를 들어, 상기 모션 탐색 범위 내의 모션 벡터들의 비용을 계산하여 그 비용이 최소가 되는 모션 벡터를 구하여 이를 제2 모션 벡터로 설정할 수 있다. 그런데, 이러한 비용은 수학식 9에서 정의한 바와 같이 계산할 수 있다.
다음으로, 비디오 인코더(100)는 상기 구한 제2 모션 벡터를 이용하여 상기 제2 프레임을 부호화한다(S30). 이러한 제2 프레임을 부호화하는 과정은, 모션 보상부(112)가 상기 구한 제2 모션 벡터 및 상기 제2 프레임의 참조 프레임을 이용하여 상기 제2 프레임에 대한 모션 보상 프레임을 생성하는 과정과, 차분기(118)가 상기 제2 프레임과 상기 모션 보상 프레임과의 차분을 구하는 과정과, 변환부(120)가 상기 차분에 대하여 공간적 변환을 수행하여 변환 계수를 생성하는 과정과, 양 자화부(130)가 상기 변환 계수를 양자화하는 과정을 포함한다.
이와 같이 프레임, 즉 프레임의 텍스쳐 데이터를 부호화하는 것과 더불어 본 발명에서는 모션 벡터 자체도 시간적 레벨 간의 유사성을 이용하여 부호화하는 과정을 거치게 된다. 상기 모션 추정 과정을 통하여 각 시간적 레벨에 위치하는 고주파 프레임에 대한 모션 벡터들이 구해졌다고 할 때, 상기 구한 모션 벡터들을 부호화하여야 하는 데 이하에서는 그에 관한 과정을 설명한다.
먼저, 모션 벡터 부호화부(150)는 상위 시간적 레벨에 존재하는 제3 프레임에 대한 모션 벡터로부터 제2 프레임에 대한 예측 모션 벡터를 구한다(S40). 여기서 상위 시간적 레벨이란 현재 시간적 레벨을 기준으로 할 때 그 보다 한 단계 높은 시간적 레벨을 의미한다. 이와 같은 예측 모션 벡터를 구하는 과정은 도 13 및 도 14를 통하여 전술한 바 있으므로 중복된 설명은 생략하기로 한다. 또한, 모션 벡터 부호화부(150)는 상기 제2 모션 벡터와 상기 예측 모션 벡터와의 차분을 구한다(S50).
이와 같이 부호화된 프레임 데이터 및 모션 벡터의 차분이 생성되면 엔트로피 부호화부(140)는 이들을 무손실 부호화하여 최종적으로 비트스트림을 생성한다(S50).
그런데, 상기와 같은 모션 벡터의 부호화 과정에서 시간적 레벨 간의 유사성을 이용하여 모션 벡터를 부호화하는 방법만을 이용하지 않고, 도 2와 같은 종래의 공간적 유사성을 이용하여 부호화하는 방법과 상기 방법을 적응적으로 선택하여 사용할 수도 있다.
이 경우에는, 모션 벡터 부호화부(150)는, 상기 제3 프레임에 대한 모션 벡터로부터 현재 시간적 레벨에 존재하는 제2 프레임에 대한 예측 모션 벡터를 구하고 상기 제2 프레임에 대한 모션 벡터와 상기 예측 모션 벡터와의 차분(제1 차분)을 구한다. 그리고, 상기 제2 프레임 내의 주변 모션 벡터를 이용하여 상기 제2 프레임에 대한 예측 모션 벡터를 구하고 상기 제2 프레임에 대한 모션 벡터와 상기 주변 모션 벡터를 이용하여 구한 예측 모션 벡터와의 차분(제2 차분)을 구한다. 그 후 상기 제1 차분과 상기 제2 차분 중 비트량이 적게 소요되는 차분을 선택하고 선택된 결과를 1비트 플래그 정보로서 상기 비트스트림에 삽입할 수 있다.
도 20은 본 발명의 일 실시예에 따른 비디오 디코딩 방법을 나타내는 흐름도이다.
먼저, 엔트로피 복호화부(210)는 입력된 비트스트림으로부터 복수의 시간적 레벨들에 존재하는 고주파 프레임에 대한 텍스쳐 데이터 및 모션 벡터 차분을 추출한다(S110).
다음, 모션 벡터 복원부(220)는 상위 시간적 레벨에 존재하는 제1 고주파 프레임에 대한 모션 벡터를 복원한다(S120). 상기 제1 고주파 프레임이 최상위 시간적 레벨에 존재한다면 상기 제1 고주파 프레임에 대한 모션 벡터는 다른 시간적 레벨의 모션 벡터와 무관하게 복원될 수 있다.
또한, 모션 벡터 복원부(220)는 상기 복원된 모션 벡터로부터 현재 시간적 레벨에 존재하는 제2 프레임에 대한 예측 모션 벡터를 구한다(S130). 이러한 복원 과정은 도 19의 비디오 인코딩 과정에서 모션 벡터 부호화 과정과 마찬가지 알고리 듬에 의하여 수행될 수 있다.
이 후, 모션 벡터 복원부(220)는 상기 추출된 모션 벡터 차분 중 상기 제2 프레임에 대한 모션 벡터 차분과 상기 예측 모션 벡터를 가산함으로써 상기 제2 프레임에 대한 모션 벡터를 복원한다(S140).
마지막으로, 비디오 디코더(200)는 상기 복원된 제2 프레임에 대한 모션 벡터를 이용하여 상기 제2 프레임을 복원한다(S150). 이러한 제2 프레임을 복원하는 과정은, 역 양자화부(250)가 상기 추출된 텍스쳐 데이터를 역 양자화하는 단계와, 역 변환부(260)가 상기 역 양자화된 결과에 대하여 역 변환을 수행하는 단계와, 모션 보상부(240)가 상기 복원된 제2 프레임에 대한 모션 벡터 및 상기 현재 시간적 레벨의 참조 프레임을 이용하여 모션 보상 프레임을 생성하는 단계와, 가산기(270)가 상기 역 변환된 결과와 상기 모션 보상 프레임을 가산하는 단계를 포함한다.
이상의 도 19 및 도 20의 설명에서는 어떤 시간적 레벨(현재 시간적 레벨)의 프레임(제2 프레임) 및 모션 벡터(제2 모션 벡터)를 부호화/복호화하는 과정을 중심으로 설명한 것이지만, 다른 시간적 레벨의 프레임에 대해서도 이와 마찬가지의 과정에 의하여 수행될 수 있음은 당업자라면 충분히 이해할 수 있을 것이다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
본 발명에 따르면, 시간적 레벨 별로 나열된 모션 벡터를 시간적 레벨 간의 유사성을 이용하여 효율적으로 예측함으로써 압축 효율을 향상시킬 수 있다.
특히, 본 발명에 따르면, 상기 예측 방법을 통하여 MCTF 기반의 비디오 코덱에서 효율적인 모션 추정 및 모션 벡터 부호화를 구현할 수 있다.

Claims (31)

  1. 계층적인 시간적 레벨 분해 과정을 포함하는 비디오 인코딩 방법으로서,
    (a) 하위 시간적 레벨에 존재하는 제1 프레임에 대한 제1 모션 벡터로부터 현재 시간적 레벨에 존재하는 제2 프레임에 대한 예측 모션 벡터를 구하는 단계;
    (b) 상기 예측 모션 벡터를 시작 위치로 하여 소정의 모션 탐색 범위 내에서 모션 추정을 수행함으로써 상기 제2 프레임에 대한 제2 모션 벡터를 구하는 단계; 및
    (c) 상기 구한 제2 모션 벡터를 이용하여 상기 제2 프레임을 부호화하는 단계를 포함하는 비디오 인코딩 방법.
  2. 제1항에 있어서, 상기 분해 과정은
    MCTF(Motion Compensated Temporal Filtering)를 기반으로 하는 비디오 인코딩 방법.
  3. 제1항에 있어서, 상기 (c) 단계는
    (c-1) 상기 구한 제2 모션 벡터 및 상기 제2 프레임의 참조 프레임을 이용하여 상기 제2 프레임에 대한 모션 보상 프레임(motion compensated frame)을 생성하는 단계;
    (c-2) 상기 제2 프레임과 상기 모션 보상 프레임과의 차분을 구하는 단계;
    (c-3) 상기 차분에 대하여 공간적 변환을 수행하여 변환 계수를 생성하는 단계; 및
    (c-4) 상기 변환 계수를 양자화하는 단계를 포함하는 비디오 인코딩 방법.
  4. 제1항에 있어서,
    상기 제1 모션 벡터는 순방향 모션 벡터(M(0))와 역방향 모션 벡터(M(1))를 포함하는 양방향 모션 벡터이고 상기 제2 모션 벡터는 순방향 모션 벡터인 경우에 상기 예측 모션 벡터(M(2)')는 관계식 M(2)'= M(0)-M(1)에 따라서 구해지는 비디오 인코딩 방법.
  5. 제1항에 있어서,
    상기 제1 모션 벡터는 순방향 모션 벡터(M(0))이고 상기 제2 모션 벡터는 순방향 모션 벡터인 경우에 상기 예측 모션 벡터(M(2)')는 관계식 M(2)'= 2×M(0)에 따라서 구해지는 비디오 인코딩 방법.
  6. 제1항에 있어서,
    상기 제1 모션 벡터는 역방향 모션 벡터(M(1))이고 상기 제2 모션 벡터는 순방향 모션 벡터인 경우에 상기 예측 모션 벡터(M(2)')는 관계식 M(2)'= -2×M(1)에 따라서 구해지는 비디오 인코딩 방법.
  7. 제1항에 있어서,
    상기 제1 모션 벡터는 순방향 모션 벡터(M(0))와 역방향 모션 벡터(M(1))를 포함하는 양방향 모션 벡터이고 상기 제2 모션 벡터는 역방향 모션 벡터인 경우에 상기 예측 모션 벡터(M(2)')는 관계식 M(2)'= M(1)-M(0)에 따라서 구해지는 비디오 인코딩 방법.
  8. 제1항에 있어서,
    상기 제1 모션 벡터는 순방향 모션 벡터(M(0))이고 상기 제2 모션 벡터는 역방향 모션 벡터인 경우에 상기 예측 모션 벡터(M(2)')는 관계식 M(2)'= -2×M(0)에 따라서 구해지는 비디오 인코딩 방법.
  9. 제1항에 있어서,
    상기 제1 모션 벡터는 역방향 모션 벡터(M(1))이고 상기 제2 모션 벡터는 역방향 모션 벡터인 경우에 상기 예측 모션 벡터(M(2)')는 관계식 M(2)'= 2×M(1)에 따라서 구해지는 비디오 인코딩 방법.
  10. 제1항에 있어서, 상기 (b) 단계는
    상기 모션 탐색 범위 내의 모션 벡터들의 비용을 계산하여 그 비용이 최소가 되는 모션 벡터를 상기 제2 모션 벡터로서 구하는 단계를 포함하는 비디오 인코딩 방법.
  11. 제10항에 있어서, 상기 비용은
    E + λ×Δ로 정의되는데, 여기서 E는 상기 제2 프레임과 상기 제2 프레임에 대한 참조 프레임 간의 차분을, Δ는 상기 예측된 모션 벡터와 상기 모션 탐색 범위 내의 임의의 모션 벡터와의 차분을, 그리고 λ는 라그랑지안 계수를 각각 의미하는 비디오 인코딩 방법.
  12. 계층적인 시간적 레벨 분해 과정을 포함하는 비디오 인코딩 방법으로서,
    (a) 복수의 시간적 레벨들에 존재하는 소정의 프레임에 대한 모션 벡터를 구하는 단계;
    (b) 상기 구한 모션 벡터를 이용하여 상기 프레임을 부호화하는 단계;
    (c) 상기 모션 벡터 중 상위 시간적 레벨에 존재하는 제1 프레임에 대한 모션 벡터로부터 현재 시간적 레벨에 존재하는 제2 프레임에 대한 예측 모션 벡터를 구하는 단계;
    (d) 상기 제2 프레임에 대한 모션 벡터와 상기 예측 모션 벡터와의 차분을 구하는 단계; 및
    (e) 상기 부호화된 프레임 및 상기 차분을 포함하는 비트스트림을 생성하는 단계를 포함하는 비디오 인코딩 방법.
  13. 제12항에 있어서, 상기 분해 과정은
    MCTF(Motion Compensated Temporal Filtering)를 기반으로 하는 비디오 인코딩 방법.
  14. 제1항에 있어서, 상기 (b) 단계는
    (b-1) 상기 구한 모션 벡터 및 상기 소정의 프레임의 참조 프레임을 이용하여 모션 보상 프레임(motion compensated frame)을 생성하는 단계;
    (b-2) 상기 소정의 프레임과 상기 모션 보상 프레임과의 차분을 구하는 단계;
    (b-3) 상기 차분에 대하여 공간적 변환을 수행하여 변환 계수를 생성하는 단계; 및
    (b-4) 상기 변환 계수를 양자화하는 단계를 포함하는 비디오 인코딩 방법.
  15. 제14항에 있어서, 상기 (e) 단계는
    상기 양자화된 결과와 상기 차분을 무손실 부호화하는 단계를 포함하는 비디오 인코딩 방법.
  16. 제13항에 있어서,
    상기 제1 프레임에 대한 모션 벡터(M(2))가 순방향 모션 벡터인 경우에, 상기 제2 모션 벡터 중 순방향 모션 벡터(M(0))에 대한 예측 모션 벡터(M(0)')는 관계식 M(0)'=M(2)/2에 따라서 구해지고, 상기 제2 모션 벡터 중 역방향 모션 벡터 (M(1))에 대한 예측 모션 벡터(M(1)')는 관계식 M(1)'= -M(2)+M(0)에 따라서 구해지는 비디오 인코딩 방법.
  17. 제13항에 있어서,
    상기 제1 프레임에 대한 모션 벡터(M(2))가 순방향 모션 벡터이고 상기 제2 모션 벡터가 역방향 모션 벡터(M(1))인 경우에, 상기 역방향 모션 벡터(M(1))에 대한 예측 모션 벡터(M(1)')는 관계식 M(1)'=-M(2)-M(1)에 따라서 구해지는 비디오 인코딩 방법.
  18. 제13항에 있어서,
    상기 제1 프레임에 대한 모션 벡터(M(2))가 역방향 모션 벡터인 경우에, 상기 제2 모션 벡터 중 순방향 모션 벡터(M(0))에 대한 예측 모션 벡터(M(0)')는 관계식 M(0)'=-M(2)/2에 따라서 구해지고, 상기 제2 모션 벡터 중 역방향 모션 벡터(M(1))에 대한 예측 모션 벡터(M(1)')는 관계식 M(1)'= M(2)+M(0)에 따라서 구해지는 비디오 인코딩 방법.
  19. 제13항에 있어서,
    상기 제1 프레임에 대한 모션 벡터(M(2))가 순방향 모션 벡터이고 상기 제2 모션 벡터가 역방향 모션 벡터(M(1))인 경우에, 상기 역방향 모션 벡터(M(1))에 대한 예측 모션 벡터(M(1)')는 관계식 M(1)'=M(2)-M(1)에 따라서 구해지는 비디오 인 코딩 방법.
  20. 제13항에 있어서,
    상기 제1 프레임에 대한 모션 벡터(M(2))가 순방향 모션 벡터인 경우에, 상기 제2 모션 벡터 중 순방향 모션 벡터(M(0))에 대한 예측 모션 벡터(M(0)')는 관계식 M(0)'=a×M(2)/(a+b)에 따라서 구해지고, 상기 제2 모션 벡터 중 역방향 모션 벡터(M(1))에 대한 예측 모션 벡터(M(1)')는 관계식 M(1)'= -M(2)+M(0)에 따라서 구해지는데, 상기 a는 순방향 거리 비율이고 상기 b는 역방향 거리비율인 비디오 인코딩 방법.
  21. 제13항에 있어서,
    상기 제1 프레임에 대한 모션 벡터(M(2))가 역방향 모션 벡터인 경우에, 상기 제2 모션 벡터 중 순방향 모션 벡터(M(0))에 대한 예측 모션 벡터(M(0)')는 관계식 M(0)'=-a×M(2)/(a+b)에 따라서 구해지고, 상기 제2 모션 벡터 중 역방향 모션 벡터(M(1))에 대한 예측 모션 벡터(M(1)')는 관계식 M(1)'=M(2)+M(0)에 따라서 구해지는데, 상기 a는 순방향 거리 비율이고 상기 b는 역방향 거리비율인 비디오 인코딩 방법.
  22. 계층적인 시간적 레벨 분해 과정을 포함하는 비디오 인코딩 방법으로서,
    (a) 복수의 시간적 레벨들에 존재하는 소정의 프레임에 대한 모션 벡터를 구 하는 단계;
    (b) 상기 구한 모션 벡터를 이용하여 상기 프레임을 부호화하는 단계;
    (c) 상기 모션 벡터 중 상위 시간적 레벨에 존재하는 제1 프레임에 대한 모션 벡터로부터 현재 시간적 레벨에 존재하는 제2 프레임에 대한 예측 모션 벡터를 구하고 상기 제2 프레임에 대한 모션 벡터와 상기 예측 모션 벡터와의 차분을 구하는 단계;
    (d) 상기 제2 프레임 내의 주변 모션 벡터를 이용하여 상기 제2 프레임에 대한 예측 모션 벡터를 구하고 상기 제2 프레임에 대한 모션 벡터와 상기 주변 모션 벡터를 이용하여 구한 예측 모션 벡터와의 차분을 구하는 단계;
    (e) 상기 (c) 단계에서 구한 차분과 상기 (d) 단계에서 구한 차분 중 비트량이 적게 소요되는 차분을 선택하는 단계; 및
    (f) 상기 부호화된 프레임 및 상기 선택된 차분을 포함하는 비트스트림을 생성하는 단계를 포함하는 비디오 인코딩 방법.
  23. 제22항에 있어서, 상기 비트스트림은
    상기 선택된 결과를 나타내는 1비트 플래그를 포함하는 비디오 인코딩 방법.
  24. 제23항에 있어서, 상기 플래그는
    슬라이스(slice) 단위 또는 매크로블록(macroblock) 단위로 기록되는 비디오 인코딩 방법.
  25. 계층적인 시간적 레벨 복원 과정을 포함하는 비디오 디코딩 방법으로서,
    (a) 입력된 비트스트림으로부터 복수의 시간적 레벨들에 존재하는 소정의 프레임에 대한 텍스쳐 데이터 및 모션 벡터 차분을 추출하는 단계;
    (b) 상위 시간적 레벨에 존재하는 제1 프레임에 대한 모션 벡터를 복원하는 단계;
    (c) 상기 복원된 모션 벡터로부터 현재 시간적 레벨에 존재하는 제2 프레임에 대한 예측 모션 벡터를 구하는 단계;
    (d) 상기 모션 벡터 차분 중 상기 제2 프레임에 대한 모션 벡터 차분과 상기 예측 모션 벡터를 가산함으로써 상기 제2 프레임에 대한 모션 벡터를 복원하는 단계; 및
    (e) 상기 복원된 제2 프레임에 대한 모션 벡터를 이용하여 상기 제2 프레임을 복원하는 단계를 포함하는 비디오 디코딩 방법.
  26. 제25항에 있어서,
    상기 시간적 레벨 복원 과정은 MCTF(Motion Compensated Temporal Filtering)에 따른 프레임 복원 과정에 따르는 비디오 디코딩 방법.
  27. 제25항에 있어서, 상기 (e) 단계는
    상기 텍스쳐 데이터를 역 양자화하는 단계;
    상기 역 양자화된 결과에 대하여 역 변환을 수행하는 단계;
    상기 복원된 제2 프레임에 대한 모션 벡터 및, 상기 현재 시간적 레벨의 참조 프레임을 이용하여 모션 보상 프레임을 생성하는 단계; 및
    상기 역 변환된 결과와 상기 모션 보상 프레임을 가산하는 단계를 포함하는 비디오 디코딩 방법.
  28. 계층적인 시간적 레벨 복원 과정을 포함하는 비디오 디코딩 방법으로서,
    (a) 입력된 비트스트림으로부터 소정의 플래그, 복수의 시간적 레벨들에 존재하는 소정의 프레임에 대한 텍스쳐 데이터 및 모션 벡터 차분을 추출하는 단계;
    (b) 상위 시간적 레벨에 존재하는 제1 프레임에 대한 모션 벡터를 복원하는 단계;
    (c) 현재 시간적 레벨에 존재하는 제2 프레임 중 주변 모션 벡터를 복원하는 단계;
    (d) 상기 플래그의 값에 따라서 상기 제1 프레임에 대한 모션 벡터 및 상기 주변 모션 벡터 중 하나로부터 현재 시간적 레벨에 존재하는 제2 프레임에 대한 예측 모션 벡터를 구하는 단계;
    (e) 상기 모션 벡터 차분 중 상기 제2 프레임에 대한 모션 벡터 차분과 상기 예측 모션 벡터를 가산함으로써 상기 제2 프레임에 대한 모션 벡터를 복원하는 단계; 및
    (f) 상기 복원된 제2 프레임에 대한 모션 벡터를 이용하여 상기 제2 프레임 을 복원하는 단계를 포함하는 비디오 디코딩 방법.
  29. 계층적인 시간적 레벨 분해 과정을 수행하는 비디오 인코더로서,
    하위 시간적 레벨에 존재하는 제1 프레임에 대한 제1 모션 벡터로부터 현재 시간적 레벨에 존재하는 제2 프레임에 대한 예측 모션 벡터를 구하는 수단;
    상기 예측 모션 벡터를 시작 위치로 하여 소정의 모션 탐색 범위 내에서 모션 추정을 수행함으로써 상기 제2 프레임에 대한 제2 모션 벡터를 구하는 수단; 및
    상기 구한 제2 모션 벡터를 이용하여 상기 제2 프레임을 부호화하는 수단을 포함하는 비디오 인코더.
  30. 계층적인 시간적 레벨 분해 과정을 수행하는 비디오 인코더로서,
    복수의 시간적 레벨들에 존재하는 소정의 프레임에 대한 모션 벡터를 구하는 수단;
    상기 구한 모션 벡터를 이용하여 상기 프레임을 부호화하는 수단;
    상기 모션 벡터 중 상위 시간적 레벨에 존재하는 제1 프레임에 대한 모션 벡터로부터 현재 시간적 레벨에 존재하는 제2 프레임에 대한 예측 모션 벡터를 구하는 수단;
    상기 제2 프레임에 대한 모션 벡터와 상기 예측 모션 벡터와의 차분을 구하는 수단; 및
    상기 부호화된 프레임 및 상기 차분을 포함하는 비트스트림을 생성하는 수단 을 포함하는 비디오 인코더.
  31. 계층적인 시간적 레벨 복원 과정을 수행하는 비디오 디코더로서,
    입력된 비트스트림으로부터 복수의 시간적 레벨들에 존재하는 소정의 프레임에 대한 텍스쳐 데이터 및 모션 벡터 차분을 추출하는 수단;
    상위 시간적 레벨에 존재하는 제1 프레임에 대한 모션 벡터를 복원하는 수단;
    상기 복원된 모션 벡터로부터 현재 시간적 레벨에 존재하는 제2 프레임에 대한 예측 모션 벡터를 구하는 수단;
    상기 모션 벡터 차분 중 상기 제2 프레임에 대한 모션 벡터 차분과 상기 예측 모션 벡터를 가산함으로써 상기 제2 프레임에 대한 모션 벡터를 복원하는 수단; 및
    상기 복원된 제2 프레임에 대한 모션 벡터를 이용하여 상기 제2 프레임을 복원하는 수단을 포함하는 비디오 디코더.
KR1020050037238A 2005-03-18 2005-05-03 시간적 레벨간 모션 벡터 예측을 이용한 비디오인코딩/디코딩 방법 및 장치 KR100703760B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/KR2006/000931 WO2006098586A1 (en) 2005-03-18 2006-03-15 Video encoding/decoding method and apparatus using motion prediction between temporal levels
US11/378,357 US20060209961A1 (en) 2005-03-18 2006-03-20 Video encoding/decoding method and apparatus using motion prediction between temporal levels

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US66281005P 2005-03-18 2005-03-18
US60/662,810 2005-03-18

Publications (2)

Publication Number Publication Date
KR20060101131A KR20060101131A (ko) 2006-09-22
KR100703760B1 true KR100703760B1 (ko) 2007-04-06

Family

ID=37632488

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050037238A KR100703760B1 (ko) 2005-03-18 2005-05-03 시간적 레벨간 모션 벡터 예측을 이용한 비디오인코딩/디코딩 방법 및 장치

Country Status (2)

Country Link
US (1) US20060209961A1 (ko)
KR (1) KR100703760B1 (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100714698B1 (ko) * 2005-08-29 2007-05-07 삼성전자주식회사 향상된 움직임 추정 방법, 상기 방법을 이용한 비디오인코딩 방법 및 장치
JP2007081720A (ja) * 2005-09-13 2007-03-29 Sanyo Electric Co Ltd 符号化方法
JP2008011158A (ja) * 2006-06-29 2008-01-17 Matsushita Electric Ind Co Ltd 動きベクトル探索方法及び動きベクトル探索装置
US20080095238A1 (en) * 2006-10-18 2008-04-24 Apple Inc. Scalable video coding with filtering of lower layers
US8127233B2 (en) * 2007-09-24 2012-02-28 Microsoft Corporation Remote user interface updates using difference and motion encoding
US8619877B2 (en) * 2007-10-11 2013-12-31 Microsoft Corporation Optimized key frame caching for remote interface rendering
US8121423B2 (en) * 2007-10-12 2012-02-21 Microsoft Corporation Remote user interface raster segment motion detection and encoding
US8106909B2 (en) * 2007-10-13 2012-01-31 Microsoft Corporation Common key frame caching for a remote user interface
FR2923125B1 (fr) * 2007-10-29 2010-10-22 Assistance Tech Et Etude De Ma Procede et systeme d'estimation de mouvement futur d'elements d'image a partir du mouvement passe dans un codeur video
US8619861B2 (en) * 2008-02-26 2013-12-31 Microsoft Corporation Texture sensitive temporal filter based on motion estimation
US8325801B2 (en) * 2008-08-15 2012-12-04 Mediatek Inc. Adaptive restoration for video coding
RU2011120192A (ru) * 2009-09-22 2013-10-27 Панасоник Корпорэйшн Устройство кодирования изображения, устройство декодирования изображения, способ кодирования изображения и способ декодирования изображения
US9307262B2 (en) * 2011-01-13 2016-04-05 Texas Instruments Incorporated Methods and systems for facilitating multimedia data encoding utilizing configured buffer information
US8891626B1 (en) 2011-04-05 2014-11-18 Google Inc. Center of motion for encoding motion fields
LT3343781T (lt) 2011-06-16 2022-03-10 Ge Video Compression, Llc Konteksto inicijavimas entropinio kodavimo metu
KR20140034292A (ko) 2011-07-01 2014-03-19 모토로라 모빌리티 엘엘씨 움직임 벡터 예측 설계 간소화
UA114674C2 (uk) 2011-07-15 2017-07-10 ДЖ.І. ВІДІЕУ КЕМПРЕШН, ЛЛСі Ініціалізація контексту в ентропійному кодуванні
KR101616010B1 (ko) 2011-11-04 2016-05-17 구글 테크놀로지 홀딩스 엘엘씨 비균일 움직임 벡터 그리드에 대한 움직임 벡터 스케일링
US9161012B2 (en) * 2011-11-17 2015-10-13 Microsoft Technology Licensing, Llc Video compression using virtual skeleton
US8908767B1 (en) 2012-02-09 2014-12-09 Google Inc. Temporal motion vector prediction
CN104185993B (zh) * 2012-03-30 2019-02-12 索尼公司 图像处理设备和方法以及记录介质
US9172970B1 (en) 2012-05-29 2015-10-27 Google Inc. Inter frame candidate selection for a video encoder
US11317101B2 (en) 2012-06-12 2022-04-26 Google Inc. Inter frame candidate selection for a video encoder
US9979960B2 (en) 2012-10-01 2018-05-22 Microsoft Technology Licensing, Llc Frame packing and unpacking between frames of chroma sampling formats with different chroma resolutions
US9503746B2 (en) 2012-10-08 2016-11-22 Google Inc. Determine reference motion vectors
US9485515B2 (en) 2013-08-23 2016-11-01 Google Inc. Video coding using reference motion vectors
CA2908305A1 (en) * 2013-03-30 2014-10-09 Shunyao LI Method and apparatus for decoding a variable quality video bitstream
WO2014175658A1 (ko) * 2013-04-24 2014-10-30 인텔렉추얼 디스커버리 주식회사 비디오 부호화 및 복호화 방법, 그를 이용한 장치
US9313493B1 (en) 2013-06-27 2016-04-12 Google Inc. Advanced motion estimation
US10368080B2 (en) 2016-10-21 2019-07-30 Microsoft Technology Licensing, Llc Selective upsampling or refresh of chroma sample values
CN114268797B (zh) * 2021-12-23 2024-02-06 北京达佳互联信息技术有限公司 用于视频的时域滤波的方法、装置、存储介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050053469A (ko) * 2003-12-01 2005-06-08 삼성전자주식회사 스케일러블 비디오 코딩 및 디코딩 방법, 이를 위한 장치
KR20050076160A (ko) * 2004-01-19 2005-07-26 삼성전자주식회사 스케일러블 비디오 스트림 재생 방법 및 장치
KR20060006341A (ko) * 2004-07-15 2006-01-19 삼성전자주식회사 스무딩 필터를 이용하는 비디오 디코딩 방법 또는 비디오디코더

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100281462B1 (ko) * 1998-03-30 2001-02-01 전주범 격행 부호화에서 이진 형상 신호의 움직임 벡터 부호화 방법
BRPI0413979A (pt) * 2003-08-26 2006-11-07 Thomson Licensing método e aparelho para minimizar o número de imagens de referência usadas para inter-codificação
KR100738076B1 (ko) * 2004-09-16 2007-07-12 삼성전자주식회사 웨이블렛 변환장치 및 그 방법과 이를 채용한 스케일러블영상부호화 장치 및 그 방법과 스케일러블 영상복호화 장치및 그 방법
US7671894B2 (en) * 2004-12-17 2010-03-02 Mitsubishi Electric Research Laboratories, Inc. Method and system for processing multiview videos for view synthesis using skip and direct modes
WO2006096612A2 (en) * 2005-03-04 2006-09-14 The Trustees Of Columbia University In The City Of New York System and method for motion estimation and mode decision for low-complexity h.264 decoder

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050053469A (ko) * 2003-12-01 2005-06-08 삼성전자주식회사 스케일러블 비디오 코딩 및 디코딩 방법, 이를 위한 장치
KR20050076160A (ko) * 2004-01-19 2005-07-26 삼성전자주식회사 스케일러블 비디오 스트림 재생 방법 및 장치
KR20060006341A (ko) * 2004-07-15 2006-01-19 삼성전자주식회사 스무딩 필터를 이용하는 비디오 디코딩 방법 또는 비디오디코더

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
1020050053469
1020050076160
1020060006341

Also Published As

Publication number Publication date
KR20060101131A (ko) 2006-09-22
US20060209961A1 (en) 2006-09-21

Similar Documents

Publication Publication Date Title
KR100703760B1 (ko) 시간적 레벨간 모션 벡터 예측을 이용한 비디오인코딩/디코딩 방법 및 장치
KR100714696B1 (ko) 다계층 기반의 가중 예측을 이용한 비디오 코딩 방법 및장치
KR100763182B1 (ko) 다계층 기반의 가중 예측을 이용한 비디오 코딩 방법 및장치
KR100763179B1 (ko) 비동기 픽쳐의 모션 벡터를 압축/복원하는 방법 및 그방법을 이용한 장치
KR100679011B1 (ko) 기초 계층을 이용하는 스케일러블 비디오 코딩 방법 및 장치
KR100703788B1 (ko) 스무딩 예측을 이용한 다계층 기반의 비디오 인코딩 방법,디코딩 방법, 비디오 인코더 및 비디오 디코더
KR100763181B1 (ko) 기초계층과 향상계층의 데이터를 바탕으로 예측 정보를코딩하여 코딩율을 향상시키는 방법 및 장치
KR100621581B1 (ko) 기초 계층을 포함하는 비트스트림을 프리디코딩,디코딩하는 방법, 및 장치
KR20060135992A (ko) 다계층 기반의 가중 예측을 이용한 비디오 코딩 방법 및장치
KR100703774B1 (ko) 인트라 코딩을 선택적으로 적용하여 인트라 bl 예측모드의 비디오 신호를 인코딩 및 디코딩하는 방법 및 장치
KR100834750B1 (ko) 엔코더 단에서 스케일러빌리티를 제공하는 스케일러블비디오 코딩 장치 및 방법
US20080013630A1 (en) Scalable Video Coding With Grid Motion Estimation and Compensation
KR20050078099A (ko) 적응적으로 키 프레임을 삽입하는 비디오 코딩 장치 및 방법
KR100703745B1 (ko) 비동기 프레임을 효율적으로 예측하는 비디오 코딩 방법 및장치
US20060250520A1 (en) Video coding method and apparatus for reducing mismatch between encoder and decoder
US20060165301A1 (en) Video coding method and apparatus for efficiently predicting unsynchronized frame
JP2006521039A (ja) オーバコンプリートウェーブレット展開での動き補償時間フィルタリングを使用した3次元ウェーブレットビデオ符号化
US20060088100A1 (en) Video coding method and apparatus supporting temporal scalability
WO2006132509A1 (en) Multilayer-based video encoding method, decoding method, video encoder, and video decoder using smoothing prediction
KR20050074151A (ko) 스케일러블 비디오 코딩에서 모션 벡터를 선정하는 방법및 그 방법을 이용한 비디오 압축 장치
WO2006104357A1 (en) Method for compressing/decompressing motion vectors of unsynchronized picture and apparatus using the same
WO2006098586A1 (en) Video encoding/decoding method and apparatus using motion prediction between temporal levels
WO2006109989A1 (en) Video coding method and apparatus for reducing mismatch between encoder and decoder
WO2006043754A1 (en) Video coding method and apparatus supporting temporal scalability

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

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140227

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150226

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee