KR102327942B1 - 코딩 유닛 분할 결정 방법 및 디바이스, 컴퓨팅 디바이스 및 판독 가능한 저장 매체 - Google Patents

코딩 유닛 분할 결정 방법 및 디바이스, 컴퓨팅 디바이스 및 판독 가능한 저장 매체 Download PDF

Info

Publication number
KR102327942B1
KR102327942B1 KR1020197036795A KR20197036795A KR102327942B1 KR 102327942 B1 KR102327942 B1 KR 102327942B1 KR 1020197036795 A KR1020197036795 A KR 1020197036795A KR 20197036795 A KR20197036795 A KR 20197036795A KR 102327942 B1 KR102327942 B1 KR 102327942B1
Authority
KR
South Korea
Prior art keywords
coding unit
current coding
gradient
threshold
size
Prior art date
Application number
KR1020197036795A
Other languages
English (en)
Other versions
KR20200005653A (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 KR20200005653A publication Critical patent/KR20200005653A/ko
Application granted granted Critical
Publication of KR102327942B1 publication Critical patent/KR102327942B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

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

Abstract

본 출원은 코딩 유닛 분할 결정 방법 및 디바이스, 컴퓨팅 디바이스 및 판독 가능한 저장 매체를 개시한다. 상기 방법은, 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰지 여부를 결정하는 단계; 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰 경우, 현재 코딩 유닛의 그라디언트(gradient)를 획득하는 단계; 현재 코딩 유닛의 그라디언트가 제1 임계값보다 작은 경우, 현재 코딩 유닛에 포함된 다양한 코딩 서브 유닛의 그라디언트를 획득하는 단계; 및 다양한 코딩 서브 유닛의 그라디언트에 따라, 현재 코딩 유닛을 분할할지 여부를 결정하는 단계를 포함한다.

Description

코딩 유닛 분할 결정 방법 및 디바이스, 컴퓨팅 디바이스 및 판독 가능한 저장 매체
본 출원은 2017년 12월 14일에 출원된 "METHOD AND APPARATUS FOR DETERMINING DIVISION OF CODING UNIT, TERMINAL DEVICE, AND READABLE STORAGE MEDIUM"라는 명칭의 중국 특허 출원 제201711339827.5호에 대해 우선권을 주장하며, 그 내용 전부는 참조에 의해 본 명세서에 포함된다.
본 출원은 비디오 코딩 기술의 분야, 특히, 코딩 유닛의 분할을 결정하는 방법 및 장치, 컴퓨팅 디바이스 및 판독 가능한 저장 매체에 관한 것이다.
현재, 인터넷 및 하드웨어 디바이스의 개발로 비디오의 해상도는 점점 높아지고 있다. 2013년, 차세대 비디오 코딩 표준, 즉 HEVC(High Efficiency Video Coding) 표준은, ITU VCEG(Video Coding Experts Group) 및 ISO MPEG(Moving Picture Experts Group)에 의해 공동으로 구성된 비디오 코딩 협력 팀에 의해 연구되고 만들어진다. H.264/AVC와 비교하여, HEVC는 시각적 품질이 유사하다는 전제 하에 절반을 초과하는 레이트 비트(rate bits)를 절약한다. HEVC가 더 높은 압축 성능을 갖는 주된 이유는, HEVC가 더 큰 코드 블록 구조 및 유연한 서브 블록 분할 방식을 제공하기 때문이다. HEVC에서, 최대 코딩 유닛(Largest Coding Unit)은 재귀적으로 작은 코딩 유닛(CU)으로 분할되어, 코딩 유닛 트리(CTU) 구조를 형성할 수 있다.
그러나, 코딩 유닛 구조가 사용되는 경우, 그 크기가 최소 코딩 유닛의 크기보다 큰 각각의 코딩 유닛은 추가로 분할될 필요가 있고, 분할 후 획득한 서브 코딩 유닛의 예측 모드가 선택되기 때문에, 이러한 분할 방식에서는 연산 부하(operation load)가 매우 크고 연산 복잡도(operation complexity degree)가 높다.
본 출원은 주로, 코딩 유닛 분할 방식에서 연산 부하가 크고 연산 복잡도가 높은 관련 기술의 기술적 문제를 해결하기 위한, 코딩 유닛의 분할을 결정하는 방법 및 장치, 컴퓨팅 디바이스 및 판독 가능한 저장 매체를 제공하기 위한 것이다.
전술한 목적을 달성하기 위해, 본 출원의 제1 측면은 비디오 코딩에서 코딩 유닛의 분할을 결정하는 방법을 제공하며, 상기 코딩 유닛의 분할을 결정하는 방법은,
현재 코딩 유닛의 인트라 프레임 예측 모드(intra-frame prediction mode)가 결정된 후, 컴퓨팅 디바이스에 의해, 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰지 여부를 결정하는 단계;
현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰 경우, 컴퓨팅 디바이스에 의해, 현재 코딩 유닛의 그라디언트(gradient)를 획득하는 단계;
현재 코딩 유닛의 그라디언트가 제1 임계값보다 작은 경우, 컴퓨팅 디바이스에 의해, 현재 코딩 유닛에 포함된 서브 코딩 유닛의 그라디언트를 획득하는 단계; 및
서브 코딩 유닛의 그라디언트에 따라, 컴퓨팅 디바이스에 의해, 현재 코딩 유닛을 서브 코딩 유닛으로 분할할지 여부를 결정하는 단계; 및
현재 코딩 유닛을 서브 코딩 유닛으로 분할하는 것으로 결정된 경우, 각각의 분할된 서브 코딩 유닛에 대해 인트라 프레임 예측 모드를 선택하는 단계를 포함한다.
전술한 목적을 달성하기 위해, 본 출원의 제2 측면은 비디오 코딩에서 코딩 유닛의 분할을 결정하는 장치를 제공하며, 상기 코딩 유닛의 분할을 결정하는 장치는,
현재 코딩 유닛의 인트라 프레임 예측 모드가 결정된 후, 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰지 여부를 결정하도록 구성된 제1 결정 모듈;
현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰 경우, 현재 코딩 유닛의 그라디언트를 획득하도록 구성된 제1 획득 모듈;
현재 코딩 유닛의 그라디언트가 제1 임계값보다 작은 경우, 현재 코딩 유닛에 포함된 서브 코딩 유닛의 그라디언트를 획득하도록 구성된 제2 획득 모듈; 및
서브 코딩 유닛의 그라디언트에 따라, 서브 코딩 유닛으로 현재 코딩 유닛을 분할할지 여부를 결정하고; 현재 코딩 유닛을 서브 코딩 유닛으로 분할하는 것으로 결정된 경우, 각각의 분할된 서브 코딩 유닛에 대해 인트라 프레임 예측 모드를 선택하도록 구성된 제2 결정 모듈을 포함한다.
전술한 목적을 달성하기 위해, 본 출원의 제3 측면은, 컴퓨팅 디바이스를 제공하며, 상기 컴퓨팅 디바이스는, 메모리, 프로세서 및 메모리에 저장되고 프로세서 상에서 실행되는 컴퓨터 프로그램을 포함하고, 상기 컴퓨터 프로그램은, 프로세서에 의해 실행될 때, 본 출원의 제1 측면에 따른 코딩 유닛의 분할을 결정하는 방법의 단계를 구현한다.
전술한 목적을 달성하기 위해, 본 출원의 제4 측면은, 컴퓨터로 판독 가능한 저장 매체를 제공하며, 상기 컴퓨터로 판독 가능한 저장 매체는 컴퓨터 프로그램을 저장하고, 상기 컴퓨터 프로그램은, 프로세서에 의해 실행될 때, 본 출원의 제1 측면에 따른 코딩 유닛의 분할을 결정하는 방법의 단계를 구현한다.
본 출원은 코딩 유닛의 분할을 결정하는 방법을 제공하며, 상기 코딩 유닛의 분할을 결정하는 방법은, 컴퓨팅 디바이스에 의해, 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰지 여부를 결정하는 단계; 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰 경우, 현재 코딩 유닛의 그라디언트를 획득하는 단계; 현재 코딩 유닛의 그라디언트가 제1 임계값보다 작은 경우, 현재 코딩 유닛에 포함된 서브 코딩 유닛의 그라디언트를 획득하는 단계; 및 서브 코딩 유닛의 그라디언트에 따라, 현재 코딩 유닛을 분할할지 여부를 결정하는 단계를 포함한다. 관련 기술과 비교하여, 현재 코딩 유닛의 그라디언트 및 현재 코딩 유닛에 포함된 서브 코딩 유닛의 그라디언트에 따라, 크기가 최소 코딩 유닛의 크기보다 큰 현재 코딩 유닛을 추가로 분할할지 여부가 결정될 필요가 있어, 분할될 필요가 없는 코딩 유닛이 결정될 수 있으므로, 코딩 유닛 분할에 의한 연산량을 감소시키고 연산 복잡도를 낮출 수 있다.
본 출원의 실시 예의 기술적 해결 방안 또는 관련 기술을 보다 명확하게 설명하기 위해, 이하에서는 실시 예 또는 관련 기술을 설명하기 위해 필요한 첨부된 도면들을 간략하게 설명한다. 명백하게, 이하의 설명에서의 첨부된 도면은 본 출원의 실시 예 중 일부만을 나타내며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 창조적 노력 없이 이러한 첨부된 도면으로부터 다른 도면을 도출할 수 있다.
도 1a는 본 개시의 실시 예에 따른 코딩 유닛의 분할을 결정하는 방법을 설명하기 위한 개략 흐름도이다.
도 1b는 본 개시의 실시 예에 따른 현재 64x64 코딩 유닛의 서브 코딩 유닛을 설명하기 위한 개략도이다.
도 2는 도 1a에 도시된 실시 예의 단계 104에 대한 세부적인 단계를 설명하기 위한 개략 흐름도이다.
도 3은 도 1a에 도시된 실시 예의 단계 104에 대한 세부적인 단계를 설명하기 위한 개략 흐름도이다.
도 4는 본 개시의 실시 예에 따른 코딩 유닛의 분할을 결정하는 방법을 설명하기 위한 다른 개략 흐름도이다.
도 5는 본 개시의 실시 예에 따른 제1 임계값을 설정하기 위한 방법을 설명하기 위한 개략 흐름도이다.
도 6은 본 개시의 실시 예에 따른 현재 코딩 유닛의 인접 블록을 설명하기 위한 개략도이다.
도 7은 본 개시의 실시 예에 따른 현재 코딩 유닛을 분할하는 것을 설명하기 위한 개략 흐름도이다.
도 8은 본 개시의 실시 예에 따른 코딩 유닛의 분할을 결정하기 위한 장치의 프로그램 모듈을 설명하기 위한 개략 구조도이다.
도 9는 도 8에 도시된 실시 예의 제2 결정 모듈에 대한 세부적인 프로그램 모듈을 설명하기 위한 개략 구조도이다.
도 10은 도 8에 도시된 실시 예의 제2 결정 모듈에 대한 세부적인 프로그램 모듈을 설명하기 위한 개략 구조도이다.
도 11은 본 개시의 실시 예에 따른 코딩 유닛의 분할을 결정하는 장치의 프로그램 모듈을 설명하기 위한 다른 개략 구조도이다.
도 12는 본 개시의 실시 예에 따른 추가 프로그램 모듈을 설명하기 위한 개략 구조도이다.
도 13은 본 개시의 실시 예에 따른 컴퓨팅 디바이스을 설명하기 위한 개략 구조도이다.
본 출원의 발명의 목적, 특징 및 장점을 보다 명확하고 이해하기 쉽게 하기 위해, 이하에서는 본 출원의 실시 예의 첨부된 도면을 참조하여 본 출원의 실시 예의 기술적 해결 방안을 명확하고 완전하게 설명한다. 명백하게, 설명된 실시 예는 본 출원의 실시 예 전부가 아니고 단지 일부일 뿐이다. 창조적 노력없이, 본 출원의 실시 예에 기초하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 획득한 다른 모든 실시 예는 본 출원의 보호 범위 내에 속할 것이다.
관련 기술에서, 연산 부하가 크고 연산 복잡도가 높은 코딩 유닛 분할 방식에 기술적인 문제가 존재한다. 전술한 문제를 해결하기 위해, 본 출원은 코딩 유닛의 분할을 결정하는 방법을 제공한다. 관련 기술과 비교하여, 현재 코딩 유닛의 그라디언트 및 현재 코딩 유닛에 포함된 서브 코딩 유닛의 그라디언트에 따라, 크기가 최소 코딩 유닛의 크기보다 큰 현재 코딩 유닛을 추가로 분할할지 여부가 결정될 필요가 있어, 분할될 필요가 없는 코딩 유닛이 결정될 수 있으므로, 코딩 유닛 분할에 의한 연산량을 감소시키고 연산 복잡도를 낮출 수 있다.
도 1a는 본 출원의 일 실시 예에 따른 코딩 유닛의 분할을 결정하는 방법을 설명하기 위한 개략 흐름도이다. 상기 방법은 다음 단계를 포함한다.
단계 101. 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰지 여부를 결정한다.
HEVC에서, 매크로 블록(MB)의 개념이 확장되고, 매크로 블록은 코딩 유닛, 예측 유닛(PU) 및 변환 유닛(TU)일 수 있다. 코딩 유닛은 HEVC에서 코딩의 기본 유닛이고, 비디오 이미지의 프레임은 복수의 최대 코딩 유닛으로 분할된다. H.264/AVC에서의 16x16 매크로 블록의 고정 크기와 비교하여, HEVC의 주요 레벨에 대한 정의에서, 최대 코딩 유닛의 크기는 64x64이고, 최대 코딩 유닛은 재귀적으로 더 작은 코딩 유닛으로 더 분할될 수 있으며; 최소 코딩 유닛의 크기는 8x8이고, 다른 크기의 코딩 유닛은 32x32 및 16x16일 수 있다. HEVC는 보다 유연한 코딩 유닛 분할 방식 및 더 큰 코딩 유닛을 제공한다는 것을 알 수 있다. 이것은 다른 텍스처 영역의 코딩 속성에 적응하는 데 도움이 된다.
전술한 코딩 유닛의 분할을 결정하는 방법은 코딩 유닛의 분할을 결정하는 장치(이하에서는 간단히 결정 장치라 칭함)에 의해 구현된다. 결정 장치는 메모리에 저장되고 메모리로부터 프로세서에 의해 호출 및 실행되는 프로그램 모듈일 수 있고, 결정 장치가 속하는 컴퓨팅 디바이스는 서버일 수 있다.
본 출원의 일부 실시 예에서, 코딩 유닛의 분할을 결정하는 방법은 인트라 프레임 예측(intra-frame prediction)에 적용 가능하다는 점에 유의해야 한다. 인트라 프레임 예측은, 비디오 프레임에서 픽셀 사이의 공간적 상관(spatial correlation)을 사용하여 공간 도메인 중복을 제거하는 코딩 기술이다. HEVC에서는 33개의 방향성 예측 모드(directional prediction mode) 및 2 개의 비 방향성 예측 모드(non-directional prediction mode)를 포함하여 35개만큼의 인트라 프레임 예측 모드가 제공된다. 비 방향성 예측 모드는 모드 0(DC 모드) 및 모드 1(평면 모드)이고, 33개의 방향성 예측 모드는 모드 2 내지 35이다. 인트라 프레임 예측 코딩 프로세스에서, 현재 코딩 유닛이 분할될 필요가 있는지 여부는, 본 출원의 일부 실시 예의 코딩 유닛의 분할을 결정하는 방법을 사용함으로써 효율적으로 결정될 수 있다.
코딩 유닛의 분할을 결정하기 위한 전술한 방법은, 인트라 프레임 예측 코딩 프로세스에 적용될 수 있다. 현재 코딩 유닛의 최적의 인트라 프레임 예측 모드 및 최적의 인트라 프레임 예측 모드에 대응하는 코딩 비용 값(coding cost value)이 결정된 후, 현재 코딩 유닛이 추가로 분할될 필요가 있는지 여부는 전술한 방법을 이용하여 결정된다. 그 상세한 내용은 다음과 같다.
결정 장치는, 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰지 여부를 결정하고, 최소 코딩 유닛의 크기는 8x8이다. 또한, 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기와 같은 경우, 이는 현재 코딩 유닛이 최소 코딩 유닛이며 더 이상 분할될 수 없음을 나타낸다. 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰 경우, 이는 현재 코딩 유닛이 추가로 분할될 필요가 있는지 여부가 추가로 결정될 필요가 있음을 나타낸다.
코딩 비용 값은. 특정 인트라 프레임 예측 모드에서 코딩을 완료하기 위해 필요한 비트의 양이다. 따라서, 상이한 인트라 프레임 예측 모드는 상이한 코딩 비용 값을 갖는다.
단계 102. 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰 경우 현재 코딩 유닛의 그라디언트를 획득한다.
단계 103. 현재 코딩 유닛의 그라디언트가 제1 임계값보다 작은 경우, 현재 코딩 유닛에 포함된 서브 코딩 유닛의 그라디언트를 획득한다.
단계 104. 서브 코딩 유닛의 그라디언트에 따라 현재 코딩 유닛을 분할할지 여부를 결정한다.
본 출원의 일부 실시 예에서, 결정 장치는, 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰 경우 현재 코딩 유닛의 그라디언트를 획득한다.
현재 코딩 유닛의 더 큰 그라디언트는, 현재 코딩 유닛의 덜 부드러운(less smooth) 이미지 컨텐츠 및 더 큰 분할 가능성을 나타낸다. 현재 코딩 유닛의 더 작은 그라디언트는, 현재 코딩 유닛의 더 부드러운(more smooth) 내용 및 더 작은 분할 가능성을 나타낸다. 따라서, 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰 경우, 현재 코딩 유닛의 그라디언트는 제1 임계값과 비교되어, 분할이 수행될 필요가 있는지 여부를 초기에 결정한다. 현재 코딩 유닛의 그라디언트가 제1 임계값보다 작은 경우, 현재 코딩 유닛에 포함된 서브 코딩 유닛의 그라디언트가 획득되어, 분할이 수행될 필요가 있는지 여부를 추가로 결정한다. 현재 코딩 유닛의 그라디언트가 제1 임계값보다 크거나 같으면, 현재 코딩 유닛이 분할될 필요가 있는 것으로 결정된다.
제1 임계값은 미리 설정될 수 있거나 계산될 수 있다. 이는 후속 실시 예에서 상세하게 설명되고, 여기에서는 설명되지 않는다.
단계 103에서 현재 코딩 유닛이 분할되지 않고, 서브 코딩 유닛은 단지 현재 코딩 유닛의 크기에 기초하여 가정된 유닛이라는 점에 유의해야 한다. 서브 코딩 유닛의 수량은 4이다. 예를 들어, 현재 코딩 유닛의 크기가 64x64인 경우, 이는 현재 코딩 유닛이 4개의 32x32 서브 코딩 유닛으로 분할될 수 있음을 나타낼 수 있다. 그러나, 이 경우 현재 코딩 유닛은 실제로 분할되지 않는다. 도 1b는 본 개시의 일 실시 예에 따른 현재 64x64 코딩 유닛의 서브 코딩 유닛을 설명하기 위한 개략도이다. 4개의 32x32 블록은 서브 코딩 유닛이다.
그라디언트는, 수평 방향, 수직 방향, 왼쪽 아래 방향 및 오른쪽 아래 방향과 같은 방향을 따라 획득한 픽셀의 밝기 값에 대한 방향 미분(directional derivative)이다. 서브 코딩 유닛의 그라디언트는 그라디언트 알고리즘을 사용하여 계산될 수 있고, 예를 들어, 소벨 알고리즘(Sobel algorithm)을 사용하여 계산될 수 있거나 다른 방법을 사용하여 계산될 수 있다. 다른 방법은, 서브 코딩 유닛의 모든 또는 일부 픽셀 포인트의 수평 1차원 그라디언트 및 수직 1차원 그라디언트의 합을 계산하고, 그 합을 서브 코딩 유닛의 그라디언트로서 사용하는 단계; 또는 서브 코딩 유닛의 모든 또는 일부 픽셀 포인트의 다중 방향을 따라 그라디언트의 합을 계산하고, 그 합을 서브 코딩 유닛의 그라디언트로서 사용하는 단계를 포함한다.
결정 장치는, 서브 코딩 유닛의 그라디언트에 따라, 현재 코딩 유닛을 분할할지 여부를 결정한다. 관련 기술에서, 크기가 최소 코딩 유닛의 크기보다 큰 현재 코딩 유닛은 모두 분할되는 것으로 이해될 수 있다. 그러나, 본 출원의 일부 실시 예에서, 현재 코딩 유닛의 그라디언트가 제1 임계값보다 작은 경우, 현재 코딩 유닛을 분할할지 여부는 서브 코딩 유닛의 그라디언트에 따라 추가로 결정될 수 있다. 현재 코딩 유닛이 분할될 필요가 있는 것으로 결정되면, 현재 코딩 유닛은 분할된다. 현재 코딩 유닛이 분할될 필요가 없는 것으로 결정되면, 현재 코딩 유닛은 분할되지 않는다. 따라서, 분할될 필요가 없는 몇몇의 현재 코딩 유닛은 반드시 존재하므로, 코딩 유닛 분할의 연산량 및 연산 복잡도는 효과적으로 감소될 수 있다. 예를 들어, 관련 기술에서, 크기가 최소 코딩 유닛의 크기보다 큰 코딩 유닛에 대해, 이러한 타입의 코딩 유닛의 수량이 100이면, 분할을 수행하는 횟수는 100이다. 그러나, 본 출원의 일부 실시 예에서, 크기가 최소 코딩 유닛의 크기보다 큰 코딩 유닛에 대해, 이러한 타입의 코딩 유닛의 수량이 100이면, 코딩 유닛에 포함된 서브 코딩 유닛의 그라디언트에 따라, 코딩 유닛 중 60 개는 분할될 필요가 있고, 40 개는 분할될 필요가 없으므로, 분할은 60번만 수행될 필요가 있으며, 코딩 유닛 분할에 의한 연산량이 감소될 수 있고, 분할 횟수가 감소함에 따라 연산 복잡성이 감소될 수 있다.
본 출원의 일부 실시 예에서, 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰지 여부가 결정되고; 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰 경우, 현재 코딩 유닛의 그라디언트가 획득되고; 현재 코딩 유닛의 그라디언트가 제1 임계값보다 작은 경우, 현재 코딩 유닛에 포함된 서브 코딩 유닛의 그라디언트가 획득되고; 서브 코딩 유닛의 그라디언트에 따라, 현재 코딩 유닛을 분할할지 여부가 결정된다. 관련 기술과 비교하여, 현재 코딩 유닛의 그라디언트 및 현재 코딩 유닛에 포함된 서브 코딩 유닛의 그라디언트에 따라, 크기가 최소 코딩 유닛의 크기보다 큰 현재 코딩 유닛을 추가로 분할할지 여부가 결정될 필요가 있어, 분할될 필요가 없는 코딩 유닛이 결정될 수 있으므로, 코딩 유닛 분할에 의한 연산량을 감소시키고 연산 복잡도를 낮출 수 있다.
본 출원의 일부 실시 예에서, 서브 코딩 유닛의 그라디언트에 따라, 현재 코딩 유닛을 분할할지 여부를 결정하는 복수의 방식이 존재한다. 이 중 2 가지 방식이 아래에서 설명된다. 방식 중 하나에 대해서는 도 2를 참조할 수 있다. 도 2는 도 1a에 도시된 실시 예에서의 단계 104에 대한 세부적인 단계를 설명하기 위한 개략 흐름도이다. 단계 104는 다음을 포함할 수 있다.
단계 201. 서브 코딩 유닛의 그라디언트의 합이 제2 임계값보다 큰 경우, 서브 코딩 유닛에서 그라디언트가 제3 임계값 이하인 서브 코딩 유닛의 제1 수량을 결정하고; 단계 202 또는 단계 203을 수행한다.
단계 202. 제1 수량이 제4 임계값보다 크거나 같은 경우, 현재 코딩 유닛을 분할하는 것으로 결정한다.
단계 203. 제1 수량이 제4 임계값보다 작은 경우, 현재 코딩 유닛을 분할하지 않는 것으로 결정한다.
본 출원의 일부 실시 예에서, 제1 임계값 및 제2 임계값이 설정되고, 제1 임계값은 제2 임계값보다 크다. 제1 임계값은 현재 코딩 유닛의 그라디언트와 비교되기 위해 사용되고, 현재 코딩 유닛의 그라디언트가 제1 임계값보다 작은 경우, 현재 코딩 유닛에 포함된 서브 코딩 유닛의 그라디언트의 합은 제2 임계값과 비교되어, 현재 코딩 유닛이 분할될 필요가 있는지 여부를 결정한다. 일부 실시 예에서, 같은 코딩 유닛에 대해, 코딩 유닛의 그라디언트는 코딩 유닛의 서브 코딩 유닛의 그라디언트의 합과 같다.
현재 코딩 유닛의 그라디언트가 제1 임계값보다 작고, 서브 코딩 유닛의 그라디언트의 합이 제2 임계값보다 큰 경우, 결정 장치는, 서브 코딩 유닛에서 그라디언트가 제3 임계값 이하인 서브 코딩 유닛의 제1 수량을 졀정한다.
또한, 본 실시 예에서의 본 출원의 일부 실시 예에서, 서브 코딩 유닛의 그라디언트의 합이 제2 임계값보다 작거나 같을 때, 이 경우 현재 코딩 유닛은 분할될 필요가 없는 것으로 결정될 수 있다.
서브 코딩 유닛의 그라디언트의 합이 작을수록 현재 코딩 유닛의 더 부드러운 이미지 컨텐츠 및 현재 코딩 유닛을 추가로 분할할 가능성이 더 낮음을 나타내고; 서브 코딩 유닛의 그라디언트의 합이 클수록 현재 코딩 유닛의 덜 부드러운 이미지 컨텐츠 및 현재 코딩 유닛을 추가로 분할할 가능성이 더 높음을 나타냄을 유의해야 한다. 따라서, 본 출원의 일부 실시 예에서, 제1 임계값 및 제2 임계값을 설정함으로써, 분할이 수행될 필요가 있는지 여부를 결정하는 3 가지 경우가 있을 수 있다. 현재 코딩 유닛의 그라디언트가 제1 임계값보다 크거나 같은 경우, 현재 코딩 유닛의 이미지 컨텐츠는 부드럽지 않음을 나타낸다. 이 경우, 현재 코딩 유닛이 분할될 필요가 있다는 것으로 결정된다. 서브 코딩 유닛의 그라디언트의 합이 제2 임계값보다 작은 다른 경우, 현재 코딩 유닛의 이미지 컨텐츠는 부드러움을 나타낸다. 이 경우, 현재 코딩 유닛을 분할하지 않는 것으로 결정한다. 마지막 경우는 현재 코딩 유닛의 그라디언트가 제1 임계값보다 작고, 서브 코딩 유닛의 그라디언트의 합이 제2 임계값보다 큰 경우이다. 이 경우, 제1 임계값 및 제2 임계값은, 서브 코딩 유닛들간에 비교적 큰 차이가 있을 수 있음을 고려하여 설정되므로, 현재 코딩 유닛이 분할될 필요가 있는지 여부는 전술한 제1 수량에 기초하여 추가로 결정된다.
서브 코딩 유닛의 수량이 일반적으로 4인 것을 고려하면, 제4 임계값은 1, 2 또는 3으로 설정될 수 있으며, 다양한 실시 예에서 1임을 이해할 수 있다. 4 개의 서브 코딩 유닛의 그라디언트의 합이 제1 임계값보다 작고 제2 임계값보다 큰 경우, 그리고 제1 수량이 제4 임계값보다 크거나 같은 경우, 이는 그라디언트 차이가 비교적 큰 서브 코딩 유닛이 존재함을 나타내며, 이는 현재 코딩 유닛의 이미지 컨텐츠가 균일하게 부드럽게 되지 않음, 즉 일부 영역은 매끄럽고 일부 영역은 매끄럽지 않음을 나타낸다. 비트 레이트를 감소시키기 위해, 현재 코딩 유닛은 분할될 필요가 있는 것으로 결정된다. 제1 수량이 제4 임계값보다 작은 경우, 이는 그라디언트 차이가 비교적 큰 서브 코딩 유닛이 존재하지 않음을 나타내며, 따라서 현재 코딩 유닛은 분할될 필요가 없는 것으로 결정된다.
전술한 제3 임계값은 비교적 작은 값일 수 있으며, 예를 들어, 값은 0에 접근하거나 0과 같다.
서브 코딩 유닛의 그라디언트의 합은, 제1 임계값보다 작고 제2 임계값보다 크다는 조건을 만족해야 함을 유의해야 한다. 해당 조건이 충족되는 경우에만, 제1 수량에 기초하여, 현재 코딩 유닛이 추가로 분할될 필요가 있는지 여부가 결정될 수 있다. 조건이 만족되면, 그라디언트가 제3 임계값보다 작거나 같은 서브 코딩 유닛의 제1 수량은 4가 될 수 없으므로(제1 수량이 4인 경우, 이는 4개의 서브 코딩 유닛의 그라디언트가 모두 매우 작음을 나타내며, 실제로 코딩 유닛은 이 경우에 분할될 필요가 없고, 4 개의 서브 코딩 유닛의 그라디언트의 합은 제1 임계 값보다 크다), 현재 코딩 유닛은 옳지 않은 결정으로 인해 분할되지 않을 것이다.
본 출원의 일부 실시 예에서, 현재 코딩 유닛의 그라디언트가 제1 임계값보다 작고, 서브 코딩 유닛의 그라디언트의 합이 제2 임계값보다 큰 경우, 현재 코딩 유닛이 분할될 필요가 있는지 여부는, 현재 코딩 유닛의 서브 코딩 유닛의 그라디언트에 따라 추가로 결정된다. 이는 코딩 유닛 분할의 연산 부하 및 연산 복잡도를 감소시킬 수 있을 뿐만 아니라, 코딩 유닛의 구조에 대해, 그리고 최적의 인트라 프레임 예측 모드의 선택에 대해, 서브 코딩 유닛의 그라디언트 차이의 영향을 충분히 고려하여(현재 코딩 유닛이 복수의 서브 코딩 유닛으로 분할된 후, 서브 코딩 유닛의 최적의 인트라 프레임 예측 모드는 다를 수 있거나, 현재 코딩 유닛의 최적의 인트라 프레임 예측 모드와 다를 수 있기 때문), 코딩이 더 잘 구현될 수 있으므로, 비트 레이트는 더 감소한다.
서브 코딩 유닛의 그라디언트에 따라, 현재 코딩 유닛을 분할할지 여부를 결정하는 다른 방식에 대해서는 도 3을 참조할 수 있다. 도 3은 도 1a에 도시된 실시 예에서의 단계 104에 대한 세부적인 단계를 설명하기 위한 개략 흐름도이다. 단계 104는 다음을 포함할 수 있다.
단계 301. 서브 코딩 유닛의 그라디언트의 합이 제2 임계값보다 큰 경우, 서브 코딩 유닛의 그라디언트에서 최대 그라디언트 대 0이 아닌 최소 그라디언트의 비율이 제5 임계값보다 크거나 같은지 여부를 결정하고; 단계 302 또는 단계 303을 수행한다.
단계 302. 비율이 제5 임계값보다 크거나 같은 경우, 현재 코딩 유닛을 분할하는 것으로 결정한다.
단계 303. 비율이 제5 임계값보다 작은 경우, 현재 코딩 유닛을 분할하지 않는 것으로 결정한다.
본 출원의 일부 실시 예에서, 현재 코딩 유닛의 그라디언트가 제1 임계값보다 작고, 서브 코딩 유닛들의 그라디언트가 제2 임계값보다 큰 경우, 현재 코딩 유닛이 추가로 분할될 필요가 있는 여부를 결정하기 위해, 그라디언트 차이가 비교적 큰 서브 코딩 유닛이 존재하는지 여부는 다른 방식으로 추가로 결정될 수 있다. 상세한 내용은 다음과 같다. 결정 장치는, 서브 코딩 유닛의 그라디언트에서 최대 그라디언트 대 0이 아닌 최소 그라디언트의 비율이 제5 임계값보다 크거나 같은지 여부를 결정한다. 비율이 제5 임계값보다 크거나 같은 경우, 이는 최대 그라디언트의 서브 코딩 유닛 내지 0이 아닌 최소 그라디언트의 서브 코딩 유닛 사이의 그라디언트 차이가 상대적으로 크다는 것을 나타낸다. 비트 레이트를 감소시키기 위해, 현재 코딩 유닛은 분할될 필요가 있는 것으로 결정된다. 비율이 제5 임계값보다 작은 경우, 이는 최대 그라디언트의 서브 코딩 유닛 내지 0이 아닌 최소 그라디언트의 서브 코딩 유닛 사이의 그라디언트 차이가 작음을 나타내고, 현재 코딩 유닛은 분할될 필요가 없는 것으로 결정된다.
본 출원의 일부 실시 예에서, 현재 코딩 유닛의 그라디언트가 제1 임계값보다 작고, 서브 코딩 유닛의 그라디언트의 합의 합이 제2 임계값보다 큰 경우, 현재 코딩 유닛이 분할될 필요가 있는지 여부는, 현재 코딩 유닛의 서브 코딩 유닛의 그라디언트에 따라 추가로 결정된다. 이것은 코딩 유닛 분할의 연산 부하 및 연산 복잡도를 감소시킬 수 있을뿐 아니라, 코딩 유닛의 구조에 대해, 그리고 최적의 인트라 프레임 예측 모드의 선택에 대해, 서브 코딩 유닛의 그라디언트 차이의 영향을 충분히 고려하여, 코딩이 더 잘 구현될 수 있으므로, 비트 레이트는 더 감소한다.
도 1a에 도시된 실시 예에 기초하여, 도 4룰 참조할 수 있다. 도 4는 본 출원의 일 실시 예에 따른 코딩 유닛의 분할을 결정하는 방법을 설명하기 위한 다른 개략 흐름도이다. 상기 방법은 다음 단계를 포함한다.
단계 401. 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰지 여부를 결정한다.
단계 402. 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰 경우, 현재 코딩 유닛에 포함된 최소 코딩 유닛의 그라디언트를 계산하고, 최소 코딩 유닛의 그라디언트의 합을 현재 코딩 유닛의 그라디언트로서 사용하고; 단계 403 또는 단계 404를 수행한다.
단계 403. 현재 코딩 유닛의 그라디언트가 제1 임계값보다 크거나 같은 경우, 현재 코딩 유닛을 분할하는 것으로 결정한다.
단계 404. 현재 코딩 유닛의 그라디언트가 제1 임계값보다 작은 경우, 현재 코딩 유닛에 포함된 서브 코딩 유닛의 그라디언트를 획득한다.
단계 405. 서브 코딩 유닛의 그라디언트에 따라, 현재 코딩 유닛을 분할할지 여부를 결정한다.
단계 401은, 도 1a에 도시된 실시 예의 단계 101에서 설명된 내용과 유사하다는 점에 유의해야 한다. 이것은 여기서 다시 설명되지 않는다. 또한, 단계 405에 대해서는, 도 2 및 도 3의 세부적인 단계의 내용을 참조할 수 있고, 단계 104에 대해서는 도 1a의 세부적인 단계의 내용을 참조할 수 있다. 이것은 여기서 다시 설명되지 않는다.
본 출원의 일부 실시 예에서, 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰 것으로 결정된 경우, 결정 장치는, 현재 코딩 유닛에 포함된 최소 코딩 유닛의 그라디언트를 계산하고, 최소 코딩 유닛의 그라디언트의 합을 현재 코딩 유닛의 그라디언트로서 사용한다. 예를 들어, 현재 코딩 유닛의 크기는 16x16이고 4개의 8x8 최소 코딩 유닛을 포함하고, 4개의 최소 코딩 유닛의 그라디언트가 각각 a, b, c 및 d이면 현재 코딩 유닛의 그라디언트는 a+b+c+d이다.
또한, 결정 장치는, 현재 코딩 유닛의 그라디언트가 제1 임계값보다 크거나 같은지 여부를 결정하고; 현재 코딩 유닛의 그라디언트가 제1 임계값보다 크거나 같은 경우, 현재 코딩 유닛이 분할될 필요가 있는 것으로 결정하거나; 또는 현재 코딩 유닛의 그라디언트가 제1 임계값보다 작은 경우, 결정 장치는, 현재 코딩 유닛의 서브 코딩 유닛의 그라디언트에 따라, 현재 코딩 유닛이 분할될 필요가 있는지 여부를 추가로 결정한다.
본 출원의 일부 실시 예에서, 현재 코딩 유닛이 분할될 필요가 있는지 여부는, 현재 코딩 유닛의 그라디언트에 따라 먼저 결정됨을 이해할 수 있다. 현재 코딩 유닛이 분할될 필요가 없는 것으로 초기에 결정되는 경우, 분할 결정의 정확도를 더욱 향상시키기 위해, 현재 코딩 유닛이 분할될 필요가 있는지 여부는 서브 코딩 유닛의 그라디언트에 따라 다시 결정된다. 이를 통해 연산 부하 및 복잡도를 감소시킬 수 있을뿐 아니라 보다 적절한 분할을 구현할 수 있다.
전술한 제1 임계값은 현재 코딩 유닛의 인접 블록과 관련될 수 있음에 유의해야 한다. 도 5는 본 출원의 일 실시 예에 따라 제1 임계값을 설정하기 위한 방법을 설명하기 위한 개략 흐름도이다. 상기 방법은 다음 단계를 포함한다.
단계 501. 현재 코딩 유닛의 인접 블록의 제2 수량을 획득하되, 인접 블록의 크기는 현재 코딩 유닛의 크기와 동일하다.
전술한 제2 수량을 획득한 후, 제2 수량에 따라 제1 임계값이 설정된다. 구체적으로, 단계 502 또는 단계 503이 수행된다.
단계 502. 제2 수량이 제6 임계값보다 작은 경우, 제1 임계값을 미리 설정된 값으로 설정한다.
단계 503. 제2 수량이 제6 임계값과 같은 경우, 현재 코딩 유닛의 크기보다 크거나 같은 크기의 코딩 유닛에 속하는 타깃 인접 블록이 인접 블록에 존재하는지 여부를 결정한다.
단계 504. 타깃 인접 블록이 존재하는 경우, 타깃 인접 블록이 속하는 코딩 유닛의 그라디언트에 따라 제1 임계값을 설정한다.
단계 505. 타깃 인접 블록이 존재하지 않는 경우, 제1 임계값을 0으로 설정한다.
제1 임계값의 설정은, 제1 임계값을 사용하기 전에 결정될 수 있는데, 즉, 제1 임계값은, 현재 코딩 유닛의 그라디언트가 제1 임계값보다 크거나 같은지 여부가 결정되기 전에 설정된다. 또한, 상이한 현재 코딩 유닛에 대해, 현재 코딩 유닛에 대응하는 제1 임계값이 모두 결정된다.
현재 코딩 유닛의 인접 블록은, 현재 코딩 유닛의 왼쪽 위의 블록, 위의 블록, 오른쪽 위의 블록, 및 왼쪽의 블록이다. 도 6은 본 출원의 일 실시 예에 따른 현재 코딩 유닛의 인접 블록을 설명하기 위한 개략도이다. curr는 현재 코딩 유닛을 나타내고, aboveleft는 왼쪽 위의 블록을 나타내고, above는 위의 블록을 나타내고, aboveright는 오른쪽 위의 블록을 나타내고, left는 왼쪽의 블록을 나타낸다.
현재 코딩 유닛의 인접 블록의 크기는 현재 코딩 유닛의 크기와 동일하다. 예를 들어, 현재 코딩 유닛의 크기가 32x32이면, 인접한 블록은 32x32의 크기에 기초하여 현재 코딩 유닛 주위에서 결정된다. 인접한 블록은 코딩 유닛일 수 있거나, 복수의 코딩 유닛일 수 있거나, 코딩 유닛의 일부에 추가로 속할 수 있음에 유의해야 한다. 예를 들어, 현재 코딩 유닛의 크기가 32x32인 경우, 현재 코딩 유닛의 왼쪽 위의 블록은 64x64 코딩 유닛에 속하고, 현재 코딩 유닛의 위의 블록은 4 개의 16x16 코딩 유닛이고, 오른쪽 위의 블록은 32x32 코딩 유닛이다.
일부 현재 코딩 유닛에 대해, 4 개의 인접한 블록이 현재 코딩 유닛에 대해 결정될 수 있다는 것이 이해될 수 있다. 일부 현재 코딩 유닛에 대해, 현재 코딩 유닛들이 위치하는 특별한 위치로 인해, 결정된 인접 블록의 수량은 4보다 적을 수 있고, 따라서 현재 코딩 유닛의 인접 블록의 제2 수량을 먼저 획득한다.
또한, 제2 수량이 제6 임계값보다 작은지 여부가 결정된다. 예를 들어, 값은 4일 수 있고, 4가 제6 임계값보다 작으면, 제1 임계값은 미리 설정된 값으로 설정된다. 미리 설정된 값은 고정 임계값이다. 제1 임계값이 미리 설정된 값일 때, 제2 임계값은 다른 미리 설정된 값일 수 있고, 제1 임계값은 제2 임계값보다 큰 값으로 유지되는 것으로 이해될 수 있다.
제2 수량이 제6 임계값과 같은 경우, 제1 임계값은 인접 블록이 속하는 코딩 유닛의 크기 및 현재 코딩 유닛의 크기에 따라 설정된다. 상세한 내용은 다음과 같다. 결정 장치는, 인접 블록이 속하는 코딩 유닛의 크기를 결정하고, 코딩 유닛에 속하고, 크기가 현재 코딩 유닛의 크기보다 크거나 같은 타깃 인접 블록이 인접 블록에 존재하는 지 여부를 결정하고; 타깃 인접 블록이 존재하는 경우, 타깃 인접 블록이 속하는 코딩 유닛의 그라디언트에 기초하여 전술한 제1 임계값을 설정한다. 예를 들어, 현재 코딩 유닛 P의 크기가 32x32이면, 현재 코딩 유닛 P의 왼쪽 위 블록은 64x64 코딩 유닛 A의 일부에 속하고, 현재 코딩 유닛 P 위의 블록은 4개의 16x16 코딩 유닛 B이고, 현재 코딩 유닛 P의 오른쪽 위 블록은 32x32 코딩 유닛 C이고, 현재 코딩 유닛 P의 왼쪽 블록은 16개의 8x8 코딩 유닛 D이다. 따라서, 코딩 유닛 A의 크기는 현재 코딩 유닛 P의 크기보다 크고, 코딩 유닛 C의 크기는 코딩 유닛 P의 크기와 동일하고, 전술한 제1 임계값은 코딩 유닛 A의 그라디언트 및 코딩 유닛 C의 그라디언트에 기초하여 설정된다. 예를 들어, 코딩 유닛 A의 그라디언트 및 코딩 유닛 C의 그라디언트의 평균값이 계산되고, 평균값 및 미리 설정된 계수의 곱이 전술한 제1 임계값으로서 사용되고, 전술한 제1 임계값이 설정된다. 또한, 이러한 방식으로 제1 임계값을 설정한 후, 제1 임계값과 미리 설정된 인터벌(interval) 값의 차이를 계산할 수 있다. 그 차이가 0보다 크면, 이 차이가 제2 임계값으로 사용된다. 그 차이가 0보다 작으면 제2 임계값은 0으로 설정된다.
타깃 인접 블록이 없으면, 제1 임계값은 0으로 설정된다. 이 경우, 제2 임계값도 0으로 설정된다.
제1 임계값은 현재 코딩 유닛의 그라디언트와 비교하기 위해 사용된다는 점에 유의해야 한다. 인접 블록에 기초하여 제1 임계값을 설정하는 경우, 크기가 현재 코딩 유닛보다 크거나 같은 코딩 유닛에 속하는 타깃 인접 블록을 먼저 결정한 후, 타깃 인접 블록이 속하는 코딩 유닛의 그라디언트의 평균 값에 기초하여 제1 임계값을 설정한다. 제1 임계값은 분할될 필요가 없는 코딩 유닛의 그라디언트의 최대 값을 나타내기 위해 사용된다. 따라서, 타깃 인접 블록이 존재하는 경우, 이는 현재의 코딩 유닛 주위에 더 큰 크기를 갖는 코딩 유닛이 존재하고 더 이상 분할되지 않음을 나타낸다. 더 큰 크기를 갖는 코딩 유닛이 분할되지 않는다는 전제에서, 현재 코딩 유닛이 추가로 분할될 필요가 없을 가능성이 있다. 따라서, 현재 코딩 유닛의 그라디언트가 제1 임계값보다 크거나 같은 경우, 이는 현재 코딩 유닛의 그라디언트가, 분할될 필요가 없는 현재 코딩 유닛의 최대 값보다 크거나 같음을 나타내고, 현재 코딩 유닛이 추가로 분할될 필요가 있는 것으로 직접 결정될 수 있다. 현재 코딩 유닛의 그라디언트가 제1 임계값보다 작은 경우, 현재 코딩 유닛은 추가로 분할될 필요가 없을 비교적 높은 가능성이 있는 것으로 결정될 수 있다. 따라서, 제1 임계값은, 타깃 인접 블록이 속하는 코딩 유닛의 그라디언트에 기초하여 설정되어, 현재 코딩 유닛을 분할할 것인지 여부를 결정하는 정밀도를 효과적으로 향상시킬 수 있다. 또한, 타깃 인접 블록이 존재하지 않는 경우, 현재 코딩 유닛 주위의 코딩 유닛은 모두 그 크기가 현재 코딩 유닛의 크기보다 작다는 코딩 유닛이라는 것을 나타낸다. 이 경우, 분할 수행 여부를 결정하는 정확성을 보장하기 위해, 제1 임계값은 0으로 설정되어, 현재 코딩 유닛의 그라디언트가 반드시 제1 임계값(0)보다 크거가 같고, 현재 코딩 유닛은 반드시 분할될 필요가 있다.
본 출원의 일부 실시 예에서, 현재 코딩 유닛이 분할될 필요가 있는지 여부는, 현재 코딩 유닛의 그라디언트 및 현재 코딩 유닛의 서브 코딩 유닛의 그라디언트를 참조하여 결정된다. 이것은 코딩 유닛 분할의 연산 부하 및 연산 복잡도를 감소시킬 수 있을뿐 아니라, 코딩 유닛의 구조에 대해, 그리고 최적의 인트라 프레임 예측 모드의 선택에 대해, 서브 코딩 유닛의 그라디언트 차이의 영향을 충분히 고려하여, 코딩이 더 잘 구현될 수 있으므로, 비트 레이트는 더 감소한다. 또한, 현재 코딩 유닛의 인접 블록에 기초하여 제1 임계값을 설정함으로써, 현재 코딩 유닛의 제1 임계값 및 그라디언트에 따라, 현재 코딩 유닛이 분할될 필요가 있는지 여부를 결정하기 위해, 현재 코딩 유닛이 보다 적절하게 분할될 수 있도록, 결정이 효과적으로 개선될 수 있다.
본 출원의 일부 실시 예에서, 현재 코딩 유닛이 분할될 필요가 없는 것으로 결정된 경우, 현재 코딩 유닛의 최적의 인트라 프레임 예측 모드가 출력되어, 최적의 인트라 프레임 예측 모드를 사용하여 현재 코딩 유닛을 코딩하고; 현재 코딩 유닛이 분할될 필요가 있는 경우, 분할 동작이 수행된다. 도 7은 본 출원의 일 실시 예에 따라 현재 코딩 유닛을 분할하는 것을 설명하기 위한 개략 흐름도이다. 도 7에 도시된 방법은 다음을 포함한다.
단계 701. 현재 코딩 유닛을 복수의 서브 코딩 유닛으로 분할한다.
단계 702. 복수의 서브 코딩 유닛에 대한 최적의 인트라 프레임 예측 모드를 각각 선택하고, 복수의 서브 코딩 유닛의 코딩 비용 값을 계산하고; 단계 703 또는 단계 704를 수행한다.
단계 703. 복수의 서브 코딩 유닛의 코딩 비용 값의 합이 현재 코딩 유닛의 코딩 비용 값보다 크거나 같은 경우, 현재 코딩 유닛의 분할을 취소하고, 현재 코딩 유닛의 코딩 비용 값 및 최적의 인트라 프레임 예측 모드를 출력한다.
단계 704. 복수의 서브 코딩 유닛의 코딩 비용 값의 합이 현재 코딩 유닛의 코딩 비용 값보다 작은 경우, 복수의 서브 코딩 유닛의 코딩 비용 값 및 선택된 최적의 인트라 프레임 예측 모드를 출력한다.
도 7에 도시된 실시 예에서 설명된 내용은 도 2, 도 3 및 도 4에 적용될 수 있음을 이해할 수 있다.
본 출원의 일부 실시 예에서, 현재 코딩 유닛이 분할될 필요가 있는 것으로 결정될 때, 결정 장치는 현재 코딩 유닛을 복수의 서브 코딩 유닛으로 분할한다. 예를 들어, 크기가 64x64인 코딩 유닛은 4개의 32x32 서브 코딩 유닛으로 분할될 수 있다.
또한, 서브 코딩 유닛마다 최적의 인트라 프레임 예측 모드가 각각 선택되고, 최적의 인트라 프레임 예측 모드에 대응하는 코딩 비용 값이 계산된다. 서브 코딩 유닛의 최적의 인트라 프레임 예측 모드를 선택하고 실제 응용 동안 코딩 비용 값을 계산하는 복수의 방식이 존재한다. 예를 들어, 모든 인트라 프레임 예측 모드에서 서브 코딩 유닛의 코딩 비용 값이 각각 계산되고, 코딩 비용 값이 최소인 예측 모드가 서브 코딩 유닛의 최적의 인트라 프레임 예측 모드로서 사용되며, 즉, 서브 코딩 유닛의 최적의 인트라 프레임 예측 모드는, 복수의 인트라 프레임 예측 모드에서 코딩 비용이 가장 낮은 인트라 프레임 예측 모드이다. 실제 적용 중, 특정 요구에 기초하여 최적의 인트라 프레임 예측 모드를 선택하는 방법이 선택될 수 있다. 이것은 여기에서 설명되지 않는다.
복수의 서브 코딩 유닛의 코딩 비용 값의 합이 계산된다. 합이 현재 코딩 유닛의 코딩 비용 값보다 크거나 같으면, 이는 현재 코딩 유닛을 코딩하는데 필요한 비용이 현재 코딩 유닛의 서브 코딩 유닛을 코딩하는데 필요한 비용보다 작음을 나타내고, 따라서 현재 코딩 유닛의 분할은 취소되고 현재 코딩 유닛의 최적의 인트라 프레임 예측 모드가 출력되므로, 현재 코딩 유닛은 최적의 인트라 프레임 예측 모드에 기초하여 코딩될 수 있다. 현재 코딩 유닛의 코딩 비용 값은 또한 현재 코딩 유닛의 최적의 인트라 프레임 예측 모드를 선택하는 프로세스에서 계산된다는 점을 유의해야 한다.
복수의 서브 코딩 유닛의 코딩 비용 값의 합이 현재 코딩 유닛의 코딩 비용 값보다 작은 경우, 이는 여기에서의 분할이 코딩 비용을 감소시킬 수 있음을 나타내고, 복수의 서브 코딩 유닛의 코딩 비용 값 및 대응하는 최적의 인트라 프레임 예측 모드가 출력된다.
본 출원의 일부 실시 예에서, 분할 후 복수의 서브 코딩 유닛의 코딩 비용 값의 합이 현재 코딩 유닛의 코딩 비용 값보다 작은 경우, 그것은 현재 코딩 유닛에 대해 수행된 분할이 적절함을 나타내는 것으로 이해될 수 있다. 이 경우, 현재 코딩 유닛의 최적의 인트라 프레임 예측 모드 및 코딩 비용 값은 폐기된다. 대신, 서브 코딩 유닛이 트래버스(traverse)되고, 트래버스된 서브 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰지 여부가 결정된다. 트래버스된 서브 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰 경우, 트래버스된 서브 코딩 유닛은 전술한 현재 코딩 유닛으로서 사용되고, 도 1a에 도시된 실시 예의 단계 101은 여전히 수행된다. 트래버스된 서브 코딩 유닛의 크기가 최소 코딩 유닛의 크기와 같은 경우, 이는 현재 코딩 유닛이 추가로 분할될 필요가 없으며, 서브 코딩 유닛은, 현재 코딩 유닛의 코딩을 구현하기 위해, 서브 코딩 유닛의 최적의 인트라 프레임 예측 모드를 사용하여 코딩될 수 있음을 나타낸다. 분할 후 복수의 서브 코딩 유닛의 코딩 비용 값의 합이 현재 코딩 유닛의 코딩 비용 값보다 크거나 같은 경우, 이는 현재 코딩 유닛에 대해 수행된 분할이 부적절함을 나타낸다. 이 경우, 현재 코딩 유닛의 분할이 취소되고, 현재 코딩 유닛의 최적의 인트라 프레임 예측 모드를 이용하여 현재 코딩 유닛이 코딩된다. 전술한 방식으로, 분할을 통해 최적의 유닛 구조 및 최적의 인트라 프레임 예측 모드를 획득할 수 있어, 비트 레이트를 효과적으로 감소시킬 수 있다.
본 출원의 본 실시 예에서, 현재 코딩 유닛이 분할될 필요가 있는 것으로 결정될 때, 분할 후 획득한 현재 코딩 유닛의 복수의 서브 코딩 유닛의 코딩 비용 값의 합은, 현재 코딩 유닛의 코딩 비용 값과 비교되고, 코딩 비용 값의 합의 최소값에 대응하는 방식이 출력되어, 코딩 유닛이 보다 적절하게 분할될 수 있으므로, 코딩 비용이 감소된다.
도 8은 본 출원의 일 실시 예에 따른 코딩 유닛의 분할을 결정하는 장치의 프로그램 모듈을 설명하기 위한 개략 구조도이다. 상기 장치는,
현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰지 여부를 결정하도록 구성된 제1 결정 모듈(801);
현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰 경우, 현재 코딩 유닛의 그라디언트를 획득하도록 구성된 제1 획득 모듈(802);
현재 코딩 유닛의 그라디언트가 제1 임계값보다 작은 경우, 현재 코딩 유닛에 포함된 서브 코딩 유닛의 그라디언트를 획득하도록 구성된 제2 획득 모듈(803); 및
서브 코딩 유닛의 그라디언트에 따라, 현재 코딩 유닛을 분할할지 여부를 결정하도록 구성된 제2 결정 모듈(804)을 포함한다.
HEVC에서, 매크로 블록(MB)의 개념이 확장되고, 매크로 블록은 코딩 유닛, 예측 유닛(PU) 및 변환 유닛(TU)을 포함한다. 코딩 유닛은 HEVC에서 코딩의 기본 유닛이고, 비디오 이미지의 프레임은 복수의 가장 큰 코딩 유닛으로 분할된다. H.264/AVC에서 16x16 매크로 블록의 고정 크기와 비교하여 HEVC의 주요 수준 정의에서 가장 큰 코딩 유닛의 크기는 64x64이며 가장 큰 코딩 유닛은 더 작은 코딩으로 재귀적으로 나눌 수 있으며; 최소 코딩 유닛의 크기는 8x8이고, 다른 크기의 코딩 유닛은 32x32 및 16x16 일 수 있다. HEVC는보다 유연한 코딩 유닛 분할 방식 및 더 큰 코딩 유닛을 제공한다는 것을 알 수 있다. 이것은 다른 텍스처 영역의 코딩 속성에 적응하는 데 도움이 된다.
본 출원의 일부 실시 예에서, 코딩 유닛의 분할을 결정하는 장치는 인트라 프레임 예측에 적용 가능하다는 점에 유의해야 한다. 인트라 프레임 예측은, 비디오 프레임에서 픽셀 사이의 공간적 상관을 사용하여 공간 도메인 중복을 제거하는 코딩 기술이다. HEVC에서는 33개의 방향성 예측 모드 및 2 개의 비 방향성 예측 모드를 포함하여 35개만큼의 인트라 프레임 예측 모드가 제공된다. 비 방향성 예측 모드는 모드 0(DC 모드) 및 모드 1(평면 모드)이고, 33개의 방향성 예측 모드는 모드 2 내지 35이다.
본 출원의 일부 실시 예에서, 현재 코딩 유닛에 대해 최적의 인트라 프레임 예측 모드가 선택될 필요가 있으며, 현재 코딩 유닛의 코딩 비용이 계산된다. 현재 코딩 유닛이 추가로 분할될 수 있는지 여부를 확정하기 위해, 결정 장치는 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰지 여부를 결정하고, 최소 코딩 유닛의 크기는 8x8이다. 또한, 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기와 같은 경우, 이는 현재 코딩 유닛이 최소 코딩 유닛이며 더 이상 분할될 수 없음을 나타낸다. 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰 경우, 이는 현재 코딩 유닛이 추가로 분할될 필요가 있는지 여부가 추가로 결정될 필요가 있음을 나타낸다.
서브 코딩 유닛의 그라디언트는 그라디언트 알고리즘을 사용하여 계산될 수 있고, 예를 들어, 소벨 알고리즘을 사용하여 계산될 수 있거나, 서브 코딩 유닛의 모든 또는 일부 픽셀 포인트의 수평 1차원 그라디언트 및 수직 1차원 그라디언트의 합을 계산하거나, 서브 코딩 유닛의 모든 또는 일부 픽셀 포인트의 다중 그라디언트의 합을 계산하는 것과 같은 다른 방법을 사용하여 계산될 수 있음에 유의해야 한다.
본 출원의 일부 실시 예에서, 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰지 여부가 결정되고; 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰 경우, 현재 코딩 유닛의 그라디언트가 획득되고; 현재 코딩 유닛의 그라디언트가 제1 임계값보다 작은 경우, 현재 코딩 유닛에 포함된 서브 코딩 유닛의 그라디언트가 획득되고; 서브 코딩 유닛의 그라디언트에 따라, 현재 코딩 유닛을 분할할지 여부가 결정된다. 관련 기술과 비교하여, 현재 코딩 유닛의 그라디언트 및 현재 코딩 유닛에 포함된 서브 코딩 유닛의 그라디언트에 따라, 크기가 최소 코딩 유닛의 크기보다 큰 현재 코딩 유닛을 추가로 분할할지 여부가 결정될 필요가 있어, 분할될 필요가 없는 코딩 유닛이 결정될 수 있으므로, 코딩 유닛 분할에 의한 연산량을 감소시키고 연산 복잡도를 낮출 수 있다.
도 9는 본 출원의 실시 예에 따른 도 8에 도시된 실시 예에서의 제2 결정 모듈(804)의 상세한 프로그램 모듈을 설명하기 위한 개략 구조도이다. 제2 결정 모듈(804)은,
서브 코딩 유닛의 그라디언트의 합이 제2 임계값보다 큰 경우, 서브 코딩 유닛에서 그라디언트가 제3 임계값 이하인 서브 코딩 유닛의 제1 수량을 결정하도록 구성된 수량 결정 모듈(901) - 여기서, 제1 임계값은 제2 임계값보다 큼 -;
제1 수량이 제4 임계값보다 크거나 같은 경우, 현재 코딩 유닛을 분할하는 것으로 결정하도록 구성된 제3 결정 모듈(902); 및
제1 수량이 제4 임계값보다 작은 경우, 현재 코딩 유닛을 분할하지 않는 것으로 결정하도록 구성된 제4 결정 모듈(903)을 포함한다.
전술한 모듈과 관련된 내용에 대해서는, 구체적으로 도 2에 도시된 실시 예를 참조하는 것으로 이해될 수 있다. 이것은 여기서 다시 설명되지 않는다.
본 출원의 일부 실시 예에서, 현재 코딩 유닛이 분할될 필요가 있는지 여부는, 현재 코딩 유닛의 서브 코딩 유닛의 그라디언트에 따라 추가로 결정된다. 이것은 코딩 유닛 분할의 연산 부하 및 연산 복잡도를 감소시킬 수 있을뿐 아니라, 코딩 유닛의 구조에 대해, 그리고 최적의 인트라 프레임 예측 모드의 선택에 대해, 서브 코딩 유닛의 그라디언트 차이의 영향을 충분히 고려하여, 코딩이 더 잘 구현될 수 있으므로, 비트 레이트는 더 감소한다.
도 10은 본 출원의 실시 예에 따른 도 8에 도시된 실시 예에서의 제2 결정 모듈(804)의 상세한 프로그램 모듈을 설명하기 위한 개략 구조도이다. 제2 결정 모듈(804)은,
서브 코딩 유닛의 그라디언트의 합이 제2 임계값보다 큰 경우, 서브 코딩 유닛의 그라디언트에서 최대 그라디언트 대 0이 아닌 최소 그라디언트의 비율이 제5 임계값보다 크거나 같은지 여부를 결정하도록 구성된 제5 결정 모듈(100); 및
비율이 제5 임계값보다 크거나 같은 경우, 현재 코딩 유닛을 분할하는 것으로 결정하도록 구성된 제6 결정 모듈(1002); 및
비율이 제5 임계값보다 작은 경우, 현재 코딩 유닛을 분할하지 않는 것으로 결정하도록 구성된 제7 결정 모듈(1003)을 포함한다.
전술한 모듈과 관련된 내용에 대해서는, 구체적으로 도 3에 도시된 실시 예를 참조하는 것으로 이해될 수 있다. 이것은 여기서 다시 설명되지 않는다.
본 출원의 일부 실시 예에서, 현재 코딩 유닛이 분할될 필요가 있는지 여부는, 현재 코딩 유닛의 서브 코딩 유닛의 그라디언트에 따라 추가로 결정된다. 이것은 코딩 유닛 분할의 연산 부하 및 연산 복잡도를 감소시킬 수 있을뿐 아니라, 코딩 유닛의 구조에 대해, 그리고 최적의 인트라 프레임 예측 모드의 선택에 대해, 서브 코딩 유닛의 그라디언트 차이의 영향을 충분히 고려하여, 코딩이 더 잘 구현될 수 있으므로, 비트 레이트는 더 감소한다.
도 11은 본 출원의 일 실시 예에 따른 코딩 유닛의 분할을 결정하는 장치의 프로그램 모듈을 설명하기 위한 개략 구조도이다. 장치는 도 8에 도시된 실시 예에서 제1 결정 모듈(801), 제1 획득 모듈(802), 제2 획득 모듈(803) 및 제2 결정 모듈(804)을 포함하며, 일부 실시 예에서 설명된 내용은 도 8에 도시된 실시 예에서 설명된 내용과 유사하다. 이것은 여기서 다시 설명되지 않는다.
제1 획득 모듈(802)은 구체적으로, 현재 코딩 유닛에 포함된 최소 코딩 유닛의 그라디언트를 계산하고; 최소 코딩 유닛의 그라디언트의 합을 현재 코딩 유닛의 그라디언트로 사용한다.
본 출원의 본 실시 예에서, 코딩 유닛의 분할을 결정하는 장치는,
현재 코딩 유닛의 인접 블록의 제2 수량을 획득하도록 구성된 수량 획득 모듈(1101) - 여기서, 인접 블록의 크기는 현재 코딩 유닛의 크기와 동일함 -; 및
제2 수량에 따라 제1 임계값을 설정하도록 구성된 임계값 설정 모듈(1102)을 더 포함한다.
임계값 설정 모듈(1102)은 제1 설정 모듈(1103) 및 제2 설정 모듈(1104)을 포함한다.
제1 설정 모듈(1103)은, 제2 수량이 제6 임계값보다 작은 경우, 제1 임계값을 미리 설정된 값으로 설정하도록 구성된다.
제2 설정 모듈(1104)은, 제2 수량이 제6 임계값과 같은 경우, 인접 블록이 속하는 코딩 유닛의 크기 및 현재 코딩 유닛의 크기에 따라 제1 임계값을 설정하도록 구성된다.
제2 설정 모듈(1104)은 제8 결정 모듈(1105), 제3 설정 모듈(1106) 및 제4 설정 모듈(1107)을 포함한다.
제8 결정 모듈(1105)은, 현재 코딩 유닛의 크기보다 크거나 같은 크기의 코딩 유닛에 속하는 타깃 인접 블록이 인접 블록에 존재하는지 여부를 결정하도록 구성된다.
제3 설정 모듈(1106)은, 타깃 인접 블록이 존재하는 경우, 타깃 인접 블록이 속하는 코딩 유닛의 그라디언트에 따라 제1 임계값을 설정하도록 구성된다.
제4 설정 모듈(1107)은, 타깃 인접 블록이 존재하지 않는 경우, 제1 임계값을 0으로 설정하도록 구성된다.
전술한 모듈과 관련된 내용에 대해서는, 구체적으로 도 3에 도시된 실시 예를 참조하는 것으로 이해될 수 있다. 이것은 여기서 다시 설명되지 않는다.
본 출원의 일부 실시 예에서, 현재 코딩 유닛이 분할될 필요가 있는지 여부는, 현재 코딩 유닛의 그라디언트 및 현재 코딩 유닛의 서브 코딩 유닛의 그라디언트를 참조하여 결정된다. 이것은 코딩 유닛 분할의 연산 부하 및 연산 복잡도를 감소시킬 수 있을뿐 아니라, 코딩 유닛의 구조에 대해, 그리고 최적의 인트라 프레임 예측 모드의 선택에 대해, 서브 코딩 유닛의 그라디언트 차이의 영향을 충분히 고려하여, 코딩이 더 잘 구현될 수 있으므로, 비트 레이트는 더 감소한다. 또한, 현재 코딩 유닛의 인접 블록에 기초하여 제1 임계값을 설정함으로써, 현재 코딩 유닛의 제1 임계값 및 그라디언트에 따라, 현재 코딩 유닛이 분할될 필요가 있는지 여부를 결정하기 위해, 현재 코딩 유닛이 보다 적절하게 분할될 수 있도록, 결정이 효과적으로 개선될 수 있다.
도 12는 본 출원의 일 실시 예에 따른 추가 프로그램 모듈을 설명하기 위한 개략 구조도이다. 추가 프로그램 모듈은, 현재 코딩 유닛이 분할될 필요가 있는 것으로 결정될 때 현재 코딩 유닛을 분할하도록 구성된다. 추가 프로그램 모듈은,
현재 코딩 유닛을 복수의 서브 코딩 유닛으로 분할하도록 구성된 분할 모듈(1201);
복수의 서브 코딩 유닛에 대한 최적의 인트라 프레임 예측 모드를 각각 선택하고; 복수의 서브 코딩 유닛의 코딩 비용 값을 계산하도록 구성된 선택 및 계산 모듈(1202);
복수의 서브 코딩 유닛의 코딩 비용 값의 합이 현재 코딩 유닛의 코딩 비용 값보다 크거나 같은 경우, 현재 코딩 유닛의 분할을 취소하고; 현재 코딩 유닛의 최적의 인트라 프레임 예측 모드를 출력하도록 구성된 취소 및 출력 모듈(1203); 및
복수의 서브 코딩 유닛의 코딩 비용 값의 합이 현재 코딩 유닛의 코딩 비용 값보다 작은 경우, 복수의 서브 코딩 유닛의 코딩 비용 값 및 선택된 최적의 인트라 프레임 예측 모드를 출력 하도록 구성된 출력 모듈(1204)을 포함한다.
본 출원의 일부 실시 예에서, 현재 코딩 유닛이 분할될 필요가 있는 것으로 결정될 때, 분할 후 획득한 현재 코딩 유닛의 복수의 서브 코딩 유닛의 코딩 비용 값의 합은, 현재 코딩 유닛의 코딩 비용 값과 비교되고, 코딩 비용 값의 합의 최소값에 대응하는 방식이 출력되어, 코딩 유닛이 보다 적절하게 분할될 수 있으므로, 코딩 비용이 감소된다.
본 출원의 일 실시 예는 컴퓨팅 디바이스를 추가로 제공하며, 상기 컴퓨팅 디바이스는 메모리, 프로세서 및 메모리에 저장되고 프로세서 상에서 실행되는 컴퓨터 프로그램을 포함하고, 컴퓨터 프로그램은, 프로세서에 의해 실행될 때, 도 1a 내지 도 5 또는 도 7에 도시된 실시 예 중 어느 하나의 코딩 유닛의 분할을 결정하는 방법의 단계들을 구현한다.
본 출원의 일 실시 예는 컴퓨터 프로그램을 저장하는 판독 가능한 저장 매체를 추가로 제공하며, 컴퓨터 프로그램은, 프로세서에 의해 실행될 때, 도 1a 내지 도 5 또는 도 7에 도시된 실시 예 중 어느 하나의 코딩 유닛의 분할을 결정하는 방법의 단계들을 구현한다.
본 출원의 일부 실시 예에서, 전술한 코딩 유닛의 분할을 결정하는 장치는 컴퓨팅 디바이스인 것으로 이해될 수 있다. 컴퓨팅 디바이스는 구체적으로 서버일 수 있다. 본 출원의 일부 실시 예에서의 기술적 해결 방안을 더 잘 이해하기 위해, 도 13을 참조할 수 있다. 도 13은 본 출원의 일 실시 예에 따른 컴퓨팅 디바이스(130)을 설명하기 위한 개략 구조도이다. 컴퓨팅 디바이스(130)는 프로세서(1301), 메모리(1302) 및 트랜시버(1303)를 포함한다. 메모리(1302)는 ROM(read-only memory) 및 RAM(random access memory)을 포함할 수 있고, 동작 명령 및 데이터를 프로세서(1301)에 제공할 수 있다. 메모리(1302)의 일부는 비 휘발성 RAM(NVRAM)을 더 포함할 수 있다.
일부 구현에서, 메모리(1302)는 다음 요소: 실행 가능 모듈, 또는 데이터 구조, 또는 그 서브 세트, 또는 그 확장 세트를 저장한다.
본 출원의 일부 실시 예에서, 메모리(1302)에 저장된 동작 명령(동작 명령은 운영 체제에 저장될 수 있음)을 호출함으로써 다음의 프로세스가 수행된다. 현재 코딩 유닛의 최적의 인트라 프레임 예측 모드 이후, 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰지 여부가 결정되고; 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰 경우 현재 코딩 유닛의 그라디언트가 획득되고; 현재 코딩 유닛에 포함된 서브 코딩 유닛의 그라디언트는, 현재 코딩 유닛의 그라디언트가 제1 임계값보다 작은 경우 획득되고; 서브 코딩 유닛의 그라디언트에 따라, 현재 코딩 유닛을 분할할지 여부가 결정된다.
본 출원의 본 실시 예에서 제공되는 컴퓨팅 디바이스에 따르면, 모든 코딩 유닛이 분할되는 관련 기술의 방식과 비교하여, 크기가 최소 코딩 유닛의 크기보다 큰 현재 코딩 유닛을 추가로 분할할지 여부는, 현재 코딩 유닛의 그라디언트 및 현재 코딩 유닛에 포함된 서브 코딩 유닛의 그라디언트에 따라 결정될 필요가 있어, 분할될 필요가 없는 코딩 유닛이 결정될 수 있으므로, 코딩 유닛 분할에 의한 연산량을 감소시키고 및 연산 복잡도를 감소시킬 수 있다.
프로세서(1301)는 컴퓨팅 디바이스(130)의 동작을 제어하며, 프로세서(1301)는 중앙 처리 장치(Central Processing Unit, CPU)로 지칭될 수도 있다. 메모리(1302)는 ROM 및 RAM을 포함할 수 있고, 명령 및 데이터를 프로세서(1301)에 제공한다. 메모리(1302)의 일부는 NVRAM을 더 포함할 수 있다. 특정 응용 중, 컴퓨팅 디바이스(130)의 모든 컴포넌트는 버스 시스템(1304)을 사용하여 연결되며, 데이터 버스 외에, 버스 시스템(1304)은 전원 버스, 제어 버스, 상태 신호 버스 등을 더 포함할 수 있다. 그러나, 명확한 설명을 위해, 도면에서 다양한 타입의 버스가 버스 시스템(1304)으로 표시되어 있다.
본 출원의 전술한 실시 예에 개시된 방법은 프로세서(1301)에 적용될 수 있거나, 프로세서(1301)에 의해 구현될 수 있다. 프로세서(1301)는 신호 처리 능력을 갖는 집적 회로 칩일 수 있다. 일 구현 프로세스에서, 전술한 방법의 단계는, 프로세서(1301)의 하드웨어 집적 논리 회로를 사용하거나, 소프트웨어 형태의 명령을 사용함으로써 구현될 수 있다. 프로세서(1301)는 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 또는 다른 프로그램 가능한 로직 디바이스, 이산 게이트 또는 트랜지스터 로직 디바이스 또는 이산 하드웨어 어셈블리일 수 있다. 프로세서(1301)는 본 출원의 실시 예에 개시된 방법, 단계 및 논리 블록도를 구현 또는 수행할 수 있다. 범용 프로세서는 마이크로 프로세서일 수 있거나, 프로세서는 임의의 종래의 프로세서 등일 수 있다. 본 출원의 실시 예를 참조하여 개시된 방법들의 단계들은 하드웨어 디코딩 프로세서를 사용하여 직접 수행되고 완료될 수 있거나, 또는 디코딩 프로세서에서 하드웨어 및 소프트웨어 모듈의 조합을 사용하여 수행되고 완료될 수 있다. 소프트웨어 모듈은 RAM, 플래시 메모리, ROM, 프로그램 가능한 ROM, 전기적으로 소거가능하고 프로그램가능한 메모리, 또는 레지스터와 같은 해당 기술 분야의 성숙한(mature) 저장 매체에 위치할 수 있다. 저장 매체는 메모리(1302)에 위치하고, 프로세서(1301)는 메모리(1302)에서 정보를 판독하고 프로세서의 하드웨어와 조합하여 전술한 방법의 단계들을 완료한다.
컴퓨팅 디바이스(130)의 이해를 위해, 도 1a 내지 도 7의 실시 예의 설명을 참조한다. 이것은 여기서 다시 설명되지 않는다.
본 출원에 제공된 몇몇의 실시 예에서, 개시된 장치 및 방법은 다른 방식으로 구현될 수 있음을 이해해야 한다. 예를 들어, 설명된 장치 실시 예는 단지 예일 뿐이다. 예를 들어, 모듈의 분할은 단지 논리적 기능 분할 일 뿐이며, 실제 구현 동안 다른 분할 방식일 수 있다. 예를 들어, 복수의 모듈 또는 구성 요소가 다른 시스템에 결합 또는 통합될 수 있거나, 일부 특징이 무시되거나 또는 수행되지 않을 수 있다. 또한, 디스플레이되거나 논의된 상호 결합 또는 직접 결합 또는 통신 연결은 일부 인터페이스를 사용하여 구현될 수 있다. 장치 또는 모듈 사이의 간접 결합 또는 통신 연결은 전자적, 기계적 또는 다른 형태로 구현될 수 있다.
개별적인 부분으로 기술된 모듈은 물리적으로 분리되거나 분리되지 않을 수 있고, 모듈로서 디스플레이 된 부분은 물리적 모듈일 수 있거나 아닐 수 있거나, 한 지점에 위치할 수 있거나, 또는 복수의 네트워크 모듈에 분산될 수 있다. 모듈의 일부 또는 전부는 실시 예의 해결 방안의 목적을 달성하기 위한 실제 요구에 따라 선택될 수 있다.
또한, 본 출원의 실시 예에서의 기능적 모듈은 하나의 처리 모듈에 통합될 수 있거나, 또는 각각의 모듈은 물리적으로 단독으로 존재할 수 있거나, 또는 둘 이상의 모듈은 하나의 모듈에 통합될 수 있다. 통합 모듈은 하드웨어 형태로 구현될 수 있거나, 소프트웨어 기능 모듈 형태로 구현될 수 있다.
통합 모듈이 소프트웨어 기능 모듈의 형태로 구현되어 독립적인 제품으로서 판매 또는 사용되는 경우, 통합 모듈은 컴퓨터로 판독 가능한 저장 매체에 저장될 수 있다. 이러한 이해에 기초하여, 본 출원의 기술적 해결 방안은 본질적으로, 또는 관련 기술에 기여하는 부분, 또는 기술적 해결 방안의 전부 또는 일부는 소프트웨어 제품의 형태로 구현될 수 있다. 컴퓨터 소프트웨어 제품은 저장 매체에 저장되고, 컴퓨터 디바이스(개인용 컴퓨터, 서버 또는 네트워크 디바이스일 수 있음)가 본 출원의 실시 예에서 설명된 방법의 단계 전부 또는 일부를 수행하도록 지시하기 위한 몇 가지 명령을 포함한다. 전술한 저장 매체는 USB 플래시 드라이브, 이동식 하드 디스크, ROM, RAM, 자기 디스크 또는 광 디스크와 같은 프로그램 코드를 저장할 수 있는 임의의 매체를 포함한다.
간단한 설명을 위해, 전술한 방법 실시 예는 일련의 동작으로 표현된다는 점을 유의해야 한다. 그러나, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는, 본 출원에 따라 일부 단계들이 다른 순서로 또는 동시에 수행될 수 있기 때문에, 본 출원이 설명된 동작 순서에 제한되지 않음을 이해해야 한다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는, 본 명세서에서 설명된 실시 예는 모두 바람직한 실시 예에 속하며, 동작 및 모듈이 본 출원에 반드시 필요한 것은 아니라는 점을 또한 이해해야 한다.
전술한 실시 예에서, 각 실시 예의 설명은 각각의 초점을 갖는다. 실시 예에서 상세하게 설명되지 않은 부분에 대해서는, 다른 실시 예의 관련 설명을 참조할 수 있다.
본 출원에서 제공되는 코딩 유닛의 분할을 결정하는 방법 및 장치, 컴퓨팅 디바이스 및 판독 가능한 저장 매체가 상술되었다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 출원의 실시 예의 사상에 따라 특정 구현 및 적용 범위를 변경할 수 있다. 결론적으로, 본 명세서의 내용은 본 출원의 제한으로 해석되어서는 안된다.

Claims (15)

  1. 비디오 코딩에서 코딩 유닛의 분할을 결정하는 방법으로서,
    현재 코딩 유닛의 인트라 프레임 예측 모드(intra-frame prediction mode)가 결정된 후, 컴퓨팅 디바이스에 의해, 상기 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰지 여부를 결정하는 단계;
    상기 현재 코딩 유닛의 크기가 상기 최소 코딩 유닛의 크기보다 큰 경우, 상기 컴퓨팅 디바이스에 의해, 상기 현재 코딩 유닛의 그라디언트(gradient)를 획득하는 단계;
    상기 현재 코딩 유닛의 그라디언트가 제1 임계값보다 크거나 같으면 상기 현재 코딩 유닛을 분할하도록 결정하는 단계;
    상기 현재 코딩 유닛의 상기 그라디언트가 상기 제1 임계값보다 작은 경우, 상기 컴퓨팅 디바이스에 의해, 상기 현재 코딩 유닛에 포함된 서브 코딩 유닛들의 그라디언트를 획득하는 단계 - 서브 코딩 유닛은 상기 현재 코딩 유닛의 크기에 기초하여 가정되는 유닛임 -;
    상기 컴퓨팅 디바이스가, 상기 현재 코딩 유닛에 포함된 상기 서브 코딩 유닛들에서 제3 임계값보다 작거나 같은 그라디언트를 갖는 서브 코딩 유닛들의 제1 수량에 따라, 상기 현재 코딩 유닛에 포함된 상기 서브 코딩 유닛들의 그라디언트의 합이 제2 임계값보다 크면 상기 현재 코딩 유닛을 분할할지 여부를 결정하거나, 또는 상기 컴퓨팅 디바이스가, 상기 현재 코딩 유닛에 포함된 상기 서브 코딩 유닛들의 그라디언트에서 최대 그라디언트 대 0이 아닌 최소 그라디언트의 비율에 따라, 상기 현재 코딩 유닛에 포함된 상기 서브 코딩 유닛들의 그라디언트의 합이 상기 제2 임계값보다 크면 상기 현재 코딩 유닛을 분할할지 여부를 결정하는 단계 - 상기 제1 임계값은 상기 제2 임계값보다 큼 -; 및
    상기 현재 코딩 유닛을 분할하는 것으로 결정된 경우, 각각의 분할된 서브 코딩 유닛들에 대해 인트라 프레임 예측 모드를 선택하는 단계를 포함하는
    코딩 유닛의 분할을 결정하는 방법.
  2. 제1항에 있어서,
    상기 컴퓨팅 디바이스가, 상기 현재 코딩 유닛에 포함된 상기 서브 코딩 유닛들에서 제3 임계값보다 작거나 같은 그라디언트를 갖는 서브 코딩 유닛들의 제1 수량에 따라, 상기 현재 코딩 유닛을 분할할지 여부를 결정하는 것은,
    상기 컴퓨팅 디바이스에 의해, 상기 서브 코딩 유닛들에서 그라디언트가 상기 제3 임계값 이하인 서브 코딩 유닛들의 상기 제1 수량을 결정하는 단계; 및
    상기 제1 수량이 제4 임계값보다 크거나 같은 경우, 상기 컴퓨팅 디바이스에 의해, 상기 현재 코딩 유닛을 분할하는 것으로 결정하는 단계; 또는
    상기 제1 수량이 상기 제4 임계값보다 작은 경우, 상기 컴퓨팅 디바이스에 의해, 상기 현재 코딩 유닛을 분할하지 않는 것으로 결정하는 단계를 포함하는, 코딩 유닛의 분할을 결정하는 방법.
  3. 제1항에 있어서,
    상기 컴퓨팅 디바이스가, 상기 현재 코딩 유닛에 포함된 상기 서브 코딩 유닛들의 그라디언트에서 최대 그라디언트 대 0이 아닌 최소 그라디언트의 비율에 따라, 상기 현재 코딩 유닛을 분할할지 여부를 결정하는 것은,
    상기 컴퓨팅 디바이스에 의해, 상기 서브 코딩 유닛들의 상기 그라디언트에서 상기 최대 그라디언트 대 상기 0이 아닌 최소 그라디언트의 상기 비율이 제5 임계값보다 크거나 같은지 여부를 결정하는 단계; 및
    상기 비율이 상기 제5 임계값보다 크거나 같은 경우, 상기 컴퓨팅 디바이스에 의해, 상기 현재 코딩 유닛을 분할하는 것으로 결정하는 단계; 또는
    상기 비율이 상기 제5 임계값보다 작은 경우, 상기 컴퓨팅 디바이스에 의해, 상기 현재 코딩 유닛을 분할하지 않는 것으로 결정하는 단계를 포함하는, 코딩 유닛의 분할을 결정하는 방법.
  4. 제1항에 있어서,
    상기 컴퓨팅 디바이스에 의해, 상기 현재 코딩 유닛의 상기 그라디언트를 획득하는 단계는,
    상기 컴퓨팅 디바이스에 의해, 상기 현재 코딩 유닛에 포함된 최소 코딩 유닛들의 그라디언트를 계산하고, 상기 최소 코딩 유닛들의 상기 그라디언트의 합을 상기 현재 코딩 유닛의 상기 그라디언트로서 사용하는 단계를 포함하는, 코딩 유닛의 분할을 결정하는 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 컴퓨팅 디바이스에 의해, 상기 현재 코딩 유닛의 인접 블록들의 제2 수량을 획득하는 단계 - 여기서, 상기 인접 블록들의 크기는 상기 현재 코딩 유닛의 크기와 동일함 -; 및
    상기 컴퓨팅 디바이스에 의해, 상기 제2 수량에 따라 상기 제1 임계값을 설정하는 단계를 더 포함하는 코딩 유닛의 분할을 결정하는 방법.
  6. 제5항에 있어서,
    상기 컴퓨팅 디바이스에 의해, 상기 제2 수량에 따라 상기 제1 임계값을 설정하는 단계는,
    상기 제2 수량이 제6 임계값보다 작은 경우, 상기 컴퓨팅 디바이스에 의해, 상기 제1 임계값을 미리 설정된 값으로 설정하는 단계; 및
    상기 제2 수량이 상기 제6 임계값과 같은 경우, 상기 컴퓨팅 디바이스에 의해, 상기 인접 블록들 중 하나가 속하는 코딩 유닛의 크기 및 상기 현재 코딩 유닛의 크기에 따라 상기 제1 임계값을 설정하는 단계를 포함하는, 코딩 유닛의 분할을 결정하는 방법.
  7. 제6항에 있어서,
    상기 컴퓨팅 디바이스에 의해, 상기 인접 블록들 중 하나가 속하는 상기 코딩 유닛의 크기 및 상기 현재 코딩 유닛의 크기에 따라 상기 제1 임계값을 설정하는 단계는,
    상기 컴퓨팅 디바이스에 의해, 상기 현재 코딩 유닛의 크기보다 크거나 같은 크기의 코딩 유닛에 속하는 타깃 인접 블록이 상기 인접 블록들에 존재하는지 여부를 결정하는 단계; 및
    상기 타깃 인접 블록이 존재하는 경우, 상기 컴퓨팅 디바이스에 의해, 상기 타깃 인접 블록이 속하는 상기 코딩 유닛의 그라디언트에 따라 상기 제1 임계값을 설정하는 단계; 또는
    상기 타깃 인접 블록이 존재하지 않는 경우, 상기 컴퓨팅 디바이스에 의해, 상기 제1 임계값을 0으로 설정하는 단계를 포함하는, 코딩 유닛의 분할을 결정하는 방법.
  8. 비디오 코딩에서 코딩 유닛의 분할을 결정하는 장치로서,
    현재 코딩 유닛의 인트라 프레임 예측 모드가 결정된 후, 상기 현재 코딩 유닛의 크기가 최소 코딩 유닛의 크기보다 큰지 여부를 결정하도록 구성된 제1 결정 모듈;
    상기 현재 코딩 유닛의 크기가 상기 최소 코딩 유닛의 크기보다 큰 경우, 상기 현재 코딩 유닛의 그라디언트를 획득하도록 구성된 제1 획득 모듈;
    상기 현재 코딩 유닛의 그라디언트가 제1 임계값보다 크거나 같으면 상기 현재 코딩 유닛을 분할하도록 결정하도록 구성되는 제2 결정 모듈;
    상기 현재 코딩 유닛의 상기 그라디언트가 상기 제1 임계값보다 작은 경우, 상기 현재 코딩 유닛에 포함된 서브 코딩 유닛들의 그라디언트를 획득하도록 구성된 제2 획득 모듈 - 서브 코딩 유닛은 상기 현재 코딩 유닛의 크기에 기초하여 가정되는 유닛임 -
    을 포함하고,
    상기 제2 결정 모듈은,
    상기 현재 코딩 유닛에 포함된 상기 서브 코딩 유닛들에서 제3 임계값보다 작거나 같은 그라디언트를 갖는 서브 코딩 유닛들의 제1 수량에 따라, 상기 현재 코딩 유닛에 포함된 상기 서브 코딩 유닛들의 그라디언트의 합이 제2 임계값보다 크면 상기 현재 코딩 유닛을 분할할지 여부를 결정하거나, 또는 상기 현재 코딩 유닛에 포함된 상기 서브 코딩 유닛들의 그라디언트에서 최대 그라디언트 대 0이 아닌 최소 그라디언트의 비율에 따라, 상기 현재 코딩 유닛에 포함된 상기 서브 코딩 유닛들의 그라디언트의 합이 상기 제2 임계값보다 크면 상기 현재 코딩 유닛을 분할할지 여부를 결정하고 - 상기 제1 임계값은 상기 제2 임계값보다 큼 -; 상기 현재 코딩 유닛을 분할하는 것으로 결정된 경우, 각각의 분할된 서브 코딩 유닛들에 대해 인트라 프레임 예측 모드를 선택하도록 구성되는,
    코딩 유닛의 분할을 결정하는 장치.
  9. 제8항에 있어서,
    상기 제2 결정 모듈은,
    상기 서브 코딩 유닛들에서 그라디언트가 상기 제3 임계값 이하인 서브 코딩 유닛들의 상기 제1 수량을 결정하도록 구성된 수량 결정 모듈;
    상기 제1 수량이 제4 임계값보다 크거나 같은 경우, 상기 현재 코딩 유닛을 분할하는 것으로 결정하도록 구성된 제3 결정 모듈; 및
    상기 제1 수량이 상기 제4 임계값보다 작은 경우, 상기 현재 코딩 유닛을 분할하지 않는 것으로 결정하도록 구성된 제4 결정 모듈을 포함하는, 코딩 유닛의 분할을 결정하는 장치.
  10. 제8항에 있어서,
    상기 제2 결정 모듈은,
    상기 서브 코딩 유닛들의 상기 그라디언트에서 상기 최대 그라디언트 대 상기 0이 아닌 최소 그라디언트의 상기 비율이 제5 임계값보다 크거나 같은지 여부를 결정하도록 구성된 제5 결정 모듈; 및
    상기 비율이 상기 제5 임계값보다 크거나 같은 경우, 상기 현재 코딩 유닛을 분할하는 것으로 결정하도록 구성된 제6 결정 모듈; 및
    상기 비율이 상기 제5 임계값보다 작은 경우, 상기 현재 코딩 유닛을 분할하지 않는 것으로 결정하도록 구성된 제7 결정 모듈을 포함하는, 코딩 유닛의 분할을 결정하는 장치.
  11. 제8항에 있어서,
    상기 제1 획득 모듈은 구체적으로, 상기 현재 코딩 유닛에 포함된 최소 코딩 유닛들의 그라디언트를 계산하고, 상기 최소 코딩 유닛들의 상기 그라디언트의 합을 상기 현재 코딩 유닛의 상기 그라디언트로서 사용하도록 구성된, 코딩 유닛의 분할을 결정하는 장치.
  12. 제8항 내지 제11항 중 어느 한 항에 있어서,
    상기 현재 코딩 유닛의 인접 블록들의 제2 수량을 획득하도록 구성된 수량 획득 모듈 - 여기서, 상기 인접 블록들의 크기는 상기 현재 코딩 유닛의 크기와 동일함 -; 및
    상기 제2 수량에 따라 상기 제1 임계값을 설정하도록 구성된 임계값 설정 모듈을 더 포함하는 코딩 유닛의 분할을 결정하는 장치.
  13. 제12항에 있어서,
    상기 임계값 설정 모듈은,
    상기 제2 수량이 제6 임계값보다 작은 경우, 상기 제1 임계값을 미리 설정된 값으로 설정하도록 구성된 제1 설정 모듈; 및
    상기 제2 수량이 상기 제6 임계값과 같은 경우, 상기 인접 블록들 중 하나가 속하는 코딩 유닛의 크기 및 상기 현재 코딩 유닛의 크기에 따라 상기 제1 임계값을 설정하도록 구성된 제2 설정 모듈을 포함하고,
    상기 제2 설정 모듈은,
    상기 현재 코딩 유닛의 크기보다 크거나 같은 크기의 코딩 유닛에 속하는 타깃 인접 블록이 상기 인접 블록들에 존재하는지 여부를 결정하도록 구성된 제8 결정 모듈;
    상기 타깃 인접 블록이 존재하는 경우, 상기 타깃 인접 블록이 속하는 상기 코딩 유닛의 그라디언트에 따라 상기 제1 임계값을 설정하도록 구성된 제3 설정 모듈; 및
    상기 타깃 인접 블록이 존재하지 않는 경우, 상기 제1 임계값을 0으로 설정하도록 구성된 제4 설정 모듈을 포함하는, 코딩 유닛의 분할을 결정하는 장치.
  14. 컴퓨팅 디바이스로서,
    메모리, 프로세서 및 상기 메모리에 저장되고 상기 프로세서 상에서 실행되는 컴퓨터 프로그램을 포함하고,
    상기 컴퓨터 프로그램은, 상기 프로세서에 의해 실행될 때, 제1항 내지 제4항 중 어느 한 항에 따른 코딩 유닛의 분할을 결정하는 방법의 단계를 구현하는,
    컴퓨팅 디바이스.
  15. 컴퓨터 프로그램을 저장하는 판독 가능한 저장 매체로서,
    상기 컴퓨터 프로그램은, 프로세서에 의해 실행될 때, 제1항 내지 제4항 중 어느 한 항에 따른 코딩 유닛의 분할을 결정하는 방법의 단계를 구현하는,
    컴퓨터 프로그램을 저장하는 판독 가능한 저장 매체.
KR1020197036795A 2017-12-14 2018-06-13 코딩 유닛 분할 결정 방법 및 디바이스, 컴퓨팅 디바이스 및 판독 가능한 저장 매체 KR102327942B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201711339827.5A CN109963151B (zh) 2017-12-14 2017-12-14 编码单元划分确定方法及装置、终端设备及可读存储介质
CN201711339827.5 2017-12-14
PCT/CN2018/090935 WO2019114225A1 (zh) 2017-12-14 2018-06-13 编码单元划分确定方法及装置、计算设备及可读存储介质

Publications (2)

Publication Number Publication Date
KR20200005653A KR20200005653A (ko) 2020-01-15
KR102327942B1 true KR102327942B1 (ko) 2021-11-17

Family

ID=66818937

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197036795A KR102327942B1 (ko) 2017-12-14 2018-06-13 코딩 유닛 분할 결정 방법 및 디바이스, 컴퓨팅 디바이스 및 판독 가능한 저장 매체

Country Status (6)

Country Link
US (1) US11190766B2 (ko)
EP (1) EP3726837A4 (ko)
JP (1) JP6953067B2 (ko)
KR (1) KR102327942B1 (ko)
CN (1) CN109963151B (ko)
WO (1) WO2019114225A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112702603A (zh) * 2019-10-22 2021-04-23 腾讯科技(深圳)有限公司 视频编码方法、装置、计算机设备和存储介质
CN111669602B (zh) * 2020-06-04 2022-08-16 北京大学深圳研究生院 编码单元的划分方法、装置、编码器及存储介质
CN112584154A (zh) * 2020-12-25 2021-03-30 咪咕文化科技有限公司 视频编码块划分方法、装置、电子设备及存储介质
CN113467949B (zh) * 2021-07-07 2022-06-28 河海大学 边缘计算环境下用于分布式dnn训练的梯度压缩方法
CN117440157A (zh) * 2023-09-26 2024-01-23 书行科技(北京)有限公司 视频编码方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104363450A (zh) * 2014-11-27 2015-02-18 北京奇艺世纪科技有限公司 一种帧内编码模式决策方法及装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4697557B2 (ja) * 2009-01-07 2011-06-08 ソニー株式会社 符号化装置、符号化方法、記録媒体及び画像処理装置
US9094658B2 (en) * 2010-05-10 2015-07-28 Mediatek Inc. Method and apparatus of adaptive loop filtering
US11178407B2 (en) * 2012-11-19 2021-11-16 Texas Instruments Incorporated Adaptive coding unit (CU) partitioning based on image statistics
CN103297781B (zh) * 2013-06-07 2016-02-17 安科智慧城市技术(中国)有限公司 一种基于纹理方向的hevc帧内编码方法、装置和系统
KR102169610B1 (ko) * 2013-08-21 2020-10-23 삼성전자주식회사 인트라 예측 모드 결정 방법 및 장치
CN103517069B (zh) * 2013-09-25 2016-10-26 北京航空航天大学 一种基于纹理分析的hevc帧内预测快速模式选择方法
CN104883566B (zh) * 2015-05-27 2018-06-12 复旦大学 一种适用于hevc标准的帧内预测块大小划分的快速算法
CN105120292B (zh) * 2015-09-09 2018-11-23 厦门大学 一种基于图像纹理特征的视频编码帧内预测方法
CN105391999B (zh) * 2015-10-30 2018-08-17 北京奇艺世纪科技有限公司 一种编码模式判断方法和装置
CN105491385A (zh) * 2015-12-02 2016-04-13 同济大学 一种hevc帧内编码单元划分的快速决策方法
US20210211699A1 (en) * 2016-02-16 2021-07-08 Samsung Electronics Co., Ltd. Adaptive block partitioning method and apparatus

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104363450A (zh) * 2014-11-27 2015-02-18 北京奇艺世纪科技有限公司 一种帧内编码模式决策方法及装置

Also Published As

Publication number Publication date
JP6953067B2 (ja) 2021-10-27
WO2019114225A1 (zh) 2019-06-20
CN109963151A (zh) 2019-07-02
JP2021502786A (ja) 2021-01-28
EP3726837A1 (en) 2020-10-21
US11190766B2 (en) 2021-11-30
CN109963151B (zh) 2020-10-20
EP3726837A4 (en) 2020-10-28
US20190253709A1 (en) 2019-08-15
KR20200005653A (ko) 2020-01-15

Similar Documents

Publication Publication Date Title
KR102327942B1 (ko) 코딩 유닛 분할 결정 방법 및 디바이스, 컴퓨팅 디바이스 및 판독 가능한 저장 매체
US10834398B2 (en) Method for dividing prediction block, encoding device, and decoding device
WO2015180428A1 (zh) 帧内预测编码的视频编码方法及视频编码装置
SE1651202A2 (en) Method for inducing a merge candidate block and device usingsame
KR102320733B1 (ko) 디블로킹 필터 방법 및 장치
KR20210008105A (ko) 영상 부호화/복호화 방법 및 장치
US11778228B2 (en) Moving image encoding device, moving image encoding method, moving image decoding device, and moving image decoding method
JP7481332B2 (ja) デコードのための予測方法及びその装置、並びにコンピュータ記憶媒体
CN112075080A (zh) 帧内预测装置、图像编码装置、图像解码装置以及程序
JP2024503193A (ja) フレーム内予測方法、装置、及びデコーダとエンコーダ
US20170201767A1 (en) Video encoding device and video encoding method
JP2015211386A (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
JP2017073602A (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
JP7147145B2 (ja) 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム
CN111683245A (zh) 基于纹理相似度的cu划分决策
WO2023044916A1 (zh) 帧内预测的方法、编码器、解码器和编解码系统
WO2023044918A1 (zh) 帧内预测的方法、编码器、解码器和编解码系统
WO2023044917A1 (zh) 帧内预测的方法、编码器、解码器和编解码系统
WO2016145162A2 (en) Intra-picture prediction processor with progressive block size computations and dual stage computations
WO2015141116A1 (ja) 映像符号化装置、映像符号化方法および映像符号化プログラム
KR102031120B1 (ko) 인트라 예측 부호화 및 복호화 방법과 상기 방법을 수행하는 장치
US20160249050A1 (en) Block structure decision circuit and block structure decision method
JP6331972B2 (ja) 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム
KR20180000886A (ko) 비디오 신호 처리 방법 및 장치
KR20170111471A (ko) Simd 기반 움직임 추정 방법

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