KR20050078099A - 적응적으로 키 프레임을 삽입하는 비디오 코딩 장치 및 방법 - Google Patents
적응적으로 키 프레임을 삽입하는 비디오 코딩 장치 및 방법 Download PDFInfo
- Publication number
- KR20050078099A KR20050078099A KR1020040006220A KR20040006220A KR20050078099A KR 20050078099 A KR20050078099 A KR 20050078099A KR 1020040006220 A KR1020040006220 A KR 1020040006220A KR 20040006220 A KR20040006220 A KR 20040006220A KR 20050078099 A KR20050078099 A KR 20050078099A
- Authority
- KR
- South Korea
- Prior art keywords
- frame
- estimation
- temporal
- cost
- original
- Prior art date
- Legal status (The legal status 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 status listed.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
- H04N19/615—Methods 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/107—Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/114—Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/142—Detection of scene cut or scene change
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods 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/19—Methods 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 using optimisation based on Lagrange multipliers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/87—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving scene cut or scene change detection in combination with video compression
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive 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
본 발명은 동영상 컨텐츠(video contents)에 따라 키 프레임(key frame)을 적응적으로 삽입함으로써 사용자가 쉽게 원하는 장면에 접근할 수 있는 방법에 관한 것이다.
본 발명에 따른 비디오 엔코딩 장치는, 원 프레임에 대한 시간적 차분 프레임을 입력받고, 상기 입력된 시간적 차분 프레임을 이용한 소정의 판단 기준에 따라, 상기 원 프레임이 장면변화가 없는 프레임으로 판단되면 상기 시간적 차분 프레임을 그대로 부호화하는 것으로 결정하고, 상기 원 프레임이 장면변화가 있는 프레임으로 판단되면 상기 원 프레임을 부호화하는 것으로 결정하는 부호화방식 결정부와, 상기 부호화방식 결정부에서 결정한 바에 따라서 상기 시간적 차분값 또는 상기 원 프레임에 대하여 공간적 변환을 수행하고 변환계수를 구하는 공간적 변환부로 이루어진다.
본 발명에 따르면, 시간적 흐름을 기준으로 한 기존의 키 프레임의 삽입과 달리 영상의 내용별 장면 접근에 따른 키 프레임 삽입을 통해 임의의 영상 프레임에 접근할 수 있는 기능의 유용성을 향상시키는 효과가 있다.
Description
본 발명은 동영상 압축에 관한 것으로서, 보다 상세하게는 동영상 컨텐츠(video contents)에 따라 키 프레임(key frame)을 적응적으로 삽입함으로써 사용자가 쉽게 원하는 장면에 접근할 수 있는 방법에 관한 것이다.
인터넷을 포함한 정보통신 기술이 발달함에 따라 문자, 음성뿐만 아니라 화상통신이 증가하고 있다. 기존의 문자 위주의 통신 방식으로는 소비자의 다양한 욕구를 충족시키기에는 부족하며, 이에 따라 문자, 영상, 음악 등 다양한 형태의 정보를 수용할 수 있는 멀티미디어 서비스가 증가하고 있다. 멀티미디어 데이터는 그 양이 방대하여 대용량의 저장매체를 필요로하며 전송시에 넓은 대역폭을 필요로 한다. 예를 들면 640*480의 해상도를 갖는 24 bit 트루컬러의 이미지는 한 프레임당 640*480*24 bit의 용량 다시 말해서 약 7.37Mbit의 데이터가 필요하다. 이를 초당 30 프레임으로 전송하는 경우에는 221Mbit/sec의 대역폭을 필요로 하며, 90분 동안 상영되는 영화를 저장하려면 약 1200G bit의 저장공간을 필요로 한다. 따라서 문자, 영상, 오디오를 포함한 멀티미디어 데이터를 전송하기 위해서는 압축코딩기법을 사용하는 것이 필수적이다.
데이터를 압축하는 기본적인 원리는 데이터의 중복(redundancy)을 없애는 과정이다. 이미지에서 동일한 색이나 객체가 반복되는 것과 같은 공간적 중복이나, 동영상 프레임에서 인접 프레임이 거의 변화가 없는 경우나 오디오에서 같은 음이 계속 반복되는 것과 같은 시간적 중복, 또는 인간의 시각 및 지각 능력이 높은 주파수에 둔감한 것을 고려한 심리시각 중복을 없앰으로써 데이터를 압축할 수 있다. 데이터 압축의 종류는 소스 데이터의 손실 여부와, 각각의 프레임에 대해 독립적으로 압축하는 지 여부와, 압축과 복원에 필요한 시간이 동일한 지 여부에 따라 각각 손실/무손실 압축, 프레임 내/프레임간 압축, 대칭/비대칭 압축으로 나눌 수 있다. 이 밖에도 압축 복원 지연 시간이 50ms를 넘지 않는 경우에는 실시간 압축으로 분류하고, 프레임들의 해상도가 다양한 경우는 스케일러블 압축으로 분류한다. 문자 데이터나 의학용 데이터 등의 경우에는 무손실 압축이 이용되며, 멀티미디어 데이터의 경우에는 주로 손실 압축이 이용된다. 한편 공간적 중복을 제거하기 위해서는 프레임 내 압축이 이용되며 시간적 중복을 제거하기 위해서는 프레임간 압축이 이용된다.
이와 같이 프레임간 압축, 즉 시간적 압축 기술은, 통상 시간축으로 연속된 프레임들간에 움직임 추정에 의하여 움직임 보상을 한 후 그 프레임들간의 유사성을 이용하여 시간적 중복을 제거하는 방법을 이용한다. 움직임 추정을 위하여 널리 사용되는 알고리즘은 블록 매칭(block matching) 알고리즘이다. 이는 주어진 블록내의 모든 픽셀에 대하여 변위를 구하고 그 중 가장 작은 변위를 나타내는 탐색점의 값을 움직임 벡터로 추정하는 것이다. 움직임 추정은 그 참조 프레임에 따라 앞의 프레임을 참조하는 순방향 추정(forward prediction)과 뒤의 프레임을 참조하는 역방향 추정(backward prediction)이 있다. 여기서, 주목할 것은 엔코더 단에서 참조 프레임으로 삼는 프레임은 엔코딩된 프레임이 아니라 그에 해당하는 원 프레임을 의미하는 것이 일반적이다. 그러나, 이와 같은 개루프(open loop) 방식이 아니라 폐루프(closed loop) 방식 즉, 최종 디코딩된 프레임을 참조 프레임으로 하여 그 이후 단계를 수행할 수도 있다. 이와 같이 최종 디코딩된 프레임을 참조 프레임으로 삼을 수 있는 것은 엔코더는 기본적으로 디코더를 기능을 포함하고 있기 때문이다.
종래의 동영상 압축 방법에서는 상기 참조 프레임을 정하는 방법에 따라서, 세가지 프레임의 형태, 즉 I(intra-coded), P(predictive coded), B(bi-directionally predictive coded) 프레임이 존재한다. I 프레임은 움직임 보상을 이용하지 않고 단순히 그 프레임만을 공간적 변환을 하는 프레임이고, P 프레임은 I 또는 다른 P 프레임을 참조 프레임으로 하여 순방향 또는 역방향으로 움직임 보상을 한 후 나머지 차분(residual)을 공간적 변환을 하는 프레임이다. 그리고, B 프레임은 P 프레임처럼 움직임 보상을 사용하지만 시간축 상에 두 개의 프레임으로부터, 즉 양방향으로 움직임 보상을 수행하는 프레임이다.
I 프레임과 같이, 입력 화상이 인접한 다른 화상과는 독립적으로 복원이 될 수 있는 프레임에 대한 부호화 방식을 원 영상 부호화라고 한다. 그리고, P 프레임이나 B 프레임과 같이, 이전의 화상으로부터 현재의 화상을 추정하는 기법으로 앞뒤에 이웃하는 I 프레임 또는 인접한 P 프레임을 참조하는 부호화 방식을 차분 영상 부호화라고 한다.
한편, 키 프레임(Key Frame)이란 영상 파일 압축을 돕기 위해 사용되는 하나의 완전한 픽쳐(picture)로서, 해당 영상 GOP(Group of Pictures) 구조를 참조하여 시간적 영상 흐름에 통상 일정한 간격을 두고 한 프레임씩을 선택하여 해당 프레임을 키 프레임으로 지정한다. 키 프레임은 독립적으로 복원이 가능한 영상으로 영상의 임의의 접근을 가능하게 한다. 이러한 키 프레임은 MPEG 시리즈, H.261, H.264 등에서는 도 1에서와 같이 일정한 간격으로 삽입되어 독립적 영상 재생이 가능한 I 프레임을 지칭한다. 그러나, 이에 한하지 않고, 동영상 압축 방식에 상관없이, 다른 프레임을 참조하지 않고 독립적으로 복원이 가능한 프레임은 모두 키 프레임으로 정의될 수 있다.
종래의 키 프레임은 통상 일정한 간격으로 삽입되므로, 일정한 시간적 간격으로 영상 접근은 가능하지만 '장면 변화'에 따른 영상 접근과 같은 임의 접근(random access)은 어렵다. 장면 변화에 따른 영상 접근이란 영상의 내용(줄거리)이 전환되는 부분의 영상에 접근하는 것으로서 장면전환, 화면등장, 화면 사라짐 등과 같은 부분의 영상 접근을 말한다.
사용자는 동영상을 감상하는 도중에 언제든지 특정한 장면을 정확하게 찾아 갈 수 있기를 원할 수 있으며, 그 부분으로부터 새로운 동영상을 잘라내거나 편집하기를 원할 수 있다. 그러나 종래의 방법으로는 내용상 변화가 생긴 부분에 정확히 접근하는 것은 어렵다.
따라서, 전체 프레임의 흐름 속에서 '장면 변화'가 있는 부분을 찾아내는 방법 및 이러한 부분에 대한 임의 접근이 가능하도록 하는 방법을 강구할 필요가 있다.
본 발명은 상기한 필요성을 고려하여 창안된 것으로, 동영상 진행 중 장면전환, 화면 등장 등 장면 변화가 발생하는 부분에 키 프레임을 적응적으로 삽입함으로써, 동영상 재생에 있어 임의의 프레임에 접근할 수 있는 기능을 제공하는 것을 목적으로 한다.
또한, 본 발명은 동영상 진행 중 상기 장면 변화가 발생하는 부분을 검출하는 방법을 제공하는 것을 목적으로 한다.
상기한 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 비디오 엔코딩 장치는, 원 프레임에 대한 시간적 차분 프레임을 입력받고, 상기 입력된 시간적 차분 프레임을 이용한 소정의 판단 기준에 따라, 상기 원 프레임이 장면변화가 없는 프레임으로 판단되면 상기 시간적 차분 프레임을 그대로 부호화하는 것으로 결정하고, 상기 원 프레임이 장면변화가 있는 프레임으로 판단되면 상기 원 프레임을 부호화하는 것으로 결정하는 부호화방식 결정부; 및 상기 부호화방식 결정부에서 결정한 바에 따라서 상기 시간적 차분값 또는 상기 원 프레임에 대하여 공간적 변환을 수행하고 변환계수를 구하는 공간적 변환부를 포함하는 것을 특징으로 한다.
상기 비디오 엔코딩 장치는 상기 변환계수를 양자화하는 양자화부를 더 포함하는 것이 바람직하다.
상기 비디오 엔코딩 장치는 상기 양자화된 변환계수 및 키 프레임 위치에 관한 정보를 소정의 부호화 방식으로 압축하여 비트스트림을 생성하는 엔트로피 부호화부를 더 포함하는 것이 바람직하다.
상기 부호화방식 결정부는 매크로 블록별로 인터 추정의 비용과 인트라 추정의 비용을 비교하고 비용이 적은 방식을 선택하여 멀티플 시간적 차분 프레임을 구성하는 블록모드 선택부; 및 상기 구성한 시간적 차분 프레임에서 인트라 추정된 매크로 블록의 비율을 계산하여 상기 비율이 소정의 임계치(Rc1)를 상회하면 상기 멀티플 시간적 차분 프레임 대신 원 프레임을 부호화하도록 결정하는 블록모드 비교부를 포함하는 것이 바람직하다.
상기 부호화방식 결정부는 원 프레임을 수신하여 프레임 간에 순차적인 방식으로 움직임 추정을 수행하여 움직임 벡터를 구하는 움직임 추정부; 상기 움직임 벡터를 이용하여 움직임 보상 프레임을 구하고 상기 원 프레임과 움직임 보상 프레임의 차분을 계산하는 시간적 필터링부; 및 상기 프레임의 차분의 평균을 계산하여 소정의 임계치(Rc2)와 비교하는 MAD 비교부를 포함하는 것이 바람직하다.
상기한 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 비디오 디코딩 장치는, 입력된 비트스트림을 해석하여 엔코딩된 프레임의 텍스쳐(texture) 정보, 움직임 벡터, 참조 프레임 번호, 및 키 프레임 위치에 관한 정보를 추출하는 엔트로피 복호화부; 상기 텍스쳐 정보를 역양자화하여 변환계수들로 바꾸는 역양자화부; 상기 키 프레임 위치에 관한 정보를 통해 현재 프레임이 키 프레임이면 상기 변환계수들을 역 공간적 변환하여 최종 비디오 시퀀스를 복원하고, 현재 프레임이 키 프레임이 아니면 상기 변환계수들을 역 공간적 변환하여 시간적 차분 프레임을 생성하는 역 공간적 변환부; 및 상기 움직임 벡터를 이용하여 상기 입력된 시간적 차분 프레임으로부터 최종 비디오 시퀀스를 복원하는 역 시간적 필터링부를 포함하는 것을 특징으로 한다.
상기한 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 비디오 엔코딩 방법은, 원 프레임에 대한 시간적 차분 프레임을 입력받고, 상기 입력된 시간적 차분 프레임을 이용한 소정의 판단 기준에 따라, 상기 원 프레임이 장면변화가 없는 프레임으로 판단되면 상기 시간적 차분 프레임을 그대로 부호화하는 것으로 결정하고, 상기 원 프레임이 장면변화가 있는 프레임으로 판단되면 상기 원 프레임을 부호화하는 것으로 결정하는 (a)단계; 및 상기 (a)단계에서 결정한 바에 따라서 상기 시간적 차분값 또는 상기 원 프레임에 대하여 공간적 변환을 수행하고 변환계수를 구하는 (b)단계를 포함하는 것을 특징으로 한다.
상기 비디오 엔코딩 방법은 상기 변환계수를 양자화하는 단계를 더 포함하는 것이 바람직하다.
상기 비디오 엔코딩 방법은 양자화된 변환계수 및 키 프레임 위치에 관한 정보를 소정의 부호화 방식으로 압축하여 비트스트림을 생성하는 단계를 더 포함하는 것이 바람직하다.
상기 (a)단계는 매크로 블록별로 인터 추정의 비용과 인트라 추정의 비용을 비교하고 비용이 적은 방식을 선택하여 멀티플 시간적 차분 프레임을 구성하는 단계; 및 상기 구성한 시간적 차분 프레임에서 인트라 추정된 매크로 블록의 비율을 계산하여 상기 비율이 소정의 임계치(Rc1)를 상회하면 상기 멀티플 시간적 차분 프레임 대신 원 프레임을 부호화하도록 결정하는 단계를 포함하는 것이 바람직하다.
상기 인터 추정의 비용은 순방향, 역방향, 양방향 추정 중에서 현재 프레임에서 사용하는 추정 방식에 대한 비용 중 최소의 비용인 것이 바람직하다.
상기 순방향 추정에서의 비용(Cfk)은 Efk 와 λBfk 의 합으로 계산되고, 상기 역방향 추정에서의 비용(Cbk)은 Ebk 와 λBbk의 합으로 계산되며, 상기 양방향 추정에서의 비용(C2k)은 E2k 와 λ(Bfk + Bbk)의 합으로 계산되는데, 상기 Efk, Ebk, 및 E2k는 각각 k번째 매크로 블록에 대한 순방향 추정에서의 SAD(Sum of Absolute Difference), k번째 매크로 블록에 대한 역방향 추정에서의 SAD, 및 k번째 매크로 블록에 대한 양방향 추정에서의 SAD를 의미하고, 상기 Bfk, 및 Bbk는 각각 순방향 추정의 움직임 벡터들을 양자화하는데 할당되는 총 비트, 및 역방향 추정의 움직임 벡터들을 양자화하는데 할당되는 총 비트를 의미하며, λ는 움직임 벡터에 관련된 비트 수와 텍스쳐 비트 수 사이에 밸런스를 제어하는데 사용되는 라그랑쥬 계수를 의미하는 것이 바람직하다.
상기 인트라 추정의 비용(Cik)은 Eik 와 λBik의 합으로 계산되는데, 상기 Eik는 k번째 매크로블록에 대한 인트라 추정에서의 SAD(Sum of Absolute Difference)를 의미하고, 상기 Bik는 인트라 추정에서의 DC 성분을 압축하는데 소요되는 비트 수를 의미하며, λ는 움직임 벡터에 관련된 비트 수와 텍스쳐 비트 수 사이에 밸런스를 제어하는데 사용되는 라그랑쥬 계수를 의미하는 것이 바람직하다.
상기 (a)단계는 원 프레임을 수신하여 프레임 간에 순차적인 방식으로 움직임 추정을 수행하여 움직임 벡터를 구하는 단계; 상기 움직임 벡터를 이용하여 움직임 보상 프레임을 구하고 상기 원 프레임과 움직임 보상 프레임의 차분을 계산하는 단계; 및 상기 프레임의 차분의 평균을 계산하여 소정의 임계치(Rc2)와 비교하는 단계를 포함하는 것이 바람직하다.
상기 소정의 임계치(Rc2)는, 현재 처리중인 동영상에 대하여 일정기간 동안 누적된 MAD 평균값에 소정의 상수(α)를 곱한 값인 것이 바람직하다.
상기한 목적을 달성하기 위하여 본 발명의 일 실시예에 따른 비디오 디코딩 방법은, 입력된 비트스트림을 해석하여 엔코딩된 프레임의 텍스쳐(texture) 정보, 움직임 벡터, 참조 프레임 번호, 및 키 프레임 위치에 관한 정보를 추출하는 단계; 상기 텍스쳐 정보를 역양자화하여 변환계수들로 바꾸는 단계; 상기 키 프레임 위치에 관한 정보를 통해 현재 프레임이 키 프레임이면 상기 변환계수들을 역 공간적 변환하여 최종 비디오 시퀀스를 복원하고, 현재 프레임이 키 프레임이 아니면 상기 변환계수들을 역 공간적 변환하여 시간적 차분 프레임을 생성하는 단계; 및 상기 움직임 벡터를 이용하여 상기 입력된 시간적 차분 프레임으로부터 최종 비디오 시퀀스를 복원하는 단계를 포함하는 것을 특징으로 한다.
상기 키 프레임 위치에 관한 정보는, 엔코더 단에서 원 프레임이 장면변화가 있는 프레임이라고 판단한 경우에 상기 원 프레임을 부호화하고 상기 부호화된 프레임이 키 프레임임을 디코더 단에 알리기 위한 정보인 것이 바람직하다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
도 2의 영상 흐름을 살펴보면 5번 프레임과 6번 프레임 사이에서 장면 사라짐이 발생되었고 7번 프레임과 8번 프레임 사이에서 장면전환이 발생 되어졌음을 알 수 있다. 이러한 장면 변화가 발생하는 전후의 두 영상들은 영상의 연속성이 매우 희박하며 두 영상들 간의 변화 차이가 매우 큼을 알 수 있다. 이러한 장면변화가 발생하는 영상을 키 프레임으로 바꾸어 임의의 영상 접근의 유용성을 높일 필요가 있다. 본 발명에서는 일정 간격으로 삽입된 키 프레임 이외에 장면변화가 발생한 부분에 추가적으로 키 프레임을 삽입한다.
도 3에서 나타낸 바와 같이, 본 발명의 제1 실시예에 따른 엔코더(100)는 움직임 추정부(10), 시간적 필터링부(20), 부호화방식 결정부(70), 공간적 변환부(30), 양자화부(40), 엔트로피 부호화부(50), 및 인트라코딩부(60)를 포함하여 구성될 수 있다. 그리고, 부호화방식 결정부(70)는 블록모드 선택부(71), 및 블록모드 비교부(72)를 포함할 수 있다.
먼저, 원 프레임은 움직임 추정부(10) 및 인트라코딩부(60)에 함께 입력된다.
움직임 추정부(10)는 상기 입력된 프레임에 대하여 소정의 참조 프레임을 기준으로 하여 움직임 추정을 수행하고 움직임 벡터를 구한다. 이러한 움직임 추정을 위해 널리 사용되는 알고리즘은 블록 매칭(block matching) 알고리즘이다. 즉, 주어진 매크로 블록(macro block)을 참조 프레임의 특정 탐색영역 내에서 픽셀단위로 움직이면서 그 에러가 최소가 되는 경우의 변위를 움직임 벡터로 추정하는 것이다.
그리고, 상기 참조 프레임을 결정하는 방법은 엔코딩 방식에 따라서 여러 가지로 달라질 수 있는데, 시간적으로 이전 프레임을 참조하는 순방향 추정 모드, 시간적으로 이후 프레임을 참조하는 역방향 추정 모드, 그리고 시간적으로 전후의 프레임을 모두 참조하는 양방향 추정 모드가 있다. 이와 같이 다른 프레임을 참조하여 움직임을 추정하고 그에 따라서 시간적 필터링을 수행하는 방식을 인터 추정 모드라고 정의하고, 이와 달리 다른 프레임을 참조하지 않고 자신만을 이용하여 코딩하는 방식을 인트라 추정 모드라고 정의한다.
그리고, 인터 추정 모드에서 순방향, 역방향, 또는 양방향이 정해진 후에도 어떠한 프레임을 참조 프레임으로 할 것인가 역시 사용자가 원하는 바에 따라서 다르게 정할 수 있다.
도 4a 및 도 4b는 어떠한 프레임을 참조 프레임으로 하여, 어떠한 방향으로 움직임 추정을 할 것인가에 관한 예를 나타낸 도면이다. 여기서, f(0), f(1), ... , f(9)는 각각 비디오 시퀀스(video sequence)에 따른 프레임 번호를 나타낸다.
도 4a는 MPEG에서 사용하는 I 프레임, P 프레임, B 프레임을 이용하는 경우에서 움직임 추정 방향의 예를 나타낸 것이다. I 프레임은 키 프레임으로서 다른 프레임을 참조하지 않고 자체로 엔코딩되고, P 프레임은 순방향 추정을 사용하여 엔코딩되며, B 프레임은 양방향 추정을 사용하여 엔코딩되는 프레임이다.
B 프레임은 그 전후에 있는 I 프레임 또는 P 프레임을 참조하여 엔코딩되고 디코딩되므로, 본 예에서 엔코딩 및 디코딩 순서는 시간적 순서와는 달리 {0, 3, 1, 2, 6, 4, 5, 9, 7, 8} 순으로 될 수 있다.
도 4b는 상기 본 발명의 제1 실시예에서 사용하는 양방향 추정 방향의 예를 나타낸 것이다. 여기서, 엔코딩 및 디코딩 순서는 {0, 4, 2, 1, 3, 8, 6, 5, 7} 순으로 될 수 있다. 이와 같이 상기 제1 실시예에서 인터 프레임은 모두 양방향 추정을 할 수 있음을 전제로 하며, 후술할 비용 계산을 위하여 하나의 매크로블록에 대하여 순방향 추정, 양방향 추정 및 양방향 추정을 모두 수행하게 된다.
만약, 도 4a와 같은 방식으로 움직임 추정을 하는 경우라면, P 프레임은 순방향 추정만 가능하므로 P 프레임에서의 인터 추정은 순방향 추정만 존재하게 된다. 이와 같이 인터 추정은 반드시 3가지 방향 추정이 포함되어야 하는 것은 아니고 프레임에 따라서는 상기 3가지 방향 중 일부만을 사용할 수도 있는 것이다.
도 5에서는 상기한 4가지 추정 모드를 도식화하여 나타낸 것이다. 먼저 순방향 추정 모드(①)는 현 프레임에서 특정 매크로 블록이 이전 프레임(반드시 직전 프레임만을 나타내는 것은 아니다)의 어떠한 부분에 가장 잘 매칭되는가를 찾은 후, 양 위치간의 변위를 움직임 벡터로 나타낸다.
역방향 추정 모드(②)는 현 프레임에서 특정 매크로 블록이 이후 프레임(반드시 직후 프레임만을 나타내는 것은 아니다)의 어떠한 부분에 가장 잘 매칭되는가를 찾은 후, 양 위치간의 변위를 움직임 벡터로 나타낸다.
그리고, 양방향 추정 모드(③)는 상기 순방향 추정 모드(①) 및 역방향 추정 모드(②)에서 찾은 두 개의 매크로블록을 평균하거나, 가중치를 두어 평균하여 가상의 매크로블록을 만들고 이 매크로블록과 현 프레임의 특정 매크로블록과의 차이를 계산하여 시간적 필터링을 하는 방식이다. 따라서, 양방향 추정 모드(③)는 하나의 매크로블록 당 두 개의 움직임 벡터가 필요하게 된다.
실제로 상기 순방향, 역방향, 양방향 추정 모드 모두에서 매칭되는 영역을 찾는 방법은 정해진 탐색범위 내에서 매크로 블록크기의 영역을 픽셀 단위로 이동을 하면서 대응하는 매크로 블록간에 픽셀값의 차이의 합이 최소가 되는 영역을 찾는 방식을 이용할 수 있다.
움직임 추정부(10)는 매크로 블록별로 상기 움직임 벡터를 결정하여 이를 엔트로피 부호화부(50)에 전달하고, 상기 움직임 벡터 및 참조 프레임 번호를 시간적 필터링부(20)에 전달한다. 움직임 추정을 위하여 계층적 가변 사이즈 블록 매칭법(Hierarchical Variable Size Block Matching; HVSBM)에 의한 계층적인 방법을 사용할 수도 있지만, 본 발명의 실시예에서는 간단히 고정된 블록 사이즈 모션 추정을 사용하기로 한다.
한편, 최초 입력된 원 프레임은 움직임 추정부(10) 뿐만 아니라 인트라코딩부(60)에도 함께 입력되는데, 인트라코딩부(60)는 인트라 추정 모드(④)를 이용하여 매크로블록 단위로 원래 픽셀값과 매크로블록 내 픽셀들의 DC 값과의 차분(residual)을 구한다. 상기 인트라 추정 모드(④)는 현 프레임의 특정 매크로블록에서 Y, U, 및 V 성분 각각의 DC 값(매크로블록 내의 픽셀값 들의 평균)을 기준으로 하여 추정하는 방식으로서, 원래 픽셀들과 DC 값의 차이를 구하여 이를 엔코딩하며, 움직임 벡터 대신에 세가지 DC 값들의 차이를 엔코딩한다.
몇몇 비디오 시퀀스에서, 장면은 매우 빠르게 변화한다. 극단적인 경우에, 이웃하는 프레임들과 전혀 시간적 중복성을 갖지 않는 하나의 프레임을 발견할 수도 있다. 이러한 문제를 극복하기 위하여, MC-EZBC로 구현된 코딩방법은 '적응적 GOP 사이즈 특징'을 지원한다. 적응적 GOP 사이즈 특징은 연결되지 않은 픽셀들의 수간 미리 정해진 기준값(전체 픽셀들의 30% 정도)보다 큰 경우에 시간적 필터링을 중단하고 해당 프레임을 L 프레임으로 코딩한다. 이러한 방식을 본 발명에 적용하는 것도 가능하겠으나, 본 실시예에서는 보다 유연한 방식으로 표준 하이브리드 엔코더에서 사용되던 인트라 추정에 의한 매크로블록의 개념을 도입하였다. 일반적으로, 오픈 루프 코덱(open loop codec)은 추정 드리프트(drift) 때문에 이웃하는 매크로블록 정보를 사용할 수 없다. 반면에 하이브리드 코덱은 인트라 추정 모드를 사용할 수 있다. 따라서, 본 실시예에서는 인트라 추정 모드를 위하여 DC 추정을 사용한다. 이 모드에서 어떤 매크로블록은 자신의 Y, U, 및 V 컴포넌트들을 위한 DC 값에 의해 인트라 추정된다.
인트라코딩부(60)는 상기 원래 픽셀값과 DC 값과의 차분(residual) 값을 매크로 블록별로 부호화방식 결정부(70)에 전달하고, 상기 DC 성분 각각은 엔트로피 부호화부(50)에 전달한다. 상기 매크로 블록별로 전달되는 차분 값은 Eik로 표시될 수 있다. 여기서, E는 원래 픽셀값과 DC 값과의 차분, 즉 에러(error)를 의미하고, 첨자 i는 인트라 추정임을 나타낸다. 그리고, 첨자 k는 전체 매크로블록의 수가 N개라고 할 때, 그 중 특정 매크로블록을 나타내는 인덱스이다(k=0, 1, ... , N-1). 결국, Eik는 k번째 매크로블록에 대한 인트라 추정에서의 SAD(원래 루미넌스 값들과 DC 값들과의 차이의 SAD)를 의미하는 것이다. 여기서, SAD(Sum of Absolute Difference)는 두 프레임간에 대응하는 매크로블록내에서 픽셀 값의 차이의 합을 계산한 것이다.
시간적 필터링부(20)는 움직임 추정부(10)로부터 전달받은 움직임 벡터 및 참조 프레임 번호를 이용하여 참조 프레임의 매크로블록이 현 프레임의 대응하는 매크로블록과 같은 위치를 차지하도록 재구성하여 움직임 보상 프레임을 생성하고, 현 프레임과 움직임 보상 프레임의 차분(residual), 즉 시간적 차분 프레임을 구한다.
시간적 필터링 결과 인터 추정 모드 각각에 대하여 상기 차분(residual) 값이 구해진다. 사용자의 선택에 따라서 상기 인터 추정 모드는 순방향 추정, 역방향 추정, 그리고 양방향 추정 중 하나 이상의 개수의 추정 모드를 포함할 수 있으므로, 그 개수만큼의 차분값이 구해지는 것이다. 본 실시예에서는 3가지 모두를 포함하는 것으로 한다.
상기 차분값은 인터 추정 모드에 따라서 각각의 매크로블록 별로 부호화방식 결정부(70)에 전달된다. 매크로블록별 차분값을 각각 Efk, Ebk, E2k로 표시한다. 여기서, E는 프레임간의 차분, 즉 에러(error)를 의미하고, 첨자 f는 순방향을, 첨자 b는 역방향을, 첨자 2는 양방향을 의미한다. 그리고, 첨자 k는 전체 매크로블록의 수가 N개라고 할 때, 그 중 특정 매크로블록을 나타내는 인덱스이다(k=0, 1, ... , N-1).
결국, Efk는 k번째 매크로 블록에 대한 순방향 추정에서의 절대 차이의 합(Sum of Absolute Difference; 이하, SAD라 함)이고, Ebk는 k번째 매크로 블록에 대한 역방향 추정에서의 SAD가 된다. 그리고, E2k는 k번째 매크로 블록에 대한 양방향 추정에서의 SAD가 된다.
엔트로피 부호화부(50)는 움직임 추정부(10)로부터 전달되는 움직임 벡터 및 인트라코딩부(60)로부터 전달되는 DC 성분을 소정의 부호화 방식으로 압축하여 비트스트림으로 만든다. 상기 소정의 부호화 방식으로는 예측 코딩(predictive coding) 방법, 가변 길이 코딩(variable-length coding) 방법(Huffman 코딩이 대표적임), 또는 산술 코딩(arithmetic coding) 방법 등을 이용할 수 있다.
엔트로피 부호화부(50)는 상기 움직임 벡터를 압축하여 비트스트림으로 만든 후, 각각의 인터 추정 모드에 따라서 움직임 벡터를 압축하는데 소요되는 비트 수를 매크로 블록별, 즉 움직임 벡터별로 부호화방식 결정부(70)로 전달한다. 상기 비트 수는 Bfk, Bbk, B2k로 나타낼 수 있다. 여기서, B는 움직임 벡터를 압축하는데 소요되는 비트 수를 의미하고, 첨자 f는 순방향을, 첨자 b는 역방향을, 첨자 2는 양방향을 의미한다. 그리고, 첨자 k는 전체 매크로블록의 수가 N개라고 할 때, 그 중 특정 매크로블록을 나타내는 인덱스이다(k=0, 1, ... , N-1).
다시 말해서, Bfk는 순방향 추정의 움직임 벡터들을 양자화하는데 할당되는 총 비트이고, Bbk는 역방향 추정의 움직임 벡터들을 양자화하는데 할당되는 총 비트이다. 그리고, B2k는 양방향 추정의 움직임 벡터들을 양자화하는데 할당되는 총 비트이다.
또한, 엔트로피 부호화부(50)는 상기 DC 성분을 매크로블록별로 압축하여 비트스트림으로 만든 후, 이로부터 알 수 있는 상기 DC 성분을 압축하는데 소요되는 비트 수를 매크로블록별로 부호화방식 결정부(70)에 전달한다. 상기 비트 수는 Bik로 나타낼 수 있다. 여기서, B는 상기 DC 성분을 압축하는데 소요되는 비트 수를 의미하고, 첨자 i는 인트라 추정 모드임을 나타낸다. 그리고, 첨자 k는 전체 매크로블록의 수가 N개라고 할 때, 그 중 특정 매크로블록을 나타내는 인덱스이다(k=0, 1, ... , N-1).
부호화방식 결정부(70)는 매크로 블록별로 인터 추정의 비용(cost)과 인트라 추정의 비용을 비교하고 비용이 적은 방식을 선택하여 '멀티플 시간적 차분 프레임'(multiple temporal residual frame)을 구성하는 블록모드 선택부(71)와, 상기 구성한 시간적 차분 프레임에서 인트라 추정된 매크로 블록의 비율을 계산하여 상기 비율이 소정의 임계치(Rc1)를 상회하면 상기 멀티플 시간적 차분 프레임 대신에 원 프레임을 사용하도록 결정하는 블록모드 비교부(72)를 포함한다. 상기'멀티플 시간적 차분 프레임'의 의미에 대하여는 후술하기로 한다.
블록모드 선택부(71)는 시간적 필터링부(20)로부터 인터 추정 모드의 매크로 블록별 차분값인 Efk, Ebk, E2k를 입력받고, 인트라코딩부(60)으로부터 인트라 추정 모드의 매크로 블록별 차분값인 Eik를 입력받는다. 또한, 엔트로피 부호화부(50)로부터 인터 추정 모드의 모션 벡터를 압축하는데 소요되는 비트 수인 Bfk, Bbk, B2k
, 및 인트라 추정 모드의 DC 성분을 압축하는데 소요되는 비트 수인 Bik를 입력받는다.
이러한 입력된 값으로부터 인터 추정 모드의 비용(cost)은 다음의 [식 1]과 같이 나타낼 수 있다. 여기서, Cfk, Cbk, 및 C2k는 각각 매크로블록별로 순방향 추정 모드에서 소요되는 비용, 역방향 추정 모드에서 소요되는 비용, 및 양방향 추정모드에서 소요되는 비용으로 정의된다. 다만, B2k는 양방향 추정에 따른 움직임 벡터를 압축하는데 소요되는 비트 수이므로 순방향 추정 및 역방향 추정에서 소요되는 비트 수를 합한 값, 즉 Bfk와 Bbk를 합한 값과 같다.
Cfk = Efk + λBfk
Cbk = Ebk + λBbk
[식 1]
C2k = E2k + λB2k , 단 B2k = Bfk + Bbk
여기서, λ는 라그랑쥬 계수인데, 움직임 벡터에 관련된 비트 수와 텍스쳐(이미지) 비트 수 사이에 밸런스를 제어하는데 사용된다. 스케일러블 비디오 엔코더에서는 최종 비트레이트를 알 수 없기 때문에, λ는 목적 어플리케이션에서 주로 사용될 비디오 시퀀스와 비트 레이트의 특성에 따라서 선택될 수 있다. [식 1]에 정의된 식에 의해 최소 비용을 계산함으로써 매크로블록 별로 최적화된 인터 추정 모드를 결정할 수 있다.
만일 인트라 추정 모드의 비용이 위에서 설명한 최적화된 인터 추정 모드에서의 비용보다 작은 경우라면 인트라 추정 모드를 선택한다. 이런 경우에 있어서, 원래 픽셀들과 DC 값의 차이를 코딩하며, 움직임 벡터 대신에 세가지 DC 값들의 차이를 코딩한다. 인트라 추정 모드의 비용은 [식 2]와 같이 표현될 수 있다. 여기서, Cik는 매크로블록별로 인트라 추정 모드에 소요되는 비용을 의미한다.
Cik = Eik + λBik [식 2]
만일, Cik가 인터 추정 모드의 비용 중 최소 비용, 예를 들어 본 실시예에서는 Cfk, Cbk, C2k 중 최소 값보다 작은 경우라면, 인트라 추정 모드로 부호화한다.
도 6은 하나의 프레임이 각 매크로 블록별로 상기 최소 비용 기준에 따라서 각각 다른 방식으로 부호화되는 예를 나타낸 것이다. 여기서 하나의 프레임은 N=16개의 매크로 블록으로 이루어져 있으며 MB는 매크로블록을 나타낸다. 그리고, F, B, Bi, 그리고 I는 각각 순방향 추정 모드, 역방향 추정 모드, 양방향 추정 모드, 그리고 인트라 추정 모드로 부호화되었음을 나타낸다.
이와 같이 각각의 매크로 블록 별로 다른 부호화 방식을 사용하는 방식을 '멀티플 모드(multiple mode)'라고 정의하고, 멀티플 모드에 따라 재구성된 시간적 차분 프레임을 '멀티플 시간적 차분 프레임'이라고 정의한다.
MB0에서는 Cfk, Cbk, 및 C2k를 비교한 결과 Cbk가 최소값이고 이것을 다시 Cik와 비교한 결과 Cik보다 작아서 순방향 추정 모드로 부호화된 것이고, MB15에서는 인터 추정 모드의 비용 보다 인트라 추정 모드의 비용이 작아서 인트라 추정 모드로 부호화된 것임을 나타낸다.
블록모드 비교부(72)는 블록모드 선택부(71)에 의하여 각 매크로블록별로 결정된 추정 모드에 따라 시간적 필터링된 '멀티플 시간적 차분 프레임'에서 인트라 추정 모드로 부호화된 매크로블록의 비율을 계산하여, 그 비율이 소정의 임계치(Rc1)를 넘지 않으면 상기 '멀티플 시간적 차분 프레임'을 공간적 변환부(30)로 전달하고, 그 비율이 소정의 임계치를 넘으면 상기 부호화된 프레임 대신에 원 프레임을 공간적 변환부(30)로 전달한다.
이와 같이, 인트라 추정 모드로 부호화된 매크로블록의 비율이 소정의 임계치를 상회하면 '장면변화'가 발생한 것으로 간주하고, 이렇게 간주된 프레임의 위치를 주기적으로 삽입되는 키 프레임 이외에 추가적으로 키 프레임을 삽입할 프레임 위치(이하 '키 프레임 위치'라고 한다)로 결정한다.
본 실시예에서 원 프레임을 공간적 변환부(30)에 전달하는 것으로 하였지만, 프레임 전체를 인트라 추정 모드로 부호화하고 그 프레임을 공간적 변환부(30)에 전달하는 방법도 가능하다. 이미 각 매크로블록별로 Eik를 계산하였고, 계산된 Eik는 버퍼(buffer; 미도시)에 저장되어 있으므로, 별도의 연산과정 없이 프레임 전체를 인트라 추정 모드로 부호화할 수 있는 것이다.
도 6에서 보는 바와 같이, 블록모드 선택부(71)를 거치면서 현 프레임은 각각 다른 방식으로 부호화될 수 있으며, 블록모드 비교부(72)에서는 그 각각의 부호화 방식의 비율을 알아낼 수 있다. 도 6의 예에서 F=1/16=6.25%, B=2/16=12.5%, Bi=3/16=18.75%, 그리고, I=10/16=62.5%이다. 여기서, Bi는 양방향 추정에 의하여, F는 순방향 추정에 의하여, B는 역방향 추정에 의하여, I는 인트라 추정 모드에 의하여 부호화된 매크로 블록의 비율(다만, GOP의 첫 프레임은 추정을 사용하지 않음)을 각각 나타낸다.
도 7a와 7b는 각각 변화가 심한 비디오 시퀀스와, 변화가 거의 없는 비디오 시퀀스에서 멀티플 모드로 추정한 경우의 예를 보여주고 있다. 퍼센트는 추정 모드의 비율을 의미한다.
도 7a를 살펴보면, 1번 프레임은 0번 프레임과 거의 유사하기 때문에 F의 비율이 78%로 압도적인 것을 알 수 있으며, 2번 프레임은 0번과 4번의 중간정도(즉, 0번을 밝게 한 이미지)에 가까우므로 Bi가 87%로 압도적인 것을 알 수 있다. 4번 프레임은 완전히 다른 프레임들과 다르므로 I로 100% 코딩되고, 5번 프레임은 4번과는 전혀 다르고 6번과 비슷하므로 B가 94%인 것을 알 수 있다.
도 7b를 살펴보면 전체적으로 모든 프레임들이 유사한 것을 알 수 있는데, 실제로 거의 유사한 프레임들의 경우에는 Bi가 가장 좋은 성능을 보인다. 따라서, 도 7b에서는 전체적으로 Bi의 비율이 높은 것을 알 수 있다.
현재 프레임에 인터 추정 모드로 부호화된 매크로 블록이 인트라 추정 모드로 부호화된 매크로블록보다 많다는 것은 앞뒤 인접 영상간에 유사성이 높아서 시간적 보상이 잘 이루어진다는 것이며 연속된 장면이 계속 이어짐을 짐작할 수 있게 한다. 하지만 그 반대의 경우라면, 앞뒤 영상간의 시간적 보상이 잘 이루어지지 못하거나 큰 프레임 간에 큰 '장면변화'가 발생하였음을 짐작할 수 있다.
따라서, 본 실시예에서는 상기 I의 비율이 소정의 비율(Ric)보다 큰 경우에는 매크로블록별로 다르게 부호화된 프레임 대신에 원래 프레임 또는 인트라 추정 모드만으로 부호화된 프레임으로 대치한다.
다시 도 3을 참조하면, 공간적 변환부(30)는 부호화방식 결정부(70)에 의하여 결정된 바에 따라서, 비용을 고려하여 매크로 블록별로 다르게 부호화된 프레임 또는 원래 프레임을 버퍼(미도시)로부터 읽어와서 공간적 중복을 제거하는 즉, 공간적 변환 과정을 수행하고 변환계수를 생성한다.
공간적 변환 방식에는 스케일러빌리티(scalability)를 지원하기 위한 웨이블릿 변환(wavelet transform) 방법과, MPEG-2와 같은 동영상 압축방식에 널리 사용되는 DCT(discrete cosine transform) 방법 등을 사용할 수 있다. 상기 변환계수는 웨이블릿 변환의 경우에는 웨이블릿 계수가 될 것이고, DCT의 경우에는 DCT 계수가 될 것이다.
양자화부(40)는 공간적 변환부(30)에서 생성된 변환계수를 양자화한다. 즉, 실수형 계수들인 변환계수들을 양자화하여 정수형 변환계수들로 바꾼다. 이와 같은 양자화를 통해 이미지 데이터를 표현하기 위한 비트량을 줄일 수 있다. 웨이블릿 변환에 의한 웨이블릿 계수를 양자화하는 데에는 통상 임베디드 양자화(embedded quantization) 방식을 이용한다. 임베디드 양자화 알고리즘에는 EZW(Embedded Zerotrees Wavelet Algorithm), SPIHT(Set Partitioning in Hierarchical Trees) 등이 있다.
그리고, 엔트로피 부호화부(50)는 양자화부(40)로부터 양자화된 변환계수를 전달받아 이를 소정의 부호화 방식으로 압축하여 비트스트림을 생성한다. 또한 부호화방식 결정부(70)에 의하여 결정된 바에 따라서, 움직임 추정부(10)로부터 전달된 움직임 벡터 및 인트라코딩부(60)로부터 전달된 DC 성분을 압축하여 비트스트림을 생성한다. 물론, 움직임 벡터 및 DC 성분은 이미 압축되어 비트스트림으로 생성되고 그 정보에 관한 정보가 부호화방식 결정부(70)에 전달된 바 있으므로, 반드시 새로 압축할 필요는 없고 기존에 압축된 비트스트림을 버퍼(미도시)에 저장하여 두었다가 이용하면 될 것이다.
또한, 엔트로피 부호화부(50)는 움직임 추정부(10)로부터 전달되는 참조 프레임 번호, 그리고 블록모드 비교부(72)에서 결정되는 '키 프레임 위치'에 관한 정보도 소정의 부호화 방식으로 압축하여 비트스트림을 생성한다. 이러한 '키 프레임의 위치'에 관한 정보는 하나의 동영상 전체에 대한 헤더인 시퀀스 헤더, 또는 하나의 GOP에 대한 헤더인 GOP 헤더에 키 프레임의 번호를 기록하여 전달할 수도 있고, 각각의 프레임마다 존재하는 프레임 헤더에 키 프레임인지 여부를 기록하여 전달할 수도 있을 것이다.
상기 소정의 부호화 방식으로는, 예측 코딩(predictive coding) 방법, 가변 길이 코딩(variable-length coding) 방법(Huffman 코딩이 대표적임), 또는 산술 코딩(arithmetic coding) 방법 등을 이용할 수 있다.
도 8은 본 발명의 제2 실시예에 따른 엔코더(200)의 구조를 나타낸 것으로, 상기 엔코더(200)는 움직임 추정부(110), 시간적 필터링부(120), 부호화방식 결정부(170), 공간적 변환부(130), 양자화부(140), 엔트로피 부호화부(150)를 포함하여 구성될 수 있다. 그리고, 부호화방식 결정부(170)는 움직임 추정부(171), 시간적 필터링부(172), 및 MAD 비교부(173)를 포함할 수 있다.
제1 실시예에서는 '장면변화'를 판단하기 위하여, 현 프레임에서 인트라 추정 방식으로 부호화된 매크로 블록의 비율을 기준으로 하였으나, 본 실시예에서는 인접한 프레임 간에 MAD(Mean Absolute Difference)를 계산하고 그 값이 소정의 임계치(Rc2)를 넘으면 장면변화가 발생하는 것으로 판단한다. 여기서 MAD는 두 프레임간에 같은 공간적 위치를 차지하는 픽셀끼리 픽셀 값의 차이의 합을 구하고, 이를 프레임내의 픽셀 개수로 나눈 값을 의미한다.
이를 위하여, 부호화방식 결정부(170)는 움직임 추정부(171), 시간적 필터링부(172), 및 MAD 비교부(173)를 포함하여 구성될 수 있다. 움직임 추정부(171)는 원 프레임을 수신하여 프레임 간에 움직임 추정을 수행하여 움직임 벡터를 구한다. 다만, 여기서 프레임간의 참조 방식은 시간적으로 순차적인 방식으로 순방향 추정하는 것을 예로 든다. 즉 첫번째 프레임을 두번째 프레임이 참조 프레임으로 이용하고, 두번째 프레임을 세번째 프레임이 참조 프레임으로 이용하는 방식이다.
시간적 필터링부(172)는 움직임 추정부(171)에서 구한 움직임 벡터를 이용하여 참조 프레임의 매크로블록이 현 프레임의 대응하는 매크로블록과 같은 위치를 차지하도록 재구성함으로써 움직임 보상 프레임을 생성하고, 현 프레임과 움직임 보상 프레임의 차분(residual)을 계산한다.
MAD 비교부(173)는 상기 프레임의 차분의 평균, 즉 픽셀값의 차이의 평균을 계산하여 소정의 임계치(Rc2)와 비교한다. 이러한 임계치 Rc2는 사용자가 임의로 지정할수도 있겠으나, 현재 처리중인 동영상에 대하여 일정기간 동안 누적된 MAD 평균값에 상수(α)를 곱한 값을 기준으로 할 수 있다. 예를 들어, 일정기간 동안 누적된 MAD 평균값에 2를 곱한 값을 임계치로 삼을 수 있다.
상기 비교 결과 현 프레임의 MAD가 소정의 임계치를 상회하면 '장면변화'가 발생한 것으로 간주한다. 이와 같이 하여, 주기적으로 삽입된 키 프레임 이외에 추가적으로 키 프레임을 삽입할 프레임 위치를 결정할 수 있다. 이와 같이, 추가적으로 키 프레임을 삽입할 프레임 위치가 결정되면, 이에 따라서 각 원 프레임을 엔코딩하게 된다.
만약, MAD 비교부(173)에서의 비교 결과, 현재 프레임이 '키 프레임 위치'라면 바로 공간적 변환부(130)에서 공간적 변환을 수행하고, 현재 프레임이 '키 프레임 위치'가 아니라면 움직임 추정부(110)에서 움직임 추정 과정부터 수행하게 된다.
움직임 추정부(110)는 원 프레임을 수신하여 프레임 간에 움직임 추정을 수행하여 움직임 벡터를 구한다. 다만, 여기서 프레임간의 참조 방식은 상기 움직임 추정부(171)에서와 같이 순차적인 방식으로 할 필요는 없고, 순방향, 역방향, 또는 양방향 추정 등을 자유롭게 사용할 수 있으며, 참조 프레임도 직전의 프레임만이 아니라 임의의 간격만큼 떨어진 위치의 프레임을 자유롭게 선택할 수 있다.
시간적 필터링부(120)는 움직임 추정부(110)에서 구한 움직임 벡터를 이용하여 참조 프레임의 매크로블록이 현 프레임의 대응하는 매크로블록과 같은 위치를 차지하도록 재구성함으로써 움직임 보상 프레임을 생성하고, 현 프레임과 움직임 보상 프레임의 차분(residual)을 계산한다.
공간적 변환부(130)는 현재 프레임이 키 프레임의 위치에 있는가에 관한 정보를 MAD 비교부(173)으로부터 전달받고, 그에 따라서 시간적 필터링부(120)에서 계산한 움직임 보상 프레임의 차분, 또는 원 프레임 자체를 공간적 변환한다. 상기 공간적 변환은 웨이블릿 변환, DCT 변환 등을 이용할 수 있다.
양자화부(140)는 공간적 변환부(130)에서 생성된 변환계수를 양자화한다.
그리고, 엔트로피 부호화부(150)는 상기 양자화된 변환계수, 움직임 추정부(110)로부터 전달되는 움직임 벡터 및 참조 프레임 번호, 그리고 MAD 비교부(173)로부터 전달되는 '키 프레임 위치'에 관한 정보 등을 소정의 부호화 방식으로 압축하여 비트스트림을 생성한다.
도 9는 본 발명에 따른 디코더(300)의 구성을 나타낸 도면이다.
엔트로피 복호화부(210)는 입력된 비트스트림을 해석하여 엔코딩된 프레임의 텍스쳐(texture) 정보(엔코딩된 이미지 정보), 움직임 벡터, 참조 프레임 번호, 및 '키 프레임 위치'에 관한 정보를 추출한다. 그리고 상기 움직임 벡터 및 참조 프레임 번호를 역 시간적 필터링부(240)에 전달한다. 또한, '키 프레임 위치'에 관한 정보를 역 공간적 변환부(230)에 전달한다. 엔트로피 복호화 방식은 엔코더 단에서의 엔트로피 부호화 방식의 역으로 수행된다.
양자화부(220)는 상기 텍스쳐 정보를 역양자화하여 변환계수들로 바꾼다. 상기 역양자화는 엔코더 단에서의 양자화 방법의 역으로 수행된다.
역 공간적 변환부(230)는 상기 변환계수들을 역 공간적 변환한다. 역공간적 변환은 엔코딩 단에서의 공간적 변환 방법과 관련되는데, 상기 공간적 변환 방법으로 웨이브렛 변환이 사용된 경우에 역공간적 변환은 역 웨이브렛 변환을 수행하며, 공간적 변환 방식이 DCT 변환인 경우에는 역 DCT 변환을 수행한다.
엔트로피 복호화부(210)에서 전달된 키 프레임의 위치에 관한 정보를 이용하면 현재 프레임이 키 프레임인지 여부, 즉 인트라 추정 방식으로 부호화된 프레임(인트라 프레임)인지 인터 추정 방식으로 부호화된 프레임(인터 프레임)인지를 알 수 있다. 현재 프레임이 인트라 프레임인 경우에는 역 공간적 변환에 의하여 최종 비디오 시퀀스가 복원된다. 그리고, 현재 프레임이 인터 프레임인 경우에는 역 공간적 변환에 의하여 시간적 차분값으로 이루어진 프레임, 즉 시간적 차분 프레임(temporal residual)이 생성되어 역 시간적 필터링부(240)로 입력된다.
역 시간적 필터링부(240)는 엔트로피 복호화부(210)로부터 전달받은 움직임 벡터, 기준 프레임 번호를 이용하여 상기 입력된 시간적 차분 프레임으로부터 최종 비디오 시퀀스를 복원한다.
본 발명에 따른 엔코더(100, 200) 및 디코더(300)가 동작하는 시스템(500)은 도 10과 같이 구현될 수 있다. 상기 시스템(500)은 TV, 셋탑박스, 데스크탑, 랩탑 컴퓨터, 팜탑(palmtop) 컴퓨터, PDA(personal digital assistant), 비디오 또는 이미지 저장 장치(예컨대, VCR(video cassette recorder), DVR(digital video recorder) 등)를 나타내는 것일 수 있다. 뿐만 아니라, 상기 시스템(500)은 상기한 장치들을 조합한 것, 또는 상기 장치가 다른 장치의 일부분으로 포함된 것을 나타내는 것일 수도 있다. 상기 시스템(500)은 적어도 하나 이상의 비디오 소스(video source; 510), 하나 이상의 입출력 장치(520), 프로세서(540), 메모리(550), 그리고 디스플레이 장치(530)를 포함하여 구성될 수 있다.
비디오 소스(510)는 TV 리시버, VCR, 또는 다른 비디오 저장 장치를 나타내는 것일 수 있다. 또한, 상기 소스(510)는 인터넷, WAN(wide area network), LAN(local area network), 지상파 방송 시스템(terrestrial broadcast system), 케이블 네트워크, 위성 통신 네트워크, 무선 네트워크, 전화 네트워크 등을 이용하여 서버로부터 비디오를 수신하기 위한 하나 이상의 네트워크 연결을 나타내는 것일 수도 있다. 뿐만 아니라, 상기 소스는 상기한 네트워크들을 조합한 것, 또는 상기 네트워크가 다른 네트워크의 일부분으로 포함된 것을 나타내는 것일 수도 있다.
입출력 장치(520), 프로세서(540), 그리고 메모리(550)는 통신 매체(560)를 통하여 통신한다. 상기 통신 매체(560)에는 통신 버스, 통신 네트워크, 또는 하나 이상의 내부 연결 회로를 나타내는 것일 수 있다. 상기 소스(510)로부터 수신되는 입력 비디오 데이터는 메모리(550)에 저장된 하나 이상의 소프트웨어 프로그램에 따라 프로세서(540)에 의하여 처리될(processed) 수 있고, 디스플레이 장치(530)에 제공되는 출력 비디오를 생성하기 위하여 프로세서(540)에 의하여 실행될 수 있다.
특히, 메모리(550)에 저장된 소프트웨어 프로그램은 스케일러블 웨이블릿 기반의 코덱(codec)을 포함한다. 본 발명의 실시예에서, 엔코딩 과정 및 디코딩 과정은 상기 시스템(500)에 의하여 실행되는 컴퓨터로 판독가능한 코덱에 의하여 구현될 수 있다. 상기 코덱은 메모리(550)에 저장되어 있을 수도 있고, CD-ROM이나 플로피 디스크와 같은 저장 매체에서 읽어 들이거나, 각종 네트워크를 통하여 소정의 서버로부터 다운로드한 것일 수도 있다. 상기 소프트웨어에 의하여 하드웨어 회로에 의하여 대체되거나, 소프트웨어와 하드웨어 회로의 조합에 의하여 대체될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
본 발명에 따르면, 시간적 흐름을 기준으로 한 기존의 키 프레임의 삽입과 달리 영상의 내용별 장면 접근에 따른 키 프레임 삽입을 통해 임의의 영상 프레임에 접근할 수 있는 기능의 유용성을 향상시키는 효과가 있다.
또한, 본 발명에 따르면, 장면 변환, 화면등장, 화면 사라짐과 같은 프레임을 키 프레임으로 전환함으로써 장면 전환 부분에 있어서 보다 깨끗한 영상을 얻을 수 있다.
또한 본 발명에 따르면, 인접 영상간의 변화가 큰 영상 사이에 키 프레임을 삽입함으로 변화 이후 영상들의 원활한 복원에 도움을 준다.
도 1은 비디오 시퀀스의 예를 나타낸 도면.
도 2는 장면변화가 있는 비디오 시퀀스의 예를 나타낸 도면.
도 3은 본 발명의 제1 실시예에 따른 엔코더의 구성을 나타낸 블록도.
도 4a는 I, P, B 프레임을 이용하는 경우에 움직임 추정 방향의 예를 나타낸 도면.
도 4b는 본 발명의 제1 실시예에서 사용하는 추정 방향의 예를 나타낸 도면.
도 5는 4가지 추정 모드를 도식화하여 나타낸 도면.
도 6은 하나의 프레임이 각 매크로 블록별로 상기 최소 비용 기준에 따라서 각각 다른 방식으로 부호화되는 예를 나타낸 도면.
도 7a은 변화가 심한 비디오 시퀀스에서 멀티플 모드로 추정한 경우의 예를 보여주는 도면.
도 7b는 변화가 거의 없는 비디오 시퀀스에서 멀티플 모드로 추정한 경우의 예를 보여주는 도면.
도 8은 본 발명의 제2 실시예에 따른 엔코더(200)의 구성을 나타낸 블록도.
도 9는 본 발명에 따른 엔코더 및 디코더가 동작하는 시스템의 구성을 개략적으로 나타낸 블록도.
(도면의 주요부분에 대한 부호 설명)
100 : 제1 실시예에 따른 엔코더 200 : 제2 실시예에 따른 엔코더
300 : 디코더 500 : 시스템
510 : 비디오 소스 520 : 입출력 장치
530 : 디스플레이 장치 540 : 프로세서
550 : 메모리 560 : 통신 매체
Claims (23)
- 원 프레임에 대한 시간적 차분 프레임을 입력받고, 상기 입력된 시간적 차분 프레임을 이용한 소정의 판단 기준에 따라, 상기 원 프레임이 장면변화가 없는 프레임으로 판단되면 상기 시간적 차분 프레임을 그대로 부호화하는 것으로 결정하고, 상기 원 프레임이 장면변화가 있는 프레임으로 판단되면 상기 원 프레임을 부호화하는 것으로 결정하는 부호화방식 결정부; 및상기 부호화방식 결정부에서 결정한 바에 따라서 상기 시간적 차분값 또는 상기 원 프레임에 대하여 공간적 변환을 수행하고 변환계수를 구하는 공간적 변환부를 포함하는 것을 특징으로 하는 비디오 엔코딩 장치.
- 제1항에 있어서,상기 변환계수를 양자화하는 양자화부를 더 포함하는 것을 특징으로 하는 비디오 엔코딩 장치.
- 제2항에 있어서,상기 양자화된 변환계수 및 키 프레임 위치에 관한 정보를 소정의 부호화 방식으로 압축하여 비트스트림을 생성하는 엔트로피 부호화부를 더 포함하는 것을 특징으로 하는 비디오 엔코딩 장치.
- 제1항에 있어서, 상기 부호화방식 결정부는매크로 블록별로 인터 추정의 비용과 인트라 추정의 비용을 비교하고 비용이 적은 방식을 선택하여 멀티플 시간적 차분 프레임을 구성하는 블록모드 선택부; 및상기 구성한 시간적 차분 프레임에서 인트라 추정된 매크로 블록의 비율을 계산하여 상기 비율이 소정의 임계치(Rc1)를 상회하면 상기 멀티플 시간적 차분 프레임 대신 원 프레임을 부호화하도록 결정하는 블록모드 비교부를 포함하는 것을 특징으로 하는 비디오 엔코딩 장치.
- 제4항에 있어서,상기 인터 추정의 비용은 순방향, 역방향, 양방향 추정 중에서 현재 프레임에서 사용하는 추정 방식에 대한 비용 중 최소의 비용인 것을 특징으로 하는 비디오 엔코딩 장치.
- 제5항에 있어서,상기 순방향 추정에서의 비용(Cfk)은 Efk 와 λBfk 의 합으로 계산되고, 상기 역방향 추정에서의 비용(Cbk)은 Ebk 와 λBbk의 합으로 계산되며, 상기 양방향 추정에서의 비용(C2k)은 E2k 와 λ(Bfk + Bbk)의 합으로 계산되는데,상기 Efk, Ebk, 및 E2k는 각각 k번째 매크로 블록에 대한 순방향 추정에서의 SAD(Sum of Absolute Difference), k번째 매크로 블록에 대한 역방향 추정에서의 SAD, 및 k번째 매크로 블록에 대한 양방향 추정에서의 SAD를 의미하고,상기 Bfk, 및 Bbk는 각각 순방향 추정의 움직임 벡터들을 양자화하는데 할당되는 총 비트, 및 역방향 추정의 움직임 벡터들을 양자화하는데 할당되는 총 비트를 의미하며,λ는 움직임 벡터에 관련된 비트 수와 텍스쳐 비트 수 사이에 밸런스를 제어하는데 사용되는 라그랑쥬 계수를 의미하는 것을 특징으로 하는 비디오 엔코딩 장치.
- 제4항에 있어서,상기 인트라 추정의 비용(Cik)은 Eik 와 λBik의 합으로 계산되는데,상기 Eik는 k번째 매크로블록에 대한 인트라 추정에서의 SAD(Sum of Absolute Difference)를 의미하고,상기 Bik는 인트라 추정에서의 DC 성분을 압축하는데 소요되는 비트 수를 의미하며,λ는 움직임 벡터에 관련된 비트 수와 텍스쳐 비트 수 사이에 밸런스를 제어하는데 사용되는 라그랑쥬 계수를 의미하는 것을 특징으로 하는 비디오 엔코딩 장치.
- 제1항에 있어서, 상기 부호화방식 결정부는원 프레임을 수신하여 프레임 간에 순차적인 방식으로 움직임 추정을 수행하여 움직임 벡터를 구하는 움직임 추정부;상기 움직임 벡터를 이용하여 움직임 보상 프레임을 구하고 상기 원 프레임과 움직임 보상 프레임의 차분을 계산하는 시간적 필터링부; 및상기 프레임의 차분의 평균을 계산하여 소정의 임계치(Rc2)와 비교하는 MAD 비교부를 포함하는 것을 특징으로 하는 비디오 엔코딩 장치.
- 제8항에 있어서, 상기 소정의 임계치(Rc2)는현재 처리중인 동영상에 대하여 일정기간 동안 누적된 MAD 평균값에 소정의 상수(α)를 곱한 값인 것을 특징으로 하는 비디오 엔코딩 장치.
- 입력된 비트스트림을 해석하여 엔코딩된 프레임의 텍스쳐(texture) 정보, 움직임 벡터, 참조 프레임 번호, 및 키 프레임 위치에 관한 정보를 추출하는 엔트로피 복호화부;상기 텍스쳐 정보를 역양자화하여 변환계수들로 바꾸는 역양자화부;상기 키 프레임 위치에 관한 정보를 통해 현재 프레임이 키 프레임이면 상기 변환계수들을 역 공간적 변환하여 최종 비디오 시퀀스를 복원하고, 현재 프레임이 키 프레임이 아니면 상기 변환계수들을 역 공간적 변환하여 시간적 차분 프레임을 생성하는 역 공간적 변환부; 및상기 움직임 벡터를 이용하여 상기 입력된 시간적 차분 프레임으로부터 최종 비디오 시퀀스를 복원하는 역 시간적 필터링부를 포함하는 것을 특징으로 하는 비디오 디코딩 장치.
- 제10항에 있어서, 상기 키 프레임 위치에 관한 정보는엔코더 단에서 원 프레임이 장면변화가 있는 프레임이라고 판단한 경우에 상기 원 프레임을 부호화하고 상기 부호화된 프레임이 키 프레임임을 디코더 단에 알리기 위한 정보인 것을 특징으로 하는 비디오 디코딩 장치.
- 원 프레임에 대한 시간적 차분 프레임을 입력받고, 상기 입력된 시간적 차분 프레임을 이용한 소정의 판단 기준에 따라, 상기 원 프레임이 장면변화가 없는 프레임으로 판단되면 상기 시간적 차분 프레임을 그대로 부호화하는 것으로 결정하고, 상기 원 프레임이 장면변화가 있는 프레임으로 판단되면 상기 원 프레임을 부호화하는 것으로 결정하는 (a)단계; 및상기 (a)단계에서 결정한 바에 따라서 상기 시간적 차분값 또는 상기 원 프레임에 대하여 공간적 변환을 수행하고 변환계수를 구하는 (b)단계를 포함하는 것을 특징으로 하는 비디오 엔코딩 방법.
- 제12항에 있어서,상기 변환계수를 양자화하는 단계를 더 포함하는 것을 특징으로 하는 비디오 엔코딩 방법.
- 제13항에 있어서,상기 양자화된 변환계수 및 키 프레임 위치에 관한 정보를 소정의 부호화 방식으로 압축하여 비트스트림을 생성하는 단계를 더 포함하는 것을 특징으로 하는 비디오 엔코딩 방법.
- 제12항에 있어서, 상기 (a)단계는매크로 블록별로 인터 추정의 비용과 인트라 추정의 비용을 비교하고 비용이 적은 방식을 선택하여 멀티플 시간적 차분 프레임을 구성하는 단계; 및상기 구성한 시간적 차분 프레임에서 인트라 추정된 매크로 블록의 비율을 계산하여 상기 비율이 소정의 임계치(Rc1)를 상회하면 상기 멀티플 시간적 차분 프레임 대신 원 프레임을 부호화하도록 결정하는 단계를 포함하는 것을 특징으로 하는 비디오 엔코딩 방법.
- 제15항에 있어서, 상기 인터 추정의 비용은순방향, 역방향, 양방향 추정 중에서 현재 프레임에서 사용하는 추정 방식에 대한 비용 중 최소의 비용인 것을 특징으로 하는 비디오 엔코딩 방법.
- 제16항에 있어서,상기 순방향 추정에서의 비용(Cfk)은 Efk 와 λBfk 의 합으로 계산되고, 상기 역방향 추정에서의 비용(Cbk)은 Ebk 와 λBbk의 합으로 계산되며, 상기 양방향 추정에서의 비용(C2k)은 E2k 와 λ(Bfk + Bbk)의 합으로 계산되는데,상기 Efk, Ebk, 및 E2k는 각각 k번째 매크로 블록에 대한 순방향 추정에서의 SAD(Sum of Absolute Difference), k번째 매크로 블록에 대한 역방향 추정에서의 SAD, 및 k번째 매크로 블록에 대한 양방향 추정에서의 SAD를 의미하고,상기 Bfk, 및 Bbk는 각각 순방향 추정의 움직임 벡터들을 양자화하는데 할당되는 총 비트, 및 역방향 추정의 움직임 벡터들을 양자화하는데 할당되는 총 비트를 의미하며,λ는 움직임 벡터에 관련된 비트 수와 텍스쳐 비트 수 사이에 밸런스를 제어하는데 사용되는 라그랑쥬 계수를 의미하는 것을 특징으로 하는 비디오 엔코딩 방법.
- 제15항에 있어서,상기 인트라 추정의 비용(Cik)은 Eik 와 λBik의 합으로 계산되는데,상기 Eik는 k번째 매크로블록에 대한 인트라 추정에서의 SAD(Sum of Absolute Difference)를 의미하고,상기 Bik는 인트라 추정에서의 DC 성분을 압축하는데 소요되는 비트 수를 의미하며,λ는 움직임 벡터에 관련된 비트 수와 텍스쳐 비트 수 사이에 밸런스를 제어하는데 사용되는 라그랑쥬 계수를 의미하는 것을 특징으로 하는 비디오 엔코딩 방법.
- 제12항에 있어서, 상기 (a)단계는원 프레임을 수신하여 프레임 간에 순차적인 방식으로 움직임 추정을 수행하여 움직임 벡터를 구하는 단계;상기 움직임 벡터를 이용하여 움직임 보상 프레임을 구하고 상기 원 프레임과 움직임 보상 프레임의 차분을 계산하는 단계; 및상기 프레임의 차분의 평균을 계산하여 소정의 임계치(Rc2)와 비교하는 단계를 포함하는 것을 특징으로 하는 비디오 엔코딩 방법.
- 제19항에 있어서, 상기 소정의 임계치(Rc2)는현재 처리중인 동영상에 대하여 일정기간 동안 누적된 MAD 평균값에 소정의 상수(α)를 곱한 값인 것을 특징으로 하는 비디오 엔코딩 방법.
- 입력된 비트스트림을 해석하여 엔코딩된 프레임의 텍스쳐(texture) 정보, 움직임 벡터, 참조 프레임 번호, 및 키 프레임 위치에 관한 정보를 추출하는 단계;상기 텍스쳐 정보를 역양자화하여 변환계수들로 바꾸는 단계;상기 키 프레임 위치에 관한 정보를 통해 현재 프레임이 키 프레임이면 상기 변환계수들을 역 공간적 변환하여 최종 비디오 시퀀스를 복원하고, 현재 프레임이 키 프레임이 아니면 상기 변환계수들을 역 공간적 변환하여 시간적 차분 프레임을 생성하는 단계; 및상기 움직임 벡터를 이용하여 상기 입력된 시간적 차분 프레임으로부터 최종 비디오 시퀀스를 복원하는 단계를 포함하는 것을 특징으로 하는 비디오 디코딩 방법.
- 제21항에 있어서, 상기 키 프레임 위치에 관한 정보는엔코더 단에서 원 프레임이 장면변화가 있는 프레임이라고 판단한 경우에 상기 원 프레임을 부호화하고 상기 부호화된 프레임이 키 프레임임을 디코더 단에 알리기 위한 정보인 것을 특징으로 하는 비디오 디코딩 방법.
- 제12항 내지 제22항 중 어느 한 항의 방법을 컴퓨터로 판독 가능한 프로그램으로 기록한 기록매체.
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020040006220A KR20050078099A (ko) | 2004-01-30 | 2004-01-30 | 적응적으로 키 프레임을 삽입하는 비디오 코딩 장치 및 방법 |
| CNA2004800411874A CN1910924A (zh) | 2004-01-30 | 2004-12-27 | 视频编码设备和用于自适应插入关键帧的方法 |
| EP04808596A EP1709812A1 (en) | 2004-01-30 | 2004-12-27 | Video coding apparatus and method for inserting key frame adaptively |
| PCT/KR2004/003467 WO2005074293A1 (en) | 2004-01-30 | 2004-12-27 | Video coding apparatus and method for inserting key frame adaptively |
| US11/043,185 US20050169371A1 (en) | 2004-01-30 | 2005-01-27 | Video coding apparatus and method for inserting key frame adaptively |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020040006220A KR20050078099A (ko) | 2004-01-30 | 2004-01-30 | 적응적으로 키 프레임을 삽입하는 비디오 코딩 장치 및 방법 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| KR20050078099A true KR20050078099A (ko) | 2005-08-04 |
Family
ID=36955099
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020040006220A Withdrawn KR20050078099A (ko) | 2004-01-30 | 2004-01-30 | 적응적으로 키 프레임을 삽입하는 비디오 코딩 장치 및 방법 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US20050169371A1 (ko) |
| EP (1) | EP1709812A1 (ko) |
| KR (1) | KR20050078099A (ko) |
| CN (1) | CN1910924A (ko) |
| WO (1) | WO2005074293A1 (ko) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20160068486A (ko) * | 2014-12-05 | 2016-06-15 | 한국방송공사 | 편집점에 기반하는 프레임 부호화 방법 및 장치 |
| KR20170013817A (ko) * | 2015-07-27 | 2017-02-07 | 삼성디스플레이 주식회사 | 디스플레이 데이터 전송 시스템 및 그 방법 |
| CN112911294A (zh) * | 2021-03-22 | 2021-06-04 | 杭州灵伴科技有限公司 | 一种使用imu数据的视频编码、解码方法,xr设备和计算机存储介质 |
| CN114501001A (zh) * | 2020-10-26 | 2022-05-13 | 国家广播电视总局广播电视科学研究院 | 视频编码方法、装置及电子设备 |
| CN115240819A (zh) * | 2021-04-22 | 2022-10-25 | 西门子医疗有限公司 | 用于传输多个医学图像的方法 |
Families Citing this family (45)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100727994B1 (ko) * | 2005-10-06 | 2007-06-14 | 삼성전자주식회사 | 깜박거림 현상 감소를 위한 동영상 프레임의 코딩 방법 및장치 |
| KR100825737B1 (ko) * | 2005-10-11 | 2008-04-29 | 한국전자통신연구원 | 스케일러블 비디오 코딩 방법 및 그 코딩 방법을 이용하는코덱 |
| JP4449915B2 (ja) * | 2006-02-08 | 2010-04-14 | ソニー株式会社 | 符号化装置、符号化方法およびプログラム、並びに、記録媒体 |
| US20070250874A1 (en) * | 2006-03-23 | 2007-10-25 | Sbc Knowledge Ventures, Lp | System and method of indexing video content |
| US20070274385A1 (en) * | 2006-05-26 | 2007-11-29 | Zhongli He | Method of increasing coding efficiency and reducing power consumption by on-line scene change detection while encoding inter-frame |
| KR101375669B1 (ko) * | 2006-11-07 | 2014-03-19 | 삼성전자주식회사 | 인터 예측 부호화, 복호화 방법 및 장치 |
| CN101198052B (zh) * | 2006-12-04 | 2010-05-19 | 华为技术有限公司 | 一种视频编码方法、解码方法及其装置 |
| CN100499815C (zh) * | 2007-01-12 | 2009-06-10 | 清华大学 | 一种支持视频帧随机读取的视频编解码方法 |
| JP4321626B2 (ja) * | 2007-05-23 | 2009-08-26 | ソニー株式会社 | 画像処理方法および画像処理装置 |
| US8179976B2 (en) * | 2008-01-11 | 2012-05-15 | Apple Inc. | Control of video decoder for reverse playback operation |
| US8897365B2 (en) * | 2008-11-19 | 2014-11-25 | Nvidia Corporation | Video rate control processor for a video encoding process |
| US8605791B2 (en) * | 2008-11-21 | 2013-12-10 | Nvidia Corporation | Video processor using an optimized slicemap representation |
| US8737475B2 (en) * | 2009-02-02 | 2014-05-27 | Freescale Semiconductor, Inc. | Video scene change detection and encoding complexity reduction in a video encoder system having multiple processing devices |
| CN101931773A (zh) * | 2009-06-23 | 2010-12-29 | 虹软(杭州)多媒体信息技术有限公司 | 视频处理方法 |
| US9565479B2 (en) * | 2009-08-10 | 2017-02-07 | Sling Media Pvt Ltd. | Methods and apparatus for seeking within a media stream using scene detection |
| TWI413896B (zh) * | 2010-04-21 | 2013-11-01 | Elitegroup Computer Sys Co Ltd | Energy saving methods for electronic devices |
| US8711933B2 (en) | 2010-08-09 | 2014-04-29 | Sony Computer Entertainment Inc. | Random access point (RAP) formation using intra refreshing technique in video coding |
| ES2699503T3 (es) | 2011-07-02 | 2019-02-11 | Samsung Electronics Co Ltd | Aparato de multiplexación y demultiplexación de datos de vídeo para identificar el estado de reproducción de datos de vídeo |
| US9270999B2 (en) | 2013-09-25 | 2016-02-23 | Apple Inc. | Delayed chroma processing in block processing pipelines |
| US9305325B2 (en) | 2013-09-25 | 2016-04-05 | Apple Inc. | Neighbor context caching in block processing pipelines |
| US9299122B2 (en) | 2013-09-25 | 2016-03-29 | Apple Inc. | Neighbor context processing in block processing pipelines |
| US9215472B2 (en) | 2013-09-27 | 2015-12-15 | Apple Inc. | Parallel hardware and software block processing pipelines |
| US9218639B2 (en) | 2013-09-27 | 2015-12-22 | Apple Inc. | Processing order in block processing pipelines |
| US9571846B2 (en) | 2013-09-27 | 2017-02-14 | Apple Inc. | Data storage and access in block processing pipelines |
| US9179096B2 (en) * | 2013-10-11 | 2015-11-03 | Fuji Xerox Co., Ltd. | Systems and methods for real-time efficient navigation of video streams |
| US20150103909A1 (en) * | 2013-10-14 | 2015-04-16 | Qualcomm Incorporated | Multi-threaded video encoder |
| US9667886B2 (en) * | 2014-03-27 | 2017-05-30 | Sony Corporation | Apparatus and method for editing video data according to common video content attributes |
| US9807410B2 (en) | 2014-07-02 | 2017-10-31 | Apple Inc. | Late-stage mode conversions in pipelined video encoders |
| US9386317B2 (en) * | 2014-09-22 | 2016-07-05 | Sony Interactive Entertainment Inc. | Adaptive picture section encoding mode decision control |
| CN104244027B (zh) * | 2014-09-30 | 2017-11-03 | 上海斐讯数据通信技术有限公司 | 音/视频数据实时传输并共享播放进程的控制方法及系统 |
| US10499070B2 (en) * | 2015-09-11 | 2019-12-03 | Facebook, Inc. | Key frame placement for distributed video encoding |
| CN106060539B (zh) * | 2016-06-16 | 2019-04-09 | 深圳风景网络科技有限公司 | 一种低传输带宽的视频编码方法 |
| GB2558868A (en) * | 2016-09-29 | 2018-07-25 | British Broadcasting Corp | Video search system & method |
| EP3328051B1 (en) | 2016-11-29 | 2019-01-02 | Axis AB | Method for controlling an infrared cut filter of a video camera |
| US20190261000A1 (en) * | 2017-04-01 | 2019-08-22 | Intel Corporation | Video motion processing including static determination, occlusion detection, frame rate conversion, and adjusting compression ratio |
| EP3396952B1 (en) * | 2017-04-25 | 2019-04-17 | Axis AB | Method and image processing unit for forming a video stream |
| US20190045213A1 (en) * | 2017-08-03 | 2019-02-07 | Intel Corporation | Reference frame reprojection for improved video coding |
| US10484714B2 (en) * | 2017-09-27 | 2019-11-19 | Intel Corporation | Codec for multi-camera compression |
| JP2019201388A (ja) * | 2018-05-18 | 2019-11-21 | 富士通株式会社 | 情報処理装置、情報処理方法、及びプログラム |
| EP3942817A1 (en) * | 2019-03-20 | 2022-01-26 | V-Nova International Limited | Low complexity enhancement video coding |
| CN111343503B (zh) * | 2020-03-31 | 2022-03-04 | 北京金山云网络技术有限公司 | 视频的转码方法、装置、电子设备及存储介质 |
| CN112616052B (zh) * | 2020-12-11 | 2023-03-28 | 上海集成电路装备材料产业创新中心有限公司 | 一种视频压缩信号的重建方法 |
| CN114449281A (zh) * | 2022-01-19 | 2022-05-06 | 上海盈方微电子有限公司 | 一种基于场景变动的智能码率控制优化方法 |
| CN115834889A (zh) * | 2022-11-24 | 2023-03-21 | 维沃移动通信有限公司 | 视频编解码方法、装置、电子设备及介质 |
| CN119316628B (zh) * | 2024-08-16 | 2025-07-04 | 北京红云融通技术有限公司 | 视频处理方法及相关产品 |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3263807B2 (ja) * | 1996-09-09 | 2002-03-11 | ソニー株式会社 | 画像符号化装置および画像符号化方法 |
| KR20010031320A (ko) * | 1997-10-23 | 2001-04-16 | 다니구찌 이찌로오, 기타오카 다카시 | 화상 복호화 장치, 화상 부호화 장치, 화상 통신 시스템및 부호화 비트 스트림 변환장치 |
| US7050503B2 (en) * | 1999-04-17 | 2006-05-23 | Pts Corporation | Segment-based encoding system using residue coding by basis function coefficients |
| US6549643B1 (en) * | 1999-11-30 | 2003-04-15 | Siemens Corporate Research, Inc. | System and method for selecting key-frames of video data |
| JP3889233B2 (ja) * | 2001-03-08 | 2007-03-07 | 株式会社モノリス | 画像符号化方法と装置および画像復号方法と装置 |
| JP2007503776A (ja) * | 2003-08-26 | 2007-02-22 | トムソン ライセンシング | インター符号化に使われる参照画像数を最小化するための方法および装置 |
| US8107531B2 (en) * | 2003-09-07 | 2012-01-31 | Microsoft Corporation | Signaling and repeat padding for skip frames |
| KR100596706B1 (ko) * | 2003-12-01 | 2006-07-04 | 삼성전자주식회사 | 스케일러블 비디오 코딩 및 디코딩 방법, 이를 위한 장치 |
-
2004
- 2004-01-30 KR KR1020040006220A patent/KR20050078099A/ko not_active Withdrawn
- 2004-12-27 WO PCT/KR2004/003467 patent/WO2005074293A1/en not_active Ceased
- 2004-12-27 CN CNA2004800411874A patent/CN1910924A/zh active Pending
- 2004-12-27 EP EP04808596A patent/EP1709812A1/en not_active Withdrawn
-
2005
- 2005-01-27 US US11/043,185 patent/US20050169371A1/en not_active Abandoned
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20160068486A (ko) * | 2014-12-05 | 2016-06-15 | 한국방송공사 | 편집점에 기반하는 프레임 부호화 방법 및 장치 |
| KR20170013817A (ko) * | 2015-07-27 | 2017-02-07 | 삼성디스플레이 주식회사 | 디스플레이 데이터 전송 시스템 및 그 방법 |
| CN114501001A (zh) * | 2020-10-26 | 2022-05-13 | 国家广播电视总局广播电视科学研究院 | 视频编码方法、装置及电子设备 |
| CN114501001B (zh) * | 2020-10-26 | 2024-08-30 | 国家广播电视总局广播电视科学研究院 | 视频编码方法、装置及电子设备 |
| CN112911294A (zh) * | 2021-03-22 | 2021-06-04 | 杭州灵伴科技有限公司 | 一种使用imu数据的视频编码、解码方法,xr设备和计算机存储介质 |
| CN115240819A (zh) * | 2021-04-22 | 2022-10-25 | 西门子医疗有限公司 | 用于传输多个医学图像的方法 |
| CN115240819B (zh) * | 2021-04-22 | 2023-09-08 | 西门子医疗有限公司 | 用于传输多个医学图像的方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2005074293A1 (en) | 2005-08-11 |
| CN1910924A (zh) | 2007-02-07 |
| US20050169371A1 (en) | 2005-08-04 |
| EP1709812A1 (en) | 2006-10-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR20050078099A (ko) | 적응적으로 키 프레임을 삽입하는 비디오 코딩 장치 및 방법 | |
| KR100703760B1 (ko) | 시간적 레벨간 모션 벡터 예측을 이용한 비디오인코딩/디코딩 방법 및 장치 | |
| KR100714696B1 (ko) | 다계층 기반의 가중 예측을 이용한 비디오 코딩 방법 및장치 | |
| KR100679011B1 (ko) | 기초 계층을 이용하는 스케일러블 비디오 코딩 방법 및 장치 | |
| KR100597402B1 (ko) | 스케일러블 비디오 코딩 및 디코딩 방법, 이를 위한 장치 | |
| KR100834750B1 (ko) | 엔코더 단에서 스케일러빌리티를 제공하는 스케일러블비디오 코딩 장치 및 방법 | |
| KR100596706B1 (ko) | 스케일러블 비디오 코딩 및 디코딩 방법, 이를 위한 장치 | |
| KR100664928B1 (ko) | 비디오 코딩 방법 및 장치 | |
| KR100631777B1 (ko) | 다 계층의 모션 벡터를 효율적으로 압축하는 방법 및 장치 | |
| KR100621581B1 (ko) | 기초 계층을 포함하는 비트스트림을 프리디코딩,디코딩하는 방법, 및 장치 | |
| KR20060135992A (ko) | 다계층 기반의 가중 예측을 이용한 비디오 코딩 방법 및장치 | |
| KR100763182B1 (ko) | 다계층 기반의 가중 예측을 이용한 비디오 코딩 방법 및장치 | |
| JP4685849B2 (ja) | スケーラブルビデオコーディング及びデコーディング方法、並びにその装置 | |
| KR100703788B1 (ko) | 스무딩 예측을 이용한 다계층 기반의 비디오 인코딩 방법,디코딩 방법, 비디오 인코더 및 비디오 디코더 | |
| KR100763179B1 (ko) | 비동기 픽쳐의 모션 벡터를 압축/복원하는 방법 및 그방법을 이용한 장치 | |
| US20060250520A1 (en) | Video coding method and apparatus for reducing mismatch between encoder and decoder | |
| KR100843080B1 (ko) | 비디오 트랜스코딩 방법 및 장치 | |
| JP2007519274A (ja) | 過剰ウェーブレット領域におけるビデオ符号化 | |
| KR100834748B1 (ko) | 스케일러블 비디오 스트림 재생 방법 및 장치 | |
| KR100755689B1 (ko) | 계층적 시간적 필터링 구조를 갖는 비디오 코딩 및 디코딩방법, 이를 위한 장치 | |
| KR100664930B1 (ko) | 시간적 스케일러빌리티를 지원하는 비디오 코딩 방법 및장치 | |
| WO2006043754A1 (en) | Video coding method and apparatus supporting temporal scalability | |
| 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 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20040130 |
|
| PG1501 | Laying open of application | ||
| PC1203 | Withdrawal of no request for examination | ||
| WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |