KR100991184B1 - 동영상 부호화 효율 향상을 위한 움직임 벡터 압축 방법 및그 장치, 상기 방법을 구현하는 프로그램이 기록된 기록매체 - Google Patents

동영상 부호화 효율 향상을 위한 움직임 벡터 압축 방법 및그 장치, 상기 방법을 구현하는 프로그램이 기록된 기록매체 Download PDF

Info

Publication number
KR100991184B1
KR100991184B1 KR1020090013395A KR20090013395A KR100991184B1 KR 100991184 B1 KR100991184 B1 KR 100991184B1 KR 1020090013395 A KR1020090013395 A KR 1020090013395A KR 20090013395 A KR20090013395 A KR 20090013395A KR 100991184 B1 KR100991184 B1 KR 100991184B1
Authority
KR
South Korea
Prior art keywords
motion vector
value
difference value
predetermined
compression
Prior art date
Application number
KR1020090013395A
Other languages
English (en)
Other versions
KR20100094120A (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 KR1020090013395A priority Critical patent/KR100991184B1/ko
Publication of KR20100094120A publication Critical patent/KR20100094120A/ko
Application granted granted Critical
Publication of KR100991184B1 publication Critical patent/KR100991184B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

본 발명은 동영상 부호화 효율 향상을 위한 움직임 벡터 압축 방법 및 그 장치, 상기 방법을 구현하는 프로그램이 기록된 기록매체를 개시한다. 본 발명은 (a) 매크로블록 단위의 움직임 벡터들 중 대상 움직임 벡터를 기준 움직임 벡터와 비교하여 차이값을 계산하는 단계; (b) 차이값이 미리 정해진 범위 이내일 경우 차이값을 미리 정해진 소정 비트의 코드값으로 변환한 후 변환된 코드값을 포함하는 대상 움직임 벡터의 움직임 벡터 정보를 생성하며, 차이값이 미리 정해진 범위를 벗어날 경우 코드값을 통해 차이값을 미리 정해진 레벨값으로 변환한 후 변환된 레벨값을 포함하는 대상 움직임 벡터의 움직임 벡터 정보를 생성하는 단계; 및 (c) 생성된 움직임 벡터 정보를 수집하며, 수집된 움직임 벡터 정보를 기반으로 움직임 벡터를 압축시키는 단계를 포함하는 것을 특징으로 하는 움직임 벡터 압축 방법을 제공한다. 본 발명에 따르면, 압축에 사용되는 하드웨어의 크기를 축소시킬 수 있으며, 내부 메모리와 외부 메모리 모두 절약 가능하다.
움직임 벡터, 압축, 엔트로피 압축(entropy coding), 엔트로피 부호화 테이블, H.264, 공간적 스케일러빌러티, SVC(Scalable Video Codec)

Description

동영상 부호화 효율 향상을 위한 움직임 벡터 압축 방법 및 그 장치, 상기 방법을 구현하는 프로그램이 기록된 기록매체 {Method and apparatus for coding motion vector, and the recording media storing the program performing the said method}
본 발명은 영상에의 움직임 벡터를 압축하는 방법 및 그 장치, 상기 방법을 구현하는 프로그램이 기록된 기록매체에 관한 것이다. 보다 상세하게는, 동영상 부호화 효율을 향상시키기 위한 움직임 벡터 압축 방법 및 그 장치, 상기 방법을 구현하는 프로그램이 기록된 기록매체에 관한 것이다.
최근 들어 유무선 연동, 방송망과 통신망의 융합, IP 망을 이용한 IP 컨버전스(convergence) 등 각종 서비스를 제공할 수 있는 광대역 통합망(broadband convergence network)이 각광받고 있다. 광대역 통합망이란 통신, 방송, 인터넷 등을 통합한 광대역 멀티미디어 서비스를 제공하는 품질보장형 통합 네트워크를 말한다. 이러한 광대역 통합망을 위한 기술 발달로 방송망과 통신망이 서로 융합되는 추세는 앞으로 더욱 가속화될 예정이다.
그런데, 방송망과 통신망 간의 디지털 컨버전스를 위해서는 통신 환경에 적 합하게 동영상 전송시 범용 미디어 통신이 이루어져야 하며, 이에 따라 동영상의 압축 효율을 높이는 기술이 필요하다. 동영상의 압축 효율을 높이기 위해 현재 이용되고 있는 기술은 동영상을 부호화시키는 동영상 부호화 기술이다. 다양한 종류의 단말기와 빠른 속도로 발전하는 통신 환경에 적절하게 대응하기 위해 오늘날 동영상 부호화 기술로 스케일러블 비디오 코덱(SVC; Scalable Video Codec) 기술이 급속하게 발전하고 있다.
스케일러블 비디오 코덱의 핵심은 압축시킨 단일 비트스트림으로부터 네트워크 환경과 디바이스에 적합하게 해상도, 화질, 프레임율 등이 서로 다른 영상들을 적응적으로 복원시킬 수 있다는 것이다. 이러한 스케일러블 비디오 코덱은 시간적 스케일러빌러티, 공간적 스케일러빌러티, SNR 스케일러빌러티(Signal to Noise Ratio scalability) 등으로 구분할 수 있다.
공간적 스케일러빌러티는 영상의 화면 크기나 해상도를 조절하기 위한 부호화 방법으로, 영상의 크기에 따라 계층화가 이루어진다. 이러한 공간적 스케일러빌러티에는 각 계층별로 부호화를 수행하는 계층내 예측(intra-layer prediction), 계층 간의 정보를 이용하여 부호화를 수행하는 계층간 예측(inter-layer prediction) 등이 있다. 도 1은 공간적 스케일러빌러티의 예측 구조를 도시한 개념도이다. 도 1에서 A~C는 해상도가 낮거나 화면 크기가 작은 기본 계층(base layer)(110)의 비트스트림이며, D~F는 해상도가 높거나 화면 크기가 큰 향상 계층(enhancement layer)(120)의 비트스트림이다. 또한, 도면부호 130은 계층내 예측을 나타내며 도면부호 140은 계층간 예측을 나타낸다.
계층간 예측에서는 움직임 추정시 프레임 단위로 보간(interpolation)을 수행하므로, 계층별 움직임 벡터에 대한 정보를 프레임 단위로 외부 메모리에 저장한다. 그런데, 다양한 움직임을 추정하려면 매크로블록마다 많은 수의 움직임 벡터가 필요하다. 예컨대, 16 × 16 매크로 블록 단위의 움직임 추정기가 4 × 4 단위의 움직임 추정까지 지원한다고 가정하자. 이 가정으로부터 352 × 288 크기의 CIF 영상에서의 움직임 벡터 수는 최대 6336개가 된다. 움직임 벡터의 비트가 각 축당 8비트라면 상기 CIF 영상의 움직임 추정에는 모두 101376비트의 외부 메모리가 요구된다. 이와 같이, 종래에는 임시 저장해야 할 외부 메모리의 크기가 방대한 관계로 액세스(access) 횟수가 많을 경우 움직임 추정에 많은 시간이 소모되는 문제점이 있었다. 또한, 외부 메모리를 구비하는 장치를 별도로 갖춰야 하는 부담도 따랐다.
한편, 계층내 예측에서는 주변 움직임 벡터들 간의 차이를 고려하여 대상 움직임 벡터의 비트를 결정한다. 이 방법은 비트를 송수신할 때 데이터 전송 속도(data rate or data transfer rate)를 최대한 줄이기 위한 방법으로, 압축 성능을 높이기 위해 많은 양의 내부 메모리를 필요로 한다. 내부 메모리는 외부 메모리에 비해 읽기와 쓰기가 빠른 장점이 있지만, 장치의 부피를 확장시키며 메모리 칩 구비에 따른 비용을 증가시키는 단점이 있다. 따라서, HD급 영상의 움직임 추정시 방대한 크기의 내부 메모리로 인해 장치의 부피가 매우 커지고 제조 비용이 과다해지는 문제점을 피할 수 없다.
본 발명은 상기한 문제점을 해결하기 위해 안출된 것으로서, 움직임 벡터에서 정수 벡터를 분리하는 단계, 인접한 두 움직임 벡터 간의 차이값을 계산하는 단계, 계산된 움직임 벡터 차이값이 임계값을 넘는지를 판별하는 단계, 임계값을 넘지 않으면 제시된 엔트로피 부호화 테이블을 이용하여 압축하며 임계값을 넘으면 상기 압축과 함께 고정된 코드도 추가하는 단계 등을 포함하는 동영상 부호화 효율 향상을 위한 움직임 벡터 압축 방법 및 그 장치, 상기 방법을 구현하는 프로그램이 기록된 기록매체를 제공함을 목적으로 한다.
본 발명은 상기한 목적을 달성하기 위해 안출된 것으로서, (a) 매크로블록 단위의 움직임 벡터들 중 대상 움직임 벡터를 기준 움직임 벡터와 비교하여 차이값을 계산하는 단계; (b) 상기 차이값이 미리 정해진 범위 이내일 경우 상기 차이값을 미리 정해진 소정 비트의 코드값으로 변환한 후 상기 변환된 코드값을 포함하는 상기 대상 움직임 벡터의 움직임 벡터 정보를 생성하며, 상기 차이값이 미리 정해진 범위를 벗어날 경우 상기 코드값을 통해 상기 차이값을 미리 정해진 레벨값으로 변환한 후 상기 변환된 레벨값을 포함하는 상기 대상 움직임 벡터의 움직임 벡터 정보를 생성하는 단계; 및 (c) 상기 생성된 움직임 벡터 정보를 수집하며, 상기 수집된 움직임 벡터 정보를 기반으로 상기 움직임 벡터를 압축시키는 단계를 포함하는 것을 특징으로 하는 움직임 벡터 압축 방법을 제공한다.
바람직하게는, 상기 (a) 단계는 (aa) 상기 움직임 벡터들 각각을 정수 성분 벡터와 실수 성분 벡터로 구분하며, 상기 정수 성분 벡터를 추출하는 단계; 및 (ab) 상기 추출된 정수 성분 벡터를 이용하여 상기 대상 움직임 벡터를 상기 기준 움직임 벡터와 비교하고 상기 차이값을 계산하는 단계를 포함한다.
바람직하게는, 상기 (b) 단계는 상기 움직임 벡터 정보 생성시 엔트로피 코딩 테이블을 이용하며, 상기 엔트로피 코딩 테이블이 제공하는 코드값은 식별 가능한 적어도 하나의 부호에 상기 차이값이 커질 때마다 문자, 숫자 및 기호 중 어느 하나를 부가한 값으로 이루어지는 것을 특징으로 한다. 더욱 바람직하게는, 상기 (b) 단계에서 이용하는 상기 엔트로피 코딩 테이블이 제공하는 상기 차이값의 범위는 0~13이며 상기 코드값은 8비트를 초과하지 않는 것을 특징으로 한다.
바람직하게는, 상기 (b) 단계는 상기 레벨값으로 상기 차이값의 이진화 값을 이용한다.
바람직하게는, 상기 (a) 단계는 상기 기준 움직임 벡터로 상기 대상 움직임 벡터에 인접하는 적어도 하나의 움직임 벡터 또는 미리 정해진 움직임 벡터를 이용한다.
바람직하게는, 상기 움직임 벡터 압축 방법은 상기 코드값을 내부 메모리에 저장하며, 상기 레벨값 또는 상기 실수 성분 벡터를 외부 메모리에 저장하는 단계를 더 포함한다.
또한, 본 발명은 매크로블록 단위의 움직임 벡터들 중 대상 움직임 벡터를 기준 움직임 벡터와 비교하여 차이값을 계산하는 움직임 벡터 차이값 계산부; 상기 차이값이 미리 정해진 범위 이내일 경우 상기 차이값을 미리 정해진 소정 비트의 코드값으로 변환한 후 상기 변환된 코드값을 포함하는 상기 대상 움직임 벡터의 움직임 벡터 정보를 생성하며, 상기 차이값이 미리 정해진 범위를 벗어날 경우 상기 코드값을 통해 상기 차이값을 미리 정해진 레벨값으로 변환한 후 상기 변환된 레벨값을 포함하는 상기 대상 움직임 벡터의 움직임 벡터 정보를 생성하는 움직임 벡터 정보 생성부; 및 상기 생성된 움직임 벡터 정보를 수집하며, 상기 수집된 움직임 벡터 정보를 기반으로 상기 움직임 벡터를 압축시키는 움직임 벡터 압축부를 포함하는 것을 특징으로 하는 움직임 벡터 압축 장치를 제공한다.
바람직하게는, 상기 움직임 벡터 압축 장치는 모바일 단말기 또는 휴대용 단말기에 구비되는 것을 특징으로 한다.
본 발명에 따르면 다음 효과를 얻을 수 있다. 첫째, 인접하는 두 움직임 벡터 간의 차이값이 임계값을 넘지 않으면 제안된 엔트로피 부호화 테이블 하나만을 이용하여 압축을 수행하며 움직임 벡터 차이값이 임계값을 넘으면 식별 가능한 고정 코드를 더 추가하여 압축을 수행함으로써 압축에 사용되는 하드웨어의 크기를 축소시킬 수 있다. 둘째, 엔트로피 부호화 테이블로부터 변환된 값이 8비트를 초과하지 않음으로써 내부 메모리와 외부 메모리 모두 절약 가능하다. 또한, 이에 따라 움직임 벡터 압축 속도를 종전보다 증가시킬 수 있다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명 한다. 우선 각 도면의 구성요소들에 참조 부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다. 또한, 이하에서 본 발명의 바람직한 실시예를 설명할 것이나, 본 발명의 기술적 사상은 이에 한정하거나 제한되지 않고 당업자에 의해 변형되어 다양하게 실시될 수 있음은 물론이다.
도 2는 본 발명의 바람직한 실시예에 따른 움직임 벡터 압축 장치를 개략적으로 도시한 블록도이다. 도 2에 따르면, 움직임 벡터 압축 장치(200)는 움직임 추정부(205), 움직임 벡터값 계산부(210), 움직임 추정 정보 생성부(215), 움직임 벡터 구분부(220), 정수 모션 벡터 추출부(225), 움직임 벡터 차이값 계산부(230), 움직임 벡터 정보 생성부(235), 움직임 벡터 압축부(240), 전원부(245) 및 제어부(250)를 포함한다.
전원부(245)는 움직임 벡터 압축 장치(200)를 구성하는 각 구성부에 전원을 공급하는 기능을 수행한다. 제어부(250)는 움직임 벡터 압축 장치(200)를 구성하는 모든 구성부의 전체 작동을 제어하는 기능을 수행한다. 이 두 구성부를 제외하고 나머지 구성부들은 도면을 참조하여 기능에 대해 후술한다.
도 3은 본 발명의 바람직한 실시예에 따른 움직임 벡터 압축 방법을 개략적으로 설명한 순서도이다. 이하 설명은 도 2 및 도 3을 참조한다.
먼저, 움직임 추정부(205)가 영상 프레임에 나타난 움직임을 예측한다. 움직 임 추정부(205)는 이를 위해 매크로블록 단위로 움직임 추정(motion estimation)을 수행한다(S300). 움직임 추정부(205)의 움직임 추정에 따라, 움직임 벡터값 계산부(210)는 각 매크로블록의 움직임 벡터값을 계산한다(S305). 움직임 벡터값 계산부(210)가 모든 매크로블록에 대해 움직임 벡터값 계산을 완료하면, 움직임 추정 정보 생성부(215)가 계산된 각 매크로블록의 움직임 벡터값을 토대로 영상 프레임의 움직임 추정 정보를 생성한다(S310).
S310 단계 이후에는 생성된 움직임 추정 정보를 이용하여 각 매크로블록의 움직임 벡터를 압축시키는 과정이 진행된다. 먼저, 움직임 벡터 구분부(220)가 각 매크로블록의 움직임 벡터를 정수 벡터부(integer motion vector)와 실수 벡터부(fractal motion vector)로 구분한다(S315). 움직임 벡터 구분부(220)가 각 매크로블록의 움직임 벡터를 이와 같이 구분하는 이유는 동영상에서 반화소 움직임 등 미세한 움직임이나 매우 정밀한 움직임을 쉽게 찾아내기 위해서이다. 본 발명에서 움직임 벡터를 실수부와 정수부로 구분하는 방법은 H.264 등의 동영상 코덱이 움직임 벡터를 정수 벡터와 실수 벡터로 나누는 방법을 참조할 수 있다.
이후, 정수 모션 벡터 추출부(225)가 두 부분으로 구분된 움직임 벡터에서 정수 벡터부 즉, 정수 모션 벡터를 추출한다(S320). 보통 실수 벡터는 모든 경우에 대한 확률이 비슷하기 때문에(즉, 0이 될 확률이 거의 동일하므로) 엔트로피 압축 방식을 이용한 압축 효율이 높지 않다. 따라서, 본 발명에서는 정수 모션 벡터 추출부(225)를 통해 정수 모션 벡터만을 추출하여 압축한다. 이에 따라, 본 발명에서는 실수 벡터부를 압축하지 않고 외부 메모리에 별도 저장한다.
이후, 움직임 벡터 차이값 계산부(230)가 인접하는 적어도 하나의 매크로블록에 대한 대상 매크로블록의 움직임 벡터 차이값을 계산한다(S325). S320 단계로부터 각 매크로블록의 움직임 벡터값은 정수로 설정되므로, S325 단계를 통해 계산되는 움직임 벡터 차이값 역시 정수임은 물론이다. 한편, 움직임 벡터 차이값 계산부(230)는 기준 매크로블록을 미리 설정하고 이 매크로블록에 대한 대상 매크로블록의 움직임 벡터 차이값을 계산하는 것도 가능하다.
이후, 움직임 벡터 정보 생성부(235)가 계산된 움직임 벡터 차이값을 수집하여 영상 프레임의 움직임 벡터 정보를 생성한다(S330). 그 다음엔, 움직임 벡터 압축부(240)가 생성된 움직임 벡터 정보를 토대로 매크로블록의 움직임 벡터를 압축시킨다(S335). 본 발명에서는 움직임 벡터 압축시 엔트로피 코딩(entropy coding) 방법을 이용한다. 그런데, 엔트로피 코딩 방법도 장치의 부피를 증가시키는 요인이므로, 종전 방식대로 엔트로피 코딩을 수행한다면 움직임 벡터 압축시 많은 양의 메모리가 요구된다. 본 발명에서는 이러한 점을 참작하여 움직임 벡터 정보 생성시 도 4의 엔트로피 부호화 테이블을 이용한다.
H.264 등의 동영상 코덱에서는 다양한 형태의 엔트로피 부호화 테이블을 사용한다. 본 발명에서 이용하는 엔트로피 부호화 테이블은 기존 테이블을 간략하게 구성한 것으로, 규칙적인 구조를 가지는 가변 코드로 구성된다. 이러한 엔트로피 부호화 테이블은 부호화시 각 매크로블록의 연산값이 8비트를 초과하지 않게 한다. 따라서, 본 발명에 따른 엔트로피 부호화 테이블은 움직임 벡터 차이값이 +6 ~ -6일 경우에 한해 부호화 코드값을 제공한다. 각각의 움직임 벡터 차이값에 대한 부 호화 코드값은 도 4에 도시된 테이블을 참조하면 된다.
본 발명에 따른 엔트로피 부호화 테이블은 변환과 양자화를 거친 움직임 벡터 정보 중에서 값이 0이 아닌 정보(또는 레벨)를 압축시키는 데에 적용된다. 이하에서는 이러한 엔트로피 부호화 테이블을 CAVLC 레벨 테이블(Context-Adaptive Variable Length Coding level table)로 정의한다. 한편, 본 발명에 따른 엔트로피 부호화 테이블은 H.264/AVC의 EGC(Exponential Goloms Codes)를 고려한 테이블로 구현되는 것도 가능하다.
움직임 벡터 정보 생성부(235)는 도 4의 CAVLC 레벨 테이블을 고려하여 매크로블록의 움직임 벡터 정보를 생성한다. 또한, 움직임 벡터 압축부(240)는 이렇게 생성된 움직임 벡터 정보를 토대로 매크로블록의 움직임 벡터를 압축시킨다. 본 발명에 따른 움직임 벡터 압축은 메모리 사용량을 줄이고 장치의 부피를 최소화시키는 것을 특징으로 한다. 이하에서는 이 부분을 상세하게 설명하기로 한다.
종래 일반적인 엔트로피 코딩 방법에 따라 움직임 벡터를 압축할 때에는 다수개의 엔트로피 부호화 테이블을 필요로 하였다. 이로 인해 다용량의 내부 메모리 또는 외부 메모리가 요구되었고, 결국 장치의 크기가 비대해지고 장치를 제조하는 데에 소요되는 비용이 과다해지는 문제점을 낳았다.
본 발명에서는 이러한 문제점을 해결하기 위해 부호화 코드값이 8비트를 초과하지 않게 움직임 벡터 차이값을 +6 ~ -6으로 한정하여 CAVLC 레벨 테이블을 미리 생성하고, 이 테이블만을 이용하여 매크로블록의 움직임 벡터 정보를 생성한다. 또한, 움직임 벡터 차이값이 +6 또는 -6을 초과하는 경우에는 예외(exception)로 간주하고 상기 테이블로부터 도출된 부호화 코드값과 상기 움직임 벡터 차이값에 대해 미리 정해진 고정 코드 비트값(fixed code bit)을 함께 포함하도록 매크로블록의 움직임 벡터 정보를 생성한다. S330 단계는 다음과 같이 세분하여 진행된다.
먼저, 테이블 적용 가능 판별부(236)가 계산된 움직임 벡터 차이값으로부터 부호화 코드값을 도출할 수 있는지 여부를 판별한다(S331). 움직임 벡터 차이값이 +6 ~ -6이라면 CAVLC 레벨 테이블로부터 부호화 코드값을 도출할 수 있다. 따라서, 이 경우에는 엔트로피 코드 도출부(237)가 CAVLC 레벨 테이블로부터 움직임 벡터 차이값에 해당하는 부호화 코드값을 도출한다(S332). 이후, 움직임 벡터 정보 생성부(235)가 도출된 부호화 코드값을 토대로 매크로블록의 움직임 벡터 정보를 생성한다(S334).
반면, 움직임 벡터 차이값이 +6 또는 -6을 초과한다면 CAVLC 레벨 테이블로부터 부호화 코드값을 도출할 수 없다. 이 경우에는 혼합 코드 출력부(238)가 CAVLC 레벨 테이블로부터 고정 코드 비트값이 있음을 인식시키는 부호화 코드값을 먼저 도출하고, 이후 고정 코드 비트값을 도출한다(S333). 고정 코드 비트값은 미리 정해진 엔트로피 부호화 테이블로부터 도출할 수 있으며, 예컨대 움직임 벡터 차이값의 이진화값으로 도출 가능하다. S333 단계 이후 상기 S334 단계가 수행됨은 물론이다.
이상에서 설명한 바와 같이 엔트로피 코딩을 진행한다면 엔트로피 부호화 테이블을 1개만 이용하며 각 매크로블록의 움직임 벡터 정보를 8비트 이하로 결정하여 내부 메모리와 외부 메모리의 사용을 최소화할 수 있다. 또한, 움직임 벡터 차 이값이 +6 또는 -6을 초과한다 하더라도 이용하는 엔트로피 부호화 테이블은 2개에 불과하며, 각 매크로블록의 움직임 벡터 정보 역시 16비트를 넘어서지 않으므로, 이 경우 역시 종전보다 내부 메모리와 외부 메모리의 절약이 가능하다.
한편, 내부 메모리의 사용을 최소화하기 위해 S332 단계 또는 S333 단계에서 도출된 부호화 코드값은 내부 메모리에 임시 저장하며, S333 단계에서 도출된 고정 코드 비트값은 외부 메모리에 임시 저장하는 것도 가능하다.
도 5는 움직임 벡터의 압축을 수행하지 않을 경우, H.264의 MVC(Motion Vector Coding)를 이용할 경우, 본 발명에서 제안한 압축 방법을 사용할 경우 등을 비교한 표이다. H.264 MVC와의 비교를 위해 본 발명에 따른 압축 방법은 H.264 시스템을 이용하였다. 또한, 압축 실험 결과치는 10개의 영상을 대상으로 28 양자화 파라미터를 이용하여 움직임 벡터를 압축한 결과치이다. 움직임 추정 영역은 +128 ~ -128로 설정하였으며, 개당 움직임 벡터는 20비트(x축과 y축에 대해 1세트로 10비트씩임)로 설정하였다. 본 실험에서 성능 비교에 사용된 엔트로피 테이블(entropy table)은 CAVLC level table 중 VLC 2번이다.
도 5에서 알 수 있듯이, 본 발명에서 제안한 움직임 벡터 비트 압축 알고리즘은 전송을 기반으로 하는 움직임 벡터 비트 압축에 비해서는 압축율이 다소 떨어지나, 압축에 필요한 하드웨어 크기를 줄임으로써 프로세서 내부의 하드웨어 크기가 작아지는 장점을 발생시킨다. 본 발명에 따른 압축 알고리즘은 이에 따라 휴대폰 등 휴대용 단말기에 적용할 수 있다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으 로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, ROM, 플로피 디스크, 하드 디스크, 자기 테이프 등), 광학적 판독 매체(예를 들면, CD-ROM, DVD, 광데이터 저장장치 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서, 본 발명에 개시된 실시예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구 범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.
일반적으로 움직임 벡터 코딩은 데이터의 전송을 바탕으로 압축률을 향상시키는 방향으로 제안되어 왔다. 하지만, 동영상 부호화에 있어 최근 요구하는 영상의 크기가 커지게 됨에 따라 내부에서 필요한 데이터의 트랜잭션(transaction)도 많아지게 되었다. 이러한 내부 데이터를 줄이기 위해 기존의 압축 기술을 사용하면 하드웨어의 크기가 커지게 되고 데이터 감소에 따른 이득이 적게 된다.
본 발명은 이러한 문제점을 해결하기 위해 움직임 벡터에서 정수 벡터를 분 리하는 단계, 인접한 두 움직임 벡터 간의 차이값을 계산하는 단계, 계산된 움직임 벡터 차이값이 임계값을 넘는지를 판별하는 단계, 임계값을 넘지 않으면 제시된 엔트로피 부호화 테이블을 이용하여 압축하며 임계값을 넘으면 상기 압축과 함께 고정된 코드도 추가하는 단계 등을 순차적으로 수행한다. 본 발명은 이러한 과정을 통해 장치의 크기를 축소시키고 메모리의 사용을 절약하며 처리 속도를 증가시키는 효과를 거둘 수 있다.
최근 들어 멀티미디어 통신 분야나 영상 처리 기술 분야와 관련한 시장이 점점 더 커지고 있다. 본 발명은 멀티미디어 코덱 관련 기술로서, 지상파 DMB, 영상 통화, VOD 서비스, IPTV 등에 적용할 수 있다. 본 발명은 특히 휴대용 단말기에 적용 가능한 기술로서 모바일 방송/통신 분야에서도 각광받을 것으로 예측된다.
도 1은 공간적 스케일러빌러티의 예측 구조를 도시한 개념도이고,
도 2는 본 발명의 바람직한 실시예에 따른 움직임 벡터 압축 장치를 개략적으로 도시한 블록도이고,
도 3은 본 발명의 바람직한 실시예에 따른 움직임 벡터 압축 방법을 개략적으로 설명한 순서도이고,
도 4는 본 발명에 적용되는 엔트로피 부호화 테이블의 일실시 예시도이고,
도 5는 움직임 벡터의 압축을 수행하지 않을 경우, H.264의 MVC(Motion Vector Coding)를 이용할 경우, 본 발명에서 제안한 압축 방법을 사용할 경우 등을 비교한 표이다.
< 도면의 주요 부분에 대한 부호의 설명 >
200 : 움직임 벡터 압축 장치 205 : 움직임 추정부
210 : 움직임 벡터값 계산부 215 : 움직임 추정 정보 생성부
220 : 움직임 벡터 구분부 225 : 정수 모션 벡터 추출부
230 : 움직임 벡터 차이값 계산부 235 : 움직임 벡터 정보 생성부
236 : 테이블 적용 가능 판별부 237 : 엔트로피 코드 도출부
238 : 혼합 코드 도출부 240 : 움직임 벡터 압축부

Claims (13)

  1. (a) 매크로블록 단위의 움직임 벡터들 중 대상 움직임 벡터를 기준 움직임 벡터와 비교하여 차이값을 계산하는 단계;
    (b) 상기 차이값이 미리 정해진 범위 이내일 경우, 상기 차이값을 미리 정해진 테이블에 의해 소정 비트의 코드값으로 변환한 뒤 상기 변환된 코드값을 포함하는 상기 대상 움직임 벡터의 움직임 벡터 정보를 생성하며, 상기 차이값이 미리 정해진 범위를 벗어날 경우, 상기 차이값을 미리 정해진 기준에 따라 레벨값으로 변환한 뒤 미리 정해진 코드값과 상기 변환된 레벨값을 포함하는 상기 대상 움직임 벡터의 움직임 벡터 정보를 생성하는 단계; 및
    (c) 상기 생성된 움직임 벡터 정보를 수집하며, 상기 수집된 움직임 벡터 정보를 기반으로 상기 움직임 벡터를 압축시키는 단계
    를 포함하는 것을 특징으로 하는 움직임 벡터 압축 방법.
  2. 제 1 항에 있어서,
    상기 (a) 단계는,
    (aa) 상기 움직임 벡터들 각각을 정수 성분 벡터와 실수 성분 벡터로 구분하며, 상기 정수 성분 벡터를 추출하는 단계; 및
    (ab) 상기 추출된 정수 성분 벡터를 이용하여 상기 대상 움직임 벡터를 상기 기준 움직임 벡터와 비교하고 상기 차이값을 계산하는 단계
    를 포함하는 것을 특징으로 하는 움직임 벡터 압축 방법.
  3. 제 1 항에 있어서,
    상기 (b) 단계는 상기 움직임 벡터 정보 생성시 엔트로피 코딩 테이블을 이용하며, 상기 엔트로피 코딩 테이블이 제공하는 코드값은 식별 가능한 적어도 하나의 부호에 상기 차이값이 커질 때마다 문자, 숫자 및 기호 중 어느 하나를 부가한 값으로 이루어지는 것을 특징으로 하는 움직임 벡터 압축 방법.
  4. 제 1 항에 있어서,
    상기 (b) 단계는 상기 레벨값으로 상기 차이값의 이진화 값을 이용하는 것을 특징으로 하는 움직임 벡터 압축 방법.
  5. 제 1 항에 있어서,
    상기 (a) 단계는 상기 기준 움직임 벡터로 상기 대상 움직임 벡터에 인접하는 적어도 하나의 움직임 벡터 또는 미리 정해진 움직임 벡터를 이용하는 것을 특징으로 하는 움직임 벡터 압축 방법.
  6. 제 3 항에 있어서,
    상기 (b) 단계에서 이용하는 상기 엔트로피 코딩 테이블이 제공하는 상기 차이값의 범위는 0~13이며 상기 코드값은 8비트를 초과하지 않는 것을 특징으로 하는 움직임 벡터 압축 방법.
  7. 제 2 항에 있어서,
    상기 코드값을 내부 메모리에 저장하며, 상기 레벨값 또는 상기 실수 성분 벡터를 외부 메모리에 저장하는 단계
    를 더 포함하는 것을 특징으로 하는 움직임 벡터 압축 방법.
  8. 컴퓨터로 판독 가능한 기록매체에 있어서,
    제 1 항 내지 제 7 항 중 어느 한 항에 따른 방법을 구현하는 프로그램이 기록된 기록매체.
  9. 매크로블록 단위의 움직임 벡터들 중 대상 움직임 벡터를 기준 움직임 벡터와 비교하여 차이값을 계산하는 움직임 벡터 차이값 계산부;
    상기 차이값이 미리 정해진 범위 이내일 경우, 상기 차이값을 미리 정해진 테이블에 의해 소정 비트의 코드값으로 변환한 뒤 상기 변환된 코드값을 포함하는 상기 대상 움직임 벡터의 움직임 벡터 정보를 생성하며, 상기 차이값이 미리 정해진 범위를 벗어날 경우, 상기 차이값을 미리 정해진 기준에 따라 레벨값으로 변환한 뒤 미리 정해진 코드값과 상기 변환된 레벨값을 포함하는 상기 대상 움직임 벡터의 움직임 벡터 정보를 생성하는 움직임 벡터 정보 생성부; 및
    상기 생성된 움직임 벡터 정보를 수집하며, 상기 수집된 움직임 벡터 정보를 기반으로 상기 움직임 벡터를 압축시키는 움직임 벡터 압축부
    를 포함하는 것을 특징으로 하는 움직임 벡터 압축 장치.
  10. 제 9 항에 있어서,
    상기 움직임 벡터들 각각을 정수 성분 벡터와 실수 성분 벡터로 구분하는 움직임 벡터 구분부; 및
    상기 두 성분으로 구분된 움직임 벡터에서 상기 정수 성분 벡터를 추출하는 정수 모션 벡터 추출부
    를 더 포함하며,
    상기 움직임 벡터 차이값 계산부는 상기 추출된 정수 성분 벡터를 이용하여 상기 대상 움직임 벡터를 상기 기준 움직임 벡터와 비교하고 상기 차이값을 계산하는 것을 특징으로 하는 움직임 벡터 압축 장치.
  11. 제 9 항에 있어서,
    상기 움직임 벡터 정보 생성부는 상기 움직임 벡터 정보 생성시 엔트로피 코딩 테이블을 이용하며, 상기 엔트로피 코딩 테이블이 제공하는 코드값은 식별 가능한 적어도 하나의 부호에 상기 차이값이 커질 때마다 문자, 숫자 및 기호 중 어느 하나를 부가한 값으로 이루어지는 것을 특징으로 하는 움직임 벡터 압축 장치.
  12. 제 9 항에 있어서,
    상기 움직임 벡터 차이값 계산부는 상기 기준 움직임 벡터로 상기 대상 움직임 벡터에 인접하는 적어도 하나의 움직임 벡터 또는 미리 정해진 움직임 벡터를 이용하는 것을 특징으로 하는 움직임 벡터 압축 장치.
  13. 제 9 항 내지 제 12 항 중 어느 한 항에 있어서,
    상기 움직임 벡터 압축 장치는 모바일 단말기 또는 휴대용 단말기에 구비되는 것을 특징으로 하는 움직임 벡터 압축 장치.
KR1020090013395A 2009-02-18 2009-02-18 동영상 부호화 효율 향상을 위한 움직임 벡터 압축 방법 및그 장치, 상기 방법을 구현하는 프로그램이 기록된 기록매체 KR100991184B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090013395A KR100991184B1 (ko) 2009-02-18 2009-02-18 동영상 부호화 효율 향상을 위한 움직임 벡터 압축 방법 및그 장치, 상기 방법을 구현하는 프로그램이 기록된 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090013395A KR100991184B1 (ko) 2009-02-18 2009-02-18 동영상 부호화 효율 향상을 위한 움직임 벡터 압축 방법 및그 장치, 상기 방법을 구현하는 프로그램이 기록된 기록매체

Publications (2)

Publication Number Publication Date
KR20100094120A KR20100094120A (ko) 2010-08-26
KR100991184B1 true KR100991184B1 (ko) 2010-11-01

Family

ID=42758338

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090013395A KR100991184B1 (ko) 2009-02-18 2009-02-18 동영상 부호화 효율 향상을 위한 움직임 벡터 압축 방법 및그 장치, 상기 방법을 구현하는 프로그램이 기록된 기록매체

Country Status (1)

Country Link
KR (1) KR100991184B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019054736A1 (ko) * 2017-09-12 2019-03-21 삼성전자주식회사 움직임 정보의 부호화 및 복호화 방법, 및 움직임 정보의 부호화 및 복호화 장치
WO2019059575A3 (ko) * 2017-09-19 2019-05-09 삼성전자주식회사 움직임 정보의 부호화 및 복호화 방법, 및 움직임 정보의 부호화 및 복호화 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003319400A (ja) 2002-04-26 2003-11-07 Sony Corp 符号化装置、復号装置、画像処理装置、それらの方法およびプログラム
KR100789753B1 (ko) 2005-07-18 2008-01-02 한국전자통신연구원 시간 및 시점간 참조영상 버퍼를 활용한 예측부호화/복호화장치 및 그 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003319400A (ja) 2002-04-26 2003-11-07 Sony Corp 符号化装置、復号装置、画像処理装置、それらの方法およびプログラム
KR100789753B1 (ko) 2005-07-18 2008-01-02 한국전자통신연구원 시간 및 시점간 참조영상 버퍼를 활용한 예측부호화/복호화장치 및 그 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019054736A1 (ko) * 2017-09-12 2019-03-21 삼성전자주식회사 움직임 정보의 부호화 및 복호화 방법, 및 움직임 정보의 부호화 및 복호화 장치
US11172204B2 (en) 2017-09-12 2021-11-09 Samsung Electronics Co., Ltd. Method for encoding and decoding motion information and device for encoding and decoding motion information
US11870999B2 (en) 2017-09-12 2024-01-09 Samsung Electronics Co., Ltd. Method for encoding and decoding motion information and device for encoding and decoding motion information
WO2019059575A3 (ko) * 2017-09-19 2019-05-09 삼성전자주식회사 움직임 정보의 부호화 및 복호화 방법, 및 움직임 정보의 부호화 및 복호화 장치
US11212547B2 (en) 2017-09-19 2021-12-28 Samsung Electronics Co., Ltd. Method for encoding and decoding motion information, and apparatus for encoding and decoding motion information
US11716485B2 (en) 2017-09-19 2023-08-01 Samsung Electronics Co., Ltd. Method for encoding and decoding motion information, and apparatus for encoding and decoding motion information

Also Published As

Publication number Publication date
KR20100094120A (ko) 2010-08-26

Similar Documents

Publication Publication Date Title
KR101961888B1 (ko) 인터 예측 방법 및 그 장치, 움직임 보상 방법 및 그 장치
JP6466986B2 (ja) ビデオ符号化またはビデオ復号化のための動きベクトル決定方法及びその装置
US7912122B2 (en) Picture coding method, picture decoding method, picture coding apparatus, picture decoding apparatus
US20150312575A1 (en) Advanced video coding method, system, apparatus, and storage medium
TW201415904A (zh) 幀間預測的運動預測方法、運動補償方法、運動預測裝置、運動補償裝置以及電腦可讀記錄媒體
MX2007000254A (es) Metodo y aparato para utilizar tecnicas de conversion ascendente de indice de cuadro en codificacion de video que se puede escalar.
KR20170027508A (ko) 율―왜곡 최적화 기반의 양자화 방법 및 그 장치
KR100991184B1 (ko) 동영상 부호화 효율 향상을 위한 움직임 벡터 압축 방법 및그 장치, 상기 방법을 구현하는 프로그램이 기록된 기록매체
EP2698995A2 (en) High speed scalable video coding device and method using multi-track video
JP2013236392A (ja) 画像符号化装置および画像符号化方法
KR100969135B1 (ko) 복원정보 신뢰도에 기반하여 계속적으로 보조정보를 향상시키는 분산비디오 부호화 영상의 복호화 장치 및 그 방법
Pereira Analysis for Video Coding: Moving It from the Encoder to the Decoder

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140804

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160105

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161024

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee