KR101479130B1 - 차분 움직임벡터 부호화/복호화 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법 - Google Patents

차분 움직임벡터 부호화/복호화 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법 Download PDF

Info

Publication number
KR101479130B1
KR101479130B1 KR20100101439A KR20100101439A KR101479130B1 KR 101479130 B1 KR101479130 B1 KR 101479130B1 KR 20100101439 A KR20100101439 A KR 20100101439A KR 20100101439 A KR20100101439 A KR 20100101439A KR 101479130 B1 KR101479130 B1 KR 101479130B1
Authority
KR
South Korea
Prior art keywords
motion vector
resolution
search
differential
differential motion
Prior art date
Application number
KR20100101439A
Other languages
English (en)
Other versions
KR20120039967A (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 KR20100101439A priority Critical patent/KR101479130B1/ko
Priority to US13/880,004 priority patent/US20130202047A1/en
Priority to CN201180049929.8A priority patent/CN103155560B/zh
Priority to PCT/KR2011/007736 priority patent/WO2012053796A2/ko
Publication of KR20120039967A publication Critical patent/KR20120039967A/ko
Application granted granted Critical
Publication of KR101479130B1 publication Critical patent/KR101479130B1/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/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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)

Abstract

차분 움직임벡터 부호화/복호화 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법이 개시된다. 본 발명의 실시예에 따른 차분 움직임벡터 부호화 장치는, 현재블록의 예측 움직임벡터를 중심으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 영역별 해상도 설정부; 각각의 탐색 영역에 대응하는 해상도로 움직임을 추정하여 움직임벡터를 생성하는 움직임 추정부; 생성된 움직임벡터와 예측 움직임벡터 사이의 차분 움직임벡터를 계산하는 차분 움직임벡터 계산부; 및 계산된 차분 움직임벡터를 생성된 움직임벡터에 대응하는 해상도로 부호화하는 차분 움직임벡터 부호화부를 포함하는 것을 특징으로 한다.

Description

차분 움직임벡터 부호화/복호화 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법{Differential Motion Vector Coding/Decoding Apperatus and Method, and Video Coding/Decoding Apperatus and Method using the Same}
본 발명의 실시예는 차분 움직임벡터 부호화/복호화 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법에 관한 것이다. 보다 상세하게는, 탐색 영역별로 서로 다른 해상도로 움직임벡터를 추정하고, 그에 따라 차분 움직임 벡터를 해상도에 대응하여 적응적으로 부호화/복호화함으로써 압축 및 복원 효율을 높일 수 있는 차분 움직임벡터 부호화/복호화 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 발명의 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
도 1은 종래의 H.264/AVC에 따른 부호화기의 구성을 도시한 도면이다. 도 1에 도시한 바와 같이, H.264/AVC에 따른 부호화기는 화면 내 예측/화면 간 예측, 변환 양자화, 엔트로피 코딩 등을 수행하여 입력된 영상 데이터를 부호화한다. 이때, 화면 간 예측은 시간적 중복성을 제거하기 위한 과정이고, 화면 내 예측은 공간적 중복성을 제거하기 위한 것이다. 중복성이 제거된 데이터는 변환과 양자화 단계를 거치면서 압축이 된다. 이렇게 압축된 데이터는 엔트로피 인코더를 통해서 비트스트림으로 만들어진다.
통상적으로 동영상은 일련의 픽처(Picture)로 구성되어 있으며, 각 픽처들은 매크로블록(Macroblock)과 같은 소정의 영역으로 분할되며 매크로블록은 영상 부호화 및 복호화의 기준단위가 된다. 매크로블록은 부호화 방법에 따라 크게 인트라 매크로블록(Intra Macroblock), 인터 매크로블록(Inter Macroblock)으로 분류된다. 인트라 매크로블록은 화면 내 예측하는 방식의 인트라 예측 부호화(Intra Prediction Coding) 방식을 사용하여 부호화되는 매크로블록을 뜻한다. 인트라 예측 부호화란 현재 부호화를 수행하는 현재 픽처 내에서 이전에 부호화되고 복호화되어 복원된 블록들의 화소를 이용하여 현재 블록의 화소를 예측함으로써 예측 블록을 생성하고 현재 블록의 화소와의 차분값을 부호화하는 방식이다. 인터 매크로블록은 화면 간 예측하는 방식의 인터 예측 부호화(Inter Prediction Coding)를 사용하여 부호화되는 매크로블록을 뜻한다. 인터 예측 부호화란 하나 이상의 과거 픽처 또는 미래 픽처를 참조하여 현재 픽처 내의 현재 블록을 예측함으로써 예측 블록을 생성하고 현재 블록과의 차분값을 부호화하는 방식이다. 여기서, 현재 픽처를 부호화하거나 복호화하는데 참조되는 픽처를 참조 픽처(Reference Picture)라고 한다.
도 1은 H.264/AVC에 따른 영상 부호화 장치를 개략적으로 나타낸 영상 부호화 장치의 블록 구성도이다.
도 1을 참조하면, 인터 예측기은 매크로 블록을 16x16, 16x8, 8x16, 8x8, 8x4, 4x8, 4x4블록 단위로 분할하여 인터 예측을 수행한다. 인터 예측은 현재 코딩하려는 블록을 이전에 코딩된 프레임(frame)에서 가장 코딩효율이 높은 블록을 찾아서 두 블록 간의 차이를 부호화한다. 이렇게 코딩효율이 높은 블록을 찾는 과정이 움직임 벡터를 추정하는 단계이다. 현재 블록의 움직임 벡터를 추정하는 방식은 많은 후보 움직임 벡터 중에서 다음의 수학식 1에 따라 발생하는 비용이 가장 작은 움직임 벡터를 최적의 움직임 벡터로 선택한다.
Figure 112010067143152-pat00001
여기서 Distortion은 현재 블록과 움직임 벡터가 가리키는 블록과의 차이의 절대값의 합을 의미하며 Rate는 추정된 움직임 벡터를 부호화할 때 발생되는 비트를 예측한 값이며 λ는 라그랑지 곱을 의미한다.
추정된 움직임 벡터를 부호화하는 과정은 다음과 같다. 먼저, 현재 블록의 주위 블록들로부터 예측된 예측 움직임 벡터(PMV)를 계산한 후, 이 PMV와 현재 블록에 대해서 찾아진 움직임 벡터와의 차분 벡터를 계산한다.
이렇게 움직임 벡터를 추정할 때 움직임을 정수 단위로 예측하여 사용할 수 있지만 좀더 정교하게 반 화소 혹은 1/4 화소 단위로 움직임을 예측할 수 있다. 이러한 이유는 영상이 정수 화소 단위로만 움직이는 것이 아니라 반 화소 혹은 1/4화소 단위로 움직임이 가능하기 때문이다. 따라서 정수 화소로만 예측하면 반 화소 혹은 1/4 화소 단위로 움직이는 영상에선 부호화 효율이 떨어지게 된다.
이런 점을 고려하여 종래의 비디오 코덱인 JM software는 움직임 벡터를 정수화소 단위, 반 화소 단위, 그리고 1/4화소 단위까지 추정한 후, 현재 코딩하려는 블록과 압축효율이 가장 좋은 해상도의 움직임 벡터를 사용하여 신호를 압축한다. 또한, KTA software에서는 더 정확한 움직임 벡터를 추정하기 위하여 정수 화소 단위부터 1/8 화소 단위까지 움직임 벡터를 추정함으로써 더욱 정밀한 움직임을 찾을 수 있게 되었다. 하지만, 참조 영상은 정수 화소 값만 가지고 있고 반 화소 혹은 1/4 화소는 값을 가지지 못한다. 따라서 반 화소 혹은 1/4 화소 값을 만들기 위해서 주어진 정수 화소 값을 이용하여 반 화소 혹은 1/4화소 값을 만들어 내게 된다.
종래의 비디오 코덱인 JM에서의 반 화소와 1/4 화소 값을 만드는 방법은 도 2에 나타낸 바와 같이, 반 화소는 주위에 6개의 정수 화소 값을 가지고 반화소 값을 만들어 낸다. 또한, 1/4 화소는 주변에 반 화소와 정수 화소를 bi linear 보간(interpolation) 방법을 이용하여 구하게 된다. 반면에, 또 다른 Reference software인 KTA에서는 1/8 화소 단위까지 움직임 벡터를 만들 수 있으며, 그 방법은 도 3에 나타낸 바와 같다.
종래의 차분 움직임 벡터 부호화 방법은 도 4 및 도 5의 테이블(Table)을 통해서 이루어질 수 있다. 도 4 및 도 5는 각각 1/4, 1/8 화소 단위까지 움직임 벡터의 해상도를 사용하는 경우, 차분 움직임 벡터를 부호화하기 위한 코드북을 나타낸다. 부호화 방법은 x축과 y축의 차분 움직임 벡터를 각각 구하고, 도 4 및 도 5에 제시한 값들 중 해당 차분 움직임 벡터에 대응하는 코드 번호를 이용하여 비트 스트링을 만들게 된다.
도 6은 H.264/AVC에 따른 복호화기의 구성을 나타낸 도면이다. 부호화기로부터 들어온 블록 데이터 값은 엔트로피 디코딩, 역양자화 및 역변환을 차례로 거쳐서 양자화 에러가 들어간 차분 블록 신호 값이 만들어지게 된다. 현재 블록이 인터로 코딩된 블록이면 도 4 또는 도 5와 같은 코드북을 이용하여 차분 움직임 벡터값을 만들게 되고, 인코더와 동일한 방법으로 PMV를 계산하여 움직임 벡터값을 만들게 된다. 이렇게 만들어진 움직임 벡터를 이용하여 참조 영상으로부터 움직임 보상 블록을 가지고 양자화 에러가 들어간 차분 블록 신호 값과 가산하여 복원 영상을 만들게 된다.
도 4 또는 도 5를 통해 알 수 있듯이, 통상적인 압축 표준에서는 여러 가지 해상도의 움직임 벡터를 모두 부호화하기 위해 작은 크기의 움직임 벡터를 부호화하기 위해서도 긴 코드워드들이 사용되며, 결과적으로 움직임 벡터를 부호화하여 생성되는 움직임 벡터 부호화 데이터의 크기가 커져서 압축 효율이 저하된다. 예를 들어 도 4를 참조하여, 차분 움직임 벡터가 (3,2)인 경우, '3'이 부호화되기 위해서는 코드 번호(Code Number)가 '23'인 비트스트링 '000011000'이 사용되고 '2'가 부호화되기 위해서는 코드 번호가 '15'인 비트스트링 '000010000'이 사용된다. 이와 같이 작은 크기의 움직임 벡터를 부호화하기 위해 긴 코드워드들이 사용되는 것은 1/2 화소 단위의 해상도와 1/4 화소 단위의 해상도의 움직임 벡터를 부호화하기 위한 코드 워드와 정수 화소 단위의 해상도의 움직임 벡터를 부호화하기 위한 코드워드를 함께 사용하기 때문이다.
이와 같이, 높은 해상도의 움직임 벡터를 추정하는 것은 현재 코딩 블록과 상관성이 매우 높은 참조 블록을 찾을 수 있다는 장점이 있지만, 낮은 해상도의 움직임 벡터값부터 높은 해상도의 벡터값까지 모든 해상도 벡터를 고려한 가변길이 코드워드를 이용하기 때문에 압축효율이 낮아질 수 있다. 예를 들어, 특정 프레임 에서는 정수 화소 또는 1/2 화소 단위의 움직임 벡터만 사용해서 부호화할 수 있는 경우, 정수 화소 단위부터 1/8화소 단위까지의 모든 해상도를 고려하는 가변길이 코드북을 사용한다면, 사용되지도 않는 1/4 화소 및 1/8 화소를 고려하는 코드워드 때문에, 빈번하게 사용되는 정수 화소 및 1/2 화소 코드벡터의 가변길이 코드워드의 길이가 길어지게 되어 압축효율이 낮아질 수 있다. 반대로 어떤 경우에는, 특정 프레임에서는 내부 화소 값들의 특성 때문에, 정수 화소 단위부터 1/8 화소 단위까지 모든 해상도의 움직임 벡터를 고려하는 가변길이 코드워드들을 사용하는 경우에 압축 효율이 높을 수 있다.
본 발명의 실시예는 전술한 문제점을 효율적으로 해결하기 위하여 창안된 것으로서, 탐색 영역별로 서로 다른 해상도로 움직임벡터를 추정하고, 그에 따라 차분 움직임 벡터를 해상도에 대응하여 적응적으로 부호화/복호화함으로써 압축 및 복원 효율을 높일 수 있는 차분 움직임벡터 부호화/복호화 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법을 제공하는 것을 목적으로 한다.
전술한 목적을 달성하기 위한 본 발명의 실시예에 따른 영상 부호화/복호화 장치는, 현재블록의 예측 움직임벡터를 중심으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하며, 각각의 탐색 영역에 대응하는 해상도로 움직임을 추정하여 움직임벡터를 생성하고, 생성된 움직임벡터와 예측 움직임벡터 사이의 차분 움직임벡터를 생성된 움직임벡터에 대응하는 해상도로 부호화하는 영상 부호화기; 및 비트스트림으로부터 차분 움직임벡터를 추출하며, 각각의 탐색 영역 중 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 추출된 차분 움직임벡터를 복호화하는 영상 복호화기를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 실시예에 따른 차분 움직임벡터 부호화 장치는, 현재블록의 예측 움직임벡터를 중심으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 영역별 해상도 설정부; 각각의 탐색 영역에 대응하는 해상도로 움직임을 추정하여 움직임벡터를 생성하는 움직임 추정부; 생성된 움직임벡터와 예측 움직임벡터 사이의 차분 움직임벡터를 계산하는 차분 움직임벡터 계산부; 및 계산된 차분 움직임벡터를 생성된 움직임벡터에 대응하는 해상도로 부호화하는 차분 움직임벡터 부호화부를 포함하는 것을 특징으로 한다.
차분 움직임벡터 부호화 장치는, 각각의 탐색 영역의 임계값을 해당 영역의 최대 해상도로 부호화하여 비트스트림으로 복호기에 전송하는 임계값 부호화부를 더 포함할 수 있다.
영역별 해상도 설정부는 복호기와 상호 약속된 값으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정할 수 있다.
또한, 영역별 해상도 설정부는, 현재블록의 예측 움직임벡터를 중심으로 거리가 멀어질수록 움직임벡터의 해상도가 좁아지도록 탐색 영역별로 해상도를 설정할 수도 있다.
또는, 영역별 해상도 설정부는, 현재블록의 예측 움직임벡터를 중심으로 거리가 멀어질수록 움직임벡터의 해상도가 넓어지도록 탐색 영역별로 해상도를 설정할 수도 있다.
또한, 영역별 해상도 설정부는, 현재블록의 예측 움직임벡터를 중심으로 x축 방향과 y축 방향에 따라 각각의 탐색 영역의 구간을 다르게 하여 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정할 수도 있다.
전술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 차분 움직임벡터 복호화 장치는, 부호화기로부터 수신되는 비트스트림에서 탐색 영역별로 최대 해상도로 부호화된 임계값을 추출하여 복호화하는 임계값 복호화부; 복호화된 각각의 임계값에 기초하여 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 영역별 해상도 설정부; 및 비트스트림으로부터 차분 움직임벡터를 추출하며, 각각의 탐색 영역 중 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 추출된 차분 움직임벡터를 복호화하는 차분 움직임벡터 복호화부를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 차분 움직임벡터 복호화 장치는, 부호화기와 상호 약속된 임계값으로 탐색 영역을 구분하고 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 영역별 해상도 설정부; 및 비트스트림으로부터 차분 움직임벡터를 추출하며, 각각의 탐색 영역 중 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 추출된 차분 움직임벡터를 복호화하는 차분 움직임벡터 복호화부를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 실시예에 따른 영상 부호화/복호화 방법은, 현재블록의 예측 움직임벡터를 중심으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하며, 각각의 탐색 영역에 대응하는 해상도로 움직임을 추정하여 움직임벡터를 생성하고, 생성된 움직임벡터와 예측 움직임벡터 사이의 차분 움직임벡터를 생성된 움직임벡터에 대응하는 해상도로 부호화하는 영상 부호화 단계; 및 비트스트림으로부터 차분 움직임벡터를 추출하며, 각각의 탐색 영역 중 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 추출된 차분 움직임벡터를 복호화하는 영상 복호화 단계를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 실시예에 따른 차분 움직임벡터 부호화 방법은, 현재블록의 예측 움직임벡터를 중심으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 단계; 각각의 탐색 영역에 대응하는 해상도로 움직임을 추정하여 움직임벡터를 생성하는 단계; 생성된 움직임벡터와 예측 움직임벡터 사이의 차분 움직임벡터를 계산하는 단계; 및 계산된 차분 움직임벡터를 생성된 움직임벡터에 대응하는 해상도로 부호화하는 단계를 포함하는 것을 특징으로 한다.
차분 움직임벡터 부호화 방법은, 각각의 탐색 영역의 임계값을 해당 영역의 최대 해상도로 부호화하여 비트스트림으로 복호기에 전송하는 단계를 더 포함할 수 있다.
해상도 설정단계는, 복호기와 상호 약속된 값으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정할 수 있다.
또한, 해상도 설정단계는, 현재블록의 예측 움직임벡터를 중심으로 거리가 멀어질수록 움직임벡터의 해상도가 좁아지도록 탐색 영역별로 해상도를 설정할 수 있다.
또는, 해상도 설정단계는, 현재블록의 예측 움직임벡터를 중심으로 거리가 멀어질수록 움직임벡터의 해상도가 넓어지도록 탐색 영역별로 해상도를 설정할 수 있다.
또한, 해상도 설정단계는, 현재블록의 예측 움직임벡터를 중심으로 x축 방향과 y축 방향에 따라 각각의 탐색 영역의 구간을 다르게 하여 상기 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정할 수도 있다.
전술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 차분 움직임벡터 복호화 방법은, 부호화기로부터 수신되는 비트스트림에서 탐색 영역별로 최대 해상도로 부호화된 임계값을 추출하여 복호화하는 단계; 복호화된 각각의 임계값에 기초하여 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 단계; 및 비트스트림으로부터 차분 움직임벡터를 추출하며, 각각의 탐색 영역 중 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 추출된 차분 움직임벡터를 복호화하는 단계를 포함하는 것을 특징으로 한다.
전술한 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 차분 움직임벡터 복호화 방법은, 부호화기와 상호 약속된 임계값으로 탐색영역을 구분하여 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 단계; 및 비트스트림으로부터 차분 움직임벡터를 추출하며, 각각의 탐색 영역 중 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 추출된 차분 움직임벡터를 복호화하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 실시예에 따르면, 탐색 영역별로 서로 다른 해상도로 움직임벡터를 추정하고, 그에 따라 차분 움직임 벡터를 해상도에 대응하여 적응적으로 부호화/복호화함으로써 가변길이 코드북을 사용하는 경우의 압축 및 복원 효율을 높일 수 있게 된다.
도 1은 H.264/AVC에 따른 부호화기의 구조를 개략적으로 도시한 도면이다.
도 2는 비디오 코덱인 JM에서 반화소와 1/4 화소 값을 만드는 방법을 나타낸 도면이다.
도 3은 Reference software인 KTA에서 1/8 화소 단위까지 움직임벡터를 추정하는 방법을 나타낸 도면이다.
도 4는 종래의 1/4 화소단위의 차분 움직임벡터를 부호화하기 위한 코드북의 예를 나타낸 도면이다.
도 5는 종래의 1/8 화소단위의 차분 움직임벡터를 부호화하기 위한 코드북의 예를 나타낸 도면이다.
도 6은 H.264/AVC에 따른 복호화기의 구조를 개략적으로 도시한 도면이다.
도 7은 본 발명의 실시예에 따른 차분 움직임벡터 부호화 장치를 개략적으로 도시한 도면이다.
도 8은 현재블록의 예측 움직임벡터를 중심으로 탐색 영역에 대한 영역 분할을 2차원으로 나타낸 도면이다.
도 9는 현재블록의 예측 움직임벡터를 중심으로 탐색 영역에 대한 영역 분할을 1차원으로 나타낸 도면이다.
도 10은 현재블록의 예측 움직임벡터를 중심으로 거리가 멀어질수록 탐색 영역별 사용 가능한 움직임벡터의 해상도의 종류가 적어지며, 움직임벡터의 해상도가 좁아지는 경우의 예를 나타낸 도면이다.
도 11은 도 10에 따라 차분 움직임벡터를 부호화하기 위한 코드북의 일 예를 나타낸 도면이다.
도 12는 현재블록의 예측 움직임벡터를 중심으로 거리가 멀어질수록 탐색 영역별 사용 가능한 움직임벡터의 해상도의 종류가 많아지며, 움직임벡터의 해상도가 넓어지는 경우의 예를 나타낸 도면이다.
도 13은 도 12에 따라 차분 움직임벡터를 부호화하기 위한 코드북의 일 예를 나타낸 도면이다.
도 14는 현재블록의 예측 움직임벡터를 중심으로 거리에 관계없이 탐색 영역별로 사용 가능한 해상도의 종류를 임의로 설정한 예를 나타낸 도면이다.
도 15는 도 14에 따라 차분 움직임벡터를 부호화하기 위한 코드북의 일 예를 나타낸 도면이다.
도 16은 현재브록의 예측 움직임벡터를 중심으로 탐색 영역에 대한 영역분할을 x축 및 y축에 따라 다르게 설정한 예를 나타낸 도면이다.
도 17은 도 16의 x축에 대한 구간별 움직임벡터를 결정하는 예를 나타낸 도면이다.
도 18은 도 17에 대한 차분 움직임벡터를 부호화하기 위한 코드북의 예를 나타낸 도면이다.
도 19는 도 16의 y축에 대한 구간별 움직임벡터를 결정하는 예를 나타낸 도면이다.
도 20은 도 19에 대한 차분 움직임벡터를 부호화하기 위한 코드북의 예를 나타낸 도면이다.
도 21은 본 발명의 일 실시예에 따른 차분 움직임벡터 복호화 장치를 개략적으로 도시한 도면이다.
도 22는 본 발명의 다른 실시예에 따른 차분 움직임벡터 복호화 장치를 개략적으로 도시한 도면이다.
도 23은 도 7의 차분 움직임벡터 부호화 장치에 의한 차분 움직임벡터 부호화 방법을 나타낸 흐름도이다.
도 24는 움직임벡터의 해상도 적용 영역을 사각형 형태로 설정하는 경우의 예를 나타낸 도면이다.
도 25는 움직임벡터의 해상도 적용 영역을 마름모 형태로 설정하는 경우의 예를 나타낸 도면이다.
도 26은 복호화기로 전송되는 임계값으로 인한 신택스의 변화를 예시한 도면이다.
도 27은 도 21의 차분 움직임벡터 복호화 장치에 의한 차분 움직임벡터 복호화 방법을 나타낸 흐름도이다.
도 28은 도 22의 차분 움직임벡터 복호화 장치에 의한 차분 움직임벡터 복호화 방법을 나타낸 흐름도이다.
도 29는 모든 참조 프레임에서 현재 부호화하여 들어온 임계값을 모두 동일하게 사용할 경우의 예를 나타낸 도면이다.
도 30은 모든 참조 영상에 다른 임계값을 사용하는 경우의 예를 나타낸 도면이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
이하에서 후술할 영상 부호화 장치(Video Encoding Apparatus), 영상 복호화 장치(Video Decoding Apparatus)는 개인용 컴퓨터(PC: Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 이동통신 단말기(Mobile Communication Terminal) 등일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화하거나 복호화하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미한다.
또한, 영상 부호화 장치에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등의 통신 인터페이스를 통해 영상 복호화 장치로 전송되어 영상 복호화 장치에서 복호화되어 영상으로 복원되고 재생될 수 있다.
본 발명에서 설명하는 기술은 기존의 H.264 나 KTA에서 사용되는 움직임 벡터 추정 단위 (예, 매크로 블록, 16x16, 16x8, 8x16, 8x8, 4x8, 8x4, 4x4)에 한정되어 적용되는 것은 아니며, 움직임 벡터 추정 블록의 크기도 한정하지 않는다. 또한, 본 발명 기술은 움직임 벡터 추정단위가 정사각형, 직사각형, 삼각형, 및 그 외 다양한 형태일 때도 사용될 수 있다.
도 7은 본 발명의 실시예에 따른 차분 움직임벡터 부호화 장치를 개략적으로 도시한 도면이다. 본 발명의 실시예에 따른 차분 움직임벡터 부호화 장치(700)는 영역별 해상도 설정부(710), 움직임 추정부(720), 차분 움직임벡터 계산부(730), 차분 움직임벡터 부호화부(740) 및 임계값 부호화부(750)를 포함할 수 있다.
영역별 해상도 설정부(710)는 현재블록의 예측 움직임벡터를 중심으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정한다. 종래의 차분 움직임 벡터의 부호화는 예측 움직임벡터를 중심으로 모든 영역에서 같은 해상도의 움직임 벡터를 사용하고 있다. 그러나 본 발명의 실시예에 따른 차분 움직임벡터 부호화 장치(700)는 기존의 차분 움직임 벡터 부호화의 방식과 다르게 예측 움직임벡터를 중심으로 탐색 영역별로 서로 다른 해상도의 움직임벡터를 추정하도록 한다. 이를 위해, 영역별 해상도 설정부(710)는 예측 움직임벡터를 중심으로 거리가 멀어질수록 움직임벡터의 해상도가 좁아지도록 탐색 영역별로 해상도를 설정하거나, 현재블록의 예측 움직임벡터를 중심으로 거리가 멀어질수록 움직임벡터의 해상도가 넓어지도록 탐색 영역별로 해상도를 설정할 수 있다. 또는, 이에 한정하지 않고 현재블록의 예측 움직임벡터를 중심으로 거리에 따라 사용 가능한 해상도가 다양하게 설정될 수도 있다. 또한, 현재블록의 예측 움직임벡터를 중심으로 방향에 따라 각각의 탐색 영역의 구간을 다르게 하여 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정할 수도 있다.
이때, 영역별 해상도 설정부(710)는 현재 영상과 참조 영상을 이용하여 탐색 영역별 각각의 영역에 대한 임계값을 계산할 수 있다. 본 발명의 실시예에서는 임계값을 계산하는 방법은 제한하지 않으며, 정해진 탐색 영역의 임계값을 이용하여 차분 움직임벡터의 부호화를 위한 테이블(코드북)을 만들 수 있다.
움직임 추정부(720)는 영역별 해상도 설정부(710)에 의해 설정된 각각의 탐색 영역에 대응하는 해상도로 움직임을 추정하여 움직임벡터를 생성한다.
차분 움직임벡터 계산부(730)는 움직임 추정부(720)에 의해 생성된 움직임벡터와 예측 움직임벡터 사이의 차분 움직임벡터를 계산한다.
차분 움직임벡터 부호화부(740)는 차분 움직임벡터 계산부(730)에 의해 계산된 차분 움직임벡터를 움직임 추정부(720)에 의해 생성된 움직임벡터에 대응하는 해상도로 부호화한다.
임계값 부호화부(750)는 각각의 탐색 영역의 임계값을 해당 영역의 최대 해상도로 부호화하여 비트스트림으로 복호기에 전송한다. 이때, 임계값 부호화부(750)를 통해 각각의 탐색 영역을 복호기에 알리는 대신에, 영역별 해상도 설정부(710)가 복호기와 상호 약속된 영역의 범위를 나타내는 임계값으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하도록 구현될 수도 있다.
도 8은 현재블록의 예측 움직임벡터를 중심으로 탐색 영역에 대한 영역 분할을 2차원으로 나타낸 도면이며, 도 9는 현재블록의 예측 움직임벡터를 중심으로 탐색 영역에 대한 영역 분할을 1차원으로 나타낸 도면이다. 도 8 및 도 9에 나타낸 바와 같이 현재블록의 예측 움직임벡터를 중심으로 거리에 따라 움직임벡터의 추정을 위한 탐색영역이 분할될 수 있다. 도 8 및 도 9에는 각각의 영역이 동일한 간격으로 분할된 것으로 도시하였지만, 이에 한정되는 것은 아니며 각각의 영역은 서로 다른 간격으로 설정될 수도 있다.
이렇게 분할된 탐색 영역은 각각의 영역에서 서로 다른 해상도의 움직임 벡터를 가지게 된다. 예를 들어, A영역은 1/8pel까지 움직임 벡터 해상도를, B영역은 1/4 pel까지 움직임 벡터 해상도를, C영역은 1/2pel까지 움직임 벡터 해상도를, 마지막으로 D영역은 정수 해상도를 이용하여 움직임 벡터를 부호화하게 된다.
도 10은 현재블록의 예측 움직임벡터를 중심으로 탐색 영역별 거리가 멀어질수록 사용 가능한 움직임벡터의 해상도의 종류가 적어지는 경우의 예를 나타낸 도면이다. 도 10에 나타낸 바와 같이, 영역별 해상도 설정부(710)는 A영역에서는 1/8 해상도까지, B영역은 1/4 해상도까지, C영역은 1/2 해상도까지, 마지막으로 D영역은 1/1 해상도까지 고려해서 움직임벡터를 추정하도록 설정될 수 있다. 예를 들어, 1/8 해상도를 고려해서 차분 움직임벡터를 만들 때 차분 움직임벡터의 크기가 -2/8 ~ 2/8 사이에 존재하면 A 영역, 3/8 ~ 8/8과 -3/8 ~ -8/8 사이에 존재하면 B 영역, 9/8 ~ 16/8와 -9/8 ~ -16/8 사이에 존재하면 C 영역, 그 외의 영역에 존재할 경우 D 영역으로 설정할 수 있다. 여기에 기재한 각각의 영역의 범위는 1/8 해상도를 고려한 경우의 일 예일 뿐이며 이에 한정된 것은 아니다.
이와 같이 영역이 설정이 되면, 임계값 부호화부(750)는 복호화기에 설정된 영역을 알려주기 위하여 각각의 탐색 영역의 임계값을 부호화하는데 이 임계값은 최대 해상도에 맞게 부호화하여 사용될 수 있다. 예를 들어, 1/4픽셀 영역까지만 사용할 경우, 임계값 부호화부(750)는 임계값을 1/4 픽셀 단위로 부호화하여 복호화기에 전송한다. 전술한 예제는 1/8 픽셀 영역까지 사용하기 때문에 임계값 부호화부(750)는 1/8픽셀 단위로 임계값을 만들어 복호화기에 전송한다. 본 발명에 따른 실시예에서는 임계값을 전송하는 방법에 대해서는 제한하지 않는다. 이와 같은 예시를 이용하여 도 5의 코드북을 새롭게 디자인하면 도 11과 같이 만들어진다.
도 11은 도 10에 따라 차분 움직임 벡터를 부호화하기 위한 코드북인데, 도 4 또는 도 5와 같이 Exponential Golomb Code로 작성된다. Exponential Golmb Code는 첫 번째 1이 나오긴 전까지의 0의 개수를 카운트 하여 카운트 된 값으로 첫 번째 1 이후에 몇 비트를 읽을지 계산하는 방식이다. 기존 방식으로 제작된 도 4 및 도 5, 그리고 본 발명의 실시예에 따른 방식으로 만들어진 도 11은 같은 방식으로 코드북이 만들어지기 때문에 코드번호와 비트 스트링 사이의 관계는 동일하다. 단지 각 코드번호가 가리키는 차분 움직임 벡터값만 다르게 된다. 또한, Exponential Golomb Code로 차분 움직임 벡터가 코딩될 때 크기가 작은 값에 코드번호가 먼저 할당이 되며 같은 크기일 경우 양수인 값에 먼저 코드번호가 할당이 된다. 이런 방식은 부호화기와 복호화기가 동일하게 사용한다.
본 발명의 실시예에서는 차분 움직임 벡터를 비트스트링으로 부호화할 때 Exponential Golomb Code를 사용하는 경우를 예시로 설명했으나, 본 발명은 이를 한정하지 않으며, 다른 코딩 방법을 사용할 수 있다.
도 10에서 제시된 예시를 이용하여 차분 움직임 벡터에 대한 코드북을 작성하면 도 11과 같이 작성할 수 있다. A영역은 1/8 해상도까지 지원하기 때문에, 도 11에서 보는 바와 같이 촘촘하게 움직임 벡터를 찾는다. 반면 B영역은 1/4 해상도까지 고려하여 움직임 벡터를 찾기 때문에 1/8 해상도에 해당하는 3/8, 5/8, 7/8, 의 움직임벡터를 코드북에서 제외한다. C영역에서는 1/2 해상도까지 고려하기 때문에 1/4 해상도와 1/8 해상도에 해당하는 포인트들의 움직임 벡터 9/8, 10/8(5/4), 11/8, 13/8, 14/8(7/4), 15/8를 코드북에서 제외한다. 마지막으로, D영역에서는 1/1 해상도만 고려하기 때문에 1/2, 1/4, 1/8 해상도에 해당하는 포인트들을 코드북에서 제외한다.
도 5와 도 11을 비교해 보면 인덱스번호(코드번호)가 같은 15번이더라도 기존의 알고리즘은 2번째 정수 화소 8/8(1)를 가리키고 있지만, 본 발명의 실시예에 따른 코드북에서는 4번째 정수 화소 3/1(24/8)를 가리키고 있다. 이후, 즉 D 영역에서는 본 발명의 실시예에 따른 차분 움직임벡터 부호화 방법은 정수 화소만을 인덱싱하기 때문에 더 적은 비트만 사용하여 다음 정수 화소로 이동이 가능하다.
이상에서는 현재블록의 예측 움직임벡터를 중심으로 거리가 멀어질수록 사용 가능한 해상도 종류가 적아지는 경우를 예로 설명하였지만, 현재블록의 예측 움직임벡터를 중심으로 거리가 멀어질수록 사용 가능한 해상도 종류가 많아지도록 설정될 수도 있다.
도 12는 현재블록의 예측 움직임벡터를 중심으로 탐색 영역별 거리가 멀어질수록 사용 가능한 움직임벡터의 해상도의 종류가 많아지며, 움직임벡터의 해상도가 촘촘해지는 경우의 예를 나타낸 도면이다. 도 12에 나타낸 바와 같이 A영역에서는 1/1 해상도까지, B영역은 1/2 해상도까지, C영역은 1/4 해상도까지, 마지막으로 D영역은 1/8 해상도까지 고려해서 움직임벡터를 추정할 수 있다. 1/8 해상도를 고려해서 차분 움직임 벡터를 만들 때 차분 움직임벡터의 크기가 -3/8 ~ 3/8 사이에 존재하면 A 영역, 4/8 ~ 12/8와 -4/8 ~ -12/8 사이에 존재하면 B 영역, 13/8 ~ 20/8와 -13/8 ~ -20/8 사이에 존재하면 C 영역, 그 외의 영역에 존재할 경우 D 영역으로 설정할 수 있다.
도 12에서 제시된 예를 이용하여 차분 움직임벡터에 대한 코드북을 작성하면 도 13과 같이 작성할 수 있다. A 영역은 1/1 해상도까지 지원하기 때문에, 도 13에서 보는 바와 같이 1/1 해상도 위치에서만 움직임벡터를 만든다. 반면, B 영역은 1/2 해상도까지 고려하여 움직임 벡터를 찾기 때문에 1/4, 1/8 해상도에 해당하는 움직임벡터 5/8, 6/8(3/4), 7/8, 9/8, 11/8를 코드북에서 제외한다. C영역에서는 1/4 해상도까지 고려하기 때문에 1/8 해상도에 해당하는 움직임벡터 13/8, 15/8, 17/8, 19/8를 코드북에서 제외한다. 마지막으로 D영역에서는 1/8까지 고려하기 때문에 모든 해상도에 대해서 움직임 벡터를 찾게 된다.
또한, 현재블록의 예측 움직임벡터를 중심으로 거리에 관계없이 탐색 영역별로 사용 가능한 해상도의 종류를 임의로 설정할 수도 있다.
도 14는 현재블록의 예측 움직임벡터를 중심으로 거리에 관계없이 탐색 영역별로 사용 가능한 해상도의 종류를 임의로 설정한 예를 나타낸 도면이며, 도 15는 도 14에 따라 차분 움직임벡터를 부호화하기 위한 코드북의 일 예를 나타낸 도면이다.
전술한 예시들에서와 같이 탐색 영역별 각각의 영역을 설정하는 다양한 임계 값들이 사용될 수 있으며, 임계값으로 구분되는 각 영역에서 사용되는 움직임벡터의 해상도 조합들이 다양하게 존재할 수 있다. 이때, 탐색 영역별 각각의 임계값은 임계값 부호화부(750)에 의해 부호화된 후 복호화기로 전송될 수 있으며, 또는 부호화기와 복호화기가 탐색 영역별 임계값들을 약속하여 사용함으로써 임계값의 전송을 생략할 수도 있다. 탐색 영역별 임계값들로 구분되는 각 영역에서 사용되는 움직임벡터들의 해상도 조합에 관한 정보 또한 송신단과 수신단에서 약속된 상태로 사용될 수도 있으며, 또는 해상도 조합에 관한 정보를 인코더에서 부호화한 후 전송할 수도 있다.
또한, 앞에서 언급한 예시 외에도 x축과 y축에 대한 탐색 영역별 설정을 도 16에 도시한 바와 같이 각각 다르게 설정할 수도 있다. 즉, x축과 y축 각각에서 사용하는 임계값이 다른 값일 수 있다. 이때, x축 구간별 움직임 벡터를 결정하는 예는 도 17과 같이 나타낼 수 있으며, x축의 차분 움직임 벡터를 본 발명의 실시예에 따라 부호화하기 위한 코드북은 도 18과 같이 나타낼 수 있다. 또한, y축 구간별 움직임 벡터를 결정하는 예는 도 19와 같이 나타낼 수 있으며, y축의 차분 움직임 벡터를 본 발명의 실시예에 따라 부호화하기 위한 코드북은 도 20과 같이 나타낼 수 있다.
도 21은 본 발명의 일 실시예에 따른 차분 움직임벡터 복호화 장치를 개략적으로 도시한 도면이다. 차분 움직임벡터 복호화 장치(2100)의 일 실시예는, 임계값 복호화부(2110), 영역별 해상도 설정부(2120) 및 차분 움직임벡터 복호화부(2130)를 포함할 수 있다.
임계값 복호화부(2110)는 부호화기로부터 수신되는 비트스트림에서 탐색 영역별로 임계값을 추출하여 복호화한다. 여기서, 임계값은 본 발명의 실시예에 따른 차분 움직임벡터 부호화 장치(700)에 의해 설정된 탐색 영역별 각각의 영역에 대한 임계값으로서, 각각의 영역에서 사용 가능한 움직임벡터의 해상도 중 최대 해상도로 부호화되어 있다.
영역별 해상도 설정부(2120)는 임계값 복호화부(2110)에 의해 복호화된 각각의 임계값에 기초하여 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정한다. 즉, 영역별 해상도 설정부(2120)는 복호화된 각각의 임계값에 기초하여 차분 움직임벡터 부호화 장치(700)에 의해 설정된 탐색 영역별 각각의 영역에서의 사용 가능한 움직임벡터 해상도를 알 수 있다. 예를 들어, 비트스트림으로부터 도 9의 A 영역에 대한 임계값을 추출하여 복호화한 경우, 그에 따라 A 영역의 적용구간이 -2/8 ~ 2/8임을 알 수 있으며, 그 영역에서 사용 가능한 움직임벡터의 최대 해상도인 1/8로 부호화되어 있으므로, 최대 해상도 1/8 이내의 움직임벡터 해상도가 사용될 수 있음을 알 수 있다.
차분 움직임벡터 복호화부(2130)는 비트스트림으로부터 차분 움직임벡터를 추출하며, 각각의 탐색 영역 중 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 차분 움직임벡터를 복호화한다. 이때, 차분 움직임벡터 복호화부(2130)는 복호화된 각각의 탐색 영역의 임계값에 기초하여 비트스트링의 순서에 따라 순차적으로 차분 움직임벡터를 나열하여 도 11과 같은 코드북을 생성할 수 있다. 이 경우, 비트스트링 및 각각의 비트스트링에 할당된 인덱스번호(코드번호)는 차분 움직임벡터 부호화 장치(700)에서 사용하는 비트스트링 및 각각의 비트스트링에 할당된 인덱스번호와 동일하게 생성되는 것이 바람직하다.
도 22는 본 발명의 다른 실시예에 따른 차분 움직임벡터 복호화 장치를 개략적으로 도시한 도면이다. 도면을 참조하면, 차분 움직임벡터 복호화 장치(2200)의 실시예는 영역별 해상도 설정부(2210) 및 차분 움직임벡터 복호화부(2220)를 포함할 수 있다.
영역별 해상도 설정부(2210)는 부호화기와 상호 약속된 값으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정할 수 있다. 예를 들어, 영역별 해상도 설정부(2210)는 부호화기와 상호 약속하여 10과 같은 각각의 탐색 영역의 구간 및 사용 가능한 움직임벡터의 해상도를 동일하게 설정할 수 있다.
차분 움직임벡터 복호화부(2220)는 비트스트림으로부터 차분 움직임벡터를 추출하며, 각각의 탐색 영역 중 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 차분 움직임벡터를 복호화한다.
도 23은 도 7의 차분 움직임벡터 부호화 장치에 의한 차분 움직임벡터 부호화 방법을 나타낸 흐름도이다.
도 7 및 도 23을 참조하면, 영역별 해상도 설정부(710)는 현재블록의 예측 움직임벡터를 중심으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정한다(S2310). 이를 위해, 영역별 해상도 설정부(710)는 예측 움직임벡터를 중심으로 거리가 멀어질수록 움직임벡터의 해상도가 넓어지도록 탐색 영역별로 해상도를 설정하거나, 현재블록의 예측 움직임벡터를 중심으로 거리가 멀어질수록 움직임벡터의 해상도가 좁아지도록 탐색 영역별로 해상도를 설정할 수 있다. 또는, 이에 한정하지 않고 현재블록의 예측 움직임벡터를 중심으로 거리에 따라 사용 가능한 해상도가 다양하게 설정될 수도 있다. 또한, 현재블록의 예측 움직임벡터를 중심으로 x축과 y축방향에 따라 각각의 탐색 영역의 구간을 다르게 하여 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정할 수도 있다. 예를 들어, 탐색 영역의 형상은 도 24 및 도 25와 같이 설정될 수도 있다. 여기서, 도 24는 사각형 형태로 탐색영역을 설정하는 경우를 나타낸 도면이며, 도 25는 마름모 형태로 탐색영역을 설정하는 경우를 나타낸 도면이다. 이처럼 탐색 영역을 2차원으로 부호화 하게 되면 움직임 벡터를 압축하는데 있어서 좀더 용이 경우가 있다. 예를 들어 도 11에서 제시한 방법처럼 해상도를 결정해서 사용할 경우, 기존의 1차원에선 x축과 y축을 도 11을 통해서 각각 부호화하였다. 하지만 2차원에선 x축, y축 각각의 차분 움직임 값 중에서 차분 값이 더 큰 것을 찾으면 차분 값이 작은 값은 자신의 해상도를 바로 계산할 수 있다. 예를 들어 x축에 대한 차분 움직임 값이 B 영역에 있고 y축에 대한 차분 움직임 값이 A 영역에 있다면, x축에 대한 차분 움직임 값으로 현재 부호화되는 차분 움직임 벡터는 1/4까지 움직임을 고려한 것을 알 수 있다. 때문에 y축은 1/8까지 고려한 코드북을 사용하는 대신에 1/4까지 고려한 코드북을 사용할 수 있다. 이 외에도 본 발명의 실시예에 따른 차분 움직임벡터의 부호화는 다양한 방법으로 탐색영역을 설정할 수 있으며 탐색영역을 설정하는 방식은 제한을 두지 않는다.
영역별 해상도 설정부(710)는 현재 영상과 참조 영상을 이용하여 탐색 영역별 각각의 영역에 대한 임계값을 계산할 수 있다. 본 발명의 실시예에서는 임계값을 계산하는 방법은 제한하지 않으며, 정해진 탐색 영역의 임계값을 이용하여 차분 움직임벡터의 부호화를 위한 테이블(코드북)을 만들 수 있다.
임계값 부호화부(750)는 각각의 탐색 영역의 임계값을 해당 영역의 최대 해상도로 부호화하여 비트스트림으로 복호기에 전송한다(S2320). 이때, 임계값 부호화부(750)는 임계값을 전송할 필요가 있을 때 부호화해서 도 26에 도시한 바와 같이 슬라이스 헤더(Slice header)와 부호화 단위블록 사이에 삽입하여 전송할 수 있다. 부호화된 임계값은 복호화기에서 복호화하여 현재 프레임을 복호화할 때 사용한다.
도 26은 본 발명의 실시예에 따른 차분 움직임벡터 부호화 방법에서 임계값을 슬라이스 헤더에 추가하여 전송하는 방법을 보여주고 있다. 도 26에 나타낸 바와 같이, 슬라이스 헤더 뒤에 위에선 언급한 임계값을 부호화하여 보내주게 된다.
임계값 부호화부(750)를 통해 각각의 탐색 영역을 복호기에 알리는 대신에, 영역별 해상도 설정부(710)가 복호기와 상호 약속된 영역의 범위를 나타내는 임계값으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하도록 구현될 수도 있다. 이 경우, 임계값의 부호화는 생략될 수 있다.
움직임 추정부(720)는 영역별 해상도 설정부(710)에 의해 설정된 각각의 탐색 영역에 대응하는 해상도로 움직임을 추정하여 움직임벡터를 생성한다(S2330).
차분 움직임벡터 계산부(730)는 움직임 추정부(720)에 의해 생성된 움직임벡터와 예측 움직임벡터 사이의 차분 움직임벡터를 계산한다(S2340).
차분 움직임벡터 부호화부(740)는 차분 움직임벡터 계산부(730)에 의해 계산된 차분 움직임벡터를 움직임 추정부(720)에 의해 생성된 움직임벡터에 대응하는 해상도로 부호화한다(S2350).
도 27은 도 21의 차분 움직임벡터 복호화 장치에 의한 차분 움직임벡터 복호화 방법을 나타낸 흐름도이다.
도 21 및 도 27을 참조하면, 임계값 복호화부(2110)는 부호화기로부터 수신되는 비트스트림에서 탐색 영역별로 임계값을 추출하여 복호화한다(S2710).
영역별 해상도 설정부(2120)는 임계값 복호화부(2110)에 의해 복호화된 각각의 임계값에 기초하여 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정한다(S2720). 즉, 영역별 해상도 설정부(2120)는 복호화된 각각의 임계값에 기초하여 차분 움직임벡터 부호화 장치(700)에 의해 설정된 탐색 영역별 각각의 영역에서의 사용 가능한 움직임벡터 해상도를 알 수 있다.
차분 움직임벡터 복호화부(2130)는 비트스트림으로부터 차분 움직임벡터를 추출하며, 각각의 탐색 영역 중 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 차분 움직임벡터를 복호화한다(S2730). 이때, 차분 움직임벡터 복호화부(2130)는 복호화된 각각의 탐색 영역의 임계값에 기초하여 비트스트링의 순서에 따라 순차적으로 차분 움직임벡터를 나열하여 도 11과 같은 코드북을 생성할 수 있다. 이 경우, 비트스트링 및 각각의 비트스트링에 할당된 인덱스번호(코드번호)는 차분 움직임벡터 부호화 장치(700)에서 사용하는 비트스트링 및 각각의 비트스트링에 할당된 인덱스번호와 동일하게 생성되는 것이 바람직하다.
도 28은 도 22의 차분 움직임벡터 복호화 장치에 의한 차분 움직임벡터 복호화 방법을 나타낸 흐름도이다.
도 22 및 도 28을 참조하면, 영역별 해상도 설정부(2210)는 부호화기와 상호 약속된 값으로 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정할 수 있다(S2810). 예를 들어, 영역별 해상도 설정부(2210)는 부호화기와 상호 약속하여 도 10과 같은 각각의 탐색 영역의 구간 및 사용 가능한 움직임벡터의 해상도를 동일하게 설정할 수 있다.
차분 움직임벡터 복호화부(2220)는 비트스트림으로부터 차분 움직임벡터를 추출하며, 각각의 탐색 영역 중 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 차분 움직임벡터를 복호화한다(S2820).
다음에, 복수 개의 참조 영상을 사용하여 비디오를 압축 및 복호화하는 경우, 임계값을 사용하는 방법을 설명한다. 현재 영상을 복호화하려면 우선 슬라이스 헤더에서 정보를 읽고 임계값을 읽으며, 부호화 단위블록의 데이터를 읽게 된다. 이때 복호된 임계값은 현재 프레임을 움직임 보상을 통해 복호화하기 위하여 각 참조영상들에 대해서 사용된다.
도 29는 모든 참조 프레임(Reference frame)에서 현재 부호화하여 들어온 임계값을 모두 동일하게 사용할 경우의 예를 나타낸다. 또 다른 예로 다양한 참조 영상을 사용할 경우, 참조 영상의 특성에 따라 임계값을 다르게 사용하는 경우의 예를 도 30에 나타내었다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 캐리어 웨이브 매체 등이 포함될 수 있다.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재할 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
이상에서 설명한 바와 같이 본 발명의 실시예는, 탐색 영역별로 서로 다른 해상도로 움직임벡터를 추정하고, 그에 따라 차분 움직임 벡터를 해상도에 대응하여 적응적으로 부호화/복호화함으로써 가변길이 코드북을 사용하는 경우의 압축 및 복원 효율을 높일 수 있는 효과를 발생하는 매우 유용한 발명이다.
700: 차분 움직임벡터 부호화 장치
710: 영역별 해상도 설정부
720: 움직임 추정부
730: 차분 움직임벡터 계산부
740: 차분 움직임벡터 부호화부
750: 임계값 부호화부
2100, 2200: 차분 움직임벡터 복호화 장치
2100: 임계값 복호화부
2120, 2210: 영역별 해상도 설정부
2130, 2220: 차분 움직임벡터 복호화부

Claims (20)

  1. 삭제
  2. 차분 움직임벡터 부호화 장치에 있어서,
    현재블록의 예측 움직임벡터를 중심으로 설정된 복수개의 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 영역별 해상도 설정부;
    각각의 상기 탐색 영역에 대응하는 해상도로 움직임을 추정하여 움직임벡터를 생성하는 움직임 추정부;
    생성된 상기 움직임벡터와 상기 예측 움직임벡터 사이의 차분 움직임벡터를 계산하는 차분 움직임벡터 계산부; 및
    계산된 상기 차분 움직임벡터를 생성된 상기 움직임벡터에 대응하는 해상도로 부호화하는 차분 움직임벡터 부호화부
    를 포함하고,
    상기 복수개의 탐색 영역은 상기 예측 움직임벡터로부터의 거리에 따라 식별되는 것을 특징으로 하는 차분 움직임벡터 부호화 장치.
  3. 제 2항에 있어서,
    각각의 상기 탐색 영역의 임계값을 해당 영역의 최대 해상도로 부호화하여 비트스트림으로 복호기에 전송하는 임계값 부호화부
    를 더 포함하는 것을 특징으로 하는 차분 움직임벡터 부호화 장치.
  4. 제 2항에 있어서,
    상기 영역별 해상도 설정부는,
    복호기와 상호 약속된 값으로 상기 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 것을 특징으로 하는 차분 움직임벡터 부호화 장치.
  5. 제 2항에 있어서,
    상기 영역별 해상도 설정부는,
    상기 현재블록의 예측 움직임벡터를 중심으로 탐색 영역의 거리가 멀어질수록 움직임벡터의 해상도가 작아지도록 탐색 영역별로 해상도를 설정하는 것을 특징으로 하는 차분 움직임벡터 부호화 장치.
  6. 제 2항에 있어서,
    상기 영역별 해상도 설정부는,
    상기 현재블록의 예측 움직임벡터를 중심으로 탐색 영역의 거리가 멀어질수록 움직임벡터의 해상도가 커지도록 탐색 영역별로 해상도를 설정하는 것을 특징으로 하는 차분 움직임벡터 부호화 장치.
  7. 제 2항에 있어서,
    상기 영역별 해상도 설정부는,
    상기 현재블록의 예측 움직임벡터를 중심으로 x축 방향과 y축 방향에 따라 각각의 탐색 영역의 구간을 다르게 하여 상기 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 것을 특징으로 하는 차분 움직임벡터 부호화 장치.
  8. 현재 블록의 움직임벡터와 상기 현재블록의 예측 움직임벡터 사이의 차분 움직임벡터를 복호화하는 장치에 있어서,
    부호화기로부터 수신되는 비트스트림에서 탐색 영역별로 최대 해상도로 부호화된 임계값을 추출하여 복호화하는 임계값 복호화부;
    복호화된 각각의 상기 임계값에 기초하여 상기 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 영역별 해상도 설정부; 및
    상기 비트스트림으로부터 상기 차분 움직임벡터에 대한 정보를 추출하며, 상기 추출된 차분 움직임벡터에 대한 정보로부터 각각의 상기 탐색 영역 중 상기 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 상기 차분 움직임벡터를 복호화하는 차분 움직임벡터 복호화부
    를 포함하고,
    상기 예측 움직임벡터로부터의 거리에 따라 식별되는 상기 탐색 영역이 복수개가 설정되는 것을 특징으로 하는 차분 움직임벡터 복호화 장치.
  9. 현재 블록의 움직임벡터와 상기 현재블록의 예측 움직임벡터 사이의 차분 움직임벡터를 복호화하는 장치에 있어서,
    부호화기와 상호 약속된 임계값으로 탐색영역을 구분하고 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 영역별 해상도 설정부; 및
    비트스트림으로부터 상기 차분 움직임벡터에 대한 정보를 추출하며, 상기 추출된 차분 움직임벡터에 대한 정보로부터 각각의 상기 탐색 영역 중 상기 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 상기 차분 움직임벡터를 복호화하는 차분 움직임벡터 복호화부
    를 포함하고,
    상기 예측 움직임벡터로부터의 거리에 따라 식별되는 상기 탐색 영역이 복수개가 설정되는 것을 특징으로 하는 차분 움직임벡터 복호화 장치.
  10. 삭제
  11. 차분 움직임벡터 부호화 방법에 있어서,
    현재블록의 예측 움직임벡터를 중심으로 설정된 복수개의 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 단계;
    각각의 상기 탐색 영역에 대응하는 해상도로 움직임을 추정하여 움직임벡터를 생성하는 단계;
    생성된 상기 움직임벡터와 상기 예측 움직임벡터 사이의 차분 움직임벡터를 계산하는 단계; 및
    계산된 상기 차분 움직임벡터를 생성된 상기 움직임벡터에 대응하는 해상도로 부호화하는 단계
    를 포함하고,
    상기 복수개의 탐색 영역은 상기 예측 움직임벡터로부터의 거리에 따라 식별되는 것을 특징으로 하는 차분 움직임벡터 부호화 방법.
  12. 제 11항에 있어서,
    각각의 상기 탐색 영역의 임계값을 해당 영역의 최대 해상도로 부호화하여 비트스트림으로 복호기에 전송하는 단계
    를 더 포함하는 것을 특징으로 하는 차분 움직임벡터 부호화 방법.
  13. 제 11항에 있어서,
    상기 해상도 설정단계는,
    복호기와 상호 약속된 값으로 상기 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 것을 특징으로 하는 차분 움직임벡터 부호화 방법.
  14. 제 11항에 있어서,
    상기 해상도 설정단계는,
    상기 현재블록의 예측 움직임벡터를 중심으로 탐색 영역의 거리가 멀어질수록 움직임벡터의 해상도가 작아지도록 상기 탐색 영역별로 해상도를 설정하는 것을 특징으로 하는 차분 움직임벡터 부호화 방법.
  15. 제 11항에 있어서,
    상기 해상도 설정단계는,
    상기 현재블록의 예측 움직임벡터를 중심으로 탐색 영역의 거리가 멀어질수록 움직임벡터의 해상도가 커지도록 상기 탐색 영역별로 해상도를 설정하는 것을 특징으로 하는 차분 움직임벡터 부호화 방법.
  16. 제 11항에 있어서,
    상기 해상도 설정단계는,
    상기 현재블록의 예측 움직임벡터를 중심으로 x축 방향과 y축 방향에 따라 각각의 탐색 영역의 구간을 다르게 하여 상기 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 것을 특징으로 하는 차분 움직임벡터 부호화 방법.
  17. 현재 블록의 움직임벡터와 상기 현재블록의 예측 움직임벡터 사이의 차분 움직임벡터를 복호화하는 방법에 있어서,
    부호화기로부터 수신되는 비트스트림에서 탐색 영역별로 최대 해상도로 부호화된 임계값을 추출하여 복호화하는 단계;
    복호화된 각각의 상기 임계값에 기초하여 상기 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 단계; 및
    상기 비트스트림으로부터 상기 차분 움직임벡터에 대한 정보를 추출하며, 상기 추출된 차분 움직임벡터에 대한 정보로부터 각각의 상기 탐색 영역 중 상기 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 상기 차분 움직임벡터를 복호화하는 단계
    를 포함하고,
    상기 예측 움직임벡터로부터의 거리에 따라 식별되는 상기 탐색 영역이 복수개가 설정되는 것을 특징으로 하는 차분 움직임벡터 복호화 방법.
  18. 현재 블록의 움직임벡터와 상기 현재블록의 예측 움직임벡터 사이의 차분 움직임벡터를 복호화하는 방법에 있어서,
    부호화기와 상호 약속된 임계값으로 탐색영역을 구분하고 탐색 영역별로 서로 다른 움직임벡터의 해상도를 설정하는 단계; 및
    비트스트림으로부터 상기 차분 움직임벡터에 대한 정보를 추출하며, 상기 추출된 차분 움직임벡터에 대한 정보로부터 각각의 상기 탐색 영역 중 상기 차분 움직임벡터가 속하는 영역에 대응하는 해상도에 따라 상기 차분 움직임벡터를 복호화하는 단계
    를 포함하고,
    상기 예측 움직임벡터로부터의 거리에 따라 식별되는 상기 탐색 영역이 복수개가 설정되는 것을 특징으로 하는 차분 움직임벡터 복호화 방법.
  19. 제 2항에 있어서, 상기 차분 움직임벡터 부호화부는,
    상기 복수개의 탐색 영역별로 상기 설정된 해상도에 따라 탐색 영역별로 서로 다른 크기의 사용 가능한 차분 움직임벡터에 대응되는 비트스트림만을 포함하는 부호화 테이블을 이용하여 상기 차분 움직임벡터를 부호화하는 것을 특징으로 하는 차분 움직임벡터 부호화 장치.
  20. 제 8항에 있어서, 상기 차분 움직임벡터 복호화부는,
    상기 복수개의 탐색 영역별로 상기 설정된 해상도에 따라 탐색 영역별로 서로 다른 크기의 사용 가능한 차분 움직임벡터에 대응되는 비트스트림만을 포함하는 부호화 테이블을 이용하여 상기 차분 움직임벡터를 복호화하는 것을 특징으로 하는 차분 움직임벡터 복호화 장치.
KR20100101439A 2010-10-18 2010-10-18 차분 움직임벡터 부호화/복호화 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법 KR101479130B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR20100101439A KR101479130B1 (ko) 2010-10-18 2010-10-18 차분 움직임벡터 부호화/복호화 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법
US13/880,004 US20130202047A1 (en) 2010-10-18 2011-10-18 Apparatus and method for video encoding/decoding
CN201180049929.8A CN103155560B (zh) 2010-10-18 2011-10-18 对差分运动矢量编码/解码的设备和方法以及利用该设备和方法对视频编码/解码的设备和方法
PCT/KR2011/007736 WO2012053796A2 (ko) 2010-10-18 2011-10-18 차분 움직임벡터 부호화/복호화 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20100101439A KR101479130B1 (ko) 2010-10-18 2010-10-18 차분 움직임벡터 부호화/복호화 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20120039967A KR20120039967A (ko) 2012-04-26
KR101479130B1 true KR101479130B1 (ko) 2015-01-07

Family

ID=45975713

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20100101439A KR101479130B1 (ko) 2010-10-18 2010-10-18 차분 움직임벡터 부호화/복호화 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법

Country Status (4)

Country Link
US (1) US20130202047A1 (ko)
KR (1) KR101479130B1 (ko)
CN (1) CN103155560B (ko)
WO (1) WO2012053796A2 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10536701B2 (en) 2011-07-01 2020-01-14 Qualcomm Incorporated Video coding using adaptive motion vector resolution
WO2016068674A1 (ko) * 2014-10-31 2016-05-06 삼성전자 주식회사 움직임 벡터 부복호화 방법 및 장치
KR102349788B1 (ko) * 2015-01-13 2022-01-11 인텔렉추얼디스커버리 주식회사 영상의 부호화/복호화 방법 및 장치
CN106331703B (zh) 2015-07-03 2020-09-08 华为技术有限公司 视频编码和解码方法、视频编码和解码装置
EP3264768A1 (en) * 2016-06-30 2018-01-03 Thomson Licensing Method and apparatus for video coding with adaptive motion information refinement
WO2019192491A1 (en) * 2018-04-02 2019-10-10 Mediatek Inc. Video processing methods and apparatuses for sub-block motion compensation in video coding systems
US20200068214A1 (en) * 2018-08-27 2020-02-27 Ati Technologies Ulc Motion estimation using pixel activity metrics
CN111416982B (zh) * 2019-01-04 2024-06-07 北京三星通信技术研究有限公司 对运动矢量信息进行编/解码的方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060004060A (ko) * 2004-07-08 2006-01-12 삼성전자주식회사 다 해상도 기반의 움직임 벡터 추정 방법과 이를 구현하기위한 프로그램이 기록된 기록 매체
KR20070108571A (ko) * 2002-01-24 2007-11-12 가부시키가이샤 히타치세이사쿠쇼 동화상 신호의 부호화 방법 및 복호화 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050207663A1 (en) * 2001-07-31 2005-09-22 Weimin Zeng Searching method and system for best matching motion vector
KR100786426B1 (ko) * 2006-03-17 2007-12-17 주식회사 팬택앤큐리텔 다 해상도 탐색 방법을 이용한 움직임 벡터 추출 방법 및장치
WO2008056934A1 (en) * 2006-11-07 2008-05-15 Samsung Electronics Co., Ltd. Method of and apparatus for video encoding and decoding based on motion estimation
US8160150B2 (en) * 2007-04-10 2012-04-17 Texas Instruments Incorporated Method and system for rate distortion optimization
US8634456B2 (en) * 2008-10-03 2014-01-21 Qualcomm Incorporated Video coding with large macroblocks
US8340188B2 (en) * 2010-01-08 2012-12-25 Research In Motion Limited Method and device for motion vector estimation in video transcoding using union of search areas
US9357228B2 (en) * 2010-05-27 2016-05-31 The Hong Kong University Of Science And Technology Motion estimation of images

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070108571A (ko) * 2002-01-24 2007-11-12 가부시키가이샤 히타치세이사쿠쇼 동화상 신호의 부호화 방법 및 복호화 방법
KR20060004060A (ko) * 2004-07-08 2006-01-12 삼성전자주식회사 다 해상도 기반의 움직임 벡터 추정 방법과 이를 구현하기위한 프로그램이 기록된 기록 매체

Also Published As

Publication number Publication date
CN103155560B (zh) 2016-11-09
WO2012053796A3 (ko) 2012-06-21
US20130202047A1 (en) 2013-08-08
CN103155560A (zh) 2013-06-12
WO2012053796A2 (ko) 2012-04-26
KR20120039967A (ko) 2012-04-26

Similar Documents

Publication Publication Date Title
KR101479130B1 (ko) 차분 움직임벡터 부호화/복호화 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법
KR101943049B1 (ko) 영상 부호화/복호화 방법 및 장치
TWI744613B (zh) 在合併模式中對視頻資料解碼的圖像解碼設備、在合併模式中對視頻資料編碼的圖像編碼設備及儲存編碼視頻資訊的電腦可讀取媒體
KR101590511B1 (ko) 움직임 벡터 부호화/복호화 장치 및 방법과 그를 이용한 영상 부호화/복호화 장치 및 방법
US10939119B2 (en) Method and apparatus for encoding and decoding video using skip mode
KR101479129B1 (ko) 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치
KR102004836B1 (ko) 비디오 신호의 처리 방법 및 장치
KR101444675B1 (ko) 영상 부호화 및 복호화 방법과 장치
KR101484171B1 (ko) 예측 움직임벡터 색인부호화에 기반한 움직임정보 생성/복원 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법
TWI711297B (zh) 利用量化係數分量與圖框間預測資訊解碼視訊資料的方法
US8948243B2 (en) Image encoding device, image decoding device, image encoding method, and image decoding method
US20120219063A1 (en) Method and apparatus for encoding/decoding images using adaptive motion vector resolution
CN105075259A (zh) 用于视频译码预测的存储器减少
KR20140110957A (ko) 비디오 코딩을 위한 모션 벡터 예측의 수행
TW202143731A (zh) 在高級運動向量預測模式中的圖像解碼方法
KR20130085838A (ko) 가중치예측을 이용한 영상 부호화/복호화 방법 및 장치
US9491480B2 (en) Motion vector encoding/decoding method and apparatus using a motion vector resolution combination, and image encoding/decoding method and apparatus using same
KR101449683B1 (ko) 움직임 벡터 해상도 제한을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
JP6019797B2 (ja) 動画像符号化装置、動画像符号化方法、及びプログラム
KR101510585B1 (ko) 움직임 정보 부호화/복호화 장치 및 움직임 정보를 부호화/복호화하는 방법
KR101582493B1 (ko) 움직임 벡터 부호화/복호화 장치 및 방법과 그를 이용한 영상 부호화/복호화 장치 및 방법
KR101582495B1 (ko) 움직임 벡터 부호화/복호화 장치 및 방법과 그를 이용한 영상 부호화/복호화 장치 및 방법
KR101422058B1 (ko) 움직임 벡터 부호화/복호화 장치 및 방법과 그를 이용한 영상 부호화/복호화 장치 및 방법
KR101479137B1 (ko) 예측 움직임벡터 색인부호화에 기반한 움직임정보 생성/복원 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법
KR101699832B1 (ko) 예측 움직임벡터 색인부호화에 기반한 움직임정보 생성/복원 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
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: 20171204

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181203

Year of fee payment: 5