KR101285841B1 - 움직임 벡터 부호화 장치 및 복호화 장치, 그리고 그것의 부호화 및 복호화 방법 - Google Patents

움직임 벡터 부호화 장치 및 복호화 장치, 그리고 그것의 부호화 및 복호화 방법 Download PDF

Info

Publication number
KR101285841B1
KR101285841B1 KR1020110118086A KR20110118086A KR101285841B1 KR 101285841 B1 KR101285841 B1 KR 101285841B1 KR 1020110118086 A KR1020110118086 A KR 1020110118086A KR 20110118086 A KR20110118086 A KR 20110118086A KR 101285841 B1 KR101285841 B1 KR 101285841B1
Authority
KR
South Korea
Prior art keywords
motion vector
codeword
independent
combined
encoding
Prior art date
Application number
KR1020110118086A
Other languages
English (en)
Other versions
KR20130052818A (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 KR1020110118086A priority Critical patent/KR101285841B1/ko
Publication of KR20130052818A publication Critical patent/KR20130052818A/ko
Application granted granted Critical
Publication of KR101285841B1 publication Critical patent/KR101285841B1/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/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • 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

Abstract

본 발명은 움직임 벡터 부호화 장치 및 복호화기, 그리고 그것의 부호화 및 복호화 방법에 관한 것이다. 본 발명의 실시예에 의한 움직임 벡터 부호화 장치는 움직임 벡터를 입력받아 차분 움직임 벡터를 생성하는 차분 움직임 벡터 생성부, 상기 차분 움직임 벡터 생성부로부터 입력받은 차분 움직임 벡터를 독립 부호어 쌍 또는 결합 부호어로 변환하는 부호어 변환부 및 상기 부호어 변환부로부터 수신된 독립 부호어 쌍 또는 결합 부호어를 부호화하여 출력하는 움직임 벡터 부호화부를 포함한다.

Description

움직임 벡터 부호화 장치 및 복호화 장치, 그리고 그것의 부호화 및 복호화 방법{MOTION VECTOR ENCODER AND DECODER, AND METHOD FOR ENCODING AND DECODING THEREOF}
본 발명은 움직임 벡터 부호화 장치 및 복호화 장치, 그리고 그것의 부호화 및 복호화 방법에 관한 것이다.
동영상 압축 표준 기술은 동영상 내부에 존재하는 공간적, 통계적 및 시간적 중복성(redundancy)을 제거하여 데이터의 양을 압축하는 기술이다. 지금까지 MPEG-2, MPEG-4, H.264/AVC 등의 다양한 동영상 압축 표준 기술들이 제시되어 왔으며 현재 모바일 TV환경에서 고해상도/고화질의 동영상 서비스를 제공할 수 있는 새로운 고성능 동영상 압축 표준(HEVC)의 개발이 진행되고 있다.
동영상 압축 표준 기술에서 공간적 중복성(spatial redundancy)은 동일 화상 내의 이웃하는 픽셀 간의 유사성에서 기인한다. 공간적 중복성은 DCT(descrete cosine transform) 등을 이용하여 인접하는 화소 또는 블록 간의 상관관계를 제거하는 것으로 감소될 수 있다. 통계적 중복성(statical redundancy)은 부호화될 심볼마다 그 발생 빈도가 동일하지 않다는 사실에 기인한다. 통계적 중복성은 정보 이론(information theory)에 근거한 허프만 부호화(Huffman coding), 가변 길이 부호화 등의 부호화 과정을 통해 제거될 수 있다.
시간적 중복성(temporal redundancy)은 연속되는 프레임에 동일한 객체가 나타나는 것에서 기인한다. 시간적 중복성을 제거하기 위해서는 움직임 벡터(motion vector)를 이용하여 프레임 간의 움직임을 예측하는 움직임 추정(motion estimation) 방법이 주로 사용된다. 이때 얻어지는 움직임 벡터 정보는 움직임 벡터 부호화 방식을 통하여 부호화된다. 그런데 지금까지 움직임 벡터 부호화 방식은 동영상 부호화기를 구성하는 움직임 예측 및 보상, DCT 변환 및 양자화, 인트라 모드 예측등의 방식들에 비하여 크게 개선되지 못하였다. 따라서 동영상 압축의 성능을 향상시키기 위해서 개선된 압축 성능을 가지는 움직임 벡터의 부호화 및 복호화 과정이 요구된다.
본 발명은 개선된 압축 성능을 가지는 움직임 벡터 부호화 장치 및 복호화 장치, 그리고 그것의 부호화 및 복호화 방법을 제공하는 데에 그 목적이 있다.
본 발명의 실시예에 따른 움직임 벡터 부호화 장치는 움직임 벡터를 입력받아 차분 움직임 벡터를 생성하는 차분 움직임 벡터 생성부, 상기 차분 움직임 벡터 생성부로부터 입력받은 차분 움직임 벡터를 독립 부호어 쌍 또는 결합 부호어로 변환하는 부호어 변환부 및 상기 부호어 변환부로부터 수신된 독립 부호어 쌍 또는 결합 부호어를 부호화하여 출력하는 움직임 벡터 부호화부를 포함한다.
실시 예에 있어서, 움직임 벡터 부호화 장치는 상기 움직임 벡터를 통해 블록의 움직임 정도를 계산하여 부호화 모드 선택 신호를 생성하는 부호화 모드 결정기를 더 포함하고, 상기 부호어 변환부는 상기 부호화 모드 결정기로부터 수신된 부호화 모드 선택 신호에 따라 상기 차분 움직임 벡터를 독립 부호어 쌍 또는 결합 부호어로 변환한다.
실시 예에 있어서, 움직임 벡터 부호화 장치에 있어 상기 부호화 모드 결정기는 상기 움직임 벡터들의 최대값과 최소값의 차이값으로 상기 블록의 움직임 정도를 계산한다.
실시 예에 있어서, 상기 차분 움직임 벡터 생성부는 상기 입력받은 움직임 벡터를 저장하고 출력하는 움직임 벡터 저장기, 상기 움직임 벡터 저장기로부터 수신된 움직임 벡터들 중 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택기 및 상기 움직임 벡터 저장기로부터 수신된 움직임 벡터와 상기 예측 움직임 벡터 선택기로부터 수신된 예측 움직임 벡터를 통해 상기 차분 움직임 벡터를 계산하는 차분 움직임 벡터 연산기를 포함한다.
실시 예에 있어서, 상기 부호어 변환부는 상기 차분 움직임 벡터를 입력받아 독립 부호어 쌍으로 변환하는 독립 부호어 변환기, 상기 독립 부호어 변환기로부터 수신된 독립 부호어 쌍의 결합 부호화 진행 여부를 판단하고, 상기 독립 부호어 쌍을 출력하는 결합 부호화 선택기, 상기 결합 부호화 선택기로부터 수신된 독립 부호어 쌍을 결합 부호어로 변환하는 결합 부호어 변환기 및 상기 결합 부호화 선택기로부터 수신된 독립 부호어 쌍과 상기 결합 부호어 변환기로부터 수신된 결합 부호어를 출력하는 출력부를 포함한다.
본 발명의 실시예에 따른 움직임 벡터 부호화 장치 및 복호화 장치, 그리고 그것의 부호화 및 복호화 방법은 개선된 압축 성능을 가진다. 따라서 기존의 방법에 비하여 복잡도의 증가 없이 향상된 성능으로 동영상이 압축될 수 있다.
도 1은 일반적인 움직임 벡터 부호화 장치를 도시하는 블록도이다.
도 2는 본 실시예에서 MVD(x)에 대한 독립 부호어 변환기의 예시적인 변환 결과를 나타내는 표이다.
도 3은 본 발명의 실시예에 의한 부호어 변환부를 도시하는 블록도이다.
도 4는 |C(x)| 및 |C(y)|에 대하여 계산된 |C(x,y)|를 나타내는 도면이다.
도 5는 도 3의 부호어 변환부를 이용한 움직임 벡터 부호화 장치를 도시하는 블록도이다.
도 6은 도 5의 움직임 벡터 부호화 장치에 차분 움직임 벡터 생성부의 구성을 추가한 움직임 벡터 부호화 장치의 블록도이다.
도 7은 본 발명의 실시예에 의한 부호어 역변환부를 나타낸 블록도이다.
도 8은 도 6의 부호어 역변환부를 이용한 움직임 벡터 복호화 장치를 도시한 블록도이다.
도 9는 본 발명의 실시예에 의한 동영상 부호화기를 도시한 블록도이다.
도 10는 본 발명의 실시예에 의한 움직임 벡터 부호화 방법을 나타낸 순서도이다.
도 11은 본 발명의 실시예에 의한 움직임 벡터 복호화 방법을 나타낸 순서도이다.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 본 발명의 실시예가 첨부된 도면을 참조하여 설명한다. 이하에서 사용되는 용어들은 오직 본 발명을 설명하기 위하여 사용된 것이며 본 발명의 범위를 한정하기 위해 사용된 것은 아니다.
동영상 압축 기술에 있어서, 동영상의 시간적 중복성을 제거하기 위해서는 프레임의 움직임을 예측하고 이를 보상하는 과정이 필요하다. 이를 위하여 움직임 보상(motion compensation) 기법이 사용된다.
움직임 보상 기법에서는 움직임 추정(motion estimation)을 통하여 결정된 예측 영상과 입력 영상간의 차이가 부호화된다. 움직임 추정에서는 이전 프레임으로부터 예측된 입력 영상과 가장 유사한 영상을 예측 영상으로 설정한다.
움직임 추정을 위한 알고리즘은 다양하다. 일반적으로 동영상 압축 표준 기술에서 사용되는 알고리즘은 블록 정합 알고리즘(Block Matching Algorithm, BMA)이다. 블록 정합 알고리즘에서, 각 프레임은 작은 블록(block)으로 나뉜다. 그리고 이전 프레임의 주어진 탐색 영역 내에서 현재 블록과 가장 유사한 정합 블록(matching block)이 검색된다. 정합 기준으로는 평균 절대 오차(mean absolute error, MSE), 절대 차의 합(sum of absolute difference, SAD), 그리고 라그랑지 상수 기반의 율-왜곡 함수(rate-distortion function)가 주로 사용된다.
움직임 벡터(motion vector, MV)는 정합 블록과 현재 블록 간의 위치 정보를 표현하는 벡터이다. 2차원 영상에서 움직임 벡터는 정합 블록과 현재 블록 간의 가로 및 세로 방향의 위치 정보를 표현하는 2차원 벡터로 나타난다. 그러나 본 발명은 이에 한정되지 않는다. 즉, 예를 들어 3D 영상에서 움직임 벡터는 정합 블록과 현재 블록 간의 공간 정보를 나타내는 3차원 벡터일 수 있다.
본 실시예에서 정합 블록과 현재 블록 간의 가로 방향 차는 움직임 벡터의 x축 성분으로 표현된다. 정합 블록과 현재 블록 간의 세로 방향 차는 움직임 벡터의 y축 성분으로 표현된다.
각 블록에서 생성된 움직임 벡터들은 움직임 벡터 부호화 장치(motion vector encoder)에 의해 부호화되어 압축된다. 또한 움직임 벡터 복호화 장치(motion vector decoder)에 의해 압축된 움직임 벡터들은 복원된다..
도 1은 일반적인 움직임 벡터 부호화 장치를 도시하는 블록도이다. 도 1을 참조하면, 움직임 벡터 부호화 장치(1)는 차분 움직임 벡터 생성부(10), 독립 부호어 변환기(20) 및 움직임 벡터 부호화부(30)를 포함한다.
차분 움직임 벡터 생성부(10)는 움직임 벡터를 입력받아 차분 움직임 벡터를 생성한다. 차분 움직임 벡터 생성부(10)는 움직임 벡터 저장기(11), 예측 움직임 벡터 선택기(12) 및 차분 움직임 벡터 연산기(13)를 포함한다.
움직임 벡터 저장기(11)는 움직임 벡터 부호화 장치(1)로 입력된 움직임 벡터를 임시적으로 저장한다. 움직임 벡터 저장기(11)는 저장된 움직임 벡터들을 예측 움직임 벡터 선택기(12)로 출력한다. 즉, 움직임 벡터 저장기(11)는 예측 움직임 벡터(predictive motion vector, MVP) 선택에 이용되는 후보 벡터들을 예측 움직임 벡터 선택기(12)에 제공하는 기능을 한다.
예측 움직임 벡터 선택기(12)는 움직임 벡터 저장기(11)로부터 입력받은 움직임 벡터들로부터 예측 움직임 벡터를 선택한다.
예측 움직임 벡터는 현재 블록의 주변 블록(Neighbor block)의 움직임 벡터들을 기초로 선택되는 현재 블록에 대한 예측된 움직임 벡터이다. 인접한 블록 간의 상관성에 의하여 현재 블록의 움직임 벡터는 주변 블록의 움직임 벡터와 유사할 가능성이 높다. 이러한 공간적 중복성을 이용하면 움직임 벡터 전송량은 감소될 수 있다.
본 명세서에서 주변 블록이란, 현재 블록이 부호화되기 전에 이미 부호화된 블록들 중, 현재 블록의 주변에 위치한 블록을 포함한다. 또, 현재 블록이 부호화되기 전에 이미 부호화된 블록들 중, 과거 혹은 미래 프레임 안에서 현재 블록과 동일한 위치의 블록의 주변에 위치한 블록을 포함한다. 주변 블록은 현재 블록과 인접한 인접 블록이 될 수도 있지만 반드시 인접한 블록만으로 한정되는 것은 아니다.
예측 움직임 벡터 선택기(12)는 선택된 예측 움직임 벡터를 표시하는 인덱스를 움직임 벡터 부호화부(30)로 출력한다.
차분 움직임 벡터 연산기(13)는 현재 블록의 움직임 벡터와 선택된 예측 움직임 벡터를 이용하여 차분 움직임 벡터(differential motion vector, MVD)를 생성한다. 차분 움직임 벡터는 수학식 1 및 수학식 2와 같이 표현된다.
Figure 112011089544668-pat00001
Figure 112011089544668-pat00002
수학식 1에서 MVD(x)는 차분 움직임 벡터의 x축 성분이다. MV(x)는 현재 블록의 움직임 벡터의 x축 성분이다. MVP(x)는 예측 움직임 벡터의 x축 성분이다. MVD(y)는 차분 움직임 벡터의 y축 성분이다. 수학식 2에서 MV(y)는 현재 블록의 움직임 벡터의 y축 성분이다. MVP(y)는 예측 움직임 벡터의 y축 성분이다.
차분 움직임 벡터 연산기(13)는 생성된 차분 움직임 벡터를 독립 부호어 변환기(20)로 출력한다.
독립 부호어 변환기(20)는 차분 움직임 벡터 연산기(13)로부터 입력받은 차분 움직임 벡터의 x축 성분(이하 MVD(x))과 y축 성분(이하 MVD(y))을 각각을 개별적으로 부호어(codeword)로 변환한다. 이하에서 차분 움직임 벡터의 부호어 변환에 대해 간략히 설명한다.
도 2는 본 실시예에서 MVD(x)에 대한 독립 부호어 변환기의 예시적인 변환 결과를 나타내는 표이다. 도 2에는 MVD(x)에 관하여만 도시되었으나 MVD(y)에 대하여도 동일한 변환 과정이 적용될 수 있다. 도 2를 참조하면, MVD(x)는 실수 차원을 가진다. 독립 부호어 변환기(20)는 이를 정수 차원을 가지는 부호어 C(x)로 변환한다. 부호어 C(x)는 부호어의 크기를 나타내는 크기 영역(magnitude region, |C(x)|)과 부호어의 부호를 나타내는 부호영역(sign region, s(x))으로 구성된다.
다시 도 1을 참조하면, 독립 부호어 변환기(20)는 상기와 같은 변환 과정에 의하여 얻어진, MVD(x) 및 MVD(y)에 대하여 변환된 독립 부호어 쌍(C(x) 및 C(y))을 움직임 벡터 부호화부(30)로 출력한다.
움직임 벡터 부호화부(30)는 독립 부호어 변환기(20)로부터 입력받은 부호어(C(x),C(y))와 예측 움직임 벡터 선택기(12)로부터 입력받은 예측 움직임 벡터 인덱스에 대하여 각각 독립적으로 부호화를 수행한다. 본 실시예에서 움직임 벡터 부호화부(30)는 엔트로피 부호화를 수행한다. 그러나 본 발명은 이에 한정되지 않는다.
설명한 바와 같이, 도 1에 의한 움직임 벡터 부호화 장치는 주변 움직임 벡터들로부터 예측 움직임 벡터를 선택한다. 또한 움직임 벡터 부호화 장치는 움직임 벡터와 예측 움직임 벡터 사이의 차이인 차분 움직임 벡터를 생성한다. 움직임 벡터 부호화 장치는 생성된 차분 움직임 벡터의 x축 성분과 y축 성분을 각각 정수 차원의 부호어로 변환한다. 그리고 움직임 벡터 부호화 장치는 변환된 부호어를 다시 엔트로피 부호화하여 압축한다.
그러나, 도 1에 제시된 움직임 벡터 부호화 장치는 동영상의 움직임 특성을 반영하지 못하는 문제점을 가진다. 일반적으로 부호화할 동영상의 움직임이 작을 경우에 MVD(x)와 MVD(y)는 작은 값을 지니게 된다. 또한 다양한 후보 벡터들 가운데에서 선정되는 예측 움직임 벡터는 효과적으로 움직임 벡터를 추정하므로 MVD(x)와 MVD(y)가 작은 값을 지닐 가능성은 더욱 높아진다. MVD(x)와 MVD(y)의 크기가 작을 수록 상관성이 있을 가능성이 높다.
정보 이론(information theory)에 의하면 독립된 변수들 사이에 상관관계가 존재하면 두 변수를 결합하여 전송하는 것이 이득이 된다. 즉, MVD(x)와 MVD(y)간에 상관성이 존재할 경우 MVD(x)와 MVD(y)를 결합하여 부호화하는 것이 보다 더 효과적이다. 그러나 제시된 움직임 벡터 부호화 장치는 MVD(x)와 MVD(y)를 언제나 각각 독립적으로 부호화한다. 따라서 제시된 움직임 벡터 부호화 장치는 MVD(x)와 MVD(y)간에 상관성이 존재할 경우 효과적인 압축을 수행하지 못한다. 이러한 문제점을 개선하기 위하여 본 발명에서는 개선된 부호어 변환부를 제시한다.
도 3은 본 발명의 실시예에 의한 부호어 변환부를 도시하는 블록도이다. 도 3을 참조하면, 부호어 변환부(100)는 독립 부호어 변환기(110), 결합 부호어 선택기(120) 및 결합 부호어 변환기(130)를 포함한다.
독립 부호어 변환기(110)는 차분 움직임 벡터(MVD(x) 및 MVD(y))를 입력받아 각각 변환한다. 차분 움직임 벡터가 변환된 독립 부호어 쌍(C(x) 및 C(y))은 결합 부호화 선택기(120)로 출력된다.
결합 부호어 선택기(120)는 현재 차분 움직임 벡터에 대하여 결합 부호어 변환을 수행할 것인지 선택한다. 결합 부호어 선택기(120)는 부호화 모드 선택 신호를 입력받아 선택 여부를 결정한다. 부호화 선택 신호는 복수 개의 모드를 가진다. 예를 들어, 부호화 모드 선택 신호가 1이면 결합 부호어 선택기(120)는 독립 부호어 쌍(C(x) 및 C(y))을 결합 부호어 변환기(130)로 출력할 수 있다. 그렇지 않은 경우에는 독립 부호어 쌍(C(x) 및 C(y))을 바로 출력할 수 있다.
결합 부호어 변환기(130)는 결합 부호어 선택기(120)로부터 독립 부호어 쌍(C(x) 및 C(y))을 입력받는다. 결합 부호어 변환기(130)는 입력받은 독립 부호어 쌍(C(x) 및 C(y))을 결합 부호어((C(x,y))로 변환한다.
결합 부호어(C(x,y))는 크기 영역(magnitude region, |C(x,y)|)과 부호 영역(sign region, s(x) 및 s(y))으로 구성된다. 이때 s(x) 및 s(y)는 독립 부호어 쌍(C(x) 및 C(y))의 부호를 나타낸다. |C(x,y)|는 결합 부호어(C(x,y))의 크기이다. |C(x,y)|는 독립 부호어 쌍의 크기 영역(|C(x)| 및 |C(y)|)에 의하여 아래 수학식과 같이 계산된다.
Figure 112011089544668-pat00003
Figure 112011089544668-pat00004
Figure 112011089544668-pat00005
수학식 3에서 K는 독립 부호어 쌍의 크기 영역(|C(x)| 및 |C(y)|)의 합을 나타내는 상수이다. 수학식 4에서 J는 K로부터 독립 부호어 쌍의 크기 영역(|C(x)| 및 |C(y)|) 사이의 차의 절대값을 뺀 값이다. 수학식 5에서 ">>" 기호는 비트열을 오른쪽으로 이동시키는 비트 연산자이다. ">> N" 은 비트열을 N비트 만큼 오른쪽으로 이동시키는 것을 의미한다. 예를 들어, "110(2) >> 1" 는 11(2)이다.
도 4는 위 식에 의하여 계산된 |C(x,y)|를 나타내는 도면이다.
결합 부호어 변환기(130)는 위와 같이 변환된 결합 부호어(C(x,y))를 출력한다.
따라서 실시예에 의한 부호어 변환부(100)는 부호화 모드 결정 신호에 따라 독립 부호어 변환과 결합 부호어 변환이 모두 수행될 수 있다. 독립 부호어 쌍이 결합 부호어로 변환될 경우 독립 부호어 쌍은 출력되지 않고 변환된 결합 부호어만 출력되므로 데이터의 전송량은 감소될 수 있다. 본 실시예에서는 2개의 성분을 가지는 2차원 벡터에 관하여 설명하였지만 이는 예시적인 것으로서 본 발명은 이에 한정되지 않는다. 예를 들어, 본 발명은 3개의 성분을 가지는 독립 부호어 쌍(C(x), C(y) 및 C(z))과 결합 부호어(C(x,y,z))에 대하여도 적용될 수 있다.
도 5는 도 3의 부호어 변환부를 이용한 움직임 벡터 부호화 장치를 도시하는 블록도이다. 도 5를 참조하면, 움직임 벡터 부호화 장치(200)는 차분 움직임 벡터 생성부(210), 부호화 모드 결정기(220), 부호어 변환부(230) 및 움직임 벡터 부호화부(240)를 포함한다.
도 5의 차분 움직임 벡터 생성부(210)는 움직임 벡터를 입력받아 차분 움직임 벡터를 생성한다. 차분 움직임 벡터 생성부(210)는 움직임 벡터 저장기, 예측 움직임 벡터 선택기 및 차분 움직임 벡터 연산기를 포함한다. 또, 차분 움직임 생성부(210)는 움직임 벡터들을 부호화 모드 결정기(220)로 출력한다.
움직임 벡터 저장기는 움직임 벡터 부호화 장치로 입력된 움직임 벡터를 임시적으로 저장한다. 움직임 벡터 저장기는 저장된 움직임 벡터들을 예측 움직임 벡터 선택기로 출력한다. 예측 움직임 벡터 선택기는 움직임 벡터 저장기로부터 입력받은 움직임 벡터들로부터 예측 움직임 벡터를 선택한다. 예측 움직임 벡터 선택기는 선택된 예측 움직임 벡터를 표시하는 인덱스를 움직임 벡터 부호화부(240)로 출력한다.
차분 움직임 벡터 연산기는 현재 블록의 움직임 벡터와 선택된 예측 움직임 벡터를 이용하여 차분 움직임 벡터를 생성한다. 차분 움직임 벡터 연산기는 생성된 차분 움직임 벡터를 부호어 변환부(230)로 출력한다.
부호화 모드 결정기(220)는 움직임 벡터 생성부(210)로부터 입력받은 움직임 벡터들을 기초로 하여 현재 블록의 움직임 정도(이하 pS)를 판정한다. 부호화 모드 결정기(220)는 계산된 pS와 주어진 임계값을 비교하여 부호화 모드 선택 신호를 생성한다. 부호화 모드 결정기(220)는 생성된 부호화 모드 선택 신호를 부호어 변환부(230)와 움직임 벡터 부호화부(240)로 출력한다.
부호어 변환부(230)는 도 3의 부호어 변환부(100)와 그 구성 및 동작이 동일하다. 부호어 변환부(230)는 차분 움직임 벡터를 부호화 모드 선택 신호에 따라 독립 부호어 쌍 혹은 결합 부호어로 변환한다. 그리고 부호어 변환부(230)는 변환된 독립 부호어 쌍 혹은 결합 부호어를 움직임 벡터 부호화부(240)로 전송한다.
움직임 벡터 부호화부(240)는 부호어 변환부(230)로부터 입력받은 독립 부호어 또는 결합 부호어(C(x),C(y) 및 C(x,y))와 예측 움직임 벡터 선택기(212)로부터 입력받은 예측 움직임 벡터 인덱스에 대하여 각각 엔트로피 부호화를 수행한다. 움직임 벡터 부호화부(240)에는 부호화 모드 결정기(220)로부터 부호화 모드 선택 신호가 입력된다. 움직임 벡터 부호화부(240)는 입력된 부호화 모드 선택 신호에 따라 독립 부호어 쌍 부호화 또는 결합 부호어 부호화를 선택하여 출력한다.
도 6은 도 5의 움직임 벡터 부호화 장치에서 차분 움직임 벡터 생성부의 구성을 추가한 움직임 벡터 부호화 장치의 블록도이다. 도 6을 참조하면, 움직임 벡터 부호화 장치(300)는 차분 움직임 벡터 생성부(310), 부호화 모드 결정기(320), 부호어 변환부(330) 및 움직임 벡터 부호화부(340)를 포함한다.
차분 움직임 벡터 생성부(310)는 움직임 벡터 저장기(311), 예측 움직임 벡터 선택기(312) 및 차분 움직임 벡터 연산기(313)를 포함한다.
움직임 벡터 저장기(311)는 입력된 움직임 벡터를 임시적으로 저장한다. 움직임 벡터 저장기(311)는 저장된 움직임 벡터들을 예측 움직임 벡터 선택기(312) 및 부호화 모드 결정기(320)로 출력한다. 움직임 벡터 저장기(311)가 저장 및 출력하는 움직임 벡터는 현재 블록의 주변 블록(Neighbor block)의 움직임 벡터이다.
예측 움직임 벡터 선택기(312)는 움직임 벡터 저장기(311)로부터 입력받은 움직임 벡터들로부터 예측 움직임 벡터를 선택한다. 예측 움직임 벡터 선택기(312)는 선택된 예측 움직임 벡터를 표시하는 인덱스를 움직임 벡터 부호화부(340)로 출력한다.
차분 움직임 벡터 연산기(313)는 현재 블록의 움직임 벡터와 선택된 예측 움직임 벡터를 이용하여 차분 움직임 벡터(이하 MVD)를 생성한다. 차분 움직임 벡터 연산기(313)는 생성된 차분 움직임 벡터를 부호어 변환부(330)로 출력한다.
부호화 모드 결정기(320)는 움직임 벡터 저장기(311)로부터 입력받은 움직임 벡터들을 기초로 하여 현재 블록의 움직임 정도(이하 pS)를 판정한다. pS가 작으면 MVD의 x축 성분(이하 MVD(x))과 MVD의 y축 성분(이하 MVD(y))는 작은 값을 가진다. 이 경우 MVD(x)와 MVD(y)를 따로 부호화하는 것보다 결합하여 부호화하는 것이 효율적이다. 반면, pS가 크면 MVD(x)와 MVD(y) 사이의 상관성이 낮을 확률이 높으므로 MVD(x)와 MVD(y)를 따로 부호화하는 것이 효율적이다.
본 실시예에서, 부호화 모드 결정기(320)는 현재 블록의 pS를 수학식 6과 같이 계산한다.
Figure 112011089544668-pat00006
수학식 6에서 모든 움직임 벡터는 움직임 벡터 저장기(311)가 출력하는 모든 주변 블록들의 움직임 벡터를 뜻한다. 즉, 부호화 모드 결정기(320)는 움직임 벡터 저장기(311)로부터 입력받은 주변 블록들의 움직임 벡터들에 대한 성분별 최대값과 최소값의 차이의 총합으로 현재 블록의 움직임 정도를 계산한다. 그러나 본 발명은 이에 한정되지 않는다.
부호화 모드 결정기(320)는 계산된 pS와 주어진 임계값을 비교한다. 부호화 모드 결정기(220)는 pS가 임계값보다 크면 기존의 독립 부호화 방식이 수행되도록 부호화 모드 선택 신호를 0으로 설정한다. 부호화 모드 결정기(320)는 pS가 임계값보다 작으면 결합 부호화 방식이 수행되도록 부호화 모드 선택 신호를 1로 설정한다. 부호화 모드 결정기(320)는 설정한 부호화 모드 선택 신호를 부호어 변환부(330)와 움직임 벡터 부호화부(340)로 출력한다.
부호어 변환부(330)는 도 3의 부호어 변환부(100)와 그 구성 및 동작이 동일하다. 부호어 변환부(330)는 차분 움직임 벡터를 부호어로 변환한다. 그리고 보호어 벼환부(330)는 부호화 모드 결정기(320)로부터 입력받은 부호화 모드 선택 신호에 따라 차분 움직임 벡터 연산기(313)로부터 입력받은 차분 움직임 벡터에 대한 부호어 변환 여부를 선택한다.
부호어 변환부(330)는 상관성이 높은 독립 부호어 쌍만 결합 부호어로 변환시켜 출력한다. 부호어 변환부(330)는 그 이외의 차분 움직임 벡터는 독립 부호어 쌍을 그대로 출력한다. 부호어 변환부(330) 그 결과를 움직임 벡터 부호화부(340)로 전송한다.
움직임 벡터 부호화부(340)는 부호어 변환부(330)로부터 입력받은 부호어(C(x),C(y) 및 C(x,y))와 예측 움직임 벡터 선택기(312)로부터 입력받은 예측 움직임 벡터 인덱스에 대하여 엔트로피 부호화를 수행한다. 그러나 본 발명은 이에 한정되지 않고 다른 부호화 방식에 대하여도 적용될 수 있다.
움직임 벡터 부호화부(340)에서 수행되는 부호화는 허프만 부호화, 산술 부호화 등 다양한 엔트로피 부호화 방식에 의하여 구현될 수 있다.
따라서 본 실시예에 의한 움직임 벡터 부호화 장치는 움직임 벡터의 움직임 정도를 계산한다. 그리고 이에 맞추어 결합 부호화를 실시한다. 따라서 본 실시예에 의한 움직임 벡터 부호화 장치는 엔트로피 부호화 횟수 및 전송량이 감소되어 우수한 압축 성능을 가진다.
위와 같이 결합 부호화 방식을 사용하여 부호화된 데이터를 동영상으로 다시 복원하기 위해서는 결합 부호어를 복호화할 수 있는 부호어 역변환부 및 이를 포함하는 움직임 벡터 복호화 장치가 요구된다.
도 7은 본 발명의 실시예에 의한 부호어 역변환부를 나타낸 블록도이다. 도 7을 참조하면, 부호어 역변환부는 독립 역변환 입력 선택기(410), 결합 부호어 역변환기(420) 및 독립 부호어 역변환기(430)을 포함한다.
결합 부호어 역변환기(410)는 복호화된 부호어를 입력받는다. 결합 부호어 역변환기(410)는 입력받은 부호어를 결합 부호어(C(x,y))라고 가정하고 이를 독립부호어 쌍(C(x) 및 C(y))으로 역변환한다. 독립부호어 쌍의 부호 영역(S(x) 및 S(y))은 결합 부호어의 부호 영역과 동일하다. 따라서 독립부호어 쌍의 크기 영역(|C(x)| 및 |C(y)|)를 결합 부호어의 크기 영역(|C(x,y)|)으로부터 역변환하는 것이 중요하다. 결합 부호어 역변환기(420)는 아래 수학식과 같이 역변환 과정을 수행한다.
Figure 112011089544668-pat00007
Figure 112011089544668-pat00008
Figure 112011089544668-pat00009
Figure 112011089544668-pat00010
수학식 7 및 8에서 M과 N은 계산의 편의를 위하여 정의된 상수이다. 수학식 7에서 ceil 함수는 내부의 값을 올림하는 함수이다. 또, "<<" 기호는 비트열을 왼쪽으로 이동시키는 비트 연산자이다. "<< N" 은 비트열을 N비트 만큼 왼쪽으로 이동시키는 것을 의미한다. 예를 들어, "110(2) << 1" 는 1100(2)이다. "%"기호는 나머지 값을 얻는 연산자를 의미한다. "% N"은 N으로 나눈 나머지값을 나타낸다. 예를 들어, "13 % 5"는 3이다.
결합 부호어 역변환기(420)는 위와 같은 역변환 과정을 거쳐 역변환된 독립 부호어 쌍(C(x) 및 C(y))을 독립 역변환 입력 선택기(420)로 전송한다.
독립 역변환 입력 선택기(420)는 복호화된 부호어를 입력받는다. 또, 독립 역변환 입력 선택기(420)는 결합부호어 역변환기로부터 독립부호어 쌍을 입력받는다. 독립 역변환 입력 선택기 (420)는 부호화 모드 신호를 입력받는다. 본 실시예에서 독립 역변환 입력 선택기(420)는 부호화 모드 선택신호가 1이면 결합 부호어 역변환기로부터 입력되는 독립부호어 쌍을 선택한다. 그러나 이는 예시적인 것으로 본 발명은 이에 한정되지 않는다. 독립 역변환 입력 선택기(420)는 부호화 모드 선택 신호가 0이면 상기 입력되는 복호화된 부호어를 독립부호어 쌍으로 간주하고 이를 선택한다. 독립 역변환 입력 선택기(420)는 선택된 정보를 독립 부호어 역변환기(430)로 전송한다.
독립 부호어 역변환기(430)는 독립 역변환 입력 선택기(420)로부터 전송받은 독립 부호어 쌍(C(x) 및 C(y))을 차분 움직임 벡터로 역변환한다. 독립 부호어 역변환기(430)는 역변환된 차분 움직임 벡터(MVD(x) 및 MVD(y))를 출력한다.
따라서 본 실시예에 의한 부호어 역변환부는 복호화된 부호어가 입력되면 입력된 데이터들을 차분 움직임 벡터로 변환한다. 따라서 결합 부호화가 수행된 데이터에 관하여도 역변환이 수행되어 움직임 벡터가 복구될 수 있다.
도 8은 도 7의 부호어 역변환부를 이용한 움직임 벡터 복호화 장치를 도시한 블록도이다. 도 8을 참조하면, 움직임 벡터 복호화 장치(500)는 움직임 벡터 복호화부(510), 부호어 역변환부(520), 움직임 벡터 복원부(530) 및 부호화 모드 결정기(540)를 포함한다.
움직임 벡터 복호화부(510)는 움직임 벡터 부호화 장치로부터 엔트로피 부호화된 비트 스트림을 입력받는다. 움직임 벡터 복호화부(510)는 부호화 모드 결정기(540)로부터 부호화 모드 선택 신호를 입력받는다. 움직임 벡터 복호화부(510)는 엔트로피 복호화 과정을 거쳐 비트 스트림을 복호화한다. 이를 통해 움직임 벡터 복호화부(510)는 부호어 및 결합 부호어(C(x),C(y) 및 C(x,y)), 그리고 예측 움직임 벡터(MVP)의 인덱스를 얻는다. 움직임 벡터 복호화부(510)는 부호어 및 결합 부호어(C(x),C(y) 및 C(x,y))를 부호어 역변환부로 전송한다. 또, 움직임 벡터 복호화부(510)는 예측 움직임 벡터(MVP)의 인덱스를 예측 움직임 벡터 선택기로 전송한다.
실시예로서, 움직임 벡터 복호화부(510)는 입력된 비트 스트림을 독립 부호어 복호화기, 결합 복호화기 및 인덱스 복호화기(미도시)를 통해 독립 부호어 쌍, 결합 부호어 쌍 및 인덱스로 각각 따로 복호화할 수 있다. 움직임 벡터 복호화부(510)는 입력된 부호화 모드 선택 신호에 따라 독립 부호어 쌍과 결합 부호어를 선택하여 부호어 역변환부로 전송한다.
부호어 역변환부(520)는 도 6의 부호어 역변환부와 그 동작 및 구성이 동일하다. 부호어 역변환부(520)는 부호어(C(x),C(y) 및 C(x,y))와 부호화 모드 선택 신호를 입력받는다. 부호어 역변환부(520)는 이를 통해 입력된 부호어(C(x),C(y) 및 C(x,y))를 차분 움직임 벡터(MVD(x) 및 MVD(y))로 역변환하여 움직임 벡터 복원부(530)로 출력한다.
움직임 벡터 복원부(530)는 움직임 벡터 저장기(531), 예측 움직임 벡터 선택기(532) 및 움직임 벡터 계산기(533)를 포함한다. 움직임 벡터 복원부(530)는 차분 움직임 벡터(MVD)를 입력받아 이를 움직임 벡터(MV)로 복원한다.
움직임 벡터 저장기(531)는 움직임 벡터 계산기(533)로부터 계산된 움직임 벡터들을 지속적으로 저장한다. 움직임 벡터 저장기(531)는 저장된 움직임 벡터들을 부호화 모드 결정기(530) 및 예측 움직임 벡터 선택기(532)로 전달한다.
예측 움직임 벡터 선택기(532)는 움직임 벡터 저장기(531)로부터 입력받은 움직임 벡터들 중에서 예측 움직임 벡터를 선택한다. 예측 움직임 벡터 선택기(532)는 움직임 벡터 복호화부(510)로부터 입력받은 예측 움직임 벡터의 인덱스를 이용하여 예측 움직임 벡터를 선택한다. 예측 움직임 벡터 선택기(532)는 선택된 예측 움직임 벡터를 움직임 벡터 계산기(533)로 전송한다.
움직임 벡터 계산기(533)는 부호어 역변환부(520)로부터 차분 움직임 벡터를 입력받는다. 움직임 벡터 계산기(533)는 예측 움직임 벡터 선택기(532)로부터 예측 움직임 벡터를 입력받는다. 움직임 벡터 계산기(533)는 차분 움직임 벡터와 예측 움직임 벡터를 더하여 움직임 벡터를 계산한다. 움직임 벡터 계산기(533)는 계산된 움직임 벡터를 움직임 벡터 저장기(531)에 전송한다. 또, 움직임 벡터 계산기(533)는 계산된 움직임 벡터를 움직임 벡터 복호화 장치(500)의 최종 출력으로서 출력한다.
부호화 모드 결정기(540)는 움직임 벡터 저장기로부터 움직임 벡터들을 입력받는다. 부호화 모드 결정기(540)는 움직임 벡터 부호화 장치와 동일한 방법으로 부호화 모드 선택 신호를 생성한다. 부호화 모드 결정기(540)는 생성된 부호화 모드 선택 신호를 부호어 역변환부 및 움직임 벡터 복호화부에 전송한다.
따라서 본 실시예에 의한 움직임 벡터 복호화 장치는 사전에 복호화된 움직임 블록의 움직임 벡터에서 예측 움직임 벡터와 부호화 모드 선택 신호를 계산한다. 움직임 벡터 복호화 장치는 이를 피드백하는 것으로 다음 움직임 벡터를 복호화한다. 또한 본 실시예에 의한 움직임 벡터 복호화 장치는 결합 부호화된 비트 스트림을 입력받아 이를 움직임 벡터로 변환할 수 있다. 따라서 복잡도를 증가시키지 않으면서 개선된 압축 성능을 가지는 움직임 벡터 복호화 장치가 구현될 수 있다.
도 9는 본 발명의 실시예에 의한 움직임 벡터 부호화 장치를 이용한 동영상 부호화기를 도시하는 블록도이다. 도 9를 참조하면, 동영상 부호화기(1000)는 제 1 및 제 2 가산기(1010, 1050), 인트라 모드 예측부(1020), DCT 변환 및 양자화부(1030), 역양자화 및 역DCT 변환부(1040), 스위치(sw), 디블록킹 필터(deblocking filter)(1060), 프레임 메모리부(1070), 움직임 예측부(1080), 움직임 보상부(1090), 부호화 제어부(1100) ,움직임 벡터 부호화 장치(1110), 가변길이 부호화부(1120) 및 비트열 구성부(1130)를 포함한다.
제1 가산기(1010)는 입력 영상과 인트라 모드 예측부(1020) 혹은 움직임 보상부(1090)로부터 출력되는 예측 영상의 차이를 출력한다. 이를 위하여 스위치(sw)는 인트라 모드 예측부(1020)와 움직임 보상부(1090)의 출력 중 하나를 예측 영상으로 선택한다. 스위치(sw)는 선택된 예측 영상을 제 1 가산기(1010)에 전달되도록 한다.
인트라 모드 예측부(1020)는 디블록킹 필터부(1060)의 출력에 대하여 예측 영상을 생성하고 출력한다.
DCT 변환 및 양자화부(1030)는 제 1 가산기(1010)로부터 출력된 영상 신호, 즉 입력 영상과 인트라 모드 예측부(1020) 혹은 움직임 보상부(1090)로부터 출력되는 예측 영상의 차이를 DCT(Discrete Cosine Transform) 변환한다. DCT 변환 및 양자화부(1030)는 변환된 영상 신호를 주파수 영역에서 양자화한다. DCT 변환 및 양자화부(1030)는 양자화된 신호를 역양자화 및 역DCT 변환부(1020) 및 움직임 벡터 부호화 장치(1110)로 출력한다.
역양자화 및 역DCT 변환부(1040)는 양자화된 영상 부호화 신호를 인트라모드 예측, 움직임 예측 및 움직임 보상시의 참조 영상으로 사용하기 위하여 역양자화 및 역DCT 변환시키고 출력한다.
제 2 가산기(1050)는 역양자화 및 역DCT 변환부(1040)로부터 출력된 신호를 인트라 모드 예측부(1020) 혹은 움직임 보상부(1090)로부터 출력되는 예측 영상과 가산한다. 디블록킹 필터(deblocking filter)(1060)는 가산된 영상 신호를 입력받아 필터링한다. 디블록킹 필터(1060)는 블록 단위의 부호화 과정에서 발생되는 영상의 블록화를 제거하는 필터이다. 디블록킹 필터(1060)를 통해 참조 영상의 화질은 개선된다.
프레임 메모리부(1070)는 역양자화부와 역DCT 및 디블록킹 필터링에 의하여 복원된 참조 영상을 저장한다.
움직임 예측부(1080)는 현재 압축하려 하는 블록과 가장 유사한 정합 블록을 탐색한다. 그리고 정합 블록과 현재 블록 간의 위치 정보로부터 움직임 벡터를 생성한다. 움직임 예측부(1080)는 생성된 움직임 벡터를 움직임 벡터 부호화 장치(1110)와 움직임 보상부(1090)로 출력한다.
움직임 보상부(1090)는 움직임 예측부(1080)의 움직임 벡터에 의하여 움직임이 보상된 예측 영상을 출력한다. 부호화 제어부(1100)는 움직임 벡터 부호화 장치(1110)를 비롯한 부호화기의 부호화 과정을 제어한다.
움직임 벡터 부호화 장치(1110)는 움직임 예측부(1080)로부터 움직임 벡터를 입력받는다. 움직임 벡터 부호화 장치(1110)는 움직임 벡터를 이용하여 차분 움직임 벡터를 생성한다. 움직임 벡터 부호화 장치(1110)는 차분 움직임 벡터와 양자화된 신호를 부호화하여 출력한다. 차분 움직임 벡터가 부호화되는 과정에서 결합 부호화 혹은 독립 부호화가 선택적으로 수행될 수 있다.
가변길이 부호화부(1120)는 동영상 부호화기에서 동영상 복호화기로 전송되어야 하는 데이터들을 엔트로피 부호화한다. 예를 들어, 데이터는 공간적 중복성을 감소시키기 위하여 DCT에 의하여 압축된 색상 데이터를 포함할 수 있다.
비트열 구성부(1130)는 엔트로피 부호화가 수행된 데이터들을 비트 스트림으로 구성하여 출력한다.
따라서 본 발명의 실시예에 따른 동영상 부호화기는 움직임 벡터로부터 차분 움직임 벡터를 생성하고 부호화하는 과정에서 전송량을 감소시킬 수 있다.
도 10은 본 발명의 실시예에 의한 움직임 벡터 부호화 방법을 나타낸 순서도이다.
도 10을 참조하면, 먼저 주변 블록의 움직임 벡터의 x축 성분 및 y축 성분(MV(x) 및 MV(y))이 저장된다(S100). 이 중 예측 움직임 벡터(MVP)가 선택된다. 그리고 움직임 벡터와 예측 움직임 벡터의 차이가 차분 움직임 벡터(MVD(x) 및 MVD(y))로 계산된다(S110). 계산된 MVD(x) 및 MVD(y)는 독립 부호어 쌍((C(x) 및 C(y))으로 변환된다(S120). 또, 움직임 벡터들에서 블록의 움직임 정도(pS)가 계산된다(S130). 계산된 pS와 지정된 임계값이 비교된다(S140).
임계값이 더 크면 블록의 움직임 정도가 작다고 판정하여 결합 부호어 변환이 진행된다(S160). 변환된 결합 부호어는 결합 엔트로피 부호화되어(S170) 비트 스트림으로 출력된다. 임계값이 더 작으면 블록의 움직임 정도가 크다고 판정하여 결합 부호화 변환 없이 독립 부호어 쌍은 독립 엔트로피 부호화(S150)된다. 부호화된 데이터는 비트 스트림으로 출력된다.
따라서 본 발명의 실시예에 의한 움직임 벡터 부호화 방법은 블록의 움직임 정도에 따라 결합 부호화를 수행하므로 낮은 복잡도와 전송량을 가지는 개선된 움직임 벡터 부호화 방식을 제공할 수 있다.
도 11은 본 발명의 실시예에 의한 움직임 벡터 복호화 방법을 나타낸 순서도이다.
도 11을 참조하면, 먼저 기존에 복호화된 움직임 벡터들에서 pS를 계산하여 블록의 움직임 정도를 추정한다(S200). 계산된 pS는 지정된 임계값과 비교된다(S210). 임계값이 pS보다 크면 결합 부호화가 수행되었다고 판정하고 결합 엔트로피 복호화가 수행된다(S220). 복호화된 데이터는 결합 부호어 역변환(S230)을 거쳐 독립 부호어 쌍으로 역변환된다. 임계값이 pS보다 작으면 결합 부호화가 수행되지 않았다고 판정하고 독립 엔트로피 복호화(S240)가 수행되어 독립 부호어 쌍을 얻는다.
변환된 독립 부호어 쌍은 독립 부호어 역변환을 통해 차분 움직임 벡터(MVD)로 변환된다(S250). 기존에 복호화된 움직임 벡터들에서 예측 움직임 벡터(MVP)를 선택하여 차분 움직임 벡터와 더하여 움직임 벡터(MV(x) 및 MV(y))가 계산된다(S260). 계산된 움직임 벡터(MV(x) 및 MV(y))는 저장된다(S270).
따라서 본 실시예에 의한 움직임 벡터 복호화 방법은 미리 복호화한 움직임 벡터에서 블록의 움직임 정도를 계산한다. 이를 이용하여 결합 부호어와 독립 부호어 쌍을 역변환하여 움직임 벡터를 얻는다. 따라서 본 실시예에 의한 움직임 벡터 복호화 방법은 결합 부호화된 비트 스트림을 입력받아 이를 움직임 벡터로 변환할 수 있다. 따라서 낮은 복잡도와 전송량을 가지면서 개선된 압축 성능을 가지는 움직임 벡터 복호화 방법이 구현될 수 있다. 본 실시예에서는 2개의 성분을 가지는 2차원 벡터에 관하여 설명하였지만 이는 예시적인 것으로서 본 발명은 이에 한정되지 않는다. 예를 들어, 본 발명은 3개의 성분을 가지는 독립 부호어 쌍(C(x), C(y) 및 C(z))과 결합 부호어(C(x,y,z))에 대하여도 적용될 수 있다.
1,200,300: 움직임 벡터 부호화 장치
100: 부호어 변환부
10,210,310: 차분 움직임 벡터 생성부
11,311: 움직임 벡터 저장기
12,312: 예측 움직임 벡터 선택기
13,313: 차분 움직임 벡터 연산기
20,110: 독립 부호어 변환기
30,240,340: 움직임 벡터 부호화부
400: 부호어 역변환부
500: 움직임 벡터 복호화 장치

Claims (11)

  1. 움직임 벡터를 입력받아 차분 움직임 벡터를 생성하는 차분 움직임 벡터 생성부;
    상기 차분 움직임 벡터 생성부로부터 입력받은 차분 움직임 벡터를 독립 부호어 쌍 또는 결합 부호어로 변환하는 부호어 변환부; 및
    상기 부호어 변환부로부터 수신된 독립 부호어 쌍 또는 결합 부호어를 부호화하여 출력하는 움직임 벡터 부호화부를 포함하며,
    상기 부호어 변환부는,
    상기 독립 부호어 쌍의 크기 영역의 합을 산출하고, 상기 독립 부호어 쌍의 크기 영역의 합에서 상기 독립 부호어 쌍의 크기 영역 사이의 차의 절대값을 뺀 값을 산출하며, 상기 독립 부호어 쌍의 크기 영역의 합에 대응하는 비트열을 미리 설정된 비트만큼 이동시킨 값과, 상기 독립 부호어 쌍의 크기 영역의 합에서 상기 독립 부호어 쌍의 크기 영역 사이의 차의 절대값을 뺀 값에 대응하는 값에 기초하여, 상기 결합 부호어의 크기 영역을 산출하는 움직임 벡터 부호화 장치.
  2. 제 1 항에 있어서,
    상기 움직임 벡터를 통해 블록의 움직임 정도를 계산하여 부호화 모드 선택 신호를 생성하는 부호화 모드 결정기를 더 포함하고,
    상기 부호어 변환부는 상기 부호화 모드 결정기로부터 수신된 부호화 모드 선택 신호에 따라 상기 차분 움직임 벡터를 독립 부호어 쌍 또는 결합 부호어로 변환하는 움직임 벡터 부호화 장치.
  3. 제 2항에 있어서,
    상기 부호화 모드 결정기는 상기 움직임 벡터들의 최대값과 최소값의 차이값으로 상기 블록의 움직임 정도를 계산하는 움직임 벡터 부호화 장치.
  4. 제 1항에 있어서,
    상기 차분 움직임 벡터 생성부는
    상기 입력받은 움직임 벡터를 저장하고 출력하는 움직임 벡터 저장기;
    상기 움직임 벡터 저장기로부터 수신된 움직임 벡터들 중 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택기;및
    상기 움직임 벡터 저장기로부터 저장되는 움직임 벡터와 상기 예측 움직임 벡터 선택기로부터 수신된 예측 움직임 벡터를 통해 상기 차분 움직임 벡터를 계산하는 차분 움직임 벡터 연산기를 포함하는 움직임 벡터 부호화 장치.
  5. 제 1항 내지 4항 중 어느 한 항에 있어서,
    상기 부호어 변환부는
    상기 차분 움직임 벡터를 입력받아 독립 부호어 쌍으로 변환하는 독립 부호어 변환기;
    상기 독립 부호어 변환기로부터 수신된 독립 부호어 쌍의 결합 부호화 진행 여부를 판단하고, 상기 독립 부호어 쌍을 출력하는 결합 부호화 선택기; 및
    상기 결합 부호화 선택기로부터 수신된 독립 부호어 쌍을 결합 부호어로 변환하는 결합 부호어 변환기를 포함하는 움직임 벡터 부호화 장치.
  6. 제 5항에 있어서,
    상기 결합 부호어 변환기는 상기 독립 부호어 쌍의 크기 영역 및 부호 영역을 분할하여 상기 결합 부호어로 변환하며,
    상기 결합 부호어 변환기는 하기의 수식 1 내지 수식 3에 따라 상기 결합 부호어의 크기 영역을 산출하며,
    [수식 1]
    Figure 112013053488736-pat00022

    [수식 2]
    Figure 112013053488736-pat00023

    [수식 3]
    Figure 112013053488736-pat00024

    상기의 수식 1 내지 수식 3에서, C(x)와 C(y)는 독립 부호어 쌍이고, |C(x)|와 |C(y)|는 독립 부호어 쌍의 크기 영역이고, K는 독립 부호어 쌍의 크기 영역의 합이고, J는 독립 부호어 쌍의 크기 영역의 합에서 독립 부호어 쌍의 크기 영역 사이의 차의 절대값을 뺀 값이고, |C(x,y)|는 결합 부호어의 크기 영역이고, >> 기호는 비트열을 >>의 우측에 표시된 비트만큼 오른쪽으로 이동시키는 비트 연산자인 움직임 벡터 부호화 장치.
  7. 부호화된 데이터를 입력받아 독립 부호어 쌍 및 결합 부호어로 복호화하고 출력하는 움직임 벡터 복호화부;
    상기 움직임 벡터 복호화부로부터 수신된 상기 독립 부호어 쌍 및 결합 부호어를 차분 움직임 벡터로 역변환하는 부호어 역변환부;
    상기 부호어 역변환부로부터 수신된 상기 차분 움직임 벡터를 움직임 벡터로 복원하는 움직임 벡터 복원부; 및
    상기 움직임 벡터 복원부로부터 수신된 상기 움직임 벡터로부터 부호화 모드 선택 신호를 생성하여 상기 부호어 역변환부 및 상기 움직임 벡터 복호화부에 전송하는 부호화 모드 결정기를 포함하며,
    상기 부호어 역변환부는 하기의 수식 4 내지 수식 7에 따라 결합 부호어의 크기 영역으로부터 독립 부호어 쌍의 크기 영역을 역변환하여 산출하며,
    [수식 4]
    Figure 112013053488736-pat00025

    [수식 5]
    Figure 112013053488736-pat00026

    [수식 6]
    Figure 112013053488736-pat00027

    [수식 7]
    Figure 112013053488736-pat00028

    상기의 수식 4 내지 수식 7에서, |C(x,y)|는 결합 부호어의 크기 영역이고, << 기호는 비트열을 <<의 우측에 표시된 비트만큼 왼쪽으로 이동시키는 비트 연산자이고, >> 기호는 비트열을 >>의 우측에 표시된 비트만큼 오른쪽으로 이동시키는 비트 연산자이고, ceil 함수는 내부의 값을 올림하는 함수이고, % 기호는 %의 좌측에 표시된 값을 %의 우측에 표시된 값으로 나눈 나머지 값을 얻는 연산자이고, |C(x)|와 |C(y)|는 독립 부호어 쌍의 크기 영역인 움직임 벡터 복호화 장치.
  8. 제 7항에 있어서,
    상기 부호어 역변환부는
    입력받은 결합 부호어를 독립 부호어 쌍으로 역변환하여 출력하는 결합 부호어 역변환기;
    부호어 및 부호화 모드 선택 신호를 입력받고, 상기 입력된 부호화 모드 선택 신호에 따라 상기 결합 부호어 역변환기로부터 입력된 독립 부호어 쌍 또는 상기 입력된 부호어를 선택하여 출력하는 독립 역변환 입력 선택기;및
    상기 독립 역변환 입력 선택기로부터 입력된 상기 독립 부호어 쌍을 역변환하여 상기 차분 움직임 벡터를 출력하는 독립 부호어 역변환기를 포함하는 움직임 벡터 복호화 장치.
  9. 제 8항에 있어서,
    상기 결합 부호어 역변환기는 상기 결합 부호어의 크기 영역 및 부호 영역을 분할하여 상기 독립 부호어 쌍으로 역변환하는 움직임 벡터 복호화 장치.
  10. 제 7항에 있어서,
    상기 움직임 벡터 복원부는
    상기 움직임 벡터를 저장하고 출력하는 움직임 벡터 저장기;
    상기 움직임 벡터 저장기로부터 수신된 움직임 벡터로부터 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택기;및
    상기 예측 움직임 벡터 선택기로부터 입력된 예측 움직임 벡터와 상기 부호어 역변환부로부터 입력된 차분 움직임 벡터로부터 상기 움직임 벡터를 계산하는 움직임 벡터 계산기를 포함하는 움직임 벡터 복호화 장치.
  11. 영상 신호를 DCT 변환 및 양자화하는 DCT 변환 및 양자화부;
    현재 압축하려 하는 블록과 주변 블록에 대하여 움직임 벡터를 생성하는 움직임 예측부; 및
    상기 DCT 변환 및 양자화부로부터 양자화된 신호를 입력받고, 상기 움직임 예측부로부터 움직임 벡터를 입력받아 차분 움직임 벡터를 생성하며, 상기 차분 움직임 벡터와 상기 양자화된 신호를 부호화하여 출력하는 움직임 벡터 부호화 장치를 포함하며,
    상기 움직임 벡터 부호화 장치는 움직임 벡터를 입력받아 차분 움직임 벡터를 생성하는 차분 움직임 벡터 생성부;
    상기 차분 움직임 벡터 생성부로부터 입력받은 차분 움직임 벡터를 독립 부호어 쌍 또는 결합 부호어로 변환하는 부호어 변환부; 및
    상기 부호어 변환부로부터 수신된 독립 부호어 쌍 또는 결합 부호어를 부호화하여 출력하는 움직임 벡터 부호화부를 포함하며,
    상기 부호어 변환부는,
    상기 독립 부호어 쌍의 크기 영역의 합을 산출하고, 상기 독립 부호어 쌍의 크기 영역의 합에서 상기 독립 부호어 쌍의 크기 영역 사이의 차의 절대값을 뺀 값을 산출하며, 상기 독립 부호어 쌍의 크기 영역의 합에 대응하는 비트열을 미리 설정된 비트만큼 이동시킨 값과, 상기 독립 부호어 쌍의 크기 영역의 합에서 상기 독립 부호어 쌍의 크기 영역 사이의 차의 절대값을 뺀 값에 대응하는 값에 기초하여, 상기 결합 부호어의 크기 영역을 산출하는 동영상 부호화기.
KR1020110118086A 2011-11-14 2011-11-14 움직임 벡터 부호화 장치 및 복호화 장치, 그리고 그것의 부호화 및 복호화 방법 KR101285841B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110118086A KR101285841B1 (ko) 2011-11-14 2011-11-14 움직임 벡터 부호화 장치 및 복호화 장치, 그리고 그것의 부호화 및 복호화 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110118086A KR101285841B1 (ko) 2011-11-14 2011-11-14 움직임 벡터 부호화 장치 및 복호화 장치, 그리고 그것의 부호화 및 복호화 방법

Publications (2)

Publication Number Publication Date
KR20130052818A KR20130052818A (ko) 2013-05-23
KR101285841B1 true KR101285841B1 (ko) 2013-07-12

Family

ID=48662187

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110118086A KR101285841B1 (ko) 2011-11-14 2011-11-14 움직임 벡터 부호화 장치 및 복호화 장치, 그리고 그것의 부호화 및 복호화 방법

Country Status (1)

Country Link
KR (1) KR101285841B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07184213A (ja) * 1993-10-29 1995-07-21 Philips Electron Nv テレビジョン画像を送信するデバイス、受信するデバイス、ビデオレコーダおよびテレビジョン画像が記録されている記録媒体
KR0148151B1 (ko) * 1994-05-11 1998-09-15 김광호 개선된 차분동부호테이블을 이용한 차분동벡터값의 가변장부호화방법 및 그 장치
KR20020044694A (ko) * 2000-12-06 2002-06-19 구자홍 2차원 최소 비트 예측 기반의 움직임 벡터 부호화 방법
KR20110054592A (ko) * 2009-11-18 2011-05-25 에스케이 텔레콤주식회사 후보 예측 움직임 벡터 집합 선택을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07184213A (ja) * 1993-10-29 1995-07-21 Philips Electron Nv テレビジョン画像を送信するデバイス、受信するデバイス、ビデオレコーダおよびテレビジョン画像が記録されている記録媒体
KR0148151B1 (ko) * 1994-05-11 1998-09-15 김광호 개선된 차분동부호테이블을 이용한 차분동벡터값의 가변장부호화방법 및 그 장치
KR20020044694A (ko) * 2000-12-06 2002-06-19 구자홍 2차원 최소 비트 예측 기반의 움직임 벡터 부호화 방법
KR20110054592A (ko) * 2009-11-18 2011-05-25 에스케이 텔레콤주식회사 후보 예측 움직임 벡터 집합 선택을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치

Also Published As

Publication number Publication date
KR20130052818A (ko) 2013-05-23

Similar Documents

Publication Publication Date Title
US11425392B2 (en) Method and apparatus for encoding and decoding video using skip mode
US20230276067A1 (en) Method for generating prediction block in amvp mode
CN106713910B (zh) 对图像进行解码的设备
KR101316060B1 (ko) 인터 예측 부호화된 동영상 복호화 방법
KR101377527B1 (ko) 복수 개의 참조 픽처의 움직임 벡터 부호화/복호화 방법 및장치와 그를 이용한 영상 부호화/복호화 장치 및 방법
US8948243B2 (en) Image encoding device, image decoding device, image encoding method, and image decoding method
KR100955396B1 (ko) 양-예측 부호화 방법 및 장치, 양-예측 복호화 방법 및장치 및 기록매체
KR101681353B1 (ko) 이미지 시퀀스를 나타내는 코딩된 데이터의 스트림을 디코딩하는 방법 및 이미지 시퀀스를 코딩하는 방법
KR20130085838A (ko) 가중치예측을 이용한 영상 부호화/복호화 방법 및 장치
KR20130067280A (ko) 인터 예측 부호화된 동영상 복호화 방법
KR100856392B1 (ko) 현재 영상의 복원영역을 참조하는 동영상 부호화/복호화장치 및 그 방법
KR101377529B1 (ko) 적응적 움직임 벡터 부호화/복호화를 이용한 영상 부호화/복호화 방법 및 장치
KR101285841B1 (ko) 움직임 벡터 부호화 장치 및 복호화 장치, 그리고 그것의 부호화 및 복호화 방법
KR101673026B1 (ko) 경쟁 기반 인터리브드 움직임 벡터코딩 방법 및 장치와 이를 이용한 영상 부호화/복호화 방법 및 장치
KR101441899B1 (ko) 움직임 정보 부호화 및 복호화 방법과 이를 이용한 장치
KR20140027435A (ko) 복수 개의 참조 픽처의 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 장치 및 방법
KR101330218B1 (ko) 동영상 부호화기, 동영상 부호화 방법 및 복호화 방법
KR20140029503A (ko) 복수 개의 참조 픽처의 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 장치 및 방법
KR101575616B1 (ko) 복수 개의 참조 픽처의 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 장치 및 방법
KR101575645B1 (ko) 복수 개의 참조 픽처의 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 장치 및 방법
KR20120138426A (ko) 교차 삽입법을 이용한 향상된 움직임 백터 예측 방법 및 장치
JP2018026726A (ja) 符号化装置及びプログラム
KR20130097958A (ko) 움직임 정보 부호화/복호화 장치 및 움직임 정보를 부호화/복호화하는 방법
KR20120008271A (ko) 주변 화소의 정합을 이용한 예측 움직임 벡터 선택 장치 및 그 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160701

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170703

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee