KR20050075483A - 비디오 코딩 및 디코딩 방법, 및 이를 위한 장치 - Google Patents

비디오 코딩 및 디코딩 방법, 및 이를 위한 장치 Download PDF

Info

Publication number
KR20050075483A
KR20050075483A KR1020040002976A KR20040002976A KR20050075483A KR 20050075483 A KR20050075483 A KR 20050075483A KR 1020040002976 A KR1020040002976 A KR 1020040002976A KR 20040002976 A KR20040002976 A KR 20040002976A KR 20050075483 A KR20050075483 A KR 20050075483A
Authority
KR
South Korea
Prior art keywords
frame
temporal
frames
transform
inverse
Prior art date
Application number
KR1020040002976A
Other languages
English (en)
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 KR1020040002976A priority Critical patent/KR20050075483A/ko
Priority to PCT/KR2004/003476 priority patent/WO2005069629A1/en
Priority to US11/034,734 priority patent/US20050157793A1/en
Publication of KR20050075483A publication Critical patent/KR20050075483A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 비디오 코딩 및 디코딩에 관한 것으로 본 발명에 따른 비디오 코딩 방법은 가상 프레임을 추정하는 단계, 가상 프레임을 포함한 참조 프레임중 기준 프레임을 선정하고, 상기 선정된 기준 프레임을 사용하여 시간적 중복을 제거하는 단계, 시간적 중복 제거 단계에서 얻어진 모션 벡터 및 소정의 정보를 코딩하는 단계, 및 상기 시간적 중복이 제거된 프레임들로부터 변환계수들을 얻고 이를 양자화하여 비트스트림을 생성하는 단계를 포함한다.
비디오 디코딩 방법은 비트스트림을 입력받아 이를 해석하여 코딩된 프레임들에 대한 정보를 추출하는 단계, 코딩된 프레임들에 대한 정보를 역양자화하여 변환계수들을 얻는 단계, 및 얻어진 변환계수들의 역공간적 변환 및 가상 프레임을 포함한 기준 프레임을 사용한 역시간적 변환이 상기 코딩된 프레임들의 중복제거 순서의 역순서로 수행되어 상기 코딩된 프레임들을 복원하는 단계를 포함한다.
본 발명에 따르면 보다 높은 압축률로 비디오를 코딩할 수 있다.

Description

비디오 코딩 및 디코딩 방법, 및 이를 위한 장치{Method for video coding and decoding, and apparatus for the same}
본 발명은 비디오 압축에 관한 것으로서, 하나의 프레임을 예측하기 위해 여러 개의 프레임을 참조하는 경우, 보다 유사한 프레임에 더많은 가중치를 두어 참조하도록 하는 비디오 코딩 및 디코딩에 관한 것이다.
인터넷을 포함한 정보통신 기술이 발달함에 따라 문자, 음성뿐만 아니라 화상통신이 증가하고 있다. 기존의 문자 위주의 통신 방식으로는 소비자의 다양한 욕구를 충족시키기에 부족하며, 이에 따라 문자, 영상, 음악 등 다양한 형태의 정보를 수용할 수 있는 멀티미디어 서비스가 증가하고 있다. 멀티미디어 데이터는 그 양이 방대하여 대용량의 저장매체를 필요로하며 전송시에 넓은 대역폭을 필요로 한다. 예를 들면 640*480의 해상도를 갖는 24 bit 트루컬러의 이미지는 한 프레임당 640*480*24 bit의 용량 다시 말해서 약 7.37Mbit의 데이터가 필요하다. 이를 초당 30 프레임으로 전송하는 경우에는 221Mbit/sec의 대역폭을 필요로 하며, 90분 동안 상영되는 영화를 저장하려면 약 1200G bit의 저장공간을 필요로 한다. 따라서 문자, 영상, 오디오를 포함한 멀티미디어 데이터를 전송하기 위해서는 압축코딩기법을 사용하는 것이 필수적이다.
데이터를 압축하는 기본적인 원리는 데이터의 중복(redundancy)을 없애는 과정이다. 이미지에서 동일한 색이나 객체가 반복되는 것과 같은 공간적 중복이나, 동영상 프레임에서 인접 프레임이 거의 변화가 없는 경우나 오디오에서 같은 음이 계속 반복되는 것과 같은 시간적 중복, 또는 인간의 시각 및 지각 능력이 높은 주파수에 둔감한 것을 고려한 심리시각 중복을 없앰으로서 데이터를 압축할 수 있다.
데이터 압축의 종류는 소스 데이터의 손실 여부와, 각각의 프레임에 대해 독립적으로 압축하는지 여부와, 압축과 복원에 필요한 시간이 동일한 지 여부에 따라 각각 손실/무손실 압축, 프레임 내/프레임간 압축, 대칭/비대칭 압축으로 나눌 수 있다. 이 밖에도 압축 복원 지연 시간이 50ms를 넘지 않는 경우에는 실시간 압축으로 분류하고, 프레임들의 해상도가 다양한 경우는 스케일러블 압축으로 분류한다. 문자 데이터나 의학용 데이터 등의 경우에는 무손실 압축이 이용되며, 멀티미디어 데이터의 경우에는 주로 손실 압축이 이용된다.
한편 공간적 중복을 제거하기 위해서는 프레임 내 압축이 이용되며 시간적 중복을 제거하기 위해서는 프레임간 압축이 이용된다.
멀티미디어를 전송하기 위한 전송매체는 매체별로 그 성능이 다르다. 현재 사용되는 전송매체는 초당 수십 메가비트의 데이터를 전송할 수 있는 초고속통신망부터 초당 384 Kbit의 전송속도를 갖는 이동통신망 등과 같이 다양한 전송속도를 갖는다. MPEG-1, MPEG-2, H.263 또는 H.264와 같은 종전의 비디오 코딩은 모션 보상 예측 코딩법에 기초하여 시간적 중복은 모션 보상에 의해 제거하고 공간적 중복은 변환 코딩에 의해 제거한다. 이러한 방법들은 좋은 압축률을 갖고 있지만 주 알고리즘에서 재귀적 접근법을 사용하고 있어 트루 스케일러블 비트스트림(true scalable bitstream)을 위한 유연성을 갖지 못한다. 이에 따라 최근에는 웨이브렛 기반의 스케일러블 비디오 코딩에 대한 연구가 활발하다.
도 1은 종래의 프레임간 웨이브렛 비디오 코딩 과정을 나타낸 흐름도이다.
먼저 이미지들을 입력받는다(S110). 이미지는 복수개의 프레임들로 이루어진 프레임 그룹(Group of Picture; 이하, GOP라 함)단위로 받는다.
이미지를 입력받으면 모션추정을 한다(S120). 모션추정은 계층적 가변 사이즈 블록 매칭법(Hierarchical Variable Size Block Matching; 이하, HVSBM이라 함)을 이용하는데 이는 다음과 같다.
도 2를 참조하여, 먼저 원래 이미지 사이즈가 N*N인 경우, 웨이브렛 변환을 이용하여 레벨0(N*N), 레벨1(N/2*N/2), 레벨2(N/4*N/4)의 영상을 얻는다. 그리고 나서 레벨2의 이미지에 대하여 모션 추정 블록 사이즈를 16*16, 8*8, 4*4로 변경시키면서 각각의 블록에 해당되는 모션추정(Motion Estimation, ME) 및 절대 왜곡 크기(Magnitude of Absolute Distortion, 이하 MAD라 한다)를 구한다. 마찬가지로 레벨1의 이미지에 대해 모션추정 블록 사이즈를 32*32, 16*16, 8*8, 4*4로 변경시키면서 각각의 블록에 해당되는 모션추정 및 MAD와, 레벨0의 이미지에 대해 모션추정 블록 사이즈를 64*64, 32*32, 16*16, 8*8, 4*4로 변경시키면서 각각의 블록에 해당되는 모션추정 및 MAD를 구한다.
그리고 나서 MAD가 최소가 되도록 모션추정 트리를 선별(Pruning)하고(S130), 선별된 최적의 ME를 이용하여 모션보상 시간적 필터링(Motion Compensation Temporal Filtering; 이하, MCTF)을 수행한다(S140).
그후 공간적 변환 및 양자화과정을 수행하고(S150), 공간적 변환 및 양자화과정을 통해 생성된 데이터와, 모션추정 데이터에 헤더를 붙여 비트스트림을 생성한다(S160).
이때 상기 모션 추정 단계 및 시간적 필터링 단계에 있어서, 종래의 방법은 현재 프레임을 기준으로하여 순방향 및 역방향으로 모션 추정과정을 거친후 양자간에 보다 적은 MAD값을 갖는 경우를 선택하고, 해당 프레임을 기준으로하여 시간적 필터링 과정을 수행하였다.
도 3a는 종래의 각 프레임 블록간 모션 추정 방향을 나타낸 도면이며, 도 3b는 종래의 모션 추정 과정을 나타낸 흐름도이다.
최초 모션 추정을 위한 프레임이 입력되면(S210) 해당 프레임에 대해 시간적으로 앞선 프레임을 참조하여 순방향 모션 추정과정(110)을 거쳐 MAD값을 계산한다(S220). 또한 동일한 프레임에 대해 시간적으로 뒤진 프레임을 참조하여 역방향 모션 추정과정(220)을 거친후 이에 대한 MAD값을 계산한다(S230).
순방향 및 역방향에 대한 모션추정 및 MAD값 계산이 마쳐지면 각 MAD값을 비교하여 MAD값이 더 작은쪽을 선택하고(S240), 해당 블록에 대해서는 선택된 방향(순방향 또는 역방향)으로의 모션추정에 따른 모션벡터(Motion Vector)를 구한다(S250). 최종적으로 선택된 방향에 따른 모션추정 결과를 통해 시간적 필터링 과정을 수행하게 된다.
상술한 바와 같이 스케일러블 비디오 코덱은 입력되는 비디오 스트림에 대한 시간적 필터링, 공간적 변환 및 분석된 데이터를 양자화하는 3 단계로 크게 구분할수 있으며, 상기 단계중 시간적 필터링 단계는 연속된 프레임의 시간적 중복을 효과적으로 제거하기 위해서 모션 추정 과정에 따른 최적의 모션 벡터를 찾는 것이 중요하다.
그러나 상기와 같은 종래기술은 급변하는 움직임을 갖는 물체가 영상 프레임에 나타날 경우 해당 물체의 앞뒤 프레임만으로는 최적의 모션벡터를 찾기위한 모션추정에 한계가 있으며, 현재프레임과 유사도가 높은 프레임을 추가적으로 선정하여 모션추정을 수행함으로써 최적의 모션벡터를 찾기위한 필요성이 제기되었다.
본 발명은 상술한 필요성에 의해 안출한 것으로, 본 발명은 가중치가 적용된 가상의 프레임을 참조프레임에 포함하여 기준 프레임을 선정함으로써 비디오 코딩에 있어서 보다 높은 압축률을 제공하는데 있다.
상기한 목적을 달성하기 위한 기술적 수단으로써, 본 발명의 일 실시예에 따른 비디오 인코더는 비디오 프레임을 입력받아 가상 프레임을 구성하고, 상기 가상 프레임을 포함한 참조 프레임과의 비교를 통해 상기 입력되는 프레임들의 시간적 중복을 제거하는 시간적 변환부, 상기 프레임들에 대한 공간적 중복을 제거하는 공간적 변환부, 상기의 시간적 중복 및 공간적 중복을 제거하여 얻어지는 변환계수들을 양자화하는 양자화부, 상기 시간적 변환부로부터 얻어진 모션 벡터 및 소정의 정보를 코딩하는 모션벡터 인코딩부, 및 상기 양자화된 변환계수들 및 상기 모션벡터 인코딩부에 의해 코딩된 정보를 이용하여 비트스트림을 생성하는 비트스트림 생성부를 포함한다.
상기 시간적 변환부는 상기 공간적 변환부에 앞서 상기 입력되는 프레임들에 대한 시간적 중복을 제거하고, 상기 공간적 변환부는 상기 시간적 중복이 제거된 프레임들에 대해 공간적 중복을 제거하여 변환계수들을 얻을수 있다. 이때, 상기 공간적 변환부는 웨이브렛 변환을 통해 공간적 중복을 제거하는 것이 바람직 하다.
바람직하게는, 상기 시간적 변환부는 모션 추정중인 현재 프레임과 시간적으로 이격된 프레임 사이의 유사도를 나타내는 가중치를 계산하는 가중치 계산부, 상기 가중치의 적용으로 추정된 가상 프레임을 포함한 참조 프레임중 기준 프레임을 선정하고 상기 모션 추정중인 현재 프레임과 상기 기준 프레임을 비교하여 모션 벡터를 구하는 모션 추정부, 및 상기 모션 벡터를 이용하여 상기 입력받은 프레임들에 대하여 시간적 필터링을 하는 시간적 필터링부를 포함한다.
바람직하게는, 상기 참조 프레임은 상기 모션 추정중인 현재 프레임보다 시간적으로 한단계 앞선 프레임과 시간적으로 한단계 뒤진 프레임 및 상기 가상 프레임으로 구성되며, 상기 모션 추정중인 현재 프레임과 상기 참조 프레임들과의 모션추정 결과 절대 왜곡 크기가 최소로 나타난 참조 프레임을 기준 프레임으로 선정한다.
바람직하게는, 상기 가상 프레임의 추정은 에 의해 계산되며, 이때 상기 p는 상기 가중치값이고, 상기 Sn-1 및 Sn+1 는 각각 현재 모션 추정중인 프레임보다 시간적으로 한단계 앞선 프레임 및 시간적으로 한단계 뒤진 프레임이고, 상기 k는 각 프레임의 모션추정 비교 대상이 되는 블록이다.
상기 가중치값은, 상기 모션 추정 중인 현재 프레임과 상기 가상 프레임의 차이의 절대값인 을 최소화하도록 선택되는 것이 바람직 하며, 보다 바람직하게는 상기 가중치값 p는 에의해 계산되며, 상기 Sn 는 상기 모션 추정중인 현재 프레임이다.
상기 가상 프레임이 기준 프레임으로 선택된 경우, 상기 모션 벡터 인코딩부는 상기 가상 프레임의 추정을 위한 상기 가중치를 추가로 코딩하는 것이 바람직하다.
상기 비트스트림 생성부는, 상기 모션 벡터 인코딩부에 의해 코딩된 가중치에 대한 정보를 포함하여 상기 비트스트림을 생성하는 것이 바람직하다.
상기한 목적을 달성하기 위한 기술적 수단으로써, 본 발명의 일 실시예에 따른 비디오 코딩 방법은 비디오 시퀀스를 구성하는 복수의 프레임들을 입력받아 상기 입력받은 프레임으로부터 가상 프레임을 추정하는 단계, 상기 가상 프레임을 포함한 참조 프레임중 기준 프레임을 선정하고, 상기 선정된 기준 프레임을 사용하여 시간적 중복을 제거하는 단계, 상기 시간적 중복 제거 단계에서 얻어진 모션 벡터 및 소정의 정보를 코딩하는 단계, 및 상기 시간적 중복이 제거된 프레임들로부터 변환계수들을 얻고 이를 양자화하여 비트스트림을 생성하는 단계를 포함한다.
바람직하게는, 상기 변환계수들을 양자화하여 비트스트림을 생성하는 단계에서, 상기 변환계수들은 상기 시간적 중복이 제거된 프레임들을 공간적 변환하여 얻어지며, 이때 상기 공간적 변환은 웨이브렛 변환일 수 있다.
상기 가상 프레임의 추정은, 모션 추정중인 현재 프레임과 시간적으로 시간적으로 이격된 프레임 사이의 유사도를 나타내는 가중치를 사용한 추정일 수 있으며, 이때 상기 참조 프레임은, 상기 모션 추정중인 현재 프레임보다 시간적으로 한단계 앞선 프레임과 시간적으로 한단계 뒤진 프레임 및 상기 가상 프레임으로 구성되는 것이 바람직하다.
바람직하게는, 상기 기준 프레임은 상기 모션 추정중인 현재 프레임과 상기 참조 프레임들과의 모션추정 결과 절대 왜곡 크기가 최소로 나타난 참조 프레임이다.
바람직하게는, 상기 가상 프레임의 추정은 에 의해 계산되며, 이때 상기 p는 상기 가중치값이고, 상기 Sn-1 및 Sn+1 는 각각 현재 모션 추정중인 프레임보다 시간적으로 한단계 앞선 프레임 및 시간적으로 한단계 뒤진 프레임이고, 상기 k는 각 프레임의 모션추정 비교 대상이 되는 블록이다.
상기 가중치값은, 상기 모션 추정 중인 현재 프레임과 상기 가상 프레임의 차이의 절대값인 을 최소화하도록 선택되는 것이 바람직하며, 이를위해 보다 바람직하게는, 상기 가중치값 p는 에의해 계산되며, 이때 상기 Sn 는 상기 모션 추정중인 현재 프레임이다.
상기 가상 프레임이 기준 프레임으로 선택된 경우, 상기 코딩되는 소정의 정보에는 상기 가상 프레임의 추정을 위한 상기 가중치가 포함되는 것이 바람직하다.
바람직하게는 상기 생성되는 비트스트림은 상기 코딩되는 가중치에 대한 정보를 포함한다.
상기한 목적을 달성하기 위한 기술적 수단으로써, 본 발명의 일 실시예에 따른 비디오 디코더는, 입력받은 비트 스트림을 해석하여 코딩된 프레임들에 대한 정보를 추출하는 비트스트림 해석부, 상기 코딩된 프레임들에 대한 정보를 역양자화하여 변환계수들을 얻는 역양자화부, 역공간적 변환과정을 수행하는 역공간적 변환부, 및 가상 프레임을 포함한 기준 프레임을 사용하여 역시간적 변환과정을 수행하는 역시간적 변환부를 포함하여, 중복제거 순서의 역순서에 따라 상기 변환계수들에 대한 역공간적 변환과정과 역시간적 변환과정을 하여 프레임들을 복원한다.
상기 역공간적 변환부는, 상기 역시간적 변환부에 앞서 역공간적 변환을 수행하고, 상기 역 시간적 변환부는 상기 역공간적 변환된 프레임에 대해 역시간적 변환을 수행할 수 있으며, 이때 상기 역공간적 변환부는, 역웨이브렛 변환 방식으로 역공간적 변환작업을 수행하는 것이 바람직하다.
상기 역시간적 변환부는 역시간적 변환중인 현재 프레임이 코딩단계에서 가상 프레임을 기준프레임으로 하여 시간적 필터링된 경우, 상기 비트스트림 해석부가 상기 비트스트림을 해석하여 제공한 가중치를 사용하여 가상 프레임을 추정하고 상기 가상 프레임을 기준 프레임으로하여 역시간적 변환을 수행하는 것이 바람직하다.
바람직하게는, 상기 가상 프레임은에 의해 추정되며, 이때 상기 p는 상기 가중치이고, 상기 Sn-1 및 Sn+1 는 상기 역시간적 변환중인 현재 프레임보다 시간적으로 한단계 앞선 프레임 및 시간적으로 한단계 뒤진 프레임이고, 상기 k는 상기 프레임간 변환 대상이되는 블록이다.
상기한 목적을 달성하기 위한 기술적 수단으로써, 본 발명의 일 실시예 따른 비디오 디코딩 방법은 비트스트림을 입력받아 이를 해석하여 코딩된 프레임들에 대한 정보를 추출하는 단계, 상기 코딩된 프레임들에 대한 정보를 역양자화하여 변환계수들을 얻는 단계, 및 상기 변환계수들의 역공간적 변환 및 가상 프레임을 포함한 기준 프레임을 사용한 역시간적 변환이 상기 코딩된 프레임들의 중복제거 순서의 역순서로 수행되어 상기 코딩된 프레임들을 복원하는 단계를 포함한다.
바람직하게는, 상기 프레임 복원단계는 상기 변환계수들을 역공간적 변환하고, 그후 상기 가상 프레임을 포함한 기준 프레임을 사용하여 역시간적 변환과정을 수행며, 이경우 상기 역공간적 변환은 웨이브렛 변환방식일 수 있다.
상기 역시간적 변환단계는 역시간적 변환중인 현재 프레임이 코딩단계에서 가상 프레임을 기준프레임으로 하여 시간적 필터링된 경우, 상기 비트스트림 해석단계에서 상기 비트스트림이 해석되어 제공된 가중치를 사용하여 가상 프레임을 추정하고 상기 가상 프레임을 기준 프레임으로하여 역시간적 변환 과정을 수행하는 것이 바람직하다.
바람직하게는, 상기 가상 프레임은에 의해 추정되며, 이때 상기 p는 상기 가중치이고, 상기 Sn-1 및 Sn+1 는 상기 역시간적 변환중인 현재 프레임보다 시간적으로 한단계 앞선 프레임 및 시간적으로 한단계 뒤진 프레임이고, 상기 k는 상기 프레임간 변환 대상이되는 블록이다.
이하 본 발명의 실시예에 따른 비디오 코딩 및 디코딩 방법 및 이를 위한 장치에 대해 첨부한 도면을 참조하여 상세하게 설명한다.
도 4는 본 발명의 일 실시예에 따른 비디오 인코더의 구성을 나타내는 블록도이다.
도시된 비디오 인코더는 복수의 프레임들의 시간적 중복을 제거하는 시간적 변환부(210)와, 공간적 중복을 제거하는 공간적 변환부(220)와, 시간적 및 공간적 중복이 제거되어 생성된 변환계수들을 양자화하는 양자화부(230)와, 모션벡터, 소정의 가중치 및 기준 프레임 번호를 인코딩하는 인코딩부(240), 및 양자화된 변환계수들과 인코딩부(240)에의해 인코딩된 데이타 및 기타 정보를 포함하여 비트스트림을 생성하는 비트스트림 생성부(250)를 포함한다.
시간적 변환부(210)는 프레임간 움직임을 보상하여 시간적 필터링을 하기 위하여 가중치 계산부(212), 움직임 추정부(214) 및 시간적 필터링부(216)를 포함한다.
먼저 가중치 계산부(212)는 최적의 모션 벡터를 얻기위해 가중치가 적용된 가상의 프레임을 추정하기 위한 가중치 값을 계산한다.
입력되는 프레임에대한 시간적 필터링의 기준이 되는 프레임(이하 기준 프레임이라 한다)이 시간적 필터링중인 현재 프레임과 유사도가 높을수록 프레임에 대한 압축률은 높아진다. 따라서 입력되는 각 프레임에 대해 최적의 시간적 중복 제거 과정을 수행하기 위해서는 시간적 필터링중인 현재 프레임과 복수의 프레임을 비교하여 최적의 유사도를 갖는 프레임을 기준 프레임으로 선정하여 시간적 중복을 제거하는 것이 바람직 하다(이하 기준 프레임의 선정을 위한 후보 프레임들을 참조 프레임이라 한다).
일반적으로 현재 프레임보다 시간적으로 한단계 앞선 프레임과 시간적으로 한단계 뒤진 프레임이 현재 프레임과 가장 높은 유사도를 나타낼 가능성이 가장 높다. 그러나 빠르게 이동하는 물체가 포함된 프레임의 경우 상기한 프레임들이 현재 프레임과 많은 차이값을 갖게될 수도 있으므로, 이러한 경우를 위해 보다 적합한 참조 프레임이 필요할 수 있다.
이를 위해 현재 프레임과 유사한 정도에 따라 현재 프레임보다 시간적으로 앞선 프레임(이하 N-1프레임이라 한다)과 현재 프레임보다 시간적으로 뒤진 프레임(이하 N+1프레임이라 한다)에 소정의 가중치를 곱하고, 상기 가중치가 곱해진 N-1프레임 및 N+1프레임의 합에 의해 추정될 수 있는 가상의 가중치 프레임(이하 가상 프레임이라 한다)을 참조 프레임으로 선택할 수 있다. 이때 N-1 프레임 및 N+1 프레임은 각각 현재 프레임보다 시간적으로 한단계 앞선 프레임 및 시간적으로 한단계 뒤진 프레임일 수 있다. 상기 가상 프레임은 로 나타낼 수 있는데, 상기 p는 상기 가중치를 의미하고 상기 Sn-1 및 Sn+1 는 각각 N-1프레임 및 N+1프레임을 의미하고 상기 k는 각 프레임에서 모션추정 대상이 되는 블록을 의미한다.
상기 가상 프레임을 위한 가중치 p는 다음 수학식으로 표현될 현재 프레임 및 가상프레임의 차이(E)를 최소화하는 값으로 결정되는 것이 바람직하다.
상기 [수학식 1]의 계산 결과를 최소화 시키는 조건을 만족하는 가중치는 다음의 수학식을 이용하여 계산될 수 있다.
즉, 본 발명의 실시예에서 가중치는 상기한 [수학식 1]의 결과를 최소화시켜야 하며, [수학식 2]를 사용하여 계산될 수 있다.
모션 추정부(214)는 모션 추정 과정이 수행 중인 현재 프레임의 각 매크로블록과 이에 대응되는 참조 프레임들의 각 매크로블록을 비교하여 최적의 모션 벡터들을 구한다. 이때 상기한 가상 프레임 또한 참조 프레임에 포함될 수 있다. 이하, 도 5를 참조하여 모션 추정부(214)의 동작을 설명한다.
도 5는 가상프레임을 참조 프레임에 포함하여 모션 추정하는 상태를 나타낸 도면이다. 모션 추정부(214)는 가중치 계산부(212)로부터 입력된 가중치를 사용하여 가상 프레임(340)을 생성할 수 있다. 이러한 가상 프레임(340)은 N-1프레임(310) 및 N+1프레임(330)과 함께 현재 프레임(320)과의 비교 대상이 되는 참조 프레임을 형성한다. 모션 추정부(214)는 현재 프레임(310)과 각 참조 프레임들(310, 330, 340)과의 모션 추정을(순방향 ME, 역방향 ME, 가중치방향 ME) 통해 각 모션추정 결과에 따른 모션벡터 얻고, 각 방향의 모션추정에 따른 MAD값을 계산한다. 이때 가중치 방향 모션 추정의 경우 그 대상이 되는 블록은 가상프레임을 구성하는 가상 블록이다. 그후 계산된 MAD값중 가장 작은 값을 나타내는 방향의 프레임을 기준 프레임으로 선정하여 각 블록에 대한 모션추정결과에 따른 최적의 모션벡터를 얻게된다.
시간적 필터링부(216)는 모션 추정부(214)에 의해 구해진 모션 벡터와 해당 모션 벡터가 구해진 참조 프레임을 현재 프레임에 대한 시간적 중복 제거의 기준프레임으로 삼고, 해당 기준 프레임에 대한 모션 벡터들에 대한 정보를 이용하여 시간적 필터링을 수행한다. 만약 모션 추정부(214)에 의해 선별된 기준 프레임이 가상프레임인 경우, 시간적 필터링부(216)는 모션 추정부(214)로부터 해당 가상 프레임을 계산하기 위한 가중치를 입력받아야 한다.
시간적 중복이 제거된 프레임들, 즉, 시간적 필터링된 프레임들은 공간적 변환부(220)를 거쳐 공간적 중복이 제거된다. 공간적 변환부(220)는 공간적 변환을 이용하여 시간적 필터링된 프레임들의 공간적 중복을 제거하는데, 본 실시예에서는 웨이브렛 변환을 사용한다.
현재 알려진 웨이브렛 변환은 하나의 프레임을 4등분하고, 전체 이미지와 거의 유사한 1/4 면적을 갖는 축소된 이미지(L 이미지)를 상기 프레임의 한쪽 사분면에 대체하고 나머지 3개의 사분면에는 L 이미지를 통해 전체 이미지를 복원할 수 있도록 하는 정보(H 이미지)로 대체한다. 마찬가지 방식으로 L 프레임은 또 1/4 면적을 갖는 LL 이미지와 L 이미지를 복원하기 위한 정보들로 대체될 수 있다. 이러한 웨이브렛 방식을 사용하는 이미지 압축법은 JPEG2000이라는 압축방식에 적용되고 있다. 웨이브렛 변환을 통해 프레임들의 공간적 중복을 제거할 수 있고, 또 웨이브렛 변환은 DCT 변환과는 달리 원래의 이미지 정보가 변환된 이미지에 축소된 형태로 저정되어 있으므로 축소된 이미지를 이용하여 공간적 스케일러빌리티를 갖는 비디오 코딩을 가능하게 한다. 그러나 웨이브렛 변환방식은 예시적인 것으로서 공간적 스케일러빌리티를 달성하지 않아도 되는 경우라면 기존에 MPEG-2와 같은 동영상 압축방식에 널리 사용되는 DCT 방법을 사용할 수도 있다.
시간적 필터링된 프레임들은 공간적 변환을 거쳐 변환계수들이 되는데, 이는 양자화부(230)에 전달되어 양자화된다. 양자화부(230)는 실수형 계수들인 변환계수들을 양자화하여 정수형 변환계수들로 바꾼다. 즉, 양자화를 통해 이미지 데이터를 표현하기 위한 비트량을 줄일 수 있는데, 본 실시예에서는 임베디드 양자화 방식을 통해 변환계수들에 대한 양자화 과정을 수행한다.
임베디드 양자화 방식을 통해 변환계수들에 대한 양자화를 수행함으로써 양자화에 의해 필요한 정보량을 줄일 수 있고, 임베디드 양자화에 의해 SNR 스케일러빌리티를 얻을 수 있다. 임베디드라는 말은 코딩된 비트스트림이 양자화를 포함한다는 의미를 지칭하는데 사용된다. 다시 말하면, 압축된 데이터는 시각적으로 중요한 순서대로 생성되거나 시각적 중요도로 표시된다(tagged by visual importance). 실제 양자화(또는 시각적 중요도) 레벨은 디코더나 전송 채널에서 기능을 할 수 있다.
만일 전송 대역폭, 저장용량, 디스플레이 리소스가 허락된다면, 이미지는 손실없이 복원될 수 있다. 그러나 그렇지 않은 경우라면 이미지는 가장 제한된 리소스에 요구되는 만큼만 양자화된다. 현재 알려진 임베디드 양자화 알고리즘은 EZW, SPIHT, EZBC, EBCOT 등이 있으며, 본 실시예에서는 알려진 알고리즘 중 어느 알고리즘을 사용해도 무방하다.
모션벡터 인코딩부(240)는 모션 추정부(214)에 의해 입력되는 가중치, 모션벡터 및 모션 벡터가 구해진 기준 프레임 번호를 인코딩하여 비트스트림 생성부(250)로 출력한다.
비트스트림 생성부(250)는 코딩된 이미지 정보, 가중치, 모션벡터 및 기준 프레임 번호에 관한 정보 등이 포함된 데이터에 헤더를 붙여서 비트스트림을 생성한다.
한편, 공간적 중복을 제거할 때 웨이브렛 변환을 사용하는 경우에 원래 변환된 프레임에 원래 이미지에 대한 형태가 남아 있는데, 이에 따라 DCT 기반의 동영상 코딩 방법과는 달리 공간적 변환을 거쳐 시간적 변환을 한 후에 양자화하여 비트스트림을 생성할 수도 있다. 이에 대한 다른 실시예는 도 6을 통해 설명한다.
도 6은 본 발명의 다른 실시예에 따른 비디오 인코더의 구성을 나타내는 블록도이다.
본 실시예에 따른 비디오 인코더는 비디오 시퀀스를 구성하는 복수의 프레임들에 대한 공간적 중복을 제거하는 공간적 변환부(410)와 시간적 중복을 제거하는 시간적 변환부(420)와 프레임들에 대한 공간적 및 시간적 중복이 제거하여 얻은 변환계수들을 양자화하는 양자화부(430)와 모션벡터, 소정의 가중치 및 기준 프레임 번호를 인코딩하는 모션벡터 인코딩부(440), 및 양자화된 변환계수들과 인코딩부(240)에의해 인코딩된 데이타 및 기타 정보를 포함하여 비트스트림을 생성하는 비트스트림 생성부(450)를 포함한다.
변환계수라는 용어와 관련하여, 종래에는 동영상 압축에서 시간적 필터링을 한 후에 공간적 변환을 하는 방식이 주로 이용되었기 때문에 변환계수라는 용어는 주로 공간적 변환에 의해 생성되는 값을 지칭하였다. 즉, 변환계수는 DCT 변환에 의해 생성된 경우에 DCT 계수라는 용어로 사용되기도 했으며, 웨이브렛 변환에 의해 생성된 경우에 웨이브렛 계수라는 용어로 사용되기도 했다. 본 발명에서 변환계수는 프레임들에 대한 공간적 및 시간적 중복을 제거하여 생성된 값으로서 양자화(임베디드 양자화) 되기 이전의 값을 의미한다.
즉, 도 4의 실시예에서는 종전과 마찬가지로 변환계수는 공간적 변환을 거쳐서 생성된 계수를 의미하나, 도 6의 실시예에서 변환계수는 시간적 변환을 거쳐서 생성된 계수를 의미할 수 있다는 점을 유의해야 한다.
먼저 공간적 변환부(410)는 비디오 시퀀스를 구성하는 복수의 프레임들의 공간적 중복을 제거한다. 이 경우에 공간적 변환부는 웨이브렛 변환을 사용하여 프레임들의 공간적 중복을 제거한다. 공간적 중복이 제거된 프레임들, 즉, 공간적 변환된 프레임들은 시간적 변환부(420)에 전달된다.
시간적 변환부(410)는 공간적 변환된 프레임들에 대한 시간적 중복을 제거하는데, 이를 위하여 가중치 계산부(422), 움직임 추정부(424) 및 시간적 필터링부(426)를 포함한다. 본 실시예에서 시간적 변환부(420)의 동작은 도 4의 실시예와 같은 방식으로 동작되지만 다른 점은 도 4의 실시예와는 달리 입력받는 프레임들은 공간적 변환된 프레임들이라는 점이다. 또한, 시간적 변환부(420)는 공간적 변환된 프레임들에 대하여 시간적 중복을 제거한 뒤에 양자화를 위한 변환 계수들을 만든다는 점도 다른 점이라고 할 수 있다.
양자화부(430)는 변환 계수들을 양자화하여 양자화된 이미지 정보(코딩된 이미지 정보)를 만들고, 이를 비트스트림 생성부(450)에 제공한다. 양자화는 도 4의 실시예와 마찬가지로 임베디드 양자화를 하여 최종적으로 생성될 비트스트림에 대한 SNR 스케일러빌리티를 얻는다.
모션벡터 인코딩부(440)는 모션 추정부(414)에 의해 입력되는 모션벡터 및 모션 벡터가 구해진 기준 프레임 번호를 인코딩하는데, 이때 임의의 프레임에 대한 기준 프레임이 가상 프레임인 경우에는 가상 프레임을 추정할 수 있는 가중치 값 또한 인코딩 하여야 한다.
비트스트림 생성부(450)는 코딩된 이미지 정보와 움직임 벡터에 관한 정보 등을 포함하고 헤더를 붙여 비트스트림을 생성한다.
한편, 도 4의 비트스트림 생성부(250)와 도 6의 비트스트림 생성부(250)는 도 4의 실시예에 따라 비디오 시퀀스를 코딩하였는지 도 6의 실시예에 따라 비디오 시퀀스를 코딩하였는지에 관해, 이를 디코딩측에서 알 수 있도록 비트스트림에 시간적 중복과 공간적 중복을 제거한 순서에 대한 정보(이하, 중복제거 순서라 함)를 포함할 수 있다.
중복제거 순서를 비트스트림에 포함하는 방식은 여러가지 방식이 가능하다.
어느 한 방식을 기본으로 정하고 다른 방식은 별도로 비트스트림에 표시할 수도 있다. 예를 들면, 도 4의 방식이 기본적인 방식인 경우에 도 4의 스케일러블 비디오 인코더에서 생성된 비트스트림에는 중복제거 순서에 대한 정보를 표시하지 않고, 도 6의 스케일러블 비디오 인코더에 의해 생성된 비트스트림의 경우에만 중복제거 순서를 포함시킬 수 있다. 반면에 중복제거 순서에 대한 정보를 도 4의 방식에 의한 경우나 도 6의 방식에 의한 경우 모두에 표시할 수도 있다.
도 4의 실시예에 따른 비디오 인코더와 도 6의 실시예에 따른 비디오 인코더의 기능을 모두 갖는 비디오 인코더를 구현하고, 비디오 시퀀스를 도 4의 방식과 도 6의 방식으로 코딩하고 비교하여 효율이 좋은 코딩에 의한 비트스트림을 생성할 수도 있다. 이러한 경우에는 비트스트림에 중복제거 순서를 포함시켜야 한다. 이 때 중복제거 순서는 비디오 시퀀스 단위로 결정할 수도 있고, GOP 단위로 결정할 수도 있다. 전자의 경우에는 비디오 시퀀스 헤더에 중복제거 순서를 포함하는 것이 바람직하며, 후자의 경우에는 GOP 헤더에 중복제거 순서를 포함하는 것이 바람직하다.
상기 도 4 및 도 6의 실시예들은 모두 하드웨어로 구현될 수도 있으나, 소프트웨어 모듈과 이를 실행시킬 수 있는 컴퓨팅 능력을 갖는 장치로도 구현할 수 있음을 유의해야 한다.
도 7은 본 발명의 일 실시예에 따른 비디오 코딩 방법을 나타낸 흐름도이다.
먼저 이미지들을 입력받는다(S310). 이미지는 복수개의 프레임들로 이루어진 GOP 단위로 받는다. 하나의 GOP는 계산 및 취급의 편의상 2n(단, n은 자연수)개의 프레임들로 구성되는 것이 바람직하다. 즉, 2, 4, 8, 16, 32 등이 될 수 있다.
하나의 GOP를 구성하는 프레임들의 수가 증가하면 비디오 코딩의 효율은 증가하지만 버퍼링의 시간 및 코딩시간이 길어지는 성질을 갖고 프레임들의 수가 감소하면 비디오 코딩의 효율이 감소하는 성질을 갖는다.
이미지를 입력받으면 가중치 계산부(212)는 상기한 [수학식 1] 및 [수학식 2]를 만족시키는 소정의 가중치를 계산한다(S320). 계산된 가중치는 모션 추정부(214)에서 가상 프레임을 추정하기 위해 사용되는데, 추정된 가상 프레임은 N-1프레임 및 N+1프레임과 함께 현재 프레임과 비교되어 모션추정 과정을 거친다(S330). 기본적인 모션추정은 도 1을 통해 설명한 종전의 방법과 같은 계층적 가변 사이즈 블록 매칭법(Hierarchical Variable Size Block Matching; 이하, HVSBM이라 함)을 이용하는 것이 바람직하다.
모션 추정결과 가장 작은 MAD를 나타내는 프레임이 기준프레임으로 선택되어 종전 기술과 마찬가지로 선별작업을 거치게 되고(S340), 선별된 모션벡터를 이용하여 시간적 필터링부(216)는 시간적 중복을 제거한다(S350).
시간적 중복이 제거된 프레임은 공간적 변환부(220) 및 양자화부(230)를 통해 공간적 변환 및 양자화과정을 거치게 된다(S360). 끝으로 상기 공간적 변환 및 양자화과정을 통해 생성된 데이터와, 엔터딩부(240)에 의해 코딩된 모션벡터 데이터, 가중치, 및 기준프레임 번호 데이터에 소정의 정보가 더해진 비트스트림이 비트스트림 생성부(250)에 의해 생성된다(S370).
상기의 과정중 공간적 변환을 거치는 단계는 가중치 계산단계(S320) 보다 선행될 수 있며, 이러한 경우 공간적 변환은 웨이브렛 변환이어야 한다.
따라서 비트스트림 생성단계(S370)는 공간적 변환단계와 시간적 변환단계(S320 내지 S350) 중 어느 단계가 선행하였는지에 관한 정보를 추가적으로 생성할 수도 있다.
도 8는 본 발명의 일 실시예에 따른 모션벡터를 구하는 과정 보다 상세히 나타낸 흐름도이다.
최초 모션 추정을 위한 프레임이 입력되면(S410) 해당 프레임에 대해 순방향 및 역방향 모션 추정과정 통해 각 방향에 대한 모션 벡터 및 MAD값을 구한다(S420, S430). 또한 가중치 계산부(212)에 의해 계산된 소정의 가중치값을 사용하여, N-1프레임과 N+1프레임에 각각 가중치를 곱하고 상기 각 결과의 합으로 추정할 수 있는 가상 프레임을 참조하여 현재 프레임에 대한 모션 추정과정을 통해 모션 벡터 및 MAD값을 구한다(S450). 상기 가상프레임은 에 의해 추정할 수 있으며 이에 관한 설명은 이미 상술한 바와 같다.
이렇게 계산된 세개의 MAD값을 비교하여 최소의 MAD가 계산된 방향을 선택하고(S450), 상기 선택된 MAD값이 계산된 프레임을 기준프레임으로 선정하여 해당 프레임과의 모션추정결과 생성된 모션벡터를 얻게된다(S460).
상술한 과정에 의해 얻어진 모션 벡터를 사용하여 시간적 필터링부(216)는 현재 프레임에 대해 시간적 중복을 제거하는데, 이때 기준 프레임이 가상프레임인 경우 가상 프레임을 추정할 수 있도록 가중치 값 또한 시간적 필터링부(216)에 전달된다.
도 9은 본 발명의 일 실시예에 따른 비디오 디코더를 나타내는 블록도이다.
도시된 비디오 디코더는 비트스트림 해석부(510), 역양자화부(520), 역공간적 변환부(530), 및 역시간적 변환부(540)을 포함한다.
먼저 비트스트림 해석부(510)는 입력된 비트스트림을 해석하여 코딩된 이미지 정보(코딩된 프레임들)와 각 이미지 정보를 복원하기위한 모션벡터, 기준 프레임 번호를 추출하며, 해당 이미지 정보가 가상 프레임을 기준 프레임으로 하여 시간적 필터링 된경우 보내지는 가중치를 추출한다.
상기 추출된 이미지 정보는 역양자화부(520)에 의해 역양자화되어 변환계수들로 바뀐다. 변환계수들은 역공간적 변환부(530)에 의해 역공간적 변환된다. 역공간적 변환은 코딩된 프레임들의 공간적 변환과 관련되는데 공간적 변환 방식으로 웨이브렛 변환이 사용된 경우에 역공간적 변환은 역웨이브렛 변환을 수행하며, 공간적 변환 방식이 DCT 변환인 경우에는 역DCT 변환을 수행한다.
역공간적 변환을 거쳐 변환계수들은 시간적 필터링된 프레임들로 변환되는데, 이 프레임들은 역시간적 변환부(540)에 의해 역시간적 변환된다. 이때 역시간적 변환을위해 비트스트림의 해석에 의해 얻어진 모션 벡터와 기준 프레임 번호에 관한 정보가 사용된다. 만약 역시간적 변환과정에 있는 프레임이 코딩단계에서 가상프레임을 기준 프레임으로 하여 시간적 필터링 된 것이라면 가상 프레임을 추정하기 위한 가중치가 비트스트림 해석에 의해 추가로 얻어지고 본 프레임을 역시간적 변환하기 위한 기준 프레임인 가상 프레임은 을 계산하여 추정할 수 있다.
본 식에 관련된 내용은 이미 상술한 바와 같다.
도시된 디코더는 그 실시예에 따라서 역시간적 변환부가 역공간적 변환부에 앞설수도 있으며, 또는 도시된 디코더와 상기 역시간적 변환부가 역공간적 변환부에 앞선 디코더가 하나의 디코더로 통합되어 구성될 수도 있다. 따라서 역시간적 변환과 역공간적 변환중 어느 변환이 먼저 수행되어야 하는가를 알수 있는 소정의 정보가 비트스트림 해석시 해석될 수도 있다.
또한, 상기 디코더는 하드웨어로 구현될 수도 있고, 소프트웨어 모듈로 구현될 수도 있다.
도 10은 본 발명의 일 실시예에 따른 비디오 디코딩 방법을 나타낸 흐름도이다.
최초 비트스트림이 입력되면(S510), 비트스트림 해석부(510)는 입력된 비트스트림을 해석하여 이미지 정보, 모션 벡터, 기준 프레임 번호 및 가중치에 관한 정보를 추출한다(S520).
추출된 이미지 정보는 역 양자화부(520)에의해 역양자화되어 변환계수들로 바뀐다(S530). 역양자화 과정을 거쳐 얻어진 변환계수들은 역공간적 변환부(530)에 의해 역공간적 변환된다(S540). 역공간적 변환은 코딩된 프레임들의 공간적 변환과 관련되는데 공간적 변환 방식으로 웨이브렛 변환이 사용된 경우에 역공간적 변환은 역웨이브렛 변환을 수행하며, 공간적 변환 방식이 DCT 변환인 경우에는 역DCT 변환을 수행한다.
역공간적 변환을 거쳐 변환계수들은 시간적 필터링된 프레임들로 변환되는데, 이 프레임들은 역시간적 변환부(540)에 의해 역시간적 변환되어(S550), 비디오 시퀀스로 출력된다. 역시간적 변환을위해 비트스트림의 해석에 의해 얻어진 모션 벡터와 기준 프레임 번호에 관한 정보가 사용된다. 만약 역시간적 변환과정에 있는 프레임이 코딩단계에서 가상프레임을 기준 프레임으로 하여 시간적 필터링 된 것이라면 가상 프레임을 추정하기 위한 가중치가 비트스트림 해석에 의해 추가로 얻어지고 본 프레임을 역시간적 변환하기 위한 기준프레임인 가상 프레임은 을 계산하여 추정할 수 있다.
상기의 단계중 역시간적 변환단계(S550)는 역공간적 변환단계(S540)보다 선행될 수도 있으며, 이경우 역공간적 변환은 웨이브렛 변환이 된다.
이상에서 본 발명에 대하여 상세히 기술하였지만 이는 예시적인 것이다. 본 발명이 속하는 기술 분야에 있어서 통상의 지식을 가진 사람이라면 첨부된 청구범위에 정의된 본 발명의 정신 및 범위를 벗어나지 않으면서 본 발명을 여러 가지로 변형 또는 변경하여 실시할 수 있을 것이다. 따라서 본 발명의 실시예에 따른 단순한 변경은 본 발명의 기술적 사상에 포함되는 것으로 해석되어야 한다.
상술한 바와 같이 본 발명에 따르면, 하나의 프레임을 에측하기 위해 여러 개의 프레임을 참조하는 경우 보다 유사한 프레임에 가중치를 두어 가중치가 적용된 가상의 프레임을 참조함으로써, 과비디오 코딩에 있어서 보다 높은 압축률을 제공할 수 있다.
도 1은 종래의 프레임간 웨이브렛 비디오 코딩 과정을 나타낸 흐름도.
도 2는 모션 추정을 위한 계층적 가변 사이즈 블록 매칭법을 나타낸 도면.
도 3a는 종래의 각 프레임 블록간 모션 추정 방향을 나타낸 도면.
도 3b는 종래의 모션 추정 과정을 나타낸 흐름도.
도 4는 본 발명의 일 실시예에 따른 비디오 인코더의 구성을 나타내는 블록도.
도 5는 가상프레임을 참조 프레임에 포함하여 모션 추정하는 상태를 나타낸 도면.
도 6은 본 발명의 다른 실시예에 따른 비디오 인코더의 구성을 나타내는 블록도.
도 7은 본 발명의 일 실시예에 따른 비디오 코딩 방법을 나타낸 흐름도.
도 8는 본 발명의 일 실시예에 따른 모션벡터를 구하는 과정 보다 상세히 나타낸 흐름도.
도 9은 본 발명의 일 실시예에 따른 비디오 디코더를 나타내는 블록도.
도 10은 본 발명의 일 실시예에 따른 비디오 디코딩 방법을 나타낸 흐름도.
<도면의 주요 부분에 관한 부호의 설명>
210 : 시간적 변환부 212 : 가중치 계산부
214 : 모션 추정부 216 : 시간적 필터링부
220 : 공간적 변환부 230 : 양자화부
240 : 모션벡터 인코딩부 250 : 비트스트림 생성부
510 : 비트스트림 해석부 520 : 역양자화부
530 : 역공간적 변환부 540 : 역시간적 변환부

Claims (34)

  1. 비디오 프레임을 입력받아 가상 프레임을 구성하고, 상기 가상 프레임을 포함한 참조 프레임과의 비교를 통해 상기 입력되는 프레임들의 시간적 중복을 제거하는 시간적 변환부;
    상기 프레임들에 대한 공간적 중복을 제거하는 공간적 변환부;
    상기의 시간적 중복 및 공간적 중복을 제거하여 얻어지는 변환계수들을 양자화하는 양자화부;
    상기 시간적 변환부로부터 얻어진 모션 벡터 및 소정의 정보를 코딩하는 모션벡터 인코딩부; 및
    상기 양자화된 변환계수들 및 상기 모션벡터 인코딩부에 의해 코딩된 정보를 이용하여 비트스트림을 생성하는 비트스트림 생성부를 포함하는 비디오 인코더.
  2. 제 1항에 있어서,
    상기 시간적 변환부는, 상기 공간적 변환부에 앞서 상기 입력되는 프레임들에 대한 시간적 중복을 제거하고, 상기 공간적 변환부는 상기 시간적 중복이 제거된 프레임들에 대해 공간적 중복을 제거하여 변환계수들을 얻는 것을 특징으로하는 비디오 인코더.
  3. 제 2항에 있어서,
    상기 공간적 변환부는, 웨이브렛 변환을 통해 공간적 중복을 제거하는 것을 특징으로 하는 비디오 인코더.
  4. 제 1항에 있어서,
    상기 시간적 변환부는, 모션 추정중인 현재 프레임과 시간적으로 이격된 프레임 사이의 유사도를 나타내는 가중치를 계산하는 가중치 계산부;
    상기 가중치의 적용으로 추정된 가상 프레임을 포함한 참조 프레임중 기준 프레임을 선정하고, 상기 모션 추정중인 현재 프레임과 상기 기준 프레임을 비교하여 모션 벡터를 구하는 모션 추정부; 및
    상기 모션 벡터를 이용하여 상기 입력받은 프레임들에 대하여 시간적 필터링을 하는 시간적 필터링부를 포함하는 것을 특징으로 하는 비디오 인코더.
  5. 제 4항에 있어서,
    상기 참조 프레임은, 상기 모션 추정중인 현재 프레임보다 시간적으로 한단계 앞선 프레임과 시간적으로 한단계 뒤진 프레임 및 상기 가상 프레임으로 구성되는 것을 특징으로 하는 비디오 인코더.
  6. 제 5항에 있어서,
    상기 기준 프레임은, 상기 모션 추정중인 현재 프레임과 상기 참조 프레임들과의 모션추정 결과 절대 왜곡 크기가 최소로 나타난 참조 프레임인 것을 특징으로 하는 비디오 인코더.
  7. 제 6항에 있어서,
    상기 가상 프레임의 추정은,
    에 의해 계산되며, 상기 p는 상기 가중치값이고, 상기 Sn-1 및 Sn+1 는 각각 현재 모션 추정중인 프레임보다 시간적으로 한단계 앞선 프레임 및 시간적으로 한단계 뒤진 프레임이고, 상기 k는 각 프레임의 모션추정 비교 대상이 되는 블록인 것을 특징으로 하는 비디오 인코더.
  8. 제 7항에 있어서,
    상기 가중치값은, 상기 모션 추정 중인 현재 프레임과 상기 가상 프레임의 차이값인 을 최소화하도록 선택되는 것을 특징으로 하는 비디오 인코더.
  9. 제 8항에 있어서,
    상기 가중치값 p는,
    에의해 계산되며, 상기 Sn 는 상기 모션 추정중인 현재 프레임인 것을 특징으로 하는 비디오 인코더.
  10. 제 9항에 있어서,
    상기 가상 프레임이 기준 프레임으로 선택된 경우, 상기 모션 벡터 인코딩부는 상기 가상 프레임의 추정을 위한 상기 가중치를 추가로 코딩하는 것을 특징으로 하는 비디오 인코더.
  11. 제 10항에 있어서,
    상기 비트스트림 생성부는, 상기 모션 벡터 인코딩부에 의해 코딩된 가중치에 대한 정보를 포함하여 상기 비트스트림을 생성하는 것을 특징으로 하는 비디오 인코더.
  12. 비디오 시퀀스를 구성하는 복수의 프레임들을 입력받아 상기 입력받은 프레임으로부터 가상 프레임을 추정하는 단계;
    상기 가상 프레임을 포함한 참조 프레임중 기준 프레임을 선정하고, 상기 선정된 기준 프레임을 사용하여 시간적 중복을 제거하는 단계;
    상기 시간적 중복 제거 단계에서 얻어진 모션 벡터 및 소정의 정보를 코딩하는 단계; 및
    상기 시간적 중복이 제거된 프레임들로부터 변환계수들을 얻고 이를 양자화하여 비트스트림을 생성하는 단계를 포함하는 비디오 코딩 방법.
  13. 제 12항에 있어서,
    상기 변환계수들을 양자화하여 비트스트림을 생성하는 단계에서, 상기 변환계수들은 상기 시간적 중복이 제거된 프레임들을 공간적 변환하여 얻는 것을 특징으로 하는 비디오 코딩 방법.
  14. 제 13항에 있어서,
    상기 공간적 변환은 웨이브렛 변환인 것을 특징으로 하는 비디오 코딩 방법.
  15. 제 12항에 있어서,
    상기 가상 프레임의 추정은, 모션 추정중인 현재 프레임과 시간적으로 시간적으로 이격된 프레임 사이의 유사도를 나타내는 가중치를 사용한 추정인 것을 특징으로 하는 비디오 코딩 방법.
  16. 제 15항에 있어서,
    상기 참조 프레임은, 상기 모션 추정중인 현재 프레임보다 시간적으로 한단계 앞선 프레임과 시간적으로 한단계 뒤진 프레임 및 상기 가상 프레임으로 구성되는 것을 특징으로 하는 비디오 코딩 방법.
  17. 제 16항에 있어서,
    상기 기준 프레임은, 상기 모션 추정중인 현재 프레임과 상기 참조 프레임들과의 모션추정 결과 절대 왜곡 크기가 최소로 나타난 참조 프레임인 것을 특징으로 하는 비디오 코딩 방법.
  18. 제 17항에 있어서,
    상기 가상 프레임의 추정은,
    에 의해 계산되며, 상기 p는 상기 가중치값이고, 상기 Sn-1 및 Sn+1 는 각각 현재 모션 추정중인 프레임보다 시간적으로 한단계 앞선 프레임 및 시간적으로 한단계 뒤진 프레임이고, 상기 k는 각 프레임의 모션추정 비교 대상이 되는 블록인 것을 특징으로 하는 비디오 코딩 방법.
  19. 제 18항에 있어서,
    상기 가중치값은, 상기 모션 추정 중인 현재 프레임과 상기 가상 프레임의 차이값인 을 최소화하도록 선택되는 것을 특징으로 하는 비디오 코딩 방법.
  20. 제 19항에 있어서,
    상기 가중치값 p는,
    에의해 계산되며, 상기 Sn 는 상기 모션 추정중인 현재 프레임인 것을 특징으로 하는 비디오 코딩 방법.
  21. 제 20항에 있어서,
    상기 가상 프레임이 기준 프레임으로 선택된 경우, 상기 코딩되는 소정의 정보에는 상기 가상 프레임의 추정을 위한 상기 가중치가 포함되는 것을 특징으로 하는 비디오 코딩 방법.
  22. 제 21항에 있어서,
    상기 생성되는 비트스트림은, 상기 코딩되는 가중치에 대한 정보를 포함하는 것을 특징으로 하는 비디오 코딩 방법.
  23. 제 12항 내지 제 22항중 어느 한항에 의한 방법을 실행하기 위한 컴퓨터로 읽을 수 있는 프로그램을 기록한 기록매체.
  24. 입력받은 비트 스트림을 해석하여 코딩된 프레임들에 대한 정보를 추출하는 비트스트림 해석부;
    상기 코딩된 프레임들에 대한 정보를 역양자화하여 변환계수들을 얻는 역양자화부;
    역공간적 변환과정을 수행하는 역공간적 변환부; 및
    가상 프레임을 포함한 기준 프레임을 사용하여 역시간적 변환과정을 수행하는 역시간적 변환부를 포함하여 중복제거 순서의 역순서에 따라 상기 변환계수들에 대한 역공간적 변환과정과 역시간적 변환과정을 하여 프레임들을 복원하는 비디오 디코더.
  25. 제 24항에 있어서,
    상기 역공간적 변환부는, 상기 역시간적 변환부에 앞서 역공간적 변환을 수행하고, 상기 역 시간적 변환부는 상기 역공간적 변환된 프레임에 대해 역시간적 변환을 수행하는 것을 특징으로 하는 비디오 디코더.
  26. 제 25항에 있어서,
    상기 역공간적 변환부는, 역웨이브렛 변환 방식으로 역공간적 변환작업을 수행하는 것을 특징으로 하는 비디오 디코더.
  27. 제 24항에 있어서,
    상기 역시간적 변환부는, 역시간적 변환중인 현재 프레임이 코딩단계에서 가상 프레임을 기준프레임으로 하여 시간적 필터링된 경우, 상기 비트스트림 해석부가 상기 비트스트림을 해석하여 제공한 가중치를 사용하여 가상 프레임을 추정하고 상기 가상 프레임을 기준 프레임으로하여 역시간적 변환을 수행하는 것을 특징으로 하는 비디오 디코더.
  28. 제 27항에 있어서,
    상기 가상 프레임은 ,
    에 의해 추정되며, 상기 p는 상기 가중치이고, 상기 Sn-1 및 Sn+1 는 상기 역시간적 변환중인 현재 프레임보다 시간적으로 한단계 앞선 프레임 및 시간적으로 한단계 뒤진 프레임이고, 상기 k는 상기 프레임간 변환 대상이되는 블록인 것을 특징으로 하는 비디오 디코더.
  29. 비트스트림을 입력받아 이를 해석하여 코딩된 프레임들에 대한 정보를 추출하는 단계;
    상기 코딩된 프레임들에 대한 정보를 역양자화하여 변환계수들을 얻는 단계; 및
    상기 변환계수들의 역공간적 변환 및 가상 프레임을 포함한 기준 프레임을 사용한 역시간적 변환이 상기 코딩된 프레임들의 중복제거 순서의 역순서로 수행되어 상기 코딩된 프레임들을 복원하는 단계를 포함하는 비디오 디코딩 방법.
  30. 제 29항에 있어서,
    상기 프레임 복원단계는, 상기 변환계수들을 역공간적 변환하고, 그후 상기 가상 프레임을 포함한 기준 프레임을 사용하여 역시간적 변환과정을 수행하는 것을 특징으로 하는 비디오 디코딩 방법.
  31. 제 30항에 있어서,
    상기 역공간적 변환은 웨이브렛 변환방식인 것을 특징으로 하는 비디오 디코딩 방법.
  32. 제 29항에 있어서,
    상기 역시간적 변환단계는, 역시간적 변환중인 현재 프레임이 코딩단계에서 가상 프레임을 기준프레임으로 하여 시간적 필터링된 경우, 상기 비트스트림 해석단계에서 상기 비트스트림이 해석되어 제공된 가중치를 사용하여 가상 프레임을 추정하고 상기 가상 프레임을 기준 프레임으로하여 역시간적 변환 과정을 수행하는 것을 특징으로 하는 비디오 비디오 디코딩 방법.
  33. 제 32항에 있어서,
    상기 가상 프레임은 ,
    에 의해 추정되며, 상기 p는 상기 가중치이고, 상기 Sn-1 및 Sn+1 는 상기 역시간적 변환중인 현재 프레임보다 시간적으로 한단계 앞선 프레임 및 시간적으로 한단계 뒤진 프레임이고, 상기 k는 상기 프레임간 변환 대상이되는 블록인 것을 특징으로 하는 비디오 디코딩 방법.
  34. 제 29항 내지 제 33항중 어느 한 항에 의한 방법을 실행하기 위한 컴퓨터로 읽을 수 있는 프로그램을 기록한 기록 매체.
KR1020040002976A 2004-01-15 2004-01-15 비디오 코딩 및 디코딩 방법, 및 이를 위한 장치 KR20050075483A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020040002976A KR20050075483A (ko) 2004-01-15 2004-01-15 비디오 코딩 및 디코딩 방법, 및 이를 위한 장치
PCT/KR2004/003476 WO2005069629A1 (en) 2004-01-15 2004-12-28 Video coding/decoding method and apparatus
US11/034,734 US20050157793A1 (en) 2004-01-15 2005-01-14 Video coding/decoding method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040002976A KR20050075483A (ko) 2004-01-15 2004-01-15 비디오 코딩 및 디코딩 방법, 및 이를 위한 장치

Publications (1)

Publication Number Publication Date
KR20050075483A true KR20050075483A (ko) 2005-07-21

Family

ID=34747821

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040002976A KR20050075483A (ko) 2004-01-15 2004-01-15 비디오 코딩 및 디코딩 방법, 및 이를 위한 장치

Country Status (3)

Country Link
US (1) US20050157793A1 (ko)
KR (1) KR20050075483A (ko)
WO (1) WO2005069629A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101408698B1 (ko) * 2007-07-31 2014-06-18 삼성전자주식회사 가중치 예측을 이용한 영상 부호화, 복호화 방법 및 장치

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100755689B1 (ko) * 2005-02-14 2007-09-05 삼성전자주식회사 계층적 시간적 필터링 구조를 갖는 비디오 코딩 및 디코딩방법, 이를 위한 장치
US7894527B2 (en) 2005-09-16 2011-02-22 Sony Corporation Multi-stage linked process for adaptive motion vector sampling in video compression
US7596243B2 (en) 2005-09-16 2009-09-29 Sony Corporation Extracting a moving object boundary
US8107748B2 (en) 2005-09-16 2012-01-31 Sony Corporation Adaptive motion search range
US7894522B2 (en) 2005-09-16 2011-02-22 Sony Corporation Classified filtering for temporal prediction
US8059719B2 (en) 2005-09-16 2011-11-15 Sony Corporation Adaptive area of influence filter
US7620108B2 (en) 2005-09-16 2009-11-17 Sony Corporation Integrated spatial-temporal prediction
US7957466B2 (en) 2005-09-16 2011-06-07 Sony Corporation Adaptive area of influence filter for moving object boundaries
US8165205B2 (en) 2005-09-16 2012-04-24 Sony Corporation Natural shaped regions for motion compensation
US7885335B2 (en) * 2005-09-16 2011-02-08 Sont Corporation Variable shape motion estimation in video sequence
US20070237234A1 (en) * 2006-04-11 2007-10-11 Digital Vision Ab Motion validation in a virtual frame motion estimator
EP2238764A4 (en) * 2008-01-25 2015-04-22 Hewlett Packard Co CODE MODE SELECTION FOR BLOCK-BASED CODING
US8681866B1 (en) 2011-04-28 2014-03-25 Google Inc. Method and apparatus for encoding video by downsampling frame resolution
US9106787B1 (en) 2011-05-09 2015-08-11 Google Inc. Apparatus and method for media transmission bandwidth control using bandwidth estimation
JP5746792B2 (ja) * 2011-09-23 2015-07-08 ケィティ、コーポレーションKt Corporation マージ候補ブロック誘導方法及びこのような方法を用いる装置
US8856624B1 (en) 2011-10-27 2014-10-07 Google Inc. Method and apparatus for dynamically generating error correction
US9185429B1 (en) 2012-04-30 2015-11-10 Google Inc. Video encoding and decoding using un-equal error protection
US9172740B1 (en) 2013-01-15 2015-10-27 Google Inc. Adjustable buffer remote access
US9311692B1 (en) 2013-01-25 2016-04-12 Google Inc. Scalable buffer remote access
US9225979B1 (en) 2013-01-30 2015-12-29 Google Inc. Remote access encoding
US10448013B2 (en) * 2016-12-22 2019-10-15 Google Llc Multi-layer-multi-reference prediction using adaptive temporal filtering
CN112073595A (zh) * 2020-09-10 2020-12-11 Tcl通讯(宁波)有限公司 图像处理方法、装置、存储介质及移动终端

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0556275A (ja) * 1990-08-30 1993-03-05 Sharp Corp 画像符号化装置及び画像復号装置
KR970003789B1 (ko) * 1993-11-09 1997-03-21 한국전기통신공사 비디오 부호기의 전송율을 제어하기 위한 비트 할당 방법
EP1274252A3 (en) * 1995-08-29 2005-10-05 Sharp Kabushiki Kaisha Video coding device and video decoding device with a motion compensated interframe prediction
US6081553A (en) * 1998-04-06 2000-06-27 Hewlett Packard Company Block-matching motion estimation technique for video compression of noisy source signals
US6192080B1 (en) * 1998-12-04 2001-02-20 Mitsubishi Electric Research Laboratories, Inc. Motion compensated digital video signal processing
US8406301B2 (en) * 2002-07-15 2013-03-26 Thomson Licensing Adaptive weighting of reference pictures in video encoding

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101408698B1 (ko) * 2007-07-31 2014-06-18 삼성전자주식회사 가중치 예측을 이용한 영상 부호화, 복호화 방법 및 장치

Also Published As

Publication number Publication date
US20050157793A1 (en) 2005-07-21
WO2005069629A1 (en) 2005-07-28

Similar Documents

Publication Publication Date Title
KR100703774B1 (ko) 인트라 코딩을 선택적으로 적용하여 인트라 bl 예측모드의 비디오 신호를 인코딩 및 디코딩하는 방법 및 장치
KR20050075483A (ko) 비디오 코딩 및 디코딩 방법, 및 이를 위한 장치
KR100631768B1 (ko) 비디오 코딩에서 프레임간 예측방법 및 비디오 인코더와,비디오 디코딩방법 및 비디오 디코더
KR100597402B1 (ko) 스케일러블 비디오 코딩 및 디코딩 방법, 이를 위한 장치
KR100596706B1 (ko) 스케일러블 비디오 코딩 및 디코딩 방법, 이를 위한 장치
KR100763181B1 (ko) 기초계층과 향상계층의 데이터를 바탕으로 예측 정보를코딩하여 코딩율을 향상시키는 방법 및 장치
KR100654436B1 (ko) 비디오 코딩 방법과 디코딩 방법, 및 비디오 인코더와디코더
JP4763548B2 (ja) スケーラブルビデオコーディング及びデコーディング方法と装置
KR100664928B1 (ko) 비디오 코딩 방법 및 장치
US6628716B1 (en) Hardware efficient wavelet-based video compression scheme
KR100834750B1 (ko) 엔코더 단에서 스케일러빌리티를 제공하는 스케일러블비디오 코딩 장치 및 방법
KR100703760B1 (ko) 시간적 레벨간 모션 벡터 예측을 이용한 비디오인코딩/디코딩 방법 및 장치
KR100703740B1 (ko) 다 계층 기반의 모션 벡터를 효율적으로 부호화하는 방법및 장치
JP4704374B2 (ja) ビデオトランスコーディング方法及び装置
KR100746011B1 (ko) 잔차 예측의 성능 개선 방법, 상기 방법을 이용한 비디오인코더 및 비디오 디코더
US20050163217A1 (en) Method and apparatus for coding and decoding video bitstream
KR100843080B1 (ko) 비디오 트랜스코딩 방법 및 장치
US20050047509A1 (en) Scalable video coding and decoding methods, and scalable video encoder and decoder
JP2005039837A (ja) 映像雑音除去方法及び装置
JP2007503750A (ja) 適応型フレーム間ウェーブレットのビデオコーディング方法、前記方法のためのコンピュータで読取り可能な記録媒体、及び装置
KR100703751B1 (ko) 가상 영역의 영상을 참조하여 인코딩 및 디코딩 하는 방법및 장치
KR20060084504A (ko) Dc 성분의 손실 없이 영상을 코딩하는 방법 및 장치
KR20110047310A (ko) 비디오 인코딩 장치 및 비디오 인코딩 방법
KR100577364B1 (ko) 적응형 프레임간 비디오 코딩방법, 상기 방법을 위한 컴퓨터로 읽을 수 있는 기록매체, 및 장치
Sharma et al. Medical image sequence compression using fast block matching algorithm and SPIHT

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid