KR102017027B1 - 고속 영상 부호화 방법 및 장치 - Google Patents

고속 영상 부호화 방법 및 장치 Download PDF

Info

Publication number
KR102017027B1
KR102017027B1 KR1020170058195A KR20170058195A KR102017027B1 KR 102017027 B1 KR102017027 B1 KR 102017027B1 KR 1020170058195 A KR1020170058195 A KR 1020170058195A KR 20170058195 A KR20170058195 A KR 20170058195A KR 102017027 B1 KR102017027 B1 KR 102017027B1
Authority
KR
South Korea
Prior art keywords
block
prediction
current block
unit
measuring
Prior art date
Application number
KR1020170058195A
Other languages
English (en)
Other versions
KR20170126817A (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 한양대학교 산학협력단
Publication of KR20170126817A publication Critical patent/KR20170126817A/ko
Application granted granted Critical
Publication of KR102017027B1 publication Critical patent/KR102017027B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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

Abstract

고속 영상 부호화 방법이 개시된다. 고속 영상 부호화 장치에서의 고속 영상 부호화 방법은, 부호화할 현재 블록에 대한 단방향 예측을 수행하는 단계, 단방향 예측에서 도출된 움직임 벡터(motion vector) 또는 움직임 벡터의 차분값(motion vector difference)이 정수 화소 단위인지 판단하는 단계 및 정수 화소 단위이면, 양방향 예측을 제외하고, 단방향 예측을 포함하는 예측 모드 중에서, 현재 블록에 대한 예측 모드를 선정하는 단계를 포함한다. 따라서, 영상 부호화 속도를 향상시킬 수 있다.

Description

고속 영상 부호화 방법 및 장치{FAST VIDEO ENCODING METHOD AND APPARATUS FOR THE SAME}
본 발명은 고속 영상 부호화 방법 및 장치에 관한 것으로, 더욱 상세하게는 영상 부호화 과정에서, 부호화 복잡도를 크게 증가시키는 양방향 예측을 생략함으로써 영상을 고속으로 부호화하는 방법 및 장치에 관한 것이다.
H.265로도 불리는 고효율 비디오 코딩(HEVC, High Efficiency Video Coding)은 H.264/MPEG-4 AVC의 성공에 힘입어 개발에 착수한 차세대 동영상 부호화 기술이다. 기존에 H.264/MPEG-4 AVC를 개발했던 ISO/IEC MPEG과 ITU-T의 영상 부호화 전문가 그룹(Video Coding Experts Group)이 Joint Collaborative Team on Video Coding (JCT-VC)으로서 팀을 결성하여 표준화 작업을 진행하였고, ITU는 스위스 제네바에서 HEVC를 차세대 최종 표준안으로 승인하였다.
HEVC는 높은 부호화 효율을 달성하기 위하여, 블록 구조를 최소 4×4 단위부터 64×64까지 지원하고, 화면 내 예측 모드에서도 35개의 방향성 및 비방향성 모드를 지원하는 등 추가적인 기술을 적용하였으나, 이와 동시에 계산 복잡도가 크게 증가하였다. 계산 복잡도의 증가는 부호화 장치에 큰 부하를 가져오기 때문에 HEVC의 보급에 큰 걸림돌이 되고 있다.
특히, 영상 부호화에서 계산 복잡도에 큰 영향을 미치는 과정 중 하나가 움직임 추정(Motion Estimation, ME)인데, 움직임 추정은 최대 두개의 참조 픽쳐를 사용하는 양방향 예측과 하나의 참조 픽쳐만을 사용하는 단방향 예측을 포함한다.
기존의 고속 영상 부호화 방법은 주로 단방향 예측에서 일부 예측 과정을 생략하는 방법을 적용하였으며, 계산 복잡도가 큰 양방향 예측의 속도를 향상시킬 수 있는 방법은 연구가 미진한 상태이다.
양방향 예측에서 계산 복잡도를 감소시키는 기존의 일부 연구의 경우에도 다른 예측 모드(단방향 또는 머지 모드)의 왜곡 비용을 이용하거나, 부호화 유닛 사이의 연관성을 이용하여 일부 과정만을 생략하고 있어, 계산 복잡도 감소에 기여하는 효과가 크지 않다. 따라서, 경우에 따라 양방향 예측 전체를 생략함으로써, 계산 복잡도를 크게 줄일 수 있는 방법이 필요한 실정이다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 고속 영상 부호화 방법을 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 고속 영상 부호화 장치를 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 일 측면은, 고속 영상 부호화 장치에서의 고속 영상 부호화 방법을 제공한다.
여기서, 고속 영상 부호화 방법은, 부호화할 현재 블록에 대한 단방향 예측을 수행하는 단계, 단방향 예측에서 도출된 움직임 벡터(motion vector) 또는 움직임 벡터의 차분값(motion vector difference)이 정수 화소 단위인지 판단하는 단계 및 정수 화소 단위이면, 양방향 예측을 제외하고, 단방향 예측을 포함하는 예측 모드 중에서, 현재 블록에 대한 예측 모드를 선정하는 단계를 포함할 수 있다.
여기서, 단방향 예측을 수행하는 단계는, 참조 픽쳐에서 현재 블록의 위치 주변에 위치한 블록의 움직임 정보를 사용하여 초기 탐색 시작 위치를 결정하는 단계, 초기 탐색 시작 위치를 기준으로 주변의 참조 블록과 현재 블록 사이의 상관도를 정수 화소 단위로 측정하여 제1 참조 블록을 획득하는 단계 및 초기 탐색 시작 위치를 기준으로 주변의 참조 블록과 현재 블록 사이의 상관도를 부화소 단위로 측정하여 제2 참조 블록을 획득하는 단계를 포함할 수 있다.
여기서, 정수 화소 단위로 측정하여 제1 참조 블록을 획득하는 단계는, 현재 블록과 참조 블록의 SAD(Sum of Absolte Difference)를 측정하는 단계를 포함할 수 있다.
여기서, 부화소 단위로 측정하여 제2 참조 블록을 획득하는 단계는, 현재 블록과 참조 블록의 SATD(Sum of Transform Difference)를 측정하는 단계를 포함할 수 있다.
여기서, 부화소 단위는, 1/2 부화소 단위 및 1/4 부화소 단위 중 적어도 하나를 포함할 수 있다.
여기서, 단방향 예측을 수행하는 단계는, 제1 참조 블록과 제2 참조 블록을 비교하여 최적의 율-왜곡 비용을 갖는 블록을 현재 블록에 대한 예측 블록으로 선정하여 움직임 벡터 또는 움직임 벡터 차분값 중 적어도 하나를 포함하는 움직임 정보를 생성할 수 있다.
여기서, 현재 블록은, 화소 단위의 2N×2N, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N 블록 크기 중 적어도 하나를 포함할 수 있다.
상기 목적을 달성하기 위한 본 발명의 다른 측면은, 고속 영상 부호화 장치에서의 고속 영상 부호화 방법을 제공한다.
여기서, 고속 영상 부호화 방법은 화소 단위로 2N×2N의 블록 크기를 갖는 현재 블록에 대하여 단방향 예측 및 양방향 예측을 포함하는 예측 모드 중 하나를 선정하는 단계, 선정된 예측 모드가 양방향 예측이 아니면, 양방향 예측을 제외한 나머지 예측 모드 중에서 현재 블록과 다른 크기의 블록에 대한 예측 모드를 선정하는 단계를 포함할 수 있다.
여기서, 예측 모드를 선정하는 단계는, 현재 블록과 참조 픽쳐의 참조 블록 사이의 상관성이 가장 높은 참조 블록을 갖는 예측 모드를 선정할 수 있다.
여기서, 현재 블록과 다른 크기의 블록은, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N 중 적어도 하나의 크기를 가질 수 있다.
목적을 달성하기 위한 본 발명의 다른 측면은, 고속 영상 부호화 장치를 제공한다.
여기서, 고속 영상 부호화 장치는 적어도 하나의 프로세서 및 적어도 하나의 프로세서가 적어도 하나의 단계를 수행하도록 지시하는 명령어들을 저장하는 메모리를 포함할 수 있다.
여기서, 적어도 하나의 단계는, 부호화할 현재 블록에 대한 단방향 예측을 수행하는 단계, 단방향 예측에서 도출된 움직임 벡터(motion vector) 또는 움직임 벡터의 차분값(motion vector difference)이 정수 화소 단위인지 판단하는 단계 및 정수 화소 단위이면, 양방향 예측을 제외하고, 단방향 예측을 포함하는 화면 간 예측 모드 중에서, 현재 블록에 대한 예측 모드를 선정하는 단계를 포함할 수 있다.
여기서, 단방향 예측을 수행하는 단계는, 참조 픽쳐에서 현재 블록의 위치 주변에 위치한 블록의 움직임 정보를 사용하여 초기 탐색 시작 위치를 결정하는 단계, 초기 탐색 시작 위치를 기준으로 주변의 참조 블록과 현재 블록 사이의 상관도를 정수 화소 단위로 측정하여 제1 참조 블록을 획득하는 단계 및 초기 탐색 시작 위치를 기준으로 주변의 참조 블록과 현재 블록 사이의 상관도를 부화소 단위로 측정하여 제2 참조 블록을 획득하는 단계를 포함할 수 있다.
여기서, 정수 화소 단위로 측정하여 제1 참조 블록을 획득하는 단계는, 현재 블록과 참조 블록의 SAD(Sum of Absolte Difference)를 측정하는 단계를 포함할 수 있다.
여기서, 부화소 단위로 측정하여 제2 참조 블록을 획득하는 단계는, 현재 블록과 참조 블록의 SATD(Sum of Transform Difference)를 측정하는 단계를 포함할 수 있다.
여기서, 부화소 단위는, 1/2 부화소 단위 및 1/4 부화소 단위 중 적어도 하나를 포함할 수 있다.
여기서, 단방향 예측을 수행하는 단계는, 제1 참조 블록과 제2 참조 블록을 비교하여 최적의 율-왜곡 비용을 갖는 블록을 현재 블록에 대한 예측 블록으로 선정하여 움직임 벡터 또는 움직임 벡터 차분값 중 적어도 하나를 포함하는 움직임 정보를 생성할 수 있다.
여기서, 현재 블록은, 화소 단위의 2N×2N, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N 블록 크기 중 적어도 하나를 포함할 수 있다.
여기서, 적어도 하나의 단계는, 현재 블록이 화소 단위로 2N×2N의 블록 크기를 갖고, 양방향 예측을 제외한 예측 모드 중에서 현재 블록의 예측 모드가 선정된 경우, 양방향 예측을 제외한 나머지 예측 모드 중에서 현재 블록과 다른 크기의 블록에 대한 예측 모드를 선정하는 단계를 더 포함할 수 있다.
여기서, 예측 모드를 선정하는 단계는, 현재 블록과 참조 픽쳐의 참조 블록 사이의 상관성이 가장 높은 참조 블록을 갖는 예측 모드를 선정할 수 있다.
여기서, 현재 블록과 다른 크기의 블록은, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N 중 적어도 하나의 크기를 가질 수 있다.
상기와 같은 본 발명에 따른 고속 영상 부호화 방법 및 장치를 이용할 경우에는 영상 부호화 장치의 연산 복잡도를 감소시킬 수 있다.
또한, 부호화 속도를 향상시킬 수 있는 장점이 있다.
도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록도이다.
도 3은 본 발명의 일 실시예에 따른, 영상 복호화 장치(30)에 대한 구성도이다.
도 4는 HEVC에서의 예측 유닛을 설명하기 위한 예시도이다.
도 5는 HEVC에서의 참조 소프트웨어에 따른 부호화 방법을 설명하기 위한 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 고속 영상 부호화 방법에 대한 제1 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 고속 영상 부호화 방법에 대한 제2 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 고속 영상 부호화 장치에 대한 구성도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
통상적으로 동영상은 일련의 픽쳐(Picture)로 구성될 수 있으며, 픽쳐(picture)라는 용어는 영상(image) 또는 프레임(frame)과 동등한 의미를 갖는 다른 용어로 대치되어 사용될 수 있다.
또한, 각 픽쳐(또는 프레임)는 소정의 영역으로 분할될 수 있다. 여기서, 분할된 영역은 블록(Block) 또는 매크로 블록(Macro Block)으로 지칭될 수 있으나, 부호화 트리 유닛(Coding Tree Unit, CTU), 부호화 유닛(Coding Unit, CU), 예측 유닛(Prediction Unit, PU), 변환 유닛(Transform Unit, TU)과 같이 다양한 크기 또는 용어로 지칭될 수 있다. 따라서, 본 명세서 전체에 걸쳐 사용된 블록(Block)의 의미는 상기의 용어를 모두 포함할 수 있는 것으로 이해되어야 한다.
여기서, 부호화 유닛은 화면 내 예측 또는 화면 간 예측을 수행하는 기본 단위를 의미할 수 있고, 예측 유닛은 예측의 기본 단위로서 부호화 유닛을 분할하여 생성될 수 있으며, 하나의 예측 유닛은 특정한 예측 모드를 가질 수 있다. 변환 유닛은 부호화 유닛을 분할하여 생성될 수 있고, 원 영상 블록과 예측 유닛에서 생성된 예측 블록과의 차분값으로 생성된 잔차 블록을 변환하는 기본 단위일 수 있다.
또한, 상기 분할된 영역은 다시 수개의 픽셀(Pixel) 또는 화소로 구성될 수 있다. 예를 들면, 부호화 트리 유닛은 픽셀 단위로 64×64, 32×32, 16×16 중 하나의 크기를 가질 수 있다.
부호화 트리 유닛에서 쿼드 트리(Quad-tree) 형태로 분할될 수 있는데, 이때 분할된 블록은 부호화 유닛(Coding Unit)으로 지칭될 수 있으며, 이러한 분할은 재귀적으로 이루어질 수 있고, 모든 부호화 유닛이 동일한 형태로 분할될 필요는 없다. 다만, 부호화 유닛은 최대 크기 및 최소 크기에 제한이 있을 수 있는데, 가장 큰 크기의 부호화 유닛을 최대 부호화 유닛(Largest Coding Unit, LCU), 가장 작은 크기의 부호화 유닛을 최소 부호화 유닛(Smallest Coding Unit, SCU)으로 지칭할 수 있다.
여기서, 최대 부호화 유닛으로부터 분할된 횟수 또는 정도를 표현하는 지표로 깊이 또는 심도(depth)를 사용할 수 있다. 예를 들어, 최대 부호화 유닛(LCU)과 같은 크기를 가진다면 깊이는 0으로 표현할 수 있고, 쿼드 트리로 분할됨에 따라 깊이가 하나씩 증가할 수 있으며, 최소 부호화 유닛과 같은 크기까지 분할되었다면 그때의 깊이를 최대 깊이(Max depth)로 표현할 수 있다.
여기서, 각각의 부호화 유닛(CU)에서 다시 예측 유닛(PU)으로 분할될 수 있는데, 예측 유닛은 쿼드-트리 형태로 분할되지 않고 비대칭구조로 분할될 수 있으며, 부호화 유닛에서 한번만 분할될 수 있다. 또한 화면 간 예측 및 화면 내 예측에 따라 미리 설정된 형태를 가질 수 있다. 예를 들어, 화면 내 예측에서는 2N×2N 또는 N×N의 크기를 가질 수 있다.
또한, 각각의 부호화 유닛(CU)에서 다시 변환 유닛(TU)으로 분할될 수 있는데, 이때 변환 유닛은 쿼드 트리 구조를 바탕으로 재귀적으로 분할될 수 있고 부호화 유닛과 마찬가지로 최대 및 최소 크기를 가질 수 있으며 그에 따른 깊이(depth)로 표현될 수 있다.
상기의 부호화 유닛에서 예측 유닛 또는 변환 유닛으로의 분할은 독립적으로 이루어질 수 있으나, 제약이 있을 수 있다. 예를 들어, 부호화 유닛의 부호화 모드가 화면 내 예측인 경우에는 해당 부호화 유닛으로부터 분할된 변환 유닛이 해당 부호화 유닛으로부터 분할된 예측 유닛의 크기보다 크지 않을 수 있다.
각 유닛(Unit)은 하나의 휘도 블록과 두 개의 색차 블록으로 구성될 수 있으며, 이는 컬러 포맷에 따라 달리 구성될 수 있다. 또한, 컬러 포맷에 따라 휘도 블록과 색차 블록의 크기가 결정될 수 있다. 예를 들어, 4:2:0인 경우 색차 블록의 크기는 휘도 블록의 가로, 세로가 1/2인 길이를 가질 수 있다.
상기의 유닛 또는 블록 단위에 대해서는 기존의 HEVC 또는 H.264/AVC 등의 용어를 참조할 수 있다. 본 발명에서는 블록과 상기 용어들이 혼용하여 사용될 수 있으며, 표준 기술에 따라 달리 이해될 수 있고, 그러한 표준 기술에 따른 부호화 및 복호화 과정에 상응하는 용어 또는 단위로 이해되어야 한다.
또한, 현재 블록 또는 현재 화소를 부호화하거나 복호화하는데 참조되는 픽쳐, 블록 또는 화소를 참조 픽쳐(Reference Picture), 참조 블록(Reference Block) 또는 참조 화소(Reference Pixel)라고 지칭할 수 있다. 이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 1을 참조하면, 영상 부호화 장치(105) 및 복호화 장치(100)는 개인용 컴퓨터(PC:Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 무선 통신 단말기(Wireless Communication Terminal), 스마트폰(Smart Phone), TV 등과 같은 사용자 단말기이거나 응용 서버와 서비스 서버 등 서버 단말기일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화 또는 복호화를 위해 인터 또는 인트라 예측하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리(memory, 120, 125), 프로그램을 실행하여 연산 및 제어하기 위한 프로세서(processor, 110, 115) 등을 구비하는 다양한 장치를 포함할 수 있다. 또한, 영상 부호화 장치(105)에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망(Network) 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등과 같은 다양한 통신 인터페이스를 통해 영상 복호화 장치(100)로 전송되어 영상 복호화 장치(100)에서 복호화되어 영상으로 복원되고 재생될 수 있다. 또한, 영상 부호화 장치(105)에 의해 비트스트림으로 부호화된 영상은 컴퓨터 판독 가능한 기록 매체를 통하여 영상 부호화 장치(105)에서 영상 복호화 장치(100)로 전달될 수 있다.
도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록도이다.
본 실시예에 따른 영상 부호화 장치(20)는, 도 2에 나타낸 바와 같이, 예측부(200), 감산부(205), 변환부(210), 양자화부(215), 역양자화부(220), 역변환부(225), 가산부(230), 필터부(235), 복호화 픽쳐 버퍼(240) 및 엔트로피 부호화부(245)를 포함할 수 있다.
예측부(200)는 부호화할 블록에 대하여, 화면 내 예측 또는 화면 간 예측을 통하여 예측 블록을 결정할 수 있다. 여기서, 예측 블록은 픽셀 차이의 관점에서, 부호화할 블록과 가깝게 일치하는 것으로 이해되는 블록이며, SAD(sum of absolute difference), SSD(sum of square difference) 를 포함하는 다양한 방법으로 결정될 수 있다. 또한, 이때 영상 슬라이스의 블록들을 복호화시에 필요한 각종 정보를 지시하는 구문(syntax)들을 생성할 수 있다.
감산부(205)는 부호화할 현재 블록의 픽셀 값으로부터 예측 블록의 픽셀 값들을 감산하여 픽셀 차이 값들을 도출함으로써, 잔여(residue) 영상 블록을 생성할 수 있다.
변환부(210)는 하마다드 변환, 이산 코사인 변환 등과 같은 공간 영역의 신호를 주파수 영역의 신호로 변환하는 다양한 방법을 이용하여, 감산부(205)로부터 받은 잔여 영상 블록을 잔여 변환 계수 값들을 포함하는 영상 블록을 생성할 수 있다. 즉, 잔여 영상 블록을 픽셀 값 신호에서 주파수 영역 신호로 변환할 수 있다.
양자화부(215)는 비트레이트를 감소시키기 위해 변환부(210)에서 변환된 변환 계수들을 양자화할 수 있다. 양자화를 통해 그 계수들의 일부 또는 모두와 연관되는 비트 심도 또는 비트량을 감소시킬 수 있다. 양자화 정도에 따른 양자화 에러는 양자화 파라미터(Quantization Parameter, QP)를 조정하여 변경될 수 있다.
양자화 기법에는 데드존 균일 경계 양자화(DZUTQ: Dead Zone Uniform Threshold Quantization), 양자화 가중치 매트릭스(Quantization weighted matrix) 또는 이를 개량한 기법을 사용할 수 있으며, 이러한 기법에 대한 구체적 설명은 본 발명의 기술분야에서 통상의 기술자가 용이하게 이해할 수 있으므로 생략한다.
엔트로피 부호화부(245)는 양자화부(215)를 통해 양자화된 변환 계수들을 부호화할 수 있다. 예를 들어, 컨텐스트 적응 가변 길이 코딩(CAVLC), 컨텍스트 적응 2진 산술 코딩(CABAC), 구문 기반 컨텍스트 적응 2진 산술 코딩(SBAC), 확률 간격 파티셔닝 엔트로피(PIPE) 코딩 등의 기법을 수행할 수 있다.
또한, 엔트로피 부호화부(245)는 양자화 계수를 부호화한 비트열을 복호화하는데 필요한 다양한 정보들을 부호화할 수 있다.
역양자화부(220) 및 역변환부(225)는 역양자화 및 역변환을 각각 적용하여 픽셀 신호로 잔여 블록을 재구성할 수 있다. 재구성된 잔여 블록은 가산부(230)에서 예측 블록과 가산되어 복원된 영상 블록이 생성될 수 있고, 복호화 픽쳐 버퍼(240)에 저장되어 참조 블록으로서 사용될 수 있다.
필터부(235)는 상기 복원된 영상 블록에 대하여, 필요에 따라 블로킹(blocking) 현상을 제거하기 위하여 디블로킹 필터를 적용할 수도 있고, 상기 비디오 품질을 향상시키기 위해 추가적인 루프 필터가 적용되어 필터링할 수 있다.
도 3은 본 발명의 일 실시예에 따른, 영상 복호화 장치(30)에 대한 구성도이다.
도 3을 참조하면, 영상 복호화 장치(30)는, 부호화 픽쳐 버퍼(300), 엔트로피 복호화부(305), 예측부(310), 역양자화부(315), 역변환부(320), 가감산기(325), 필터(330), 복호화 픽쳐 버퍼(335)를 포함하여 구성될 수 있다.
또한, 예측부(310)는 다시 화면 내 예측 모듈 및 화면 간 예측 모듈을 포함하여 구성될 수 있다.
먼저, 영상 부호화 장치(20)로부터 전달된 영상 비트스트림이 수신되면, 부호화 픽쳐 버퍼(300)에 저장될 수 있다.
엔트로피 복호화부(305)는 비트스트림을 복호화하여 양자화된 계수들, 움직임 벡터들 및 다른 구문(syntax)를 생성할 수 있다. 생성된 데이터는 예측부(310)로 전달될 수 있다.
예측부(310)는 엔트로피 복호화부(305)로부터 전달된 데이터들에 기초하여 현재 영상 슬라이스의 블록에 대한 예측 블록을 생성할 수 있다. 이때, 복호화된 픽쳐 버퍼(335)에 저장된 참조 영상에 기초하여, 디폴트(default) 구성 기법을 이용한 참조 픽쳐 리스트를 구성할 수도 있다.
역양자화부(315)는 비트스트림으로 제공되어 엔트로피 복호화부(305)에 의해 복호화된 양자화된 변환 계수들을 역양자화할 수 있다.
역변환부(320)는 역 DCT, 역 정수 변환 또는 그와 유사한 개념의 역변환 기법들을 변환 계수에 적용하여 픽셀 신호를 갖는 잔여 블록을 생성할 수 있다.
이때, 역양자화부(315), 역변환부(320)는 앞서 설명한 영상 부호화 장치(20)의 변환부(210) 및 양자화부(215)에서 수행한 과정을 역으로 수행하며 다양한 방법으로 구현될 수 있다. 예를 들어, 변환부(210) 및 양자화부(215)와 공유하는 동일한 과정 및 역변환을 사용할 수도 있고, 영상 부호화 장치(20)로부터 변환 및 양자화 과정에 관한 정보(예를 들면, 변환 크기, 변환 모양, 양자화 타입 등)를 이용하여 변환 및 양자화 과정을 역으로 수행할 수 있다.
역양자화 및 역변환 과정을 거친 잔여 비디오 블록은 예측부(310)에 의해 도출된 예측 블록과 가산되어 복원된 영상 블록이 생성될 수 있다. 이러한 가산은 가감산기(325)에 의해 이루어 질 수 있다.
필터(330)는 복원된 영상 블록에 대하여, 필요에 따라 블로킹(blocking) 현상을 제거하기 위하여 디블로킹 필터를 적용할 수도 있고, 상기 복호화 과정 전 후에 다른 루프 필터들을 비디오 품질을 향상시키기 위해 추가로 사용할 수도 있다.
복원 및 필터를 거친 영상 블록은 복호화 픽쳐 버퍼(335)에 저장될 수 있다.
도 4는 HEVC에서의 예측 유닛을 설명하기 위한 예시도이다.
도 4를 참조하면, HEVC에서 부호화 유닛이 화면 간 예측 모드로 부호화되는 경우, 부호화 유닛으로부터 분할하여 생성되는 예측 유닛을 설명할 수 있다.
구체적으로, 4a 내지 4d와 같이 균등 분할될 수 있으며, 4e 내지 4h와 같이 비균등 분할 또는 AMP(Asymmetric Motion Partition)이라 불리는 형태로 분할될 수 있다.
여기서, 부호화 유닛의 크기가 2N×2N이라 할때, 4d의 N×N 형태의 블록은 부호화 유닛이 최소 크기인 경우에만 가능할 수 있으며, 4e 내지 4h와 같은 AMP는 부호화하려는 부호화 유닛이 최소 크기인 경우, 부호화 및 복호화의 복잡도를 고려하여 사용하지 않을 수도 있다.
여기서, 4e 내지 4h의 n은 2N의 1/4의 값을 의미할 수 있는데, 예를 들면 2N의 값이 16인 경우 n의 값은 4일 수 있다.
영상 부호화에서, 4a 내지 4h와 같이 예측 유닛의 블록 형태는 다양하게 가질 수 있다. 영상 부호화 장치는 어느 블록 형태에 따른 예측 방법이 가장 최적의 부호화 효율을 갖는지 결정할 필요가 있고, 이때, 각각의 예측 블록 형태마다 여러 예측 방법에 따른 예측을 수행함으로써, 최적의 부호화 효율을 갖는 블록 형태 및 예측 모드를 선정할 수 있다.
여기서, 예측 방법은 화면 간 예측(inter prediction) 및 화면 내 예측(intra prediction)을 포함할 수 있고, 화면 간 예측은 예측 방법에 따라 더 상세히 나누면 단방향 예측, 양방향 예측 및 가중 예측을 포함할 수 있다. 또한, 화면 간 예측은 움직임 정보를 표현하는 방법에 따라 머지 모드(merge mode) 및 AMVP모드를 더 포함할 수 있다.
예측 방법 및 예측 모드는 이하에서 혼용되어 사용될 수 있으나 위에서 설명한 예측 방법 및 예측 모드를 모두 포함하는 용어로 이해되어야 하며, 머지 모드 및 AMVP 모드는 단방향 예측이나 양방향 예측에 추가적으로 적용될 수 있는 것으로 이해되어야 한다.
여기서, 단방향 예측은 하나의 참조 픽쳐로부터 현재 블록과 연관성이 가장 높은 참조 블록을 선택함으로써, 현재 블록의 예측 블록을 결정할 수 있고, 양방향 예측은 최대 두 개의 참조 픽쳐를 사용하여 현재 블록의 예측 블록을 결정할 수 있다. 가중 예측은 참조 블록에 가중치와 오프셋을 적용하여 하나의 예측 블록을 생성할 수 있다.
또한, 머지 모드는 주변 블록으로부터 참조 방향, 참조 픽쳐 인덱스, 움직임 벡터 예측 값을 유도하는 기술이고, AMVP 모드는 주변 블록으로부터 움직임 벡터 예측 값만을 유도하기 위한 기술이다.
각각의 예측 방법 및 모드에 따른 움직임 정보의 표현 및 구문 정보 생성은 본 발명이 속하는 기술분야에서 통상의 기술자에게 용이하게 이해될 수 있으므로, 상세한 설명은 생략한다.
도 5는 HEVC에서의 참조 소프트웨어에 따른 부호화 방법을 설명하기 위한 흐름도이다.
HEVC에서의 참조 소프트웨어에 따른 부호화는 도 5의 흐름도와 같이, 부호화 유닛의 최적의 예측 방법/모드를 선정할 수 있다.
도 5를 참조하면, 부호화 유닛(Coding Unit, CU)의 예측 방법/모드를 결정할 때, 먼저 2N×2N 블록 크기의 부호화 유닛에 대하여 머지 스킵 모드(merge skip mode 또는 Skip/merge)의 적용 여부를 결정할 수 있다. 머지 스킵 모드는 머지 모드의 특별한 경우로 양자화를 수행한 이후, 엔트로피 부호화를 위한 변환 계수가 모두 0에 가까울 때의 효율을 높이기 위하여 잔차 신호의 전송을 생략하고, 주변 블록의 선택 정보만을 전송하는 방법일 수 있다.
머지 스킵 모드의 적용 여부에 따라, 도 4에서의 블록 형태 각각(4a 내지 4h)의 예측 유닛에 대하여, 단방향 예측(Uni-L0 pred, Uni-L1 pred), 양방향 예측(Bi-Pred) 및 머지 모드(Merge Pred)에 따른 부호화를 각각 수행할 수 있다.
또한, 각 블록 형태에 따른 화면 간 예측이 종료되면, 화면 내 예측(Intra Pred)을 수행할 수 있고, 최종적으로 가장 부호화 효율이 높은 예측 방법 및 블록 형태를 선정할 수 있다.
여기서, 도 5를 참조하면, HEVC의 generalized B picture의 경우, 참조 픽쳐 목록(reference picture list)인 L0 및 L1이 동일하므로, 참조 픽쳐 목록 L1에 대한 단방향 예측을 생략할 수 있다.
또한, 단방향 예측 또는 양방향 예측의 경우 더 상세하게는 정수 단위의 움직임 예측(Integer Motion Estimation / integer ME)을 수행하고, 1/2의 부화소 단위의 움직임 예측(1/2 ME)과 1/4의 부화소 단위의 움직임 예측(1/4 ME)을 수행할 수 있다.
도 5에 따른 HEVC 참조 소프트웨어의 구동 과정을 통해 알수 있는 것과 같이, 각각의 블록 형태(2N×2N ~ AMP)에 따라 단방향 예측뿐만 아니라 양방향 예측을 수행하기 때문에 부호화를 위한 연산 복잡도가 매우 크다.
따라서, 이하에서는 화면 간 예측 모드 중에서 특히 연산량이 높은 양방향 예측을 경우에 따라 생략하는 방법을 설명한다.
도 6은 본 발명의 일 실시예에 따른 고속 영상 부호화 방법에 대한 제1 흐름도이다.
도 6을 참조하면, 고속 영상 부호화 장치에서의 고속 영상 부호화 방법은, 부호화할 현재 블록에 대한 단방향 예측을 수행하는 단계(S100), 단방향 예측에서 도출된 움직임 벡터(motion vector) 또는 움직임 벡터의 차분값(motion vector difference)이 정수 화소 단위인지 판단하는 단계(S110) 및 정수 화소 단위이면, 양방향 예측을 제외하고, 단방향 예측을 포함하는 예측 모드 중에서, 현재 블록에 대한 예측 모드를 선정하는 단계(S120)를 포함할 수 있다.
여기서, 고속 영상 부호화 장치는 도 1 내지 2에 따른 부호화 장치(20)를 지시할 수 있으며, 후에 설명할 도 8을 함께 참조할 수 있다.
여기서, 현재 블록은 HEVC에서의 예측 유닛을 지시할 수 있으나, 그에 한정하여 해석되는 것은 아니다.
여기서, 단방향 예측에서 움직임 정보가 정수 화소 단위로 도출되었다면, 현재 블록이 복잡하지 않은 블록인 것으로 판단할 수 있고, 부호화소 단위로 도출되었다면, 현재 블록이 복잡한 블록으로 판단할 수 있다. 따라서, 단방향 예측에서의 움직임 정보가 정소 화소 단위라면, 양방향 예측은 과감히 생략하고 그 다음 예측 모드(예를 들면 머지 모드)에 따른 예측을 수행하거나, 단방향 예측에 따른 예측 블록을 현재 블록에 대한 최적의 부호화로 판단하고, 단방향 예측을 예측 모드로 선정할 수도 있다.
여기서, 단방향 예측을 수행하는 단계는, 참조 픽쳐에서 현재 블록의 위치 주변에 위치한 블록의 움직임 정보를 사용하여 초기 탐색 시작 위치를 결정하는 단계, 초기 탐색 시작 위치를 기준으로 주변의 참조 블록과 현재 블록 사이의 상관도를 정수 화소 단위로 측정하여 제1 참조 블록을 획득하는 단계 및 초기 탐색 시작 위치를 기준으로 주변의 참조 블록과 현재 블록 사이의 상관도를 부화소 단위로 측정하여 제2 참조 블록을 획득하는 단계를 포함할 수 있다.
여기서, 초기 탐색 위치를 결정하는 것은 참조 픽쳐 내에서 모든 블록을 탐색할 경우 과도한 연산 복잡도를 갖기 때문에 탐색 범위를 제한하기 위한 것이다. 구체적으로, 주변 블록의 움직임 정보가 다수 존재할 경우 최소의 율-왜곡 비용을 가지는 인접 블록의 움직임 벡터를 움직임 탐색의 시작 위치로 결정할 수 있고, 주변 블록에 움직임 벡터가 존재하지 않는 경우 제로 움직임 벡터를 탐색의 시작 위치로 결정할 수 있다. 제로 움직임 벡터를 사용한다는 것은 참조 픽쳐 내에서 현재 부호화하려는 예측 유닛과 동일한 위치를 움직임 탐색의 시작 위치로 사용한다는 것을 의미할 수 있다.
여기서, 초기 탐색 위치에서 주변의 참조 블록을 탐색해나가는 과정은 마름모 탐색, 방형 탐색, 순차 탐색 등이 있을 수 있다.
여기서, 정수 화소 단위로 측정하여 제1 참조 블록을 획득하는 단계는, 현재 블록과 참조 블록의 SAD(Sum of Absolte Difference)를 측정하는 단계를 포함할 수 있다.
여기서, SAD는 다음의 수학식 1로부터 도출될 수 있다.
Figure 112017044482914-pat00001
수학식 1을 참조하면, Bcur은 현재 블록, Bref는 참조 블록을 지시하고, i,j는 현재 블록의 화소좌표, k,l은 참조 블록의 화소좌표를 지시할 수 있다.
여기서, 부화소 단위로 측정하여 제2 참조 블록을 획득하는 단계는, 현재 블록과 참조 블록의 SATD(Sum of Transform Difference)를 측정하는 단계를 포함할 수 있다.
여기서, SATD는 다음의 수학식 2로부터 도출될 수 있다.
Figure 112017044482914-pat00002
수학식 2를 참조하면, T() 연산자는 하다마드 변환(Hadamard Transfrom)을 의미할 수 있다.
여기서, 부화소 단위의 경우 부화소가 실제 존재하지는 않는 값이기 때문에 정수 화소 단위보다 정교한 고려를 위하여 수학식 1과 비교하여 하마다드 변환에 의한 변환을 추가로 적용할 수 있다. 다만, 하마다드 변환은 Descret Cosine Transform(DCT) 및 엔트로피 코딩과 동일하지는 않으나, 유사한 부호화 결과를 도출할 수 있어 사용될 수 있으며, DCT 및 엔트로피 코딩보다 연산 복잡도를 크게 감소시킬 수 있다.
여기서, 부화소 단위는 1/2 부화소 단위 및 1/4 부화소 단위 중 적어도 하나를 포함할 수 있다.
여기서, 단방향 예측을 수행하는 단계는, 제1 참조 블록과 제2 참조 블록을 비교하여 최적의 율-왜곡 비용을 갖는 블록을 현재 블록에 대한 예측 블록으로 선정하여 움직임 벡터 또는 움직임 벡터 차분값 중 적어도 하나를 포함하는 움직임 정보를 생성할 수 있다.
여기서, 현재 블록은, 화소 단위의 2N×2N, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N 블록 크기 중 적어도 하나를 포함할 수 있다.
도 7은 본 발명의 일 실시예에 따른 고속 영상 부호화 방법에 대한 제2 흐름도이다.
도 7을 참조하면, 고속 영상 부호화 장치에서의 고속 영상 부호화 방법은, 화소 단위로 2N×2N의 블록 크기를 갖는 현재 블록에 대하여 단방향 예측 및 양방향 예측을 포함하는 예측 모드 중 하나를 선정하는 단계, 선정된 예측 모드가 양방향 예측이 아니면, 양방향 예측을 제외한 나머지 예측 모드 중에서 현재 블록과 다른 크기의 블록에 대한 예측 모드를 선정하는 단계를 포함할 수 있다.
여기서, 예측 모드는 단방향 예측 및 양방향 예측을 포함할 뿐 아니라, 머지 모드를 더 포함할 수 있고, AMVP 모드를 더 포함할 수도 있다.
여기서, 현재 블록이 2N×2N의 블록 크기를 가지고, 양방향 예측을 최적의 예측 방법/모드로 선정하였다면, 현재 블록은 움직임이 많거나 복잡한 영역으로 판단될 수 있고, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N의 크기를 갖는 블록에 대해서도 움직임이 많거나 복잡한 영역일 가능성이 높으므로 양방향 예측을 고려하는 것이 타당할 수 있다.
반면, 현재 블록이 2N×2N의 블록 크기를 가지고, 양방향 예측을 최적의 예측 방법/모드로 선정하지 않은 경우, 현재 블록은 비교적 단순한 영역으로 판단될 수 있으므로, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N의 크기를 갖는 블록에 대해서 양방향 예측을 고려하지 않음으로써, 고속 부호화를 가능하게 할 수 있다.
여기서, 예측 모드를 선정하는 단계는, 현재 블록과 참조 픽쳐의 참조 블록 사이의 상관성이 가장 높은 참조 블록을 갖는 예측 모드를 선정할 수 있다.
여기서, 현재 블록과 다른 크기의 블록은, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N 중 적어도 하나의 크기를 가질 수 있다.
도 8은 본 발명의 일 실시예에 따른 고속 영상 부호화 장치에 대한 구성도이다.
도 8을 참조하면, 고속 영상 부호화 장치(20)는, 적어도 하나의 프로세서(processor, 21) 및 적어도 하나의 프로세서(21)가 적어도 하나의 단계를 수행하도록 지시하는 명령어들을 저장하는 메모리(memory, 22)를 포함할 수 있다.
여기서, 고속 영상 부호화 장치(20)는 사용자로부터 입력을 수신하고, 부호화 결과 또는 영상을 디스플레이하는 입출력모듈(23)을 더 포함할 수 있는데, 입출력모듈(23)의 예를 들면 키보드, 마우스, 디스플레이 장치 등이 있을 수 있다.
여기서, 고속 영상 부호화 장치(20)는 유무선 통신으로 부호화할 영상을 수신하거나, 부호화된 영상을 송신하는 통신 모듈(24)을 더 포함할 수 있다.
여기서, 고속 영상 부호화 장치(20)의 예를 들면, 통신 가능한 데스크탑 컴퓨터(desktop computer), 랩탑 컴퓨터(laptop computer), 노트북(notebook), 스마트폰(smart phone), 태블릿 PC(tablet PC), 모바일폰(mobile phone), 스마트 워치(smart watch), 스마트 글래스(smart glass), e-book 리더기, PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 디지털 카메라(digital camera), DMB(digital multimedia broadcasting) 재생기, 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), PDA(Personal Digital Assistant) 등일 수 있다.
여기서, 적어도 하나의 단계는, 부호화할 현재 블록에 대한 단방향 예측을 수행하는 단계, 단방향 예측에서 도출된 움직임 벡터(motion vector) 또는 움직임 벡터의 차분값(motion vector difference)이 정수 화소 단위인지 판단하는 단계 및 정수 화소 단위이면, 양방향 예측을 제외하고, 단방향 예측을 포함하는 화면 간 예측 모드 중에서, 현재 블록에 대한 예측 모드를 선정하는 단계를 포함할 수 있다.
여기서, 단방향 예측을 수행하는 단계는, 참조 픽쳐에서 현재 블록의 위치 주변에 위치한 블록의 움직임 정보를 사용하여 초기 탐색 시작 위치를 결정하는 단계, 초기 탐색 시작 위치를 기준으로 주변의 참조 블록과 현재 블록 사이의 상관도를 정수 화소 단위로 측정하여 제1 참조 블록을 획득하는 단계 및 초기 탐색 시작 위치를 기준으로 주변의 참조 블록과 현재 블록 사이의 상관도를 부화소 단위로 측정하여 제2 참조 블록을 획득하는 단계를 포함할 수 있다.
여기서, 정수 화소 단위로 측정하여 제1 참조 블록을 획득하는 단계는, 현재 블록과 참조 블록의 SAD(Sum of Absolte Difference)를 측정하는 단계를 포함할 수 있다.
여기서, 부화소 단위로 측정하여 제2 참조 블록을 획득하는 단계는, 현재 블록과 참조 블록의 SATD(Sum of Transform Difference)를 측정하는 단계를 포함할 수 있다.
여기서, 부화소 단위는, 1/2 부화소 단위 및 1/4 부화소 단위 중 적어도 하나를 포함할 수 있다.
여기서, 단방향 예측을 수행하는 단계는, 제1 참조 블록과 제2 참조 블록을 비교하여 최적의 율-왜곡 비용을 갖는 블록을 현재 블록에 대한 예측 블록으로 선정하여 움직임 벡터 또는 움직임 벡터 차분값 중 적어도 하나를 포함하는 움직임 정보를 생성할 수 있다.
여기서, 현재 블록은, 화소 단위의 2N×2N, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N 블록 크기 중 적어도 하나를 포함할 수 있다.
여기서, 적어도 하나의 단계는, 현재 블록이 화소 단위로 2N×2N의 블록 크기를 갖고, 양방향 예측을 제외한 예측 모드 중에서 현재 블록의 예측 모드가 선정된 경우, 양방향 예측을 제외한 나머지 예측 모드 중에서 현재 블록과 다른 크기의 블록에 대한 예측 모드를 선정하는 단계를 더 포함할 수 있다.
여기서, 예측 모드를 선정하는 단계는, 현재 블록과 참조 픽쳐의 참조 블록 사이의 상관성이 가장 높은 참조 블록을 갖는 예측 모드를 선정할 수 있다.
여기서, 현재 블록과 다른 크기의 블록은, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N 중 적어도 하나의 크기를 가질 수 있다.
Figure 112017044482914-pat00003
표 1은 본 발명의 일 실시예에 따른 고속 영상 부호화 방법 또는 고속 영상 부호화 장치를 수행한 실험 환경을 나타낸 표이다.
표 1을 참조하면, 실험 영상으로 각 해상도(1920×1080, 832×480, 1280×720)에 따른 영상들(BasketballDrive, ParkScene 등)을 사용하였고, 부호화한 프레임은 각 영상의 fps에 10초 분량에 대하여 수행하였으며, 참조 소프트웨어는 HEVC의 HM 15.0을 사용하였다. 양자화 매개변수로 22, 27, 32, 37을 사용하였고, 설정(Configuration)으로 Low-delay를 적용하였다.
Figure 112017044482914-pat00004
표 2는 본 발명에 따른 고속 영상 부호화 방법 및 장치를 적용할 경우(Proposed), 기존의 고속 부호화 방법인 RoIMBC를 제외한 참조 소프트웨어 HM 15.0과 비교하여 양방향 예측을 수행하는 함수(function)가 얼마나 생략되는지를 나타낸 것이다.
표 2를 참조하면, 종래 기술인 UCU-EBS(upper CU-based early bi-prediction skipping method)와도 비교하여 본 발명에 따른 고속 영상 부호화 방법 및 장치가 평균적으로 84퍼센트(%)의 불필요한 양방향 예측 과정을 생략할 수 있음을 확인할 수 있다.
Figure 112017044482914-pat00005
표 3은 본 발명에 따른 고속 영상 부호화 방법 및 장치(Proposed)와 기존 기술(UCU-EBS) 사이의 압축률 및 부호화 시간의 차이를 나타낸 실험 결과이다.
표 3을 참조하면, 각 영상 시퀀스(Sequence)에 대하여, BD-rate 측정 단위를 사용하였고, 양의 실수 값은 동일 화질 대비 필요한 비트량의 증가(압축률 손실)를 나타내고, 음의 실수값은 동일 화질 대비 필요한 비트량의 감소(압축률 이득)을 나타낸다. 본 발명에 따른 고속 영상 부호화 방법 및 장치를 사용한 경우, 부호화 시간에서 평균적으로 6퍼센트(%)가 더 감소되었음을 확인하였다.
Figure 112017044482914-pat00006
표 4는 부호화 복잡도에 치명적인 메모리 이슈를 감소시킨 기술인 RoIBMC와 비교하여 UCU-EBS 방법과 본 발명에 따른 고속 영상 부호화 방법 및 장치(Proposed)가 얼마나 메모리 접근 횟수가 감소하였는지를 나타낸 것이다.
표 4를 참조하면, 본 발명에 따른 고속 영상 부호화 방법 및 장치는 RoIBMC와 비교하여 메모리 접근이 69% 감소하였고, UCU-EBS와 비교하면 19% 더 감소하였음을 확인하였다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (20)

  1. 고속 영상 부호화 장치에서의 고속 영상 부호화 방법에서,
    부호화할 현재 블록에 대한 단방향 예측을 수행하는 단계;
    상기 단방향 예측에서 도출된 움직임 벡터(motion vector) 또는 움직임 벡터의 차분값(motion vector difference)이 정수 화소 단위인지 판단하는 단계; 및
    정수 화소 단위이면, 양방향 예측을 제외하고, 상기 단방향 예측을 포함하는 예측 모드 중에서, 상기 현재 블록에 대한 예측 모드를 선정하는 단계를 포함하고,
    상기 단방향 예측을 수행하는 단계는,
    참조 픽쳐에서 상기 현재 블록의 위치 주변에 위치한 블록의 움직임 정보를 사용하여 초기 탐색 시작 위치를 결정하는 단계;
    상기 초기 탐색 시작 위치를 기준으로 주변의 참조 블록과 상기 현재 블록 사이의 상관도를 상기 정수 화소 단위로 측정하여 제1 참조 블록을 획득하는 단계; 및
    상기 초기 탐색 시작 위치를 기준으로 주변의 참조 블록과 상기 현재 블록 사이의 상관도를 부화소 단위로 측정하여 제2 참조 블록을 획득하는 단계를 포함하는, 고속 영상 부호화 방법.
  2. 삭제
  3. 청구항 1에서,
    상기 정수 화소 단위로 측정하여 제1 참조 블록을 획득하는 단계는,
    상기 현재 블록과 상기 참조 블록의 SAD(Sum of Absolute Difference)를 측정하는 단계를 포함하는, 고속 영상 부호화 방법.
  4. 청구항 1에서,
    상기 부화소 단위로 측정하여 제2 참조 블록을 획득하는 단계는,
    상기 현재 블록과 상기 참조 블록의 SATD(Sum of Absolute Transform Difference)를 측정하는 단계를 포함하는, 고속 영상 부호화 방법.
  5. 청구항 1에서,
    상기 부화소 단위는,
    1/2 부화소 단위 및 1/4 부화소 단위 중 적어도 하나를 포함하는, 고속 영상 부호화 방법.
  6. 청구항 1에서,
    상기 단방향 예측을 수행하는 단계는,
    상기 제1 참조 블록과 상기 제2 참조 블록을 비교하여 최적의 율-왜곡 비용을 갖는 블록을 상기 현재 블록에 대한 예측 블록으로 선정하여 상기 움직임 벡터 또는 상기 움직임 벡터의 차분값 중 적어도 하나를 포함하는 움직임 정보를 생성하는 단계를 더 포함하는, 고속 영상 부호화 방법.
  7. 청구항 1에서,
    상기 현재 블록은,
    화소 단위의 2N×2N, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N 블록 크기 중 적어도 하나를 포함하는, 고속 영상 부호화 방법.
  8. 청구항 1에서,
    상기 현재 블록이 화소 단위로 2N×2N의 블록 크기를 갖고, 상기 양방향 예측을 제외한 예측 모드 중에서 상기 현재 블록의 예측 모드가 선정된 경우,
    상기 양방향 예측을 제외한 나머지 예측 모드 중에서 상기 현재 블록과 다른 크기의 블록에 대한 예측 모드를 선정하는 단계를 더 포함하는, 고속 영상 부호화 방법.
  9. 청구항 8에서,
    상기 현재 블록과 다른 크기의 블록에 대한 예측 모드를 선정하는 단계는,
    상기 현재 블록과 참조 픽쳐의 참조 블록 사이의 상관성이 가장 높은 참조 블록을 갖는 예측 모드를 선정하는, 고속 영상 부호화 방법.
  10. 청구항 8에서,
    상기 현재 블록과 다른 크기의 블록은,
    2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N 중 적어도 하나의 크기를 갖는, 고속 영상 부호화 방법.
  11. 적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서가 적어도 하나의 단계를 수행하도록 지시하는 명령어들을 저장하는 메모리를 포함하는 고속 영상 부호화 장치에서,
    상기 적어도 하나의 단계는,
    부호화할 현재 블록에 대한 단방향 예측을 수행하는 단계;
    상기 단방향 예측에서 도출된 움직임 벡터(motion vector) 또는 움직임 벡터의 차분값(motion vector difference)이 정수 화소 단위인지 판단하는 단계; 및
    정수 화소 단위이면, 양방향 예측을 제외하고, 상기 단방향 예측을 포함하는 화면 간 예측 모드 중에서, 상기 현재 블록에 대한 예측 모드를 선정하는 단계를 포함하고,
    상기 단방향 예측을 수행하는 단계는,
    참조 픽쳐에서 상기 현재 블록의 위치 주변에 위치한 블록의 움직임 정보를 사용하여 초기 탐색 시작 위치를 결정하는 단계;
    상기 초기 탐색 시작 위치를 기준으로 주변의 참조 블록과 상기 현재 블록 사이의 상관도를 상기 정수 화소 단위로 측정하여 제1 참조 블록을 획득하는 단계; 및
    상기 초기 탐색 시작 위치를 기준으로 주변의 참조 블록과 상기 현재 블록 사이의 상관도를 부화소 단위로 측정하여 제2 참조 블록을 획득하는 단계를 포함하는, 고속 영상 부호화 장치.
  12. 삭제
  13. 청구항 11에서,
    상기 정수 화소 단위로 측정하여 제1 참조 블록을 획득하는 단계는,
    상기 현재 블록과 상기 참조 블록의 SAD(Sum of Absolute Difference)를 측정하는 단계를 포함하는, 고속 영상 부호화 장치.
  14. 청구항 11에서,
    상기 부화소 단위로 측정하여 제2 참조 블록을 획득하는 단계는,
    상기 현재 블록과 상기 참조 블록의 SATD(Sum of Absolute Transform Difference)를 측정하는 단계를 포함하는, 고속 영상 부호화 장치.
  15. 청구항 11에서,
    상기 부화소 단위는,
    1/2 부화소 단위 및 1/4 부화소 단위 중 적어도 하나를 포함하는, 고속 영상 부호화 장치.
  16. 청구항 11에서,
    상기 단방향 예측을 수행하는 단계는,
    상기 제1 참조 블록과 상기 제2 참조 블록을 비교하여 최적의 율-왜곡 비용을 갖는 블록을 상기 현재 블록에 대한 예측 블록으로 선정하여 상기 움직임 벡터 또는 상기 움직임 벡터의 차분값 중 적어도 하나를 포함하는 움직임 정보를 생성하는, 고속 영상 부호화 장치.
  17. 청구항 11에서,
    상기 현재 블록은,
    화소 단위의 2N×2N, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N 블록 크기 중 적어도 하나를 포함하는, 고속 영상 부호화 장치.
  18. 청구항 11에서,
    상기 적어도 하나의 단계는,
    상기 현재 블록이 화소 단위로 2N×2N의 블록 크기를 갖고, 상기 양방향 예측을 제외한 예측 모드 중에서 상기 현재 블록의 예측 모드가 선정된 경우,
    상기 양방향 예측을 제외한 나머지 예측 모드 중에서 상기 현재 블록과 다른 크기의 블록에 대한 예측 모드를 선정하는 단계를 더 포함하는, 고속 영상 부호화 장치.
  19. 청구항 18에서,
    상기 현재 블록과 다른 크기의 블록에 대한 예측 모드를 선정하는 단계는,
    상기 현재 블록과 참조 픽쳐의 참조 블록 사이의 상관성이 가장 높은 참조 블록을 갖는 예측 모드를 선정하는, 고속 영상 부호화 장치.
  20. 청구항 18에서,
    상기 현재 블록과 다른 크기의 블록은,
    2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N 및 nR×2N 중 적어도 하나의 크기를 갖는, 고속 영상 부호화 장치.
KR1020170058195A 2016-05-10 2017-05-10 고속 영상 부호화 방법 및 장치 KR102017027B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20160057075 2016-05-10
KR1020160057075 2016-05-10

Publications (2)

Publication Number Publication Date
KR20170126817A KR20170126817A (ko) 2017-11-20
KR102017027B1 true KR102017027B1 (ko) 2019-09-02

Family

ID=60809484

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170058195A KR102017027B1 (ko) 2016-05-10 2017-05-10 고속 영상 부호화 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102017027B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013098933A (ja) * 2011-11-04 2013-05-20 Sony Corp 画像処理装置および方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101099257B1 (ko) * 2010-03-12 2011-12-27 호서대학교 산학협력단 H.264/avc에서 매크로 블록의 부호화 모드 고속 결정방법
EP3454561B1 (en) * 2011-09-14 2020-02-05 Samsung Electronics Co., Ltd. Method and device for encoding a prediction unit (pu) based on its size and corresponding decoding device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013098933A (ja) * 2011-11-04 2013-05-20 Sony Corp 画像処理装置および方法

Also Published As

Publication number Publication date
KR20170126817A (ko) 2017-11-20

Similar Documents

Publication Publication Date Title
US10779001B2 (en) Image encoding method and image decoding method
US20210160508A1 (en) Method and apparatus for encoding and decoding video using skip mode
US11647219B2 (en) Image encoding and decoding method with merge flag and motion vectors
JP6710682B2 (ja) ビデオコーディングにおける適応色変換のためのqp導出およびオフセット
JP6612767B2 (ja) 色空間変換コーディングのための量子化パラメータ
TWI718101B (zh) 調色盤模式編碼及解碼設計
US10116942B2 (en) Method and apparatus for decoding a video using an intra prediction
US9973750B2 (en) Method and device for image encoding/decoding using block split prediction
JP2019525679A (ja) クロス成分フィルタ
US20160234494A1 (en) Restriction on palette block size in video coding
JP2018520581A (ja) スライスレベルのイントラブロックコピーおよび他のビデオコーディングの改善
KR20130016172A (ko) 인터 예측 부호화된 동영상 복호화 방법
JP2014532375A (ja) ビデオコーディングにおいて適応ループフィルタとマージされたサンプル適応オフセット
KR20130085838A (ko) 가중치예측을 이용한 영상 부호화/복호화 방법 및 장치
JP7343669B2 (ja) Vvcにおける色変換のための方法及び機器
KR20130067280A (ko) 인터 예측 부호화된 동영상 복호화 방법
CN114902661A (zh) 用于跨分量线性模型预测的滤波方法和装置
KR102072124B1 (ko) 세밀한 예측 단위를 사용하는 효과적인 부호화/복호화 방법 및 장치
KR101943058B1 (ko) 영상 부호화/복호화 방법 및 장치
KR20230145002A (ko) 화면 간 예측을 이용한 영상 복호화 방법 및 장치
KR101377529B1 (ko) 적응적 움직임 벡터 부호화/복호화를 이용한 영상 부호화/복호화 방법 및 장치
KR102017027B1 (ko) 고속 영상 부호화 방법 및 장치
JP6030989B2 (ja) 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、それらのプログラム並びにプログラムを記録した記録媒体
KR20130003707A (ko) 비균등 양자화를 이용한 효과적인 부호화/복호화 방법 및 장치
KR102586198B1 (ko) 화면 간 예측을 이용한 영상 복호화 방법 및 장치

Legal Events

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