KR101735798B1 - 병합 모드를 기반으로 한 영상 부호화 방법 및 장치 - Google Patents

병합 모드를 기반으로 한 영상 부호화 방법 및 장치 Download PDF

Info

Publication number
KR101735798B1
KR101735798B1 KR1020150180096A KR20150180096A KR101735798B1 KR 101735798 B1 KR101735798 B1 KR 101735798B1 KR 1020150180096 A KR1020150180096 A KR 1020150180096A KR 20150180096 A KR20150180096 A KR 20150180096A KR 101735798 B1 KR101735798 B1 KR 101735798B1
Authority
KR
South Korea
Prior art keywords
pixel
candidate
merging mode
prediction
prime
Prior art date
Application number
KR1020150180096A
Other languages
English (en)
Inventor
이혁재
김태성
Original Assignee
서울대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울대학교산학협력단 filed Critical 서울대학교산학협력단
Priority to KR1020150180096A priority Critical patent/KR101735798B1/ko
Application granted granted Critical
Publication of KR101735798B1 publication Critical patent/KR101735798B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

병합 모드를 기반으로 한 영상 부호화 방법 및 장치가 개시된다. 병합 모드를 기반으로 한 영상 부호화 방법은 예측 대상 블록에 대한 인터 예측을 위해 복수개의 병합 모드 후보를 결정하는 단계, 복수개의 병합 모드 후보의 움직임 정보를 기반으로 복수개의 병합 모드 후보를 소수 화소 병합 모드 후보를 포함하는 소수 화소 병합 모드 후보 집합 및 정수 화소 병합 모드 후보를 포함하는 정수 화소 병합 모드 후보 집합으로 분류하는 단계, 소수 화소 병합 모드 후보의 개수에 대한 정보 및/또는 정수 화소 병합 모드 후보의 개수에 대한 정보를 기반으로 소수 화소 병합 모드 후보 중 적어도 하나의 소수 화소 병합 모드 후보를 적어도 하나의 정수 화소 병합 모드 후보로 조정하는 단계를 포함할 수 있다.

Description

병합 모드를 기반으로 한 영상 부호화 방법 및 장치{METHOD AND APPARATUS FOR VIDEO ENCODING BASED ON MERGE MODE}
본 발명은 영상 부호화 방법 및 장치에 관한 것으로서, 보다 상세하게는, 병합 모드를 기반으로 한 영상 부호화 방법 및 장치에 관한 것이다.
최근 고해상도, 고품질의 영상에 대한 요구가 다양한 응용 분야에서 증가하고 있다. 영상이 고해상도를 가지고 고품질이 될수록 해당 영상에 관한 정보량도 함께 증가하고 있다.
정보량의 증가로 인해 다양한 성능의 장치와 다양한 환경의 네트워크가 등장하고 있다. 다양한 성능의 장치와 다양한 환경의 네트워크가 등장함에 따라서, 동일한 콘텐츠를 다양한 품질로 이용할 수 있게 되었다.
구체적으로, 단말 장치가 지원할 수 있는 품질의 영상이 다양해지고, 구축된 네트워크 환경이 다양해짐으로써, 어떤 환경에서는 일반적인 품질의 영상을 이용하지만, 또 다른 환경에서는 더 높은 품질의 영상을 이용할 수 있게 된다.
예를 들어, 휴대 단말에서 비디오 콘텐츠를 구매한 소비자가 가정 내 대화면의 디스플레이를 통해 동일한 비디오 콘텐츠를 더 큰 화면과 더 높은 해상도로 감상할 수 있게 되는 것이다.
최근에는 HD(High Definition) 해상도를 가지는 방송이 서비스되면서 많은 사용자들은 이미 고해상도, 고화질의 영상에 익숙해지고 있고, 서비스 제공자와 사용자들은 HDTV와 더불어 HDTV의 4배 이상의 해상도를 갖는 UHD(Ultra High Definition)의 서비스에도 관심을 기울이고 있다.
따라서, 다양한 환경에서 사용자가 요구하는 영상 서비스를 품질에 따라서 다양하게 제공하기 위해 고용량 비디오에 대한 고효율의 인코딩/디코딩 방법을 기반으로 영상의 품질, 예컨대 영상의 화질, 영상의 해상도, 영상의 크기, 비디오의 프레임 레이트 등에 스케일러빌러티를 제공하는 것이 필요하다. 또한, 이러한 스케일러빌러티에 수반되는 다양한 영상 처리 방법이 논의되어야 한다.
특허문헌 1: 대한민국 공개특허 제10-2012-7006961호
본 발명의 일 측면은 병합 모드를 기반으로 한 영상 부호화 방법을 제공한다.
또한, 본 발명의 다른 측면은 병합 모드를 기반으로 한 영상 부호화 장치를 제공한다.
본 발명의 일 측면에 따른 병합 모드를 기반으로 한 영상 부호화 방법은 부호화기가 예측 대상 블록에 대한 인터 예측을 위해 복수개의 병합 모드 후보를 결정하는 단계, 상기 부호화기가 상기 복수개의 병합 모드 후보의 움직임 정보를 기반으로 상기 복수개의 병합 모드 후보를 소수 화소 병합 모드 후보를 포함하는 소수 화소 병합 모드 후보 집합 및 정수 화소 병합 모드 후보를 포함하는 정수 화소 병합 모드 후보 집합으로 분류하는 단계, 상기 부호화기가 상기 소수 화소 병합 모드 후보의 개수에 대한 정보 및/또는 상기 정수 화소 병합 모드 후보의 개수에 대한 정보를 기반으로 상기 소수 화소 병합 모드 후보 중 적어도 하나의 소수 화소 병합 모드 후보를 적어도 하나의 정수 화소 병합 모드 후보로 조정하는 단계와 상기 부호화기가 상기 적어도 하나의 소수 화소 병합 모드 후보의 조정을 기반으로 결정된 조정된 소수 화소 병합 모드 후보 집합 및 조정된 정수 화소 병합 모드 후보 집합을 기반으로 상기 예측 대상 블록에 대한 상기 인터 예측을 수행하는 단계를 포함할 수 있다.
한편, 상기 복수개의 병합 모드 후보는 상기 예측 대상 블록의 상기 인터 예측을 위한 움직임 정보를 유도하기 위한 상기 예측 대상 블록에 대한 공간적 움직임 벡터 예측 후보, 시간적 움직임 예측 후보 및 상기 공간적 움직임 벡터 예측 후보 및 시간적 움직임 예측 후보의 조합으로 결정되는 추가 움직임 벡터 예측 후보 중 5개의 예측 후보이고, 상기 소수 화소 병합 모드 후보는 상기 5개의 예측 후보 중 보간 필터를 기반으로 생성된 소수 화소 단위로 예측된 소수 화소 움직임 벡터를 가지는 예측 단위이고, 상기 정수 화소 병합 모드 후보는 상기 5개의 예측 후보 중 정수 화소 단위로 예측된 정수 화소 움직임 벡터를 가지는 예측 단위일 수 있다.
또한, 상기 적어도 하나의 소수 화소 병합 모드 후보의 상기 적어도 하나의 정수 화소 병합 모드 후보로의 조정은 상기 소수 화소 병합 모드 후보의 개수가 상기 정수 화소 병합 모드 후보의 개수보다 큰 경우 수행될 수 있다.
또한, 상기 적어도 하나의 소수 화소 병합 모드 후보의 상기 적어도 하나의 정수 화소 병합 모드 후보로의 조정은 상기 소수 화소 병합 모드 후보의 개수가 설정된 개수 이상인 경우 수행되고, 상기 설정된 개수는 상기 부호화기에서 필요한 영상 부호화 속도에 따라 적응적으로 설정될 수 있다.
또한, 상기 적어도 하나의 소수 화소 병합 모드 후보의 조정은 상기 소수 화소 단위와 인접한 정수 화소 단위를 기반으로 상기 소수 화소 움직임 벡터를 상기 인접한 정수 화소 단위를 기반으로 한 상기 정수 화소 움직임 벡터로의 조정일 수 있다.
본 발명의 다른 측면에 따른 병합 모드를 기반으로 한 영상 부호화 장치는 예측 대상 블록에 대한 인터 예측을 위해 복수개의 병합 모드 후보를 결정하고, 상기 복수개의 병합 모드 후보의 움직임 정보를 기반으로 상기 복수개의 병합 모드 후보를 소수 화소 병합 모드 후보를 포함하는 소수 화소 병합 모드 후보 집합 및 정수 화소 병합 모드 후보를 포함하는 정수 화소 병합 모드 후보 집합으로 분류하도록 구현되는 움직임 정보 분석기, 상기 부호화기가 상기 소수 화소 병합 모드 후보의 개수에 대한 정보 및/또는 상기 정수 화소 병합 모드 후보의 개수에 대한 정보를 기반으로 상기 소수 화소 병합 모드 후보 중 적어도 하나의 소수 화소 병합 모드 후보를 적어도 하나의 정수 화소 병합 모드 후보로 조정하도록 구현되는 움직임 정보 조정기, 상기 부호화기가 상기 적어도 하나의 소수 화소 병합 모드 후보의 조정을 기반으로 결정된 조정된 소수 화소 병합 모드 후보 집합 및 조정된 정수 화소 병합 모드 후보 집합을 기반으로 상기 예측 대상 블록에 대한 상기 인터 예측을 수행하도록 구현되는 소수 움직임 보상기 및 정수 움직임 보상기를 포함할 수 있다.
한편, 상기 복수개의 병합 모드 후보는 상기 예측 대상 블록의 상기 인터 예측을 위한 움직임 정보를 유도하기 위한 상기 예측 대상 블록에 대한 공간적 움직임 벡터 예측 후보, 시간적 움직임 예측 후보 및 상기 공간적 움직임 벡터 예측 후보 및 시간적 움직임 예측 후보의 조합으로 결정되는 추가 움직임 벡터 예측 후보 중 5개의 예측 후보이고, 상기 소수 화소 병합 모드 후보는 상기 5개의 예측 후보 중 보간 필터를 기반으로 생성된 소수 화소 단위로 예측된 소수 화소 움직임 벡터를 가지는 예측 단위이고, 상기 정수 화소 병합 모드 후보는 상기 5개의 예측 후보 중 정수 화소 단위로 예측된 정수 화소 움직임 벡터를 가지는 예측 단위일 수 있다.
또한, 상기 적어도 하나의 소수 화소 병합 모드 후보의 상기 적어도 하나의 정수 화소 병합 모드 후보로의 조정은 상기 소수 화소 병합 모드 후보의 개수가 상기 정수 화소 병합 모드 후보의 개수보다 큰 경우 수행될 수 있다.
또한, 상기 적어도 하나의 소수 화소 병합 모드 후보의 상기 적어도 하나의 정수 화소 병합 모드 후보로의 조정은 상기 소수 화소 병합 모드 후보의 개수가 설정된 개수 이상인 경우 수행되고, 상기 설정된 개수는 상기 부호화기에서 필요한 영상 부호화 속도에 따라 적응적으로 설정될 수 있다.
또한, 상기 적어도 하나의 소수 화소 병합 모드 후보의 조정은 상기 소수 화소 단위와 인접한 정수 화소 단위를 기반으로 상기 소수 화소 움직임 벡터를 상기 인접한 정수 화소 단위를 기반으로 한 상기 정수 화소 움직임 벡터로의 조정일 수 있다.
본 발명의 실시예에 따른 병합 모드를 기반으로 한 영상 부호화 방법 및 장치는 병합 모드 부호화 과정을 개선하여, 부호화에 걸리는 시간의 최대값을 대폭 감소 시켰다. 부호화에 필요한 최장 시간을 감소시킴으로써, 가장 긴 동작 시간이 필요한 경우에 맞추어 설계되는 하드웨어 비용을 감소시킬 수 있다. 부호화에 필요한 최장 시간을 감소시켰으므로, 수행 시간의 변화량 또한 감소하기 때문에, 감소된 하드웨어의 유휴시간 비율도 크게 감소하여 종래 병합모드 부호화기보다 하드웨어 동작 효율이 크게 향상될 수 있다.
첨부된 도면은 해당 기술 분야의 통상의 기술자에게 본 발명의 내용을 보다 상세하게 설명하기 위한 것으로 본 발명의 사상이 이에 한정되는 것은 아니다.
도 1은 본 발명의 실시예에 따른 비디오 인코딩 장치를 나타낸 개념도이다.
도 2는 본 발명의 일 실시예에 따른 비디오 디코딩 장치를 나타낸 개념도이다.
도 3은 인터 예측 방법을 위한 움직임 벡터 예측 후보를 나타낸 개념도이다.
도 4는 본 발명의 실시예에 따른 하드웨어 기반의 병합 모드 부호화 방법을 나타낸 개념도이다.
도 5는 본 발명의 실시예에 따른 하드웨어 기반의 병합 모드 부호화 방법을 나타낸 순서도이다.
도 6은 본 발명의 실시예에 따른 조정된 소수 화소 병합 모드 후보 및 조정된 정수 화소 병합 모드 후보의 결정 방법을 나타낸 개념도이다.
도 7은 본 발명의 실시예에 따른 소수 화소 병합 모드 후보의 정수 화소 병합 모드 후보로의 조정 방법을 나타낸 개념도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 통상의 기술자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예와 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조 부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 비디오 인코딩 장치를 나타낸 개념도이다.
도 1을 참조하면, 인코딩 장치(또는 부호화기)(100)는 픽처 분할부(105), 예측부(110), 변환부(115), 양자화부(120), 재정렬부(125), 엔트로피 인코딩부(130), 역양자화부(135), 역변환부(140), 필터부(145) 및 메모리(150)를 구비한다.
픽처 분할부(105)는 입력된 픽처를 적어도 하나의 처리 단위 블록으로 분할할 수 있다. 이때, 처리 단위로서의 블록은 예측 유닛(Prediction Unit, 이하 PU라 함)일 수도 있고, 변환 유닛(Transform Unit, 이하, TU라 함)일 수도 있으며, 코딩 유닛(Coding Unit, 이하 CU라 함)일 수도 있다.
픽처 분할부(105)에서 분할되는 처리 단위 블록들은 쿼드 트리(quad-tree) 구조를 가질 수 있다.
예측부(110)는 후술하는 바와 같이, 인터 예측을 수행하는 인터 예측부와 인트라 예측을 수행하는 인트라 예측부를 포함한다. 예측부(110)는, 픽처 분할부(105)에서 픽처의 처리 단위에 대하여 예측을 수행하여 예측 블록을 생성한다. 예측부(110)에서 픽처의 처리 단위는 CU일 수도 있고, TU일 수도 있고, PU일 수도 있다. 또한, 예측부(110)는 해당 처리 단위에 대하여 실시되는 예측이 인터 예측인지 인트라 예측인지를 결정하고, 각 예측 방법의 구체적인 내용(예컨대, 예측 모드 등)을 정할 수 있다. 이때, 예측이 수행되는 처리 단위와 예측 방법 및 예측 방법의 구체적인 내용이 정해지는 처리 단위는 다를 수 있다. 예컨대, 예측의 방법과 예측 모드 등은 PU 단위로 결정되고, 예측의 수행은 TU 단위로 수행될 수도 있다.
인터 예측을 통해서는 현재 픽처의 이전 픽처 및/또는 이후 픽처 중 적어도 하나의 픽처의 정보를 기초로 예측을 수행하여 예측 블록을 생성할 수 있다. 또한, 인트라 예측을 통해서는 현재 픽처 내의 픽셀 정보를 기초로 예측을 수행하여 예측 블록을 생성할 수 있다.
인터 예측의 방법으로서, 스킵(skip) 모드, 머지(merge) 모드(또는 병합 모드), MVP(Motion Vector Prediction) 등을 이용할 수 있다. 인터 예측에서는 PU에 대하여, 참조 픽처를 선택하고 PU에 대응하는 참조 블록을 선택할 수 있다. 참조 블록은 정수 픽셀 단위로 선택될 수 있다. 이어서, 현재 PU와의 레지듀얼(residual) 신호가 최소화되며 움직임 벡터 크기 역시 최소가 되는 예측 블록이 생성된다.
예측 블록은 정수 샘플 단위로 생성될 수도 있고, 1/2 픽셀 단위 또는 1/4 픽셀 단위와 같이 정수 이하 픽셀 단위로 생성될 수도 있다. 이때, 움직임 벡터 역시 정수 픽셀 이하의 단위로 표현될 수 있다.
인터 예측을 통해 선택된 참조 픽처의 인덱스, 움직임 벡터(ex. Motion Vector Predictor), 레지듀얼 신호 등의 정보는 엔트로피 인코딩되어 디코딩 장치에 전달된다. 스킵 모드가 적용되는 경우에는 예측 블록을 복원 블록으로 할 수 있으므로, 레지듀얼을 생성, 변환, 양자화, 전송하지 않을 수 있다.
인트라 예측을 수행하는 경우에는, PU 단위로 예측 모드가 정해져서 PU 단위로 예측이 수행될 수 있다. 또한, PU 단위로 예측 모드가 정해지고 TU 단위로 인트라 예측이 수행될 수도 있다.
인트라 예측에서 예측 모드는 33개의 방향성 예측 모드와 적어도 2개 이상의 비방향성 모드를 가질 수 있다. 비향성성 모드는 DC 예측 모드 및 플래이너 모드(Planar 모드)을 포함할 수 있다.
인트라 예측에서는 참조 샘플에 필터를 적용한 후 예측 블록을 생성할 수 있다. 이때, 참조 샘플에 필터를 적용할 것인지는 현재 블록의 인트라 예측 모드 및/또는 사이즈에 따라 결정될 수 있다.
PU는 다양한 사이즈/형태의 블록일 수 있으며, 예컨대 인터 예측의 경우에 PU는 2N?2N 블록, 2N?N 블록, N?2N 블록, 또는 N?N 블록 (N은 정수) 등일 수 있다. 인트라 예측의 경우에 PU는 2N?2N 블록 또는 N?N 블록 (N은 정수) 등일 수 있다. 이때, N?N 블록 크기의 PU는 특정한 경우에만 적용하도록 설정할 수 있다. 예컨대 최소 크기 CU에 대해서만 NxN 블록 크기의 PU를 이용하도록 정하거나 인트라 예측에 대해서만 이용하도록 정할 수도 있다. 또한, 상술한 크기의 PU 외에, N?mN 블록, mN?N 블록, 2N?mN 블록 또는 mN?2N 블록 (m<1) 등의 PU를 더 정의하여 사용할 수도 있다.
생성된 예측 블록과 원본 블록 사이의 레지듀얼 값(레지듀얼 블록 또는 레지듀얼 신호)은 변환부(115)로 입력된다. 또한, 예측을 위해 사용한 예측 모드 정보, 움직임 벡터 정보 등은 레지듀얼 값과 함께 엔트로피 인코딩부(130)에서 인코딩되어 디코딩 장치에 전달된다.
변환부(115)는 변환 블록 단위로 레지듀얼 블록에 대한 변환을 수행하고 변환 계수를 생성한다.
변환 블록은 샘플들의 직사각형 블록으로서 동일한 변환이 적용되는 블록이다. 변환 블록은 변환 유닛(TU)일 수 있으며, 쿼드 트리(quad tree) 구조를 가질 수 있다.
변환부(115)는 레지듀얼 블록에 적용된 예측 모드와 블록의 크기에 따라서 변환을 수행할 수 있다.
예컨대, 레지듀얼 블록에 인트라 예측이 적용되었고 블록이 4x4의 레지듀얼 배열이라면, 레지듀얼 블록을 DST(Discrete Sine Transform)를 이용하여 변환하고, 그 외의 경우라면 레지듀얼 블록을 DCT(Discrete Cosine Transform)를 이용하여 변환할 수 있다.
변환부(115)는 변환에 의해 변환 계수들의 변환 블록을 생성할 수 있다.
양자화부(120)는 변환부(115)에서 변환된 레지듀얼 값들, 즉 변환 계수들을 양자화하여 양자화된 변환 계수를 생성할 수 있다. 양자화부(120)에서 산출된 값은 역양자화부(135)와 재정렬부(125)에 제공된다.
재정렬부(125)는 양자화부(120)로부터 제공된 양자화된 변환 계수를 재정렬한다. 양자화된 변환 계수를 재정렬함으로써 엔트로피 인코딩부(130)에서의 인코딩 효율을 높일 수 있다.
재정렬부(125)는 계수 스캐닝(Coefficient Scanning) 방법을 통해 2차원 블록 형태의 양자화된 변환 계수들을 1차원의 벡터 형태로 재정렬할 수 있다.
엔트로피 인코딩부(130)는 재정렬부(125)에 의해 재정렬된 양자화된 변환 계수들에 대한 엔트로피 인코딩을 수행할 수 있다. 엔트로피 인코딩에는 예를 들어, 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding) 등과 같은 인코딩 방법을 사용할 수 있다. 엔트로피 인코딩부(130)는 재정렬부(125) 및 예측부(110)로부터 전달받은 CU의 양자화된 변환 계수 정보 및 블록 타입 정보, 예측 모드 정보, 분할 단위 정보, PU 정보 및 전송 단위 정보, 움직임 벡터 정보, 참조 픽처 정보, 블록의 보간 정보, 필터링 정보 등 다양한 정보를 인코딩할 수 있다.
또한, 엔트로피 인코딩부(130)는 필요한 경우에, 전송하는 파라미터 셋(parameter set) 또는 신택스에 일정한 변경을 가할 수도 있다.
역양자화부(135)는 양자화부(120)에서 양자화된 값(양자화된 변환 계수)들을 역양자화하고, 역변환부(140)는 역양자화부(135)에서 역양자화된 값들을 역변환한다.
역양자화부(135) 및 역변환부(140)에서 생성된 레지듀얼 값과 예측부(110)에서 예측된 예측 블록이 합쳐져 복원 블록(Reconstructed Block)이 생성될 수 있다.
도 1에서는 가산기를 통해서, 레지듀얼 블록과 예측 블록이 합쳐져 복원 블록이 생성되는 것으로 설명하고 있다. 이때, 가산기를 복원 블록을 생성하는 별도의 유닛(복원 블록 생성부)로 볼 수도 있다.
필터부(145)는 디블록킹 필터, ALF(Adaptive Loop Filter), SAO(Sample Adaptive Offset)를 복원된 픽처에 적용할 수 있다.
디블록킹 필터는 복원된 픽처에서 블록 간의 경계에 생긴 왜곡을 제거할 수 있다. ALF(Adaptive Loop Filter)는 디블록킹 필터를 통해 블록이 필터링된 후 복원된 영상과 원래의 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. ALF는 고효율을 적용하는 경우에만 수행될 수도 있다. SAO는 디블록킹 필터가 적용된 레지듀얼 블록에 대하여, 픽셀 단위로 원본 영상과의 오프셋 차이를 복원하며, 밴드 오프셋(Band Offset), 에지 오프셋(Edge Offset) 등의 형태로 적용된다.
한편, 인터 예측에 사용되는 복원 블록에 대해서 필터부(145)는 필터링을 적용하지 않을 수도 있다.
메모리(150)는 필터부(145)를 통해 산출된 복원 블록 또는 픽처를 저장할 수 있다. 메모리(150)에 저장된 복원 블록 또는 픽처는 인터 예측을 수행하는 예측부(110)에 제공될 수 있다.
도 2는 본 발명의 일 실시예에 따른 비디오 디코딩 장치를 나타낸 개념도이다.
도 2를 참조하면, 비디오 디코딩 장치(또는 복호화기)(200)는 엔트로피 디코딩부(210), 재정렬부(215), 역양자화부(220), 역변환부(225), 예측부(230), 필터부(235) 메모리(240)를 포함할 수 있다.
비디오 인코딩 장치에서 영상 비트스트림이 입력된 경우, 입력된 비트스트림은 비디오 인코딩 장치에서 영상 정보가 처리된 절차에 따라서 디코딩될 수 있다.
예컨대, 비디오 인코딩 장치에서 엔트로피 인코딩을 수행하기 위해 CAVLC 등의 가변 길이 부호화(Variable Length Coding: VLC, 이하, VLC 라 함)가 사용된 경우에, 엔트로피 디코딩부(210)도 인코딩 장치에서 사용한 VLC 테이블과 동일한 VLC 테이블로 구현하여 엔트로피 디코딩을 수행할 수 있다. 또한, 비디오 인코딩 장치에서 엔트로피 인코딩을 수행하기 위해 CABAC을 이용한 경우에, 엔트로피 디코딩부(210)는 이에 대응하여 CABAC을 이용한 엔트로피 디코딩을 수행할 수 있다.
엔트로피 디코딩부(210)에서 디코딩된 정보 중 예측 블록을 생성하기 위한 정보는 예측부(230)로 제공되고, 엔트로피 디코딩부(210)에서 엔트로피 디코딩이 수행된 레지듀얼 값, 즉 양자화된 변환 계수는 재정렬부(215)로 입력될 수 있다.
재정렬부(215)는 엔트로피 디코딩부(210)에서 엔트로피 디코딩된 비트스트림의 정보, 즉 양자화된 변환 계수를 인코딩 장치에서 재정렬한 방법을 기초로 재정렬할 수 있다.
재정렬부(215)는 1차원 벡터 형태로 표현된 계수들을 다시 2차원의 블록 형태의 계수로 복원하여 재정렬할 수 있다. 재정렬부(215)는 현재 블록(변환 블록)에 적용된 예측 모드와 변환 블록의 크기를 기반으로 계수에 대한 스캐닝을 수행하여 2 차원 블록 형태의 계수(양자화된 변환 계수) 배열을 생성할 수 있다.
역양자화부(220)는 인코딩 장치에서 제공된 양자화 파라미터와 재정렬된 블록의 계수값을 기초로 역양자화를 수행할 수 있다.
역변환부(225)는 비디오 인코딩 장치에서 수행된 양자화 결과에 대해, 인코딩 장치의 변환부가 수행한 DCT 및 DST에 대해 역DCT 및/또는 역DST를 수행할 수 있다.
역변환은 인코딩 장치에서 결정된 전송 단위 또는 영상의 분할 단위를 기초로 수행될 수 있다. 인코딩 장치의 변환부에서 DCT 및/또는 DST는 예측 방법, 현재 블록의 크기 및 예측 방향 등 복수의 정보에 따라 선택적으로 수행될 수 있고, 디코딩 장치의 역변환부(225)는 인코딩 장치의 변환부에서 수행된 변환 정보를 기초로 역변환을 수행할 수 있다.
예측부(230)는 엔트로피 디코딩부(210)에서 제공된 예측 블록 생성 관련 정보와 메모리(240)에서 제공된 이전에 디코딩된 블록 및/또는 픽처 정보를 기초로 예측 블록을 생성할 수 있다.
현재 PU에 대한 예측 모드가 인트라 예측(intra prediction) 모드인 경우에, 현재 픽처 내의 픽셀 정보를 기초로 예측 블록을 생성하는 인트라 예측을 수행할 수 있다.
현재 PU에 대한 예측 모드가 인터 예측(inter prediction) 모드인 경우에, 현재 픽처의 이전 픽처 또는 이후 픽처 중 적어도 하나의 픽처에 포함된 정보를 기초로 현재 PU에 대한 인터 예측을 수행할 수 있다. 이때, 비디오 인코딩 장치에서 제공된 현재 PU의 인터 예측에 필요한 움직임 정보, 예컨대 움직임 벡터, 참조 픽처 인덱스 등에 관한 정보는 인코딩 장치로부터 수신한 스킵 플래그, 머지 플래그 등을 확인하고 이에 대응하여 유도될 수 있다.
복원 블록은 예측부(230)에서 생성된 예측 블록과 역변환부(225)에서 제공된 레지듀얼 블록을 이용해 생성될 수 있다. 도 2에서는 가산기에서 예측 블록과 레지듀얼 블록이 합쳐져 복원 블록이 생성되는 것으로 설명하고 있다. 이때, 가산기를 복원 블록을 생성하는 별도의 유닛(복원 블록 생성부)로 볼 수 있다.
스킵 모드가 적용되는 경우에는 레지듀얼이 전송되지 않으며 예측 블록을 복원 블록으로 할 수 있다.
복원된 블록 및/또는 픽처는 필터부(235)로 제공될 수 있다. 필터부(235)는 복원된 블록 및/또는 픽처에 디블록킹 필터링, SAO(Sample Adaptive Offset) 및/또는 ALF 등을 적용할 수 있다.
메모리(240)는 복원된 픽처 또는 블록을 저장하여 참조 픽처 또는 참조 블록으로 사용할 수 있도록 할 수 있고 또한 복원된 픽처를 출력부로 제공할 수 있다.
디코딩 장치(200)에 포함되어 있는 엔트로피 디코딩부(210), 재정렬부(215), 역양자화부(220), 역변환부(225), 예측부(230), 필터부(235) 및 메모리(240) 중 영상의 디코딩에 직접적으로 관련된 구성요소들, 예컨대, 엔트로피 디코딩부(210), 재정렬부(215), 역양자화부(220), 역변환부(225), 예측부(230), 필터부(235) 등을 다른 구성요소와 구분하여 디코더 또는 디코딩부로 표현할 수 있다.
또한, 디코딩 장치(200)는 비트스트림에 포함되어 있는 인코딩된 영상에 관련된 정보를 파싱하는 도시하지 않은 파싱부를 더 포함할 수 있다. 파싱부는 엔트로피 디코딩부(210)를 포함할 수도 있고, 엔트로피 디코딩부(210)에 포함될 수도 있다. 이러한 파싱부는 또한 디코딩부의 하나의 구성요소로 구현될 수도 있다.
HEVC의 인터 예측에는 전술한 바와 같이 AMVP(advanced motion vector prediction), 병합(merge) 모드(또는 머지 모드)와 DCT-IF(discrete cosine transform based interpolation filter)가 사용될 수 있다. AMVP는 KTA에 제안된 MVC(motion vector competition)처럼 복수개의 MVP 후보를 사용하여, 주변 움직임 벡터의 중간 값을 사용하던 H.264/AVC에 비해 MVD (motion vector difference)를 효과적으로 줄일 수 있는 기법이다. 병합 모드는 주변 블록의 움직임 정보(예를 들어, 참조 픽쳐 정보, 움직임 벡터 정보 등)을 그대로 사용하는 대신, 주변 블록과의 병합 유무에 대한 플래그와 병합 후보의 인덱스를 부호화하는 기술이다. 병합 기술의 추가에 따라, 기존 비디오 코덱에서 사용하던 스킵 모드 대신, CU 단위로 플래그를 직접 명시해주는 방법을 사용하여 스킵 모드 부호화가 수행될 수 있다. AMVP와 병합 모드는 예측 후보의 인덱스를 부호화한다는 공통점이 있으나, AMVP의 경우 2개의 후보, 병합 모드는 최대 5개의 후보를 가진다는 점과 후보 선택 과정에 있어 차이가 있다. AMVP, 병합 모드와 같은 예측 후보 결정 기술과 더불어 움직임 예측 및 보상의 정밀도를 높이기 위한 보간 필터에도 DCT-IF가 새롭게 채택되었다. H.264/AVC에서는 고정 6-tap 필터를 사용하였으나, HEVC에서는 휘도 성분에서는 8-tap (7-tap) DCT-IF, 색차 성분에서는 4-tap DCT-IF를 사용한다. DCT-IF란, DCT 과정에서 분수 화소 성분의 위치 값을 복원하는 계수를 구할 수 있으며, 이 계수 값들을 이용하여 보간을 수행하는 기술이다. H.264/AVC에서 1/4화소를 보간 함에 있어 1/2화소를 이용하여 양선형 (bi-linear) 필터를 적용하는 방식과 달리, HEVC에서는 1/4화소에 대한 직접 필터 연산을 수행한다. 또한, 필터 계수의 개수가 증가하여 보다 정확한 보간은 가능해졌으나, 이에 따른 계산 복잡도의 증가는 실시간 부호화에 있어 큰 문제점으로 지적되고 있다. 아래의 표 1은 HEVC DCT-IF의 필터 계수를 나타낸다.
<표 1>
Figure 112015123352983-pat00001

이하, 구체적인 인터 예측 방법이 개시된다.
도 3은 인터 예측 방법을 위한 움직임 벡터 예측 후보를 나타낸 개념도이다.
H.264/AVC에서는 주변 블록들의 움직임 벡터들의 중간값(median)을 이용해 하나의 움직임 벡터 예측값을 생성하고, 실제 움직임 벡터와 이 예측값의 차를 부호화한다. HEVC에서는 다양한 움직임 벡터 예측값들을 경쟁시켜 현재 움직임 벡터와 최소의 차이를 갖는 움직임 벡터 예측값을 이용하는 AMVP 기술을 사용한다. AMVP는 두개의 움직임 벡터 예측 후보를 사용한다.
먼저 두 개의 공간적 움직임 벡터 예측 후보를 탐색한 후, 그 중 하나 이상의 후보를 사용할 수 없거나 두 개의 후보가 중복되는 경우, 하나의 시간적 움직임 예측 후보를 탐색한다.
도 3에서는 공간적 움직임 벡터 예측 후보 및 시간적 움직임 벡터 예측 후보들을 보여준다. 공간적 움직임 벡터 예측 후보 및 시간적 움직임 벡터 예측 후보들의 위치는 PU의 픽셀을 기준으로 결정될 수 있다. AMVP의 공간적 움직임 벡터 예측 후보는 {A0(300), A1(310)} 중에서 하나의 후보를, {B0(350), B1(360), B2(370)} 중에서 하나의 후보를 선정한다. 만약 해당 블록이 현재 슬라이스를 벗어나거나 화면 내 부호화된 블록일 경우에는 후보가 될 수 없다.
시간적 후보로는 참조 화면의 collocated PU의 오른쪽 대각선 아래에 있는 T1 블록을 사용할 수 있다. 이 블록이 사용 가능하지 않을 경우, collocated PU의 중간에 있는 T2 블록을 사용한다. 현재 움직임 벡터와 예측 움직임 벡터의 차이가 0인 경우 병합 모드를 기반으로 한 인터 예측이 수행될 수 있다. 병합 모드는 현재 PU에 대한 움직임 정보를 복호기로 전송하지 않고, 공간적 또는 시간상으로 인접한 블록들로부터 산출하는 기술이다. 병합 모드가 사용되는 경우, 병합 모드의 사용 여부를 알리는 플래그와 어떠한 움직임 벡터 예측 후보가 사용되었는지를 알리는 인덱스 정보가 전송된다. 병합 모드가 사용되는 경우, AMVP의 경우보다 전송해야 하는 비트량이 감소하므로 부호화 성능이 향상된다. 병합 모드에서의 공간적 움직임 벡터 예측 후보 탐색 순서는 {A1(310), B1(360), B0(350), A0(300), B2(370)}이다. 시간적 움직임 벡터 예측 후보 탐색 방법은 AMVP의 경우와 동일하다.
병합 모드에서는 움직임 정보가 동일한 서로 이웃한 블록들을 병합하여 하나의 움직임 정보를 공유하여 사용하도록 함으로써 동일한 움직임 정보를 여러 번 부호화 하지 않을 수 있다. 병합 모드는 최대 다섯 개의 병합 모드 후보를 가질 수 있으며 각 후보는 부호화 하고자 하는 블록에 인접한 다른 블록들의 움직임 정보로 구성될 수 있다. 병합 모드로 인터 예측을 수행하는 부호화기가 다섯 개의 병합 모드 후보 중 가장 최적의 병합 모드 후보를 선택해야 한다. 예를 들어, 다섯 개의 병합 모드 후보는 4개의 공간적 움직임 벡터 예측 후보와 1개의 시간적 움직임 예측 후보로 구성될 수 있다. 또는 공간적 움직임 벡터 예측 후보와 시간적 움직임 예측 후보로도 다섯 개의 후보가 구성되지 않는 경우, 공간적 움직임 벡터 예측 후보와 시간적 움직임 예측 후보의 조합으로 결정되는 추가 움직임 벡터 예측 후보가 더 포함되어 다섯 개의 병합 모드 후보가 결정될 수 있다.
최적의 후보를 선택하기 위해서는 전술한 다섯 개의 병합 모드 후보에 대해 율-왜곡 비용을 계산하고 가장 적은 율-왜곡 비율을 갖는 후보를 선택해야 한다. 이 때 율-왜곡 비용을 구하기 위해서는 다섯 개의 병합 모드 후보가 갖는 움직임 정보로 움직임 보상을 수행하여 각각의 왜곡을 구해야 한다. HEVC에서 움직임 보상을 수행할 때에는 움직임 벡터에 따라 다른 방법이 사용된다. 정수 화소 단위의 움직임 벡터인 경우 움직임 벡터가 가리키는 참조 화면의 화소를 그대로 사용하여 움직임 보상을 수행한다. 그러나 소수 화소 단위의 움직임 벡터인 경우 움직임 벡터가 가리키는 참조 화면의 정수 화소를 사용하여 소수 화소를 만들어내는 보간 필터를 적용한 후 움직임 보상을 수행한다.
5개의 병합 모드 후보 중 최적의 후보를 선택하기 위해 기존의 영상 부호화 방법에서는 다섯 개의 병합 모드 후보에 대해 움직임 보상을 수행하고 왜곡을 계산하여 최적의 율-왜곡 비용을 갖는 병합 모드 후보를 선택하는 방법을 사용했다. 움직임 보상을 수행시 정수 화소를 기반으로 결정된 움직임 벡터(이하, 정수 화소 단위 움직임 벡터)인 경우, 보간 필터를 사용하지 않으며 소수 화소를 기반으로 결정된 움직임 벡터(소수 화소 단위 움직임 벡터)인 경우, 표 1에서 개시된 바와 같은 보간 필터가 사용되어 소수 단위의 화소를 생성한 후 움직임 예측이 수행될 수 있다.
따라서, 기존의 영상 부호화 방법이 사용되는 경우, 다섯 개의 병합 모드 후보 중 소수 화소 단위 움직임 벡터를 갖는 후보의 수에 따라 보간 필터의 사용 횟수가 변화할 수 있다. 보간 필터는 7개 또는 8개의 탭을 갖는 유한 임펄스 응답 필터로 병합 모드 부호화 과정에서 가장 높은 계산 복잡도를 갖는다. 따라서, 소수 화소 단위의 움직임 벡터를 갖는 병합 모드 후보의 수에 따라서 병합 모드 부호화 과정의 전체 계산 복잡도 또한 변화하게 된다. 그러므로 병합 모드 부호화기가 병합 모드 부호화를 수행할 때 필요한 시간은 소수 화소 단위 움직임 벡터를 갖는 병합 모드 후보의 수에 따라 증감한다.
만일 주어진 일정한 시간 이내에 최적 병합 모드를 결정해야 하는 실시간 부호화기의 경우 이러한 동작 시간의 변화는 허용될 수 없다. 적어도 가장 긴 동작 시간이 필요한 경우에도 병합 모드로 인터 예측을 수행하는 부호화기는 요구되는 수행 속도보다 언제나 빠른 부호화 성능을 가져야 한다. 특히, 하드웨어 기반의 부호화기의 경우 가장 긴 동작 시간을 기준으로 하여 요구되는 수행 속도보다 언제나 빠른 하드웨어를 설계하면 하드웨어의 사용률이 떨어지는 치명적인 단점이 있다. 즉, 가장 긴 동작 시간이 필요한 경우의 발생 빈도가 낮음에도 불구하고 하드웨어 기반의 부호화기는 가장 긴 동작 시간에 맞추어 설계 되기 때문에, 대부분의 시간 동안 하드웨어는 사용되지 못하고 유휴 상태에 머무르게 된다. 따라서, 기존의 영상 부호화 방법으로 구현된 하드웨어 부호화기는 하드웨어 비용이 높을 뿐만 아니라, 부호화 동작시 사용된 하드웨어를 제대로 활용하지 못하는 문제를 가질 수 있다.
따라서, 본 발명의 실시예에 따른 병합 모드를 기반으로 한 영상 부호화 방법에서는 하드웨어 기반의 HEVC 부호화기가 최적의 병합 모드를 찾는데 필요한 연산을 대폭 감소시킴과 동시에 불규칙한 연산량의 변화를 줄여 하드웨어의 효율적인 사용이 가능하도록 하기 위한 방법이 개시된다. 이하, 병합 모드를 기반으로 한 인터 예측을 위한 5개의 공간적 움직임 벡터 예측 후보를 병합 모드 후보라는 용어로 표현한다.
도 4는 본 발명의 실시예에 따른 하드웨어 기반의 병합 모드 부호화 방법을 나타낸 개념도이다.
도 4에서는 계산 복잡도를 감소시키기 위한 5개의 병합 모드 후보를 기반으로 한 화면 간 예측 방법이 개시된다.
도 4를 참조하면, 병합 모드 후보를 생성하는 부호화기의 병합 모드 후보 생성기(400)는 도 3에서 전술한 바와 같이 공간적 움직임 벡터 예측 후보 및 시간적 움직임 벡터 예측 후보, 추가 움직임 벡터 예측 후보를 기반으로 다섯 개의 병합 모드 후보를 결정(또는 생성)할 수 있다.
구체적으로 공간적 움직임 벡터 예측 후보는 위치는 아래와 같이 결정될 수 있다.
예측 대상 블록의 최좌측 최상단에 위치한 픽셀의 위치가 (xPb, yPb)이고, 예측 대상 블록의 높이는 PbH이고, 예측 대상 블록의 너비는 PbW인 경우 다섯 개의 공간적 움직임 벡터 예측 후보는 아래와 같을 수 있다.
(1) 공간적 움직임 벡터 예측 후보 A0은 최우측 최상단에 위치한 픽셀이 (xPb-1, yPb+nPbH)인 블록일 수 있다.
(2) 공간적 움직임 벡터 예측 후보 A1은 최우측 최하단에 위치한 픽셀이 (xPb-1, yPb+nPbH-1)인 블록일 수 있다.
(3) 공간적 움직임 벡터 예측 후보 B0은 최좌측 최하단에 위치한 픽셀은 (xPb+nPbW, yPb-1)인 블록일 수 있다.
(4) 공간적 움직임 벡터 예측 후보 B1은 최우측 최하단에 위치한 픽셀은 (xPb+nPbW-1, yPb-1)인 블록일 수 있다.
(5) 공간적 움직임 벡터 예측 후보 B2는 최우측 최하단에 위치한 픽셀은 (xPb-1, yPb-1)인 블록일 수 있다.
부호화기의 움직임 정보 분석기(410)는 병합 모드 후보 생성기(400)에 의해 생성된 다섯개 병합 모드 후보의 움직임 정보를 분석할 수 있다. 부호화기의 움직임 정보 분석기(410)는 다섯개 병합 모드 후보를 소수 화소 움직임 벡터를 기반으로 예측된 소수 화소 병합 모드 후보와 정수 화소 움직임 벡터를 기반으로 예측된 정수 화소 병합 모드 후보로 분류하고, 소수 화소 병합 모드 후보의 개수와 정수 화소 병합 모드 후보의 개수를 결정할 수 있다. 소수 화소 병합 모드 후보를 포함하는 집합은 소수 화소 병합 모드 후보 집합, 정수 화소 병합 모드 후보를 포함하는 집합은 정수 화소 병합 모드 후보 집합이라는 용어로 표현될 수 있다.
만약, 소수 화소 병합 모드 후보의 개수가 정수 화소 병합 모드 후보의 개수보다 많은 경우(또는 소수 화소 병합 모드 후보의 개수가 설정된 개수보다 큰 경우), 움직임 정보 조정기(420)는 전체 소수 화소 병합 모드 후보 중 적어도 하나의 소수 화소 병합 모드 후보를 정수 화소 움직임 벡터를 갖는 정수 화소 병합 모드 후보로 조정할 수 있다.
예를 들어, 병합 모드 후보 1, 병합 모드 후보 2, 병합 모드 후보 3이 소수 화소 병합 모드 후보이고, 병합 모드 후보 4, 병합 모드 후보 5가 정수 화소 병합 모드 후보일 수 있다. 이러한 경우, 소수 화소 병합 모드 후보인 병합 모드 후보 1, 병합 모드 후보 2, 병합 모드 후보 3 중 적어도 하나의 병합 모드 후보가 정수 화소 병합 모드 후보로 전환될 수 있다. 병합 모드 후보3이 정수 화소 병합 모드 후보로 조정되는 경우, 1/2 부화소(또는 소수 화소) 또는 1/4 부화소를 기반으로 생성된 병합 모드 후보 3의 소수 화소 움직임 벡터가 정수 화소를 기반으로 생성된 정수 화소 움직임 벡터로 조정될 수 있다.
소수 화소 병합 모드 후보의 소수 화소 움직임 벡터가 정수 화소 움직임 벡터로 조정되는 경우, 소수 화소 움직임 벡터를 갖는 소수 화소 병합 모드 후보의 개수가 감소될 수 있다. 따라서, 보간 필터를 사용하여 병합 모드 부호화를 수행하는 소수 화소 병합 모두 후보의 개수가 감소하고 계산 복잡도가 큰 폭으로 감소할 수 있다.
위와 같은 적어도 하나의 소수 화소 병합 모드 후보의 정수 화소 병합 모드 후보로의 조정 이후 병합 모드로 부호화를 수행하기 위한 병합 모드 후보로 조정된 소수 화소 병합 모드 후보 및 조정된 정수 화소 병합 모드 후보가 결정될 수 있다.
최종적으로 결정된 조정된 소수 화소 병합 모드 후보 및 조정된 정수 화소 병합 모드 후보를 포함하는 다섯개의 병합 모드 후보(또는 다섯개의 병합 모드 후보의 움직임 정보) 각각을 기반으로 참조 화면 메모리에서 참조 화면(또는 참조 블록)에 대한 움직임 보상을 수행할 수 있다.
예를 들어, 소수 움직임 보상기(440)는 참조 화면 메모리(430)에 포함된 참조 화면 및 조정된 소수 화소 병합 모드 후보(또는 조정된 소수 화소 병합 모드 후보의 움직임 정보)를 기반으로 움직임 보상을 수행한 결과와 예측 대상 블록과의 차이 값을 기반으로 율-왜곡 비용을 산출할 수 있다. 소수 움직임 보상기(440)는 보간 필터가 내장되어 있어 소수 화소 단위의 움직임 보상을 수행하도록 구현될 수 있다.
정수 움직임 보상기(450)는 조정된 참조 화면 메모리(430)에 포함된 참조 화면 및 정수 화소 병합 모드 후보(또는 조정된 정수 화소 병합 모드 후보의 움직임 정보)를 기반으로 움직임 보상을 수행한 결과와 예측 대상 블록과의 차이 값을 기반으로 율-왜곡 비용을 산출할 수 있다. 정수 움직임 보상기(450)는 보간 필터 없이 구현되어 정수 화소 단위의 움직임 보상이 수행될 수 있다.
율-왜곡비용 계산기(460)에 의해 소수 움직임 보상기(440) 및 정수 움직임 보상기(450)를 기반으로 산출된 율-왜곡 비용 중 가장 작은 율-왜곡 비용을 가지는 조정된 병합 모드 후보가 예측 대상 블록에 대한 최종 병합 모드 후보로 결정될 수 있다.
이러한 기존의 병합 모드 부호화 과정의 개선을 통해 부호화에 걸리는 시간의 최대값을 대폭 감소시킬 수 있고, 부호화에 필요한 최장 시간을 감소시킴으로써, 가장 긴 동작 시간이 필요한 경우에 맞추어 설계되는 하드웨어 비용을 감소시킬 수 있다. 또한, 필요한 최장 시간을 감소시켰으므로, 수행 시간의 변화량 또한 기존의 병합 모드 부호화 기술보다 감소하기 때문에, 감소된 하드웨어의 유휴 시간 비율도 크게 감소되고 종래 병합 모드 부호화기보다 하드웨어 동작 효율이 크게 향상될 수 있다.
도 5는 본 발명의 실시예에 따른 하드웨어 기반의 병합 모드 부호화 방법을 나타낸 순서도이다.
도 5를 참조하면, 병합모드 후보 생성기가 다섯 개의 병합 모드 후보를 결정한다(단계 S500).
병합 모드 후보를 생성하는 부호화기의 병합 모드 후보 생성기는 도 4에서 전술한 바와 같이 다섯 개의 병합 모드 후보를 결정할 수 있다.
움직임 정보 분석기가 다섯 개의 병합 모드 후보의 움직임 정보를 분석하여 소수 화소 병합 모드 후보 및 정수 화소 병합 모드 후보로 분류한다(단계 S510).
부호화기의 움직임 정보 분석기는 다섯개 병합 모드 후보를 소수 화소 움직임 벡터를 가지는 소수 화소 병합 모드 후보와 정수 화소 움직임 벡터를 가지는 정수 화소 병합 모드 후보로 분류할 수 있다.
움직임 정보 분석기가 소수 화소 병합 모드 후보 및 정수 화소 병합 모드 후보의 개수를 결정한다(단계 S520).
움직임 정보 분석기는 소수 화소 병합 모드 후보의 개수와 정수 화소 병합 모드 후보의 개수를 결정할 수 있다.
움직임 정보 조정기가 소수 화소 병합 모드 후보의 개수와 정수 화소 병합 모드 후보의 개수를 조정한다(단계 S530).
만약, 소수 화소 병합 모드 후보의 개수가 정수 화소 병합 모드 후보의 개수보다 많은 경우(또는 소수 화소 병합 모드 후보의 개수가 설정된 개수보다 큰 경우), 움직임 정보 조정기는 전체 소수 화소 병합 모드 후보 중 적어도 하나의 소수 화소 병합 모드 후보를 정수 화소 움직임 벡터를 갖는 정수 화소 병합 모드 후보로 조정하여 조정된 소수 화소 병합 모드 후보 및 조정된 정수 화소 병합 모드 후보가 결정될 수 있다.
소수 움직임 보상기 및 정수 움직임 보상기가 조정된 소수 화소 병합 모드 후보 및 조정된 정수 화소 병합 모드 후보를 기반으로 한 인터 예측을 수행하여 율 왜곡 비용을 산출한다.
소수 움직임 보상기는 최종 소수 화소 병합 모드 후보를 기반으로 보간 필터를 사용하여 움직임 보상을 수행한 결과와 예측 대상 블록과의 차이 값을 기반으로 율-왜곡 비용을 산출할 수 있다.
정수 움직임 보상기는 최종 정수 화소 병합 모드 후보를 기반으로 보간 필터 없이 움직임 보상을 수행한 결과와 예측 대상 블록과의 차이 값을 기반으로 율-왜곡 비용을 산출할 수 있다.
부호화기는 최종 병합 모드 후보를 결정하고 최종 병합 모드 후보에 대한 정보를 인코딩하여 복호화기로 전송한다(단계 S540).
소수 움직임 보상기 및 정수 움직임 보상기를 기반으로 산출된 율-왜곡 비용 중 가장 작은 율-왜곡 비용을 가지는 병합 모드 후보를 예측 대상 블록에 대한 최종 병합 모드 후보로 결정할 수 있다. 부호화기는 최종 병합 모드 후보에 대한 정보를 부호화하여 복호화기로 전송할 수 있다.
도 6은 본 발명의 실시예에 따른 조정된 소수 화소 병합 모드 후보 및 조정된 정수 화소 병합 모드 후보의 결정 방법을 나타낸 개념도이다.
도 6을 참조하면, 부호화기는 구현에 따라 조정된 소수 화소 병합 모드 후보의 개수를 조정할 수 있다.
부호화의 속도가 상대적으로 빨라야 하는 경우, 소수 화소 병합 모드 후보의 개수가 상대적으로 감소될 수 있고, 반대로 부호화의 속도가 상대적으로 느려도 괜찮은 경우, 소수 화소 병합 모드 후보의 개수가 상대적으로 증가되어 설정될 수 있다. 즉, 부호화기는 필요한 영상 부호화의 속도에 따라 적응적으로 소수 화소 병합 모드 후보의 개수를 제한하여 설정한 후 부호화를 수행할 수 있다.
즉, 부호화기는 부호화 속도에 대한 정보를 입력받고, 부호화 속도에 대응되는 가능한 소수 화소 병합 모드 후보의 개수를 결정할 수 있다. 부호화기는 결정된 가능한 소수 화소 병합 모드 후보의 개수를 기반으로 소수 화소 병합 모드를 정수 화소 병합 모드 후보로 조정할 수 있다.
도 7은 본 발명의 실시예에 따른 소수 화소 병합 모드 후보의 정수 화소 병합 모드 후보로의 조정 방법을 나타낸 개념도이다.
도 7을 참조하면, 소수 화소의 위치를 기반으로 소수 화소 움직임 벡터를 정수 화소 움직임 벡터로 조정할 수 있다.
예를 들어, 소수 화소 움직임 벡터를 산출하기 위해 생성된 소수 화소의 위치가 0.25인 경우, 0.25 위치의 소수 화소(710)와 가장 인접한 정수 화소의 위치인 0.00 위치에 대응되는 정수 화소(700)를 기반으로 0.25 위치의 소수 화소(710) 기반의 소수 화소 움직임 벡터가 0.00 위치에 대응되는 정수 화소(700) 기반의 정수 화소 움직임 벡터로 조정될 수 있다.
다른 예를 들어, 소수 화소 움직임 벡터를 산출하기 위해 생성된 소수 화소의 위치가 0.75인 경우, 0.75 위치의 소수 화소(730)와 가장 인접한 정수 화소의 위치인 1.00 위치에 대응되는 정수 화소(740)를 기반으로 0.75 위치의 소수 화소(730) 기반의 소수 화소 움직임 벡터가 1.00 위치에 대응되는 정수 화소(740) 기반의 정수 화소 움직임 벡터로 조정될 수 있다.
또 다른 예를 들어, 소수 화소 움직임 벡터를 산출하기 위해 생성된 소수 화소의 위치가 0.5인 경우, 0.5 위치의 소수 화소(720)와 인접한 두 개의 정수 화소인 0.00 에 대응되는 정수 화소(700) 및 1.00 에 대응되는 정수 화소(740)를 기반으로 한 움직임 벡터의 조정이 수행될 수 있다. 부호화기는 소수 화소 움직임 벡터의 움직임 벡터의 방향성을 고려하여 소수 화소 움직임 벡터의 방향이 0.00 에 대응되는 정수 화소(700)의 방향인 경우, 0.5 위치의 소수 화소(720) 기반의 소수 화소 움직임 벡터를 0.00 위치에 대응되는 정수 화소(700) 기반의 정수 화소 움직임 벡터로 조정할 수 있다. 소수 화소 움직임 벡터의 방향이 1.00 에 대응되는 정수 화소(740)의 방향인 경우, 0.5 위치의 소수 화소(720) 기반의 소수 화소 움직임 벡터를 1.00 위치에 대응되는 정수 화소(740) 기반의 정수 화소 움직임 벡터로 조정할 수 있다.
이와 같은 병합 모드를 기반으로 한 영상 부호화 방법은 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 통상의 기술자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 통상의 기술자는 하기의 특허 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 인코딩 장치(또는 부호화기) 105: 픽처 분할부 110: 예측부
115: 변환부 120: 양자화부 125: 재정렬부 130: 엔트로피 인코딩부
135: 역양자화부 140: 역변환부 145: 필터부 150: 메모리
200: 비디오 디코딩 장치(또는 복호화기) 210: 엔트로피 디코딩부
215: 재정렬부 220: 역양자화부 225: 역변환부 230: 예측부
235: 필터부 240: 메모리
300, 310, 350, 360, 370, A0, A1, B0, B1, B2: 공간적 움직임 벡터 예측 후보
T1, T2: 시간적 후보
400: 병합 모드 후보 생성기 410: 움직임 정보 분석기
420: 움직임 정보 조정기 430: 참조 화면 메모리
440: 소수 움직임 보상기 450: 정수 움직임 보상기
460: 율-왜곡비용 계산기
S500: 병합 모드 후보 생성기가 병합 모드 후보를 결정하는 단계
S510: 소수 화소 병합 모드 후보와 정수 화소 병합 모드 후보로 분류하는 단계
S520: 소수 화소 병합 모드 후보의 개수 및 정수 화소 병합 모드 후보의 개수를 결정하는 단계
S530: 소수 화소 병합 모드 후보의 개수 및 정수 화소 병합 모드 후보의 개수를 조정하는 단계
S540: 최종 병합 모드 후보를 결정 후 최종 병합 모드 후보에 대한 정보를 복호화기로 전송하는 단계
700, 740: 정수 화소 710, 720, 730: 소수 화소

Claims (10)

  1. 병합 모드를 기반으로 한 영상 부호화 방법은,
    부호화기가 예측 대상 블록에 대한 인터 예측을 위해 복수개의 병합 모드 후보를 결정하는 단계;
    상기 부호화기가 상기 복수개의 병합 모드 후보의 움직임 정보를 기반으로 상기 복수개의 병합 모드 후보를 소수 화소 병합 모드 후보를 포함하는 소수 화소 병합 모드 후보 집합 및 정수 화소 병합 모드 후보를 포함하는 정수 화소 병합 모드 후보 집합으로 분류하는 단계;
    상기 부호화기가 상기 소수 화소 병합 모드 후보의 개수에 대한 정보 및 상기 정수 화소 병합 모드 후보의 개수에 대한 정보 중 적어도 어느 하나를 기반으로 상기 소수 화소 병합 모드 후보 중 적어도 하나의 소수 화소 병합 모드 후보를 적어도 하나의 정수 화소 병합 모드 후보로 전환하는 단계; 및
    상기 부호화기가 상기 적어도 하나의 소수 화소 병합 모드 후보의 전환을 기반으로 결정된 조정된 소수 화소 병합 모드 후보 집합 및 조정된 정수 화소 병합 모드 후보 집합을 기반으로 상기 예측 대상 블록에 대한 상기 인터 예측을 수행하는 단계를 포함하며,
    상기 적어도 하나의 소수 화소 병합 모드 후보의 전환은 상기 소수 화소 단위와 가장 인접한 정수 화소 단위를 기반으로 상기 소수 화소 움직임 벡터를 상기 가장 인접한 정수 화소 단위를 기반으로 한 상기 정수 화소 움직임 벡터로의 전환이며,
    인접한 정수 화소 단위가 2개인 경우 상기 소수 화소 움직임 벡터의 방향성을 고려하여 상기 소수 화소 움직임 벡터의 방향으로 가장 인접하는 정수 화소 단위를 기반으로 상기 소수 화소 움직임 벡터를 상기 인접한 정수 화소 단위를 기반으로 한 상기 정수 화소 움직임 벡터로의 전환인 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서,
    상기 복수개의 병합 모드 후보는 상기 예측 대상 블록의 상기 인터 예측을 위한 움직임 정보를 유도하기 위한 상기 예측 대상 블록에 대한 공간적 움직임 벡터 예측 후보, 시간적 움직임 예측 후보 및 상기 공간적 움직임 벡터 예측 후보 및 시간적 움직임 예측 후보의 조합으로 결정되는 추가 움직임 벡터 예측 후보 중 5개의 예측 후보이고,
    상기 소수 화소 병합 모드 후보는 상기 5개의 예측 후보 중 보간 필터를 기반으로 생성된 소수 화소 단위로 예측된 소수 화소 움직임 벡터를 가지는 예측 단위이며,
    상기 정수 화소 병합 모드 후보는 상기 5개의 예측 후보 중 정수 화소 단위로 예측된 정수 화소 움직임 벡터를 가지는 예측 단위인 것을 특징으로 하는 방법.
  3. 제 2 항에 있어서,
    상기 적어도 하나의 소수 화소 병합 모드 후보의 상기 적어도 하나의 정수 화소 병합 모드 후보로의 전환은 상기 소수 화소 병합 모드 후보의 개수가 상기 정수 화소 병합 모드 후보의 개수보다 큰 경우 수행되는 것을 특징으로 하는 방법.
  4. 제 2 항에 있어서,
    상기 적어도 하나의 소수 화소 병합 모드 후보의 상기 적어도 하나의 정수 화소 병합 모드 후보로의 전환은 상기 소수 화소 병합 모드 후보의 개수가 설정된 개수 이상인 경우 수행되고,
    상기 설정된 개수는 상기 부호화기에서 필요한 영상 부호화 속도에 따라 적응적으로 설정되는 것을 특징으로 하는 방법.
  5. 삭제
  6. 병합 모드를 기반으로 한 영상 부호화 장치는,
    예측 대상 블록에 대한 인터 예측을 위해 복수개의 병합 모드 후보를 결정하도록 구현되는 병합 모드 후보 생성기;
    상기 복수개의 병합 모드 후보의 움직임 정보를 기반으로 상기 복수개의 병합 모드 후보를 소수 화소 병합 모드 후보를 포함하는 소수 화소 병합 모드 후보 집합 및 정수 화소 병합 모드 후보를 포함하는 정수 화소 병합 모드 후보 집합으로 분류하도록 구현되는 움직임 정보 분석기;
    상기 부호화 장치가 상기 소수 화소 병합 모드 후보의 개수에 대한 정보 및 상기 정수 화소 병합 모드 후보의 개수에 대한 정보 중 적어도 어느 하나를 기반으로 상기 소수 화소 병합 모드 후보 중 적어도 하나의 소수 화소 병합 모드 후보를 적어도 하나의 정수 화소 병합 모드 후보로 전환하도록 구현되는 움직임 정보 조정기; 및
    상기 부호화장치가 상기 적어도 하나의 소수 화소 병합 모드 후보의 전환을 기반으로 결정된 조정된 소수 화소 병합 모드 후보 집합 및 조정된 정수 화소 병합 모드 후보 집합을 기반으로 상기 예측 대상 블록에 대한 상기 인터 예측을 수행하도록 구현되는 소수 움직임 보상기 및 정수 움직임 보상기를 포함하며,
    상기 적어도 하나의 소수 화소 병합 모드 후보의 전환은 상기 소수 화소 단위와 가장 인접한 정수 화소 단위를 기반으로 상기 소수 화소 움직임 벡터를 상기 가장 인접한 정수 화소 단위를 기반으로 한 상기 정수 화소 움직임 벡터로의 전환이며,
    인접한 정수 화소 단위가 2개인 경우 상기 소수 화소 움직임 벡터의 방향성을 고려하여 상기 소수 화소 움직임 벡터의 방향으로 가장 인접하는 정수 화소 단위를 기반으로 상기 소수 화소 움직임 벡터를 상기 인접한 정수 화소 단위를 기반으로 한 상기 정수 화소 움직임 벡터로의 전환인 것을 특징으로 하는 영상 부호화 장치.
  7. 제 6 항에 있어서,
    상기 복수개의 병합 모드 후보는 상기 예측 대상 블록의 상기 인터 예측을 위한 움직임 정보를 유도하기 위한 상기 예측 대상 블록에 대한 공간적 움직임 벡터 예측 후보, 시간적 움직임 예측 후보 및 상기 공간적 움직임 벡터 예측 후보 및 시간적 움직임 예측 후보의 조합으로 결정되는 추가 움직임 벡터 예측 후보 중 5개의 예측 후보이고,
    상기 소수 화소 병합 모드 후보는 상기 5개의 예측 후보 중 보간 필터를 기반으로 생성된 소수 화소 단위로 예측된 소수 화소 움직임 벡터를 가지는 예측 단위이며,
    상기 정수 화소 병합 모드 후보는 상기 5개의 예측 후보 중 정수 화소 단위로 예측된 정수 화소 움직임 벡터를 가지는 예측 단위인 것을 특징으로 하는 영상 부호화 장치.
  8. 제 7 항에 있어서,
    상기 적어도 하나의 소수 화소 병합 모드 후보의 상기 적어도 하나의 정수 화소 병합 모드 후보로의 전환은 상기 소수 화소 병합 모드 후보의 개수가 상기 정수 화소 병합 모드 후보의 개수보다 큰 경우 수행되는 것을 특징으로 하는 영상 부호화 장치.
  9. 제 7 항에 있어서,
    상기 적어도 하나의 소수 화소 병합 모드 후보의 상기 적어도 하나의 정수 화소 병합 모드 후보로의 전환은 상기 소수 화소 병합 모드 후보의 개수가 설정된 개수 이상인 경우 수행되고,
    상기 설정된 개수는 상기 부호화장치에서 필요한 영상 부호화 속도에 따라 적응적으로 설정되는 것을 특징으로 하는 영상 부호화 장치.

  10. 삭제
KR1020150180096A 2015-12-16 2015-12-16 병합 모드를 기반으로 한 영상 부호화 방법 및 장치 KR101735798B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150180096A KR101735798B1 (ko) 2015-12-16 2015-12-16 병합 모드를 기반으로 한 영상 부호화 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150180096A KR101735798B1 (ko) 2015-12-16 2015-12-16 병합 모드를 기반으로 한 영상 부호화 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101735798B1 true KR101735798B1 (ko) 2017-05-29

Family

ID=59053239

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150180096A KR101735798B1 (ko) 2015-12-16 2015-12-16 병합 모드를 기반으로 한 영상 부호화 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101735798B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101819138B1 (ko) 2016-01-14 2018-01-16 인하대학교 산학협력단 Hevc 부호화기를 위한 병합 모드의 연산량 감소 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150195562A1 (en) * 2014-01-09 2015-07-09 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150195562A1 (en) * 2014-01-09 2015-07-09 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101819138B1 (ko) 2016-01-14 2018-01-16 인하대학교 산학협력단 Hevc 부호화기를 위한 병합 모드의 연산량 감소 방법

Similar Documents

Publication Publication Date Title
US10999597B2 (en) Image encoding method and image decoding method
CN112313953B (zh) 用于视频编解码和处理的去方块滤波器
US11107253B2 (en) Image processing method, and image decoding and encoding method using same
KR101552634B1 (ko) 예측 단위의 파티션 모드에 기초한 계수 스캔 방법 및 장치
US11533470B2 (en) Method and apparatus for encoding/decoding an image signal
CN117221571A (zh) 图像解码方法、图像编码方法以及发送比特流的方法
KR20180019092A (ko) 영상 코딩 시스템에서 조도 보상에 기반한 블록 예측 방법 및 장치
KR20180059482A (ko) 비디오 코딩 시스템에서 인트라 예측 방법 및 장치
KR20180081716A (ko) 영상 코딩 시스템에서 임계값을 이용한 적응적 영상 예측 방법 및 장치
KR20180058224A (ko) 영상 코딩 시스템에서 모델링 기반 영상 디코딩 방법 및 장치
KR20150139881A (ko) 비디오 코딩 예측에 대한 메모리 감소
US9479788B2 (en) Systems and methods for low complexity encoding and background detection
KR101735798B1 (ko) 병합 모드를 기반으로 한 영상 부호화 방법 및 장치
CN112565767B (zh) 视频解码方法、视频编码方法及相关设备
KR20180064423A (ko) 영상 코딩 시스템에서 영상 디코딩 방법 및 장치
EP4266686A1 (en) Video compression using template-based determination of intra prediction mode
WO2023056018A1 (en) Video compression using block vector predictor refinement
CN116803081A (zh) 用于视频编解码的基于模型的运动矢量差导出和模板匹配预测

Legal Events

Date Code Title Description
AMND Amendment
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant