KR20230170817A - 비디오 디코딩 방법 및 비디오 디코더 - Google Patents

비디오 디코딩 방법 및 비디오 디코더 Download PDF

Info

Publication number
KR20230170817A
KR20230170817A KR1020237042192A KR20237042192A KR20230170817A KR 20230170817 A KR20230170817 A KR 20230170817A KR 1020237042192 A KR1020237042192 A KR 1020237042192A KR 20237042192 A KR20237042192 A KR 20237042192A KR 20230170817 A KR20230170817 A KR 20230170817A
Authority
KR
South Korea
Prior art keywords
current
node
depth
current node
video
Prior art date
Application number
KR1020237042192A
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 claimed from PCT/CN2019/102944 external-priority patent/WO2020048361A1/zh
Publication of KR20230170817A publication Critical patent/KR20230170817A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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/124Quantisation
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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
    • 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/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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/186Methods 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 a colour or a chrominance component
    • 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/1883Methods 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 relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

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

Abstract

본 발명은 비디오 디코딩 방법 및 비디오 디코더를 개시한다. 이 방법은, 현재 노드를 획득하기 위해 코딩 트리 분할 정보를 파싱하는 단계; 현재 노드의 깊이(N)에 기초하여, 현재 양자화 그룹에 의해 커버되는 영역을 결정하는 단계; 현재 양자화 그룹에 의해 커버되는 영역에서 현재 코딩 유닛(CU)의 양자화 파라미터(QP) 델타를 획득하는 단계; 및 현재 CU의 QP 델타에 기초하여 현재 CU의 재구성된 화상을 획득하는 단계를 포함한다. 본 발명을 사용함으로써, 디코딩 효율이 향상될 수 있다.

Description

비디오 디코딩 방법 및 비디오 디코더{VIDEO DECODING METHOD AND VIDEO DECODER}
본 출원은 2018년 9월 5일에 중국 특허청에 출원된 중국 특허 출원 제201811032693.7호('비디오 디코딩 방법 및 비디오 디코더'), 및 2018년 9월 21에 중국 특허청에 출원된 중국 특허 출원 제201811104788.5호('비디오 디코딩 방법 및 비디오 디코더')의 우선권을 주장하며, 이것은 그 전체가 참조로서 본 명세서 포함된다.
본 출원의 실시예는 일반적으로 비디오 코딩 분야에 관한 것으로, 보다 구체적으로는 비디오 디코딩 방법 및 비디오 디코더에 관한 것이다.
비디오 코딩(비디오 인코딩 및 디코딩)은 광범위한 디지털 비디오 애플리케이션, 예를 들어 브로드캐스트 디지털 TV, 인터넷 및 모바일 네트워크를 통한 비디오 전송, 비디오 채팅 및 화상 회의와 같은 실시간 대화 애플리케이션, DVD 및 블루레이 디스크, 및 비디오 컨텐츠 수집 및 편집 시스템 및 캠코더의 보안 애플리케이션에서 사용된다.
1990년에 H.261 표준에서 블록 기반 하이브리드 비디오 코딩 접근 방식이 개발됨에 따라, 새로운 비디오 코딩 기술 및 도구가 개발되었고 새로운 비디오 코딩 표준의 기반을 형성하였다. 추가 비디오 코딩 표준은 MPEG-1 비디오, MPEG-2 비디오, ITU-T H.262/MPEG-2, ITU-T H.263, ITU-T H.264/MPEG-4 Part 10: AVC(Advanced Video Coding), ITU-T H.265/HEVC(High Efficiency Video Coding) 및 확장, 예를 들어, 이러한 표준의 확장성 및/또는 3D(3차원) 확장을 포함한다. 비디오 생성 및 사용이 더욱 보편화됨에 따라, 비디오 트래픽이 통신 네트워크 및 데이터 저장에 가장 큰 부하이다. 따라서, 대부분의 비디오 코딩 표준의 목표 중 하나는 화질 저하없이 이전 표준에 비해 비트 전송률을 줄이는 것이다. 최신 고효율 비디오 코딩(HEVC)이 화질 저하없이 AVC보다 약 2배 많은 비디오를 압축할 수 있지만, HEVC에 비해 비디오를 더 압축하는 새로운 기술이 필요하다.
본 출원의 실시예는 디코딩 효율을 향상시키기 위해 비디오 디코딩 방법 및 비디오 디코더를 제공한다.
전술한 목적 및 다른 목적은 독립 청구항의 주제에 의해 달성된다. 다른 구현은 종속 청구항, 명세서 및 첨부된 도면으로부터 명백하다.
제1 측면에 따르면, 본 발명은 비디오 디코딩 방법에 관한 것이다. 이 방법은 비디오 디코더에 의해 수행된다. 이 방법은, 현재 노드를 획득하기 위해 코딩 트리 분할 정보를 파싱(parsing)하는 단계; 상기 현재 노드의 깊이(N)에 기초하여, 현재 양자화 그룹에 의해 커버되는 영역을 결정하는 단계; 상기 현재 양자화 그룹에 의해 커버되는 영역에서 현재 CU의 QP 델타를 획득하는 단계; 및 상기 현재 CU의 QP 델타에 기초하여 상기 현재 CU의 재구성된 화상을 획득하는 단계를 포함한다.
본 발명에서 제공되는 비디오 디코딩 방법에 따르면, 현재 양자화 그룹에 의해 커버되는 영역은 하나의 CU가 두 개의 다른 QG에 대응하는 것을 방지하고 디코딩 효율성을 향상시키기 위해 QP가 CU와 매칭할 수 있는 것을 보장하도록 현재 노드의 깊이(N)에 기초하여 결정될 수 있다.
제1 측면에 따르면, 이 방법의 가능한 구현에서, 상기 현재 노드의 깊이(N)는 상기 현재 노드의 쿼드 트리 깊이(N)이다. 상기 현재 노드의 깊이(N)에 기초하여, 현재 양자화 그룹에 의해 커버되는 영역을 결정하는 단계는, 상기 현재 노드의 깊이(N)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역을 결정하거나, 또는 상기 현재 노드의 다중 유형 트리 깊이(M)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역을 결정하는 단계를 포함한다. N이 제1 임계값(T1)보다 크거나 또는 M이 0보다 큰 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역은 상기 현재 노드의 K 번째 계층 쿼드 트리 노드에 의해 커버되는 영역이다. K는 N과 T1 사이에서 더 작은 값이며, 상기 K 번째 계층 쿼드 트리 노드는 상기 현재 노드를 포함하는 쿼드 트리 노드이자 또한 코딩 트리 유닛(coding tree unit, CTU)에서 시작하여 K 번의 쿼드 트리 분할 후에 생성되는 상기 쿼드 트리 노드이다.
K 번째 계층 쿼드 트리 노드는 현재 노드의 (M + N - K) 번째 계층 부모 노드이다. QP 분할이 보다 정확해질 수 있고 디코딩 품질이 향상될 수 있도록 QP 커버리지 범위가 CU에 기초하여 결정됨을 알 수 있다.
제1 측면에 따르면, 이 방법의 가능한 구현에서, 상기 현재 노드의 깊이(N)는 상기 현재 노드의 쿼드 트리 깊이(N)이다. 상기 현재 노드의 깊이(N)에 기초하여, 현재 양자화 그룹에 의해 커버되는 영역을 결정하는 단계는, 상기 현재 노드의 쿼드 트리 깊이(N) 및 상기 현재 노드의 다중 유형 트리 깊이(M)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역을 결정하는 단계를 포함한다. N이 제1 임계값(T1)보다 작거나 같고 M이 0과 같은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역은 상기 현재 노드에 의해 커버되는 영역이다.
QP 분할이 보다 정확해질 수 있고, 디코딩 품질이 향상될 수 있도록 QP 커버리지 범위가 CU에 기초하여 결정됨을 알 수 있다.
제1 측면에 따르면, 이 방법의 가능한 구현에서, 상기 현재 노드의 깊이(N)는 상기 현재 노드의 쿼드 트리 깊이(N)이다. 상기 현재 노드의 깊이(N)에 기초하여, 현재 양자화 그룹에 의해 커버되는 영역을 결정하는 단계는, 상기 현재 노드의 쿼드 트리 깊이(N)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역을 결정하거나, 또는 상기 현재 노드의 쿼드 트리 깊이(N) 및 상기 현재 노드의 다중 유형 트리 깊이(M)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역을 결정하는 단계를 포함한다. N이 제1 임계값(T1)과 같고 M이 0과 같은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역은 상기 현재 노드에 의해 커버되는 영역이다. 다르게는, N이 제1 임계값(T1)보다 작은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역은 상기 현재 노드에 의해 커버되는 영역이다.
QP 분할이 보다 정확해질 수 있고, 디코딩 품질이 향상될 수 있도록 QP 커버리지 범위가 CU에 기초하여 결정됨을 알 수 있다.
제1 측면에 따르면, 이 방법의 가능한 구현에서, 상기 현재 노드의 깊이(N)는 상기 현재 노드의 쿼드 트리 깊이(N)이다. 상기 현재 노드의 깊이(N)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역을 결정하는 단계는, 상기 현재 노드의 쿼드 트리 깊이(N) 및 상기 현재 노드의 다중 유형 트리 깊이(M)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역을 결정하는 단계를 포함한다. N이 제1 임계값(T1)과 같고 M이 0과 같은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역은 상기 현재 노드에 의해 커버되는 영역이다. 다르게는, N이 제1 임계값(T1)보다 작고 M이 제4 임계값(T4)보다 작거나 같은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역은 상기 현재 노드에 의해 커버되는 영역이다.
제1 측면에 따르면, 이 방법의 가능한 구현에서, 상기 제4 임계값(T4)은 미리 설정된 양의 정수일 수 있다. 예를 들어, 1, 2, 3 또는 4일 수 있다.
제1 측면에 따르면, 이 방법의 가능한 구현에서, 상기 제4 임계값은 상기 제1 임계값(T1) 및 상기 현재 노드의 쿼드 트리 깊이(N)에 기초하여 결정될 수 있다. 예를 들어, T4 = T1-N일 수 있다.
QP 분할이 보다 정확해질 수 있고, 디코딩 품질이 향상될 수 있도록 QP 커버리지 범위가 CU에 기초하여 결정됨을 알 수 있다.
제1 측면에 따르면, 이 방법의 가능한 구현에서, 상기 현재 노드의 깊이(N)는 상기 현재 노드의 쿼드 트리 깊이(N)이다. 상기 현재 노드의 깊이(N)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역을 결정하는 단계는, 상기 현재 노드의 쿼드 트리 깊이(N) 및 상기 현재 노드의 다중 유형 트리 깊이(M)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역을 결정하는 단계를 포함한다. N이 제1 임계값(T1)보다 작거나 같고 M이 (T1 - N)보다 작거나 같은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역은 상기 현재 노드에 의해 커버되는 영역이다.
QP 분할이 보다 정확해질 수 있고, 디코딩 품질이 향상될 수 있도록 QP 커버리지 범위가 CU에 기초하여 결정됨을 알 수 있다.
제1 측면에 따르면, 이 방법의 가능한 구현에서, 상기 현재 노드의 깊이(N)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역을 결정하는 단계는, 상기 현재 노드의 깊이(N)가 제1 임계값(T1)보다 큰 경우, 상기 현재 노드의 (N - T1) 번째 계층 부모 노드를 획득하는 단계; 및 상기 현재 양자화 그룹에 의해 커버되는 영역이 상기 (N - T1) 번째 계층 부모 노드에 의해 커버되는 영역인 것으로 결정하는 단계를 포함한다.
QP 분할이 보다 정확해질 수 있고, 디코딩 품질이 향상될 수 있도록 QP 커버리지 범위가 CU에 기초하여 결정됨을 알 수 있다.
제1 측면에 따르면, 이 방법의 가능한 구현에서, 상기 현재 노드의 깊이(N)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역을 결정하는 단계는, 상기 현재 노드의 깊이(N)가 제1 임계값(T1)과 같은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역이 상기 현재 노드에 의해 커버되는 영역인 것으로 결정하는 단계를 포함한다.
현재 양자화 그룹에 의해 커버되는 영역을 결정하기 위해 현재 노드의 깊이(N)이 제1 임계값(T1)과 직접 비교됨을 알 수 있다. 이러한 방식으로, 디코딩 속도가 향상된다.
제1 측면에 따르면, 이 방법의 가능한 구현에서, 상기 현재 노드의 깊이는 상기 현재 노드의 QT 깊이이거나, 또는 상기 현재 노드의 깊이는 상기 현재 노드의 QT 깊이와 상기 현재 노드의 MTT 깊이의 합니다.
최종 디코딩 효율을 향상시키기 위해 상이한 깊이 결정 방식을 사용함으로써 디코딩 속도와 디코딩 품질 사이에 균형이 달성될 수 있음을 알 수 있다.
제1 측면에 따르면, 이 방법의 가능한 구현에서, 상기 제1 임계값(T1)은 0, 1, 2 또는 3이다.
제1 측면에 따르면, 이 방법의 가능한 구현에서, 상기 방법은 상기 현재 노드의 분할 모드를 획득하는 단계를 더 포함한다. 상기 현재 노드의 깊이(N)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역을 결정하는 단계는, 상기 현재 노드의 깊이(N)가 제2 임계값(T2)에서 1을 뺀 값과 같고, 상기 현재 노드의 분할 모드가 터너리(ternary) 분할 모드인 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역이 상기 현재 노드에 의해 커버되는 영역인 것으로 결정하거나, 또는 상기 현재 노드의 깊이(N)가 제2 임계값(T2)과 같고, 상기 현재 노드의 분할 모드가 이진 분할 모드 또는 쿼드 트리 분할 모드인 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역이 상기 현재 노드에 의해 커버되는 영역인 것으로 결정하거나, 또는 상기 현재 노드의 깊이가 제2 임계값보다 작거나 같고, 상기 현재 노드가 더 이상 분할되지 않는 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역이 상기 현재 노드에 의해 커버되는 영역인 것으로 결정하는 단계를 포함한다.
다른 경우에, QG 분할 정밀도가 향상될 수 있도록 현재 양자화 그룹에 의해 커버되는 영역을 결정하는 데 상이한 방식이 사용됨으로써, 디코딩 정밀도를 향상시킬 수 있음을 알 수 있다.
제1 측면에 따르면, 이 방법의 가능한 구현에서, 상기 제2 임계값은 2, 3, 4, 6, 8 또는 9이다.
제1 측면에 따르면, 이 방법의 가능한 구현에서, 상기 제2 임계값은 상기 제1 임계값의 X배로 설정될 수 있으며, 여기서 X는 1보다 큰 정수이다. 예를 들어, X는 2, 3 또는 4이다.
제1 측면에 따르면, 이 방법의 가능한 구현에서, 이 방법은 상기 현재 노드의 분할 모드를 획득하는 단계를 더 포함한다. 상기 현재 노드의 깊이(N)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역을 결정하는 단계는, 상기 현재 노드의 깊이(N)가 제3 임계값(T3)에서 1을 뺀 값과 같고, 상기 현재 노드의 분할 모드가 터너리 분할 모드 또는 쿼드 트리 분할 모드인 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역이 상기 현재 노드에 의해 커버되는 영역인 것으로 결정하거나, 또는 상기 현재 노드의 깊이(N)가 제3 임계값(T2)과 같고, 상기 현재 노드의 분할 모드가 이진 분할 모드인 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역이 상기 현재 노드에 의해 커버되는 영역인 것으로 결정하거나, 또는 상기 현재 노드의 깊이(N)가 제3 임계값과 같고, 상기 현재 노드가 더 이상 분할되지 않는 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역이 상기 현재 노드에 의해 커버되는 영역인 것으로 결정하는 단계를 포함한다.
다른 경우에, QG 분할 정밀도가 향상될 수 있도록 현재 양자화 그룹에 의해 커버되는 영역을 결정하는 데 상이한 방식이 사용됨으로써, 디코딩 정밀도를 향상시킬 수 있음을 알 수 있다.
제1 측면에 따르면, 이 방법의 가능한 구현에서, 상기 제3 임계값은 3 또는 5이다.
제1 측면에 따르면, 이 방법의 가능한 구현에서, 상기 현재 노드의 깊이(N)는 상기 현재 노드의 QT 깊이 및 상기 현재 노드의 이진 깊이(Db)에 기초하여 결정된다.
제1 측면에 따르면, 이 방법의 가능한 구현에서, 상기 현재 노드의 깊이(N)는 다음의 계산 수학식 N = Dq * 2 + Db을 사용하여 결정되며, 여기서 Dq는 상기 현재 노드의 QT 깊이이다.
제1 측면에 따르면, 이 방법의 가능한 구현에서, 상기 현재 노드가 MTT 루트 노드인 경우, 상기 현재 노드의 이진 깊이(Db)는 0이거나, 또는 상기 현재 노드가 MTT 노드이고 MTT 루트 노드가 아니며, 상기 현재 노드가 상기 이진 분할 모드에서 획득된 자식 노드인 경우, 상기 현재 노드의 이진 깊이(Db)는 상기 현재 노드의 직접 부모 노드의 이진 깊이에 1을 더한 값이거나, 또는 상기 현재 노드가 MTT 노드이고 MTT 루트 노드가 아니며, 상기 현재 노드가 상기 터너리 분할 모드에서 획득된 중간 자식 노드인 경우, 상기 현재 노드의 이진 깊이(Db)는 상기 현재 노드의 직접 부모 노드의 이진 깊이에 1을 더한 값이거나, 또는 상기 현재 노드가 MTT 노드이고 MTT 루트 노드가 아니며, 상기 현재 노드가 상기 터너리 분할 모드에서 획득된 중간이 아닌 자식 노드인 경우, 상기 현재 노드의 이진 깊이(Db)는 상기 현재 노드의 직접 부모 노드의 이진 깊이에 2를 더한 값이다.
다른 경우에, QG 분할 정밀도가 향상될 수 있도록 깊이를 결정하는 데 상이한 방식이 사용됨으로써 디코딩 정밀도를 향상시킬 수 있음을 알 수 있다.
제1 측면에 따르면, 이 방법의 가능한 구현에서, 상기 현재 양자화 그룹에서 잔여(residual)를 갖는 제1 CU의 QP 델타가 0과 같지 않은 경우, 코딩 시퀀스가 상기 현재 양자화 그룹에서 잔여를 갖는 제1 CU의 것 이전인 모든 CU의 휘도 QP는 잔여를 갖는 제1 CU의 휘도 QP로 수정된다.
상기 현재 CU가 상기 현재 양자화 그룹에서 잔여를 갖는 제1 CU 이전의 CU인 경우, 상기 현재 CU의 QP 델타에 기초하여 상기 현재 CU의 재구성된 화상을 획득하는 단계는 구체적으로,
잔여를 갖는 제1 CU의 휘도 QP에 기초하여 상기 현재 CU의 재구성된 화상을 획득하는 단계이다.
제2 측면에 따르면, 본 발명은 비디오 디코더에 관한 것이다. 비디오 디코더는, 현재 노드를 획득하기 위해 코딩 트리 분할 정보를 파싱하고, 상기 현재 노드의 깊이(N)에 기초하여 현재 양자화 그룹에 의해 커버되는 영역을 결정하며, 상기 현재 양자화 그룹에 의해 커버되는 영역의 현재 CU의 QP 델타를 획득하고, 상기 현재 CU의 QP 델타에 기초하여 상기 현재 CU의 휘도 QP를 결정하도록 구성된 엔트로피 디코딩 유닛; 상기 현재 CU의 휘도 QP에 기초하여 상기 현재 CU의 역양자화된 계수를 획득하도록 구성된 역양자화 유닛; 상기 현재 CU의 역양자화된 계수에 기초하여 상기 현재 CU의 재구성된 잔여 블록을 획득하도록 구성된 역변환 처리 유닛; 및 상기 현재 CU의 재구성된 잔여 블록에 기초하여 상기 현재 CU의 재구성된 화상을 획득하도록 구성된 재구성 유닛을 포함한다.
제2 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 현재 노드의 깊이(N)는 상기 현재 노드의 쿼드 트리 깊이(N)이다. 상기 엔트로피 디코딩 유닛은 구체적으로, 상기 현재 노드의 깊이(N)에 기초하여 상기 현재 양자화 그룹에 의해 커버되는 영역을 결정하거나, 또는 상기 현재 노드의 다중 유형 트리 깊이(M)에 기초하여 상기 현재 양자화 그룹에 의해 커버되는 영역을 결정하도록 구성된다. N이 제1 임계값(T1)보다 크거나 또는 M이 0보다 큰 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역은 상기 현재 노드의 K 번째 계층 쿼드 트리 노드에 의해 커버되는 영역이다. K는 N과 T1 사이에서 더 작은 값이며, 상기 K 번째 계층 쿼드 트리 노드는 상기 현재 노드를 포함하는 쿼드 트리 노드이자 또한 코딩 트리 유닛(CTU)에서 시작하여 K 번의 쿼드 트리 분할 후에 생성되는 상기 쿼드 트리 노드이다.
상기 K 계층 쿼드 트리 노드는 현재 노드의(M + N - K) 번째 계층 부모 노드이다.
제2 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 현재 노드의 깊이(N)는 상기 현재 노드의 쿼드 트리 깊이(N)이다. 상기 엔트로피 디코딩 유닛은 구체적으로, 상기 현재 노드의 쿼드 트리 깊이(N) 및 상기 현재 노드의 다중 유형 트리 깊이(M)에 기초하여 상기 현재 양자화 그룹에 의해 커버되는 영역을 결정하도록 구성된다. N이 제1 임계값(T1)보다 작거나 같고 M이 0과 같은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역은 상기 현재 노드에 의해 커버되는 영역이다.
제2 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 현재 노드의 깊이(N)는 상기 현재 노드의 쿼드 트리 깊이(N)이다. 상기 엔트로피 디코딩 유닛은 구체적으로, 상기 현재 노드의 쿼드 트리 깊이(N)에 기초하여 상기 현재 양자화 그룹에 의해 커버되는 영역을 결정하거나, 또는 상기 현재 노드의 쿼드 트리 깊이(N) 및 상기 현재 노드의 다중 유형 트리 깊이(M)에 기초하여 상기 현재 양자화 그룹에 의해 커버되는 영역을 결정하도록 구성된다. N이 제1 임계값(T1)과 같고 M이 0과 같은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역은 상기 현재 노드에 의해 커버되는 영역이다. 다르게는, N이 제1 임계값(T1)보다 작은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역은 상기 현재 노드에 의해 커버되는 영역이다.
제2 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 현재 노드의 깊이(N)는 상기 현재 노드의 쿼드 트리 깊이(N)이다. 상기 엔트로피 디코딩 유닛은 구체적으로, 상기 현재 노드의 쿼드 트리 깊이(N) 및 상기 현재 노드의 다중 유형 트리 깊이(M)에 기초하여 상기 현재 양자화 그룹에 의해 커버되는 영역을 결정하도록 구성된다. N이 제1 임계값(T1)과 같고 M이 0과 같은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역은 상기 현재 노드에 의해 커버되는 영역이다. 다르게는, N이 제1 임계값(T1)보다 작고 M이 제4 임계값(T4)보다 작거나 같은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역은 상기 현재 노드에 의해 커버되는 영역이다.
제2 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 제4 임계값(T4)은 미리 설정된 양의 정수일 수 있다. 예를 들어, 1, 2, 3 또는 4일 수 있다.
제2 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 제4 임계값은 상기 제1 임계값(T1) 및 상기 현재 노드의 쿼드 트리 깊이(N)에 기초하여 결정될 수 있다. 예를 들어, T4 = T1 - N일 수 있다.
제2 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 현재 노드의 깊이(N)는 상기 현재 노드의 쿼드 트리 깊이(N)이다. 상기 엔트로피 디코딩 유닛은 구체적으로, 상기 현재 노드의 쿼드 트리 깊이(N) 및 상기 현재 노드의 다중 유형 트리 깊이(M)에 기초하여 상기 현재 양자화 그룹에 의해 커버되는 영역을 결정하도록 구성된다. N이 제1 임계값(T1)보다 작거나 같고 M이 (T1 - N)보다 작거나 같은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역은 상기 현재 노드에 의해 커버되는 영역이다.
제2 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 엔트로피 디코딩 유닛은 구체적으로, 상기 현재 노드의 깊이(N)가 제1 임계값(T1)보다 큰 경우, 상기 현재 노드의 (N - T1) 번째 계층 부모 노드를 획득하고, 상기 현재 양자화 그룹에 의해 커버되는 영역이 상기 (N - T1) 번째 계층 부모 노드에 의해 커버되는 영역인 것으로 결정하도록 구성된다.
제2 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 엔트로피 디코딩 유닛은 구체적으로, 상기 현재 노드의 깊이(N)가 제1 임계값(T1)과 같은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역이 상기 현재 노드에 의해 커버되는 영역인 것으로 결정하도록 구성된다.
제2 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 현재 노드의 깊이는 상기 현재 노드의 QT 깊이이거나, 또는 상기 현재 노드의 깊이는 상기 현재 노드의 QT 깊이와 상기 현재 노드의 MTT 깊이의 합이다.
제2 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 제1 임계값(T1)은 0, 1, 2 또는 3이다.
제2 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 엔트로피 디코딩 유닛은, 상기 현재 노드의 분할 모드를 획득하고, 상기 현재 노드의 깊이(N)가 제2 임계값(T2)에서 1을 뺀 값과 같고, 상기 현재 노드의 분할 모드가 터너리 분할 모드인 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역이 상기 현재 노드에 의해 커버되는 영역인 것으로 결정하거나, 또는 상기 현재 노드의 깊이(N)가 제2 임계값(T2)과 같고, 상기 현재 노드의 분할 모드가 이진 분할 모드 또는 쿼드 트리 분할 모드인 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역이 상기 현재 노드에 의해 커버되는 영역인 것으로 결정하거나, 또는 상기 현재 노드의 깊이(N)가 제2 임계값보다 작거나 같고 상기 현재 노드가 더 이상 분할되지 않는 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역이 상기 현재 노드에 의해 커버되는 영역인 것으로 결정하도록 추가로 구성된다.
제2 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 제2 임계값은 2, 3, 4, 6, 8 또는 9이다.
제2 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 엔트로피 디코딩 유닛은, 상기 현재 노드의 분할 모드를 획득하고, 상기 현재 노드의 깊이(N)가 제3 임계값(T3)에서 1을 뺀 값과 같고, 상기 현재 노드의 분할 모드가 터너리 분할 모드 또는 쿼드 트리 분할 모드인 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역이 상기 현재 노드에 의해 커버되는 영역인 것으로 결정하거나, 또는 상기 현재 노드의 깊이(N)가 제3 임계값(T2)과 같고, 상기 현재 노드의 분할 모드가 이진 분할 모드인 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역이 상기 현재 노드에 의해 커버되는 영역의 좌측 상부 코너의 좌표인 것으로 결정하거나, 또는 상기 현재 노드의 깊이(N)가 제3 임계값(T3)과 같고 상기 현재 노드가 더 이상 분할되지 않는 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역이 상기 현재 노드에 의해 커버되는 영역인 것으로 결정하도록 추가로 구성된다.
제2 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 제3 임계값은 3 또는 5이다.
제2 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 엔트로피 디코딩 유닛은 구체적으로 상기 현재 노드의 QT 깊이 및 상기 현재 노드의 이진 깊이(Db)에 기초하여 상기 현재 노드의 깊이(N)를 결정하도록 구성된다.
제2 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 엔트로피 디코딩 유닛은 구체적으로, 다음의 계산 수학식 N = Dq * 2 + Db을 사용하여 상기 현재 노드의 깊이(N)를 결정하도록 구성되며, 여기서 Dq는 상기 현재 노드의 QT 깊이이다.
제2 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 현재 노드가 MTT 루트 노드인 경우, 상기 현재 노드의 이진 깊이(Db)는 0이거나, 또는 상기 현재 노드가 MTT 노드이고 MTT 루트 노드가 아니며, 상기 현재 노드가 상기 이진 분할 모드에서 획득된 자식 노드인 경우, 상기 현재 노드의 이진 깊이(Db)는 상기 현재 노드의 직접 부모 노드의 이진 깊이에 1을 더한 값이거나, 또는 상기 현재 노드가 MTT 노드이고 MTT 루트 노드가 아니며, 상기 현재 노드가 상기 터너리 분할 모드에서 획득된 중간 자식 노드인 경우, 상기 현재 노드의 이진 깊이(Db)는 상기 현재 노드의 직접 부모 노드의 이진 깊이에 1을 더한 값이거나, 또는 상기 현재 노드가 MTT 노드이고 MTT 루트 노드가 아니며, 상기 현재 노드가 상기 터너리 분할 모드에서 획득된 중간이 아닌 자식 노드인 경우, 상기 현재 노드의 이진 깊이(Db)는 상기 현재 노드의 직접 부모 노드의 이진 깊이에 2를 더한 값이다.
제2 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 엔트로피 디코딩 유닛은, 상기 현재 양자화 그룹에서 잔여를 갖는 제1 CU의 QP 델타가 0과 같지 않은 경우, 코딩 시퀀스가 상기 현재 양자화 그룹에서 잔여를 갖는 제1 CU의 것 이전인 모든 CU의 휘도 QP를 잔여를 갖는 제1 CU의 휘도 QP로 수정하도록 추가로 구성된다. 상기 현재 CU가 상기 현재 양자화 그룹에서 잔여를 갖는 제1 CU 이전의 CU인 경우, 상기 역양자화 유닛은 구체적으로, 잔여를 갖는 제1 CU의 휘도 QP에 기초하여 상기 현재 CU의 역양자화된 계수를 획득하도록 구성된다.
제3 측면에 따르면, 본 발명의 실시예는, 상기 현재 노드를 획득하기 위해 코딩 트리 분할 정보를 파싱하는 단계; 상기 현재 노드의 깊이(N)에 기초하여 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표를 결정하는 단계; 상기 현재 양자화 그룹에 의해 커버되는 영역에서 현재 코딩 유닛(CU)의 양자화 파라미터 QP 델타를 획득하는 단계; 및 상기 현재 CU의 QP 델타에 기초하여 상기 현재 CU의 재구성된 화상을 획득하는 단계를 포함하는 비디오 디코딩 방법을 제공한다.
제3 측면에 따르면, 이 방법의 가능한 구현에서, 상기 현재 노드의 깊이(N)는 상기 현재 노드의 쿼드 트리 깊이(N)이다. 상기 현재 노드의 깊이(N)에 기초하여, 현재 양자화 그룹에 의해 커버되는 영역의 상부 좌측 코너의 좌표를 결정하는 단계는, 상기 현재 노드의 깊이(N)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역의 상부 좌측 코너의 좌표를 결정하거나, 또는 상기 현재 노드의 다중 유형 트리 깊이(M)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역의 상부 좌측 코너의 좌표를 결정하는 단계를 포함한다. N이 제1 임계값(T1)보다 크거나 또는 M이 0보다 큰 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역의 상부 좌측 코너의 좌표는 상기 현재 노드의 K 번째 계층 쿼드 트리 노드에 의해 커버되는 영역의 상부 좌측 코너의 좌표이다. K는 N과 T1 사이에서 더 작은 값이며, 상기 K 번째 계층 쿼드 트리 노드는 상기 현재 노드를 포함하는 쿼드 트리 노드이자 또한 코딩 트리 유닛(CTU)에서 시작하여 K 번의 쿼드 트리 분할 후에 생성되는 상기 쿼드 트리 노드이다.
제3 측면에 따르면, 이 방법의 가능한 구현에서, 상기 현재 노드의 깊이(N)는 상기 현재 노드의 쿼드 트리 깊이(N)이다. 상기 현재 노드의 깊이(N)에 기초하여, 현재 양자화 그룹에 의해 커버되는 영역의 상부 좌측 코너의 좌표를 결정하는 단계는, 상기 현재 노드의 쿼드 트리 깊이(N) 및 상기 현재 노드의 다중 유형 트리 깊이(M)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역의 상부 좌측 코너의 좌표를 결정하는 단계를 포함한다. N이 제1 임계값(T1)보다 작거나 같고 M이 0과 같은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역의 상부 좌측 코너의 좌표는 상기 현재 노드에 의해 커버되는 영역의 상부 좌측 코너의 좌표이다.
제3 측면에 따르면, 이 방법의 가능한 구현에서, 상기 현재 노드의 깊이(N)는 상기 현재 노드의 쿼드 트리 깊이(N)이다. 상기 현재 노드의 깊이(N)에 기초하여, 현재 양자화 그룹에 의해 커버되는 영역의 상부 좌측 코너의 좌표를 결정하는 단계는, 상기 현재 노드의 쿼드 트리 깊이(N)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역의 상부 좌측 코너의 좌표를 결정하거나, 또는 상기 현재 노드의 쿼드 트리 깊이(N) 및 상기 현재 노드의 다중 유형 트리 깊이(M)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역의 상부 좌측 코너의 좌표를 결정하는 단계를 포함한다. N이 제1 임계값(T1)과 같고 M이 0과 같은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역의 상부 좌측 코너의 좌표는 상기 현재 노드에 의해 커버되는 영역의 상부 좌측 코너의 좌표이다. 다르게는, N이 제1 임계값(T1)보다 작은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역의 상부 좌측 코너의 좌표는 상기 현재 노드에 의해 커버되는 영역의 상부 좌측 코너의 좌표이다.
제3 측면에 따르면, 이방법의 가능한 구현에서, 상기 현재 노드의 깊이(N)는 상기 현재 노드의 쿼드 트리 깊이(N)이다. 상기 현재 노드의 깊이(N)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역의 상부 좌측 코너의 좌표를 결정하는 단계는, 상기 현재 노드의 쿼드 트리 깊이(N) 및 상기 현재 노드의 다중 유형 트리 깊이(M)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역의 상부 좌측 코너의 좌표를 결정하는 단계를 포함한다. N이 제1 임계값(T1)과 같고 M이 0과 같은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역의 상부 좌측 코너의 좌표는 상기 현재 노드에 의해 커버되는 영역의 상부 좌측 코너의 좌표이다. 다르게는, N이 제1 임계값(T1)보다 작고 M이 제4 임계값(T4)보다 작거나 같은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역의 상부 좌측 코너의 좌표는 상기 현재 노드에 의해 커버되는 영역의 상부 좌측 코너의 좌표이다.
제3 측면에 따르면, 이 방법의 가능한 구현에서, 상기 현재 노드의 깊이(N)는 상기 현재 노드의 쿼드 트리 깊이(N)이다. 상기 현재 노드의 깊이(N)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역의 상부 좌측 코너의 좌표를 결정하는 단계는, 상기 현재 노드의 쿼드 트리 깊이(N) 및 상기 현재 노드의 다중 유형 트리 깊이(M)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역의 상부 좌측 코너의 좌표를 결정하는 단계를 포함한다. N이 제1 임계값(T1)보다 작거나 같고 M이 (T1 - N)보다 작거나 같은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역의 상부 좌측 코너의 좌표는 상기 현재 노드에 의해 커버되는 영역의 상부 좌측 코너의 좌표이다.
제3 측면에 따르면, 이 방법의 가능한 구현에서, 상기 현재 노드의 깊이(N)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역의 상부 좌측 코너의 좌표를 결정하는 단계는, 상기 현재 노드의 깊이(N)가 제1 임계값(T1)보다 큰 경우, 상기 현재 노드의 (N - T1) 번째 계층 부모 노드를 획득하는 단계; 및 상기 현재 양자화 그룹에 의해 커버되는 영역의 상부 좌측 코너의 좌표가 상기 (N - T1) 번째 계층 부모 노드에 의해 커버되는 영역의 상부 좌측 코너의 좌표인 것으로 결정하는 단계를 포함한다.
제3 측면에 따르면, 이 방법의 가능한 구현에서, 상기 현재 노드의 깊이(N)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역의 상부 좌측 코너의 좌표를 결정하는 단계는, 상기 현재 노드의 깊이(N)가 제1 임계값(T1)과 같은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역의 상부 좌측 코너의 좌표가 상기 현재 노드에 의해 커버되는 영역의 상부 좌측 코너의 좌표인 것으로 결정하는 단계를 포함한다.
제3 측면에 따르면, 이 방법의 가능한 구현에서, 상기 제1 임계값(T1)은 미리 설정된 음이 아닌 정수이다.
제3 측면에 따르면, 이 방법의 가능한 구현에서, 상기 제1 임계값(T1)은 0, 1, 2 또는 3이다.
제3 측면에 따르면, 이 방법의 가능한 구현에서, 상기 현재 노드의 깊이는 상기 현재 노드의 쿼드 트리 깊이(QT 깊이)이다.
제3 측면에 따르면, 이 방법의 가능한 구현에서, 상기 현재 노드의 깊이는 상기 현재 노드의 QT 깊이와 상기 현재 노드의 다중 유형 트리 깊이(MTT 깊이)의 합이다.
제3 측면에 따르면, 이 방법의 가능한 구현에서, 상기 방법은 상기 현재 노드의 분할 모드를 획득하는 단계를 더 포함한다. 상기 현재 노드의 깊이(N)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표를 결정하는 단계는, 상기 현재 노드의 깊이(N)가 제2 임계값(T2)에서 1을 뺀 값과 같고, 상기 현재 노드의 분할 모드가 터너리 분할 모드인 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표가 상기 현재 노드에 의해 커버되는 영역의 좌측 상부 코너의 좌표인 것으로 결정하거나, 또는 상기 현재 노드의 깊이(N)가 제2 임계값(T2)과 같고, 상기 현재 노드의 분할 모드가 이진 분할 모드 또는 쿼드 트리 분할 모드인 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표가 상기 현재 노드에 의해 커버되는 영역의 좌측 상부 코너의 좌표인 것으로 결정하는 단계를 포함한다.
제3 측면에 따르면, 이 방법의 가능한 구현에서, 상기 방법은 상기 현재 노드의 분할 모드를 획득하는 단계를 더 포함한다. 상기 현재 노드의 깊이(N)에 기초하여, 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표를 결정하는 단계는, 상기 현재 노드의 깊이(N)가 제3 임계값(T3)에서 1을 뺀 값과 같고, 상기 현재 노드의 분할 모드가 터너리 분할 모드 또는 쿼드 트리 분할 모드인 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표가 상기 현재 노드에 의해 커버되는 영역의 좌측 상부 코너의 좌표인 것으로 결정하거나, 또는 상기 현재 노드의 깊이(N)가 제3 임계값(T2)과 같고, 상기 현재 노드의 분할 모드가 이진 분할 모드인 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표가 상기 현재 노드에 의해 커버되는 영역의 좌측 상부 코너의 좌표인 것으로 결정하는 단계를 포함한다.
제3 측면에 따르면, 이 방법의 가능한 구현에서, 상기 현재 노드의 깊이(N)는 상기 현재 노드의 QT 깊이 및 상기 현재 노드의 이진 깊이(Db)에 기초하여 결정된다.
제3 측면에 따르면, 이 방법의 가능한 구현에서, 상기 현재 노드의 깊이(N)는 다음의 계산 수학식 N = Dq * 2 + Db을 사용하여 결정되며, 여기서 Dq는 상기 현재 노드의 QT 깊이이다.
제3 측면에 따르면, 이 방법의 가능한 구현에서, 상기 현재 노드가 다중 유형 트리(MTT) 루트 노드인 경우, 상기 현재 노드의 이진 깊이(Db)는 0이거나, 또는 상기 현재 노드가 MTT 노드이고 MTT 루트 노드가 아니며, 상기 현재 노드가 상기 이진 분할 모드에서 획득된 자식 노드인 경우, 상기 현재 노드의 이진 깊이(Db)는 상기 현재 노드의 직접 부모 노드의 이진 깊이에 1을 더한 값이거나, 또는 상기 현재 노드가 MTT 노드이고 MTT 루트 노드가 아니며, 상기 현재 노드가 상기 터너리 분할 모드에서 획득된 중간 자식 노드인 경우, 상기 현재 노드의 이진 깊이(Db)는 상기 현재 노드의 직접 부모 노드의 이진 깊이에 1을 더한 값이거나, 또는 상기 현재 노드가 MTT 노드이고 MTT 루트 노드가 아니며, 상기 현재 노드가 상기 터너리 분할 모드에서 획득된 중간이 아닌 자식 노드인 경우, 상기 현재 노드의 이진 깊이(Db)는 상기 현재 노드의 직접 부모 노드의 이진 깊이에 2를 더한 값이다.
제3 측면에 따르면, 이 방법의 가능한 구현에서, 상기 현재 양자화 그룹에서 잔여를 갖는 제1 CU의 QP 델타가 0과 같지 않은 경우, 코딩 시퀀스가 상기 현재 양자화 그룹에서 잔여를 갖는 제1 CU의 것 이전인 모든 CU의 휘도 QP는 잔여를 갖는 제1 CU의 휘도 QP로 수정된다. 상기 현재 CU가 상기 현재 양자화 그룹에서 잔여를 갖는 제1 CU 이전의 CU인 경우, 상기 현재 CU의 QP 델타에 기초하여 상기 현재 CU의 재구성된 화상을 획득하는 단계는 구체적으로, 잔여를 갖는 제1 CU의 휘도 QP에 기초하여 상기 현재 CU의 재구성된 화상을 획득하는 단계이다.
제4 측면에 따르면, 본 발명의 실시예는, 현재 노드를 획득하기 위해 코딩 트리 분할 정보를 파싱하고, 상기 현재 노드의 깊이(N)에 기초하여 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표를 결정하며, 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표를 커버하는 현재 코딩 유닛(CU)의 QP 델타를 획득하고, 상기 현재 CU의 QP 델타에 기초하여 상기 현재 CU의 휘도 QP를 결정하도록 구성된 엔트로피 디코딩 유닛; 상기 현재 CU의 휘도 QP에 기초하여 상기 현재 CU의 역양자화된 계수를 획득하도록 구성된 역양자화 유닛; 상기 현재 CU의 역양자화된 계수에 기초하여 상기 현재 CU의 재구성된 잔여 블록을 획득하도록 구성된 역변환 처리 유닛; 및 상기 현재 CU의 재구성된 잔여 블록에 기초하여 상기 현재 CU의 재구성된 화상을 획득하도록 구성된 재구성 유닛을 포함하는 비디오 디코더를 제공한다.
제4 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 현재 노드의 깊이(N)는 상기 현재 노드의 쿼드 트리 깊이(N)이다. 상기 엔트로피 디코딩 유닛은 구체적으로, 상기 현재 노드의 깊이(N)에 기초하여 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표를 결정하거나, 또는 상기 현재 노드의 다중 유형 트리 깊이(M)에 기초하여 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표를 결정하도록 구성된다. N이 제1 임계값(T1)보다 크거나 또는 M이 0보다 큰 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표는 상기 현재 노드의 K 번째 계층 쿼드 트리 노드에 의해 커버되는 영역의 좌측 상부 코너의 좌표이다. K는 N과 T1 사이에서 더 작은 값이며, 상기 K 번째 계층 쿼드 트리 노드는 상기 현재 노드를 포함하는 쿼드 트리 노드이자 또한 코딩 트리 유닛(CTU)에서 시작하여 K 번의 쿼드 트리 분할 후에 생성되는 상기 쿼드 트리 노드이다.
제4 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 현재 노드의 깊이(N)는 상기 현재 노드의 쿼드 트리 깊이(N)이다. 상기 엔트로피 디코딩 유닛은 구체적으로, 상기 현재 노드의 쿼드 트리 깊이(N) 및 상기 현재 노드의 다중 유형 트리 깊이(M)에 기초하여 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표를 결정하도록 구성된다. N이 제1 임계값(T1)보다 작거나 같고 M이 0과 같은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표는 상기 현재 노드에 의해 커버되는 영역의 좌측 상부 코너의 좌표이다.
제4 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 현재 노드의 깊이(N)는 상기 현재 노드의 쿼드 트리 깊이(N)이다. 상기 엔트로피 디코딩 유닛은 구체적으로, 상기 현재 노드의 쿼드 트리 깊이(N)에 기초하여 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표를 결정하거나, 또는 상기 현재 노드의 쿼드 트리 깊이(N) 및 상기 현재 노드의 다중 유형 트리 깊이(M)에 기초하여 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표를 결정하도록 구성된다. N이 제1 임계값(T1)과 같고 M이 0과 같은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표는 상기 현재 노드에 의해 커버되는 영역의 좌측 상부 코너의 좌표이다. 다르게는, N이 제1 임계값(T1)보다 작은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표는 상기 현재 노드에 의해 커버되는 영역의 좌측 상부 코너의 좌표이다.
제4 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 현재 노드의 깊이(N)는 상기 현재 노드의 쿼드 트리 깊이(N)이다. 상기 엔트로피 디코딩 유닛은 구체적으로, 상기 현재 노드의 쿼드 트리 깊이(N) 및 상기 현재 노드의 다중 유형 트리 깊이(M)에 기초하여 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표를 결정하도록 구성된다. N이 제1 임계값(T1)과 같고 M이 0과 같은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표는 상기 현재 노드에 의해 커버되는 영역의 좌측 상부 코너의 좌표이다. 다르게는, N이 제1 임계값(T1)보다 작고 M이 제4 임계값(T4)보다 작거나 같은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표는 상기 현재 노드에 의해 커버되는 영역의 좌측 상부 코너의 좌표이다.
제4 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 현재 노드의 깊이(N)는 상기 현재 노드의 쿼드 트리 깊이(N)이다. 상기 엔트로피 디코딩 유닛은 구체적으로, 상기 현재 노드의 쿼드 트리 깊이(N) 및 상기 현재 노드의 다중 유형 트리 깊이(M)에 기초하여 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표를 결정하도록 구성된다. N이 제1 임계값(T1)보다 작거나 같고 M이 (T1 - N)보다 작거나 같은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표는 상기 현재 노드에 의해 커버되는 영역의 좌측 상부 코너의 좌표이다.
제4 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 엔트로피 디코딩 유닛은 구체적으로, 상기 현재 노드의 깊이(N)가 제1 임계값(T1)보다 큰 경우, 상기 현재 노드의 (N - T1) 번째 계층 부모 노드를 획득하고, 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표가 상기 (N - T1) 번째 계층 부모 노드에 의해 커버되는 영역의 좌측 상부 코너의 좌표인 것으로 결정하도록 구성된다.
제4 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 엔트로피 디코딩 유닛은 구체적으로, 상기 현재 노드의 깊이(N)가 제1 임계값(T1)과 같은 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표가 상기 현재 노드에 의해 커버되는 영역의 좌측 상부 코너의 좌표인 것으로 결정하도록 구성된다.
제4 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 제1 임계값(T1)은 미리 설정된 음이 아닌 정수이다.
제4 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 제1 임계값(T1)은 0, 1, 2 또는 3이다.
제4 양측면 따르면, 비디오 디코더의 가능한 구현에서, 상기 현재 노드의 깊이는 상기 현재 노드의 쿼드 트리 깊이(QT 깊이)이다.
제4 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 현재 노드의 깊이는 상기 현재 노드의 QT 깊이와 상기 현재 노드의 다중 유형 트리 깊이(MTT 깊이)의 합이다.
제4 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 엔트로피 디코딩 유닛은, 상기 현재 노드의 분할 모드를 획득하고, 상기 현재 노드의 깊이(N)가 제2 임계값(T2)에서 1을 뺀 값과 같고, 상기 현재 노드의 분할 모드가 터너리 분할 모드인 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표가 상기 현재 노드에 의해 커버되는 영역의 좌측 상부 코너의 좌표인 것으로 결정하거나, 또는 상기 현재 노드의 깊이(N)가 제2 임계값(T2)과 같고, 상기 현재 노드의 분할 모드가 이진 분할 모드 또는 쿼드 트리 분할 모드인 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표가 상기 현재 노드에 의해 커버되는 영역의 좌측 상부 코너의 좌표인 것으로 결정하도록 추가로 구성된다.
제4 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 엔트로피 디코딩 유닛은, 상기 현재 노드의 분할 모드를 획득하고, 상기 현재 노드의 깊이(N)가 제3 임계값(T3)에서 1을 뺀 값과 같고, 상기 현재 노드의 분할 모드가 터너리 분할 모드 또는 쿼드 트리 분할 모드인 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표가 상기 현재 노드에 의해 커버되는 영역의 좌측 상부 코너의 좌표인 것으로 결정하거나, 또는 상기 현재 노드의 깊이(N)가 제3 임계값(T2)과 같고, 상기 현재 노드의 분할 모드가 이진 분할 모드인 경우, 상기 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표가 상기 현재 노드에 의해 커버되는 영역의 좌측 상부 코너의 좌표인 것으로 결정하도록 추가로 구성된다.
제4 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 엔트로피 디코딩 유닛은 구체적으로 상기 현재 노드의 QT 깊이 및 상기 현재 노드의 이진 깊이(Db)에 기초하여 상기 현재 노드의 깊이(N)를 결정하도록 구성된다.
제4 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 엔트로피 디코딩 유닛은 구체적으로, 다음의 계산 수학식 N = Dq * 2 + Db을 사용하여 상기 현재 노드의 깊이(N)를 결정하도록 구성되며, 여기서 Dq는 상기 현재 노드의 QT 깊이이다.
제4 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 현재 노드가 다중 유형 트리(MTT) 루트 노드인 경우, 상기 현재 노드의 이진 깊이(Db)는 0이거나, 또는 상기 현재 노드가 MTT 노드이고 MTT 루트 노드가 아니며, 상기 현재 노드가 상기 이진 분할 모드에서 획득된 자식 노드인 경우, 상기 현재 노드의 이진 깊이(Db)는 상기 현재 노드의 직접 부모 노드의 이진 깊이에 1을 더한 값이거나, 또는 상기 현재 노드가 MTT 노드이고 MTT 루트 노드가 아니며, 상기 현재 노드가 상기 터너리 분할 모드에서 획득된 중간 자식 노드인 경우, 상기 현재 노드의 이진 깊이(Db)는 상기 현재 노드의 직접 부모 노드의 이진 깊이에 1을 더한 값이거나, 또는 상기 현재 노드가 MTT 노드이고 MTT 루트 노드가 아니며, 상기 현재 노드가 상기 터너리 분할 모드에서 획득된 중간이 아닌 자식 노드인 경우, 상기 현재 노드의 이진 깊이(Db)는 상기 현재 노드의 직접 부모 노드의 이진 깊이에 2를 더한 값이다.
제4 측면에 따르면, 비디오 디코더의 가능한 구현에서, 상기 엔트로피 디코딩 유닛은, 상기 현재 양자화 그룹에서 잔여를 갖는 제1 CU의 QP 델타가 0과 같지 않은 경우, 코딩 시퀀스가 상기 현재 양자화 그룹에서 잔여를 갖는 제1 CU의 것 이전인 모든 CU의 휘도 QP를 잔여를 갖는 제1 CU의 휘도 QP로 수정하도록 추가로 구성된다. 상기 현재 CU가 상기 현재 양자화 그룹에서 잔여를 갖는 제1 CU 이전의 CU인 경우, 상기 역양자화 유닛은 구체적으로, 잔여를 갖는 제1 CU의 휘도 QP에 기초하여 상기 현재 CU의 역양자화된 계수를 획득하도록 구성된다.
제5 측면에 따르면, 본 발명은 프로세서 및 메모리를 포함하는 비디오 스트림 디코딩 장치에 관한 것이다. 상기 메모리는 명령어를 저장하고, 상기 명령은 상기 프로세서가 상기 제1 측면 또는 상기 제3 측면 또는 상기 제1 측면 또는 상기 제3 측면의 임의의 가능한 실시예에 따른 방법을 수행할 수 있게 한다.
제6 측면에 따르면, 컴퓨터 판독 가능 저장 매체가 제공된다. 컴퓨터 판독 가능 저장 매체는 명령을 저장하고, 상기 명령이 실행될 때, 하나 이상의 프로세서가 비디오 데이터를 인코딩할 수 있다. 상기 명령은 상기 하나 이상의 프로세서가 상기 제1 측면 또는 상기 제3 측면 또는 상기 제1 측면 또는 상기 제3 측면의 임의의 가능한 실시예에 따른 방법을 수행할 수 있게 한다.
제7 측면에 따르면, 본 발명은 프로그램 코드를 포함하는 컴퓨터 프로그램에 관한 것이다. 프로그램 코드가 컴퓨터에서 실행될 때, 상기 제1 측면 또는 상기 제3 측면 또는 상기 제1 측면 또는 상기 제3 측면의 임의의 가능한 실시예에 따른 방법이 수행된다.
하나 이상의 실시예의 세부 사항은 첨부 도면 및 다음 설명에서 설명된다. 다른 특징, 목적 및 이점은 명세서, 도면 및 청구 범위로부터 명백하다.
본 출원의 실시예 또는 배경의 기술적 해결수단을 보다 명확하게 설명하기 위해, 이하에서는 본 출원의 실시예 또는 배경을 설명하기 위한 첨부 도면을 설명한다.
도 1은 본 발명의 실시예를 구현하기 위한 비디오 코딩 시스템 사용 예의 블록도이다.
도 2는 본 발명의 실시예를 구현하는 데 사용되는 비디오 인코더의 예시적인 구조를 도시한 블록도이다.
도 3은 본 발명의 실시예를 구현하는 데 사용되는 비디오 디코더의 예시적인 구조를 도시한 블록도이다.
도 4는 도 2의 인코더(20) 및 도 3의 디코더(30)를 포함하는 비디오 코딩 시스템(40)을 도시한 개략도이다.
도 5는 다른 인코딩 장치 또는 디코딩 장치의 예를 도시한 블록도이다.
도 6은 실시예에 따른 이진 트리, 트리플 트리 및 쿼드 트리의 분할 모드를 도시한 개략도이다.
도 7은 실시예에 따른 QT-MTT 분할을 도시한 개략도이다.
도 8은 실시예에 따른 QG 분할을 도시한 개략도이다.
도 9는 실시예에 따른 비디오 디코딩 방법을 도시한 흐름도이다.
이하에서, 동일한 참조 부호는 달리 명시되지 않는 한 동일하거나 적어도 기능적으로 동등한 특징을 나타낸다.
다음의 설명에서, 본 개시의 일부를 형성하고, 예시로서 본 발명의 실시예의 특정 측면 또는 본 발명의 실시예가 사용될 수 있는 특정 측면을 보여주는 첨부 도면이 참조된다. 본 발명의 실시예는 다른 측면에서 사용될 수 있고, 첨부된 도면에 도시되지 않은 구조적 또는 논리적 변경을 포함할 수 있음이 이해되어야 한다. 따라서, 다음의 상세한 설명은 제한적인 의미로 받아 들여지지 않을 것이며, 본 발명의 범위는 첨부된 청구 범위에 의해 정의된다.
예를 들어, 설명된 방법과 관련된 개시는 방법을 수행하도록 구성된 대응하는 장치 또는 시스템에 대해서도 참일 수 있고 그 반대의 경우도 마찬가지라는 것을 이해해야 한다. 예를 들어, 하나 이상의 특정 방법 단계가 설명된 경우, 비록 그러한 하나 이상의 유닛이 첨부된 도면에 명시적으로 설명되거나 도시되지 않더라도 대응하는 장치는 설명된 하나 이상의 방법 단계를 수행하기 위해 기능 유닛과 같은 하나 이상의 유닛을 포함할 수 있다(예를 들어, 하나 이상의 단계를 수행하는 하나의 유닛; 또는 복수의 단계 중 하나 이상을 각각 수행하는 복수의 유닛). 반면에, 예를 들어, 기능 유닛과 같은 하나 이상의 유닛을 기반으로 특정 장치를 설명되는 경우, 비록 그러한 하나 이상의 단계가 첨부된 도면에 명시적으로 설명되거나 도시되지 않더라도 대응하는 방법은 하나 이상의 유닛의 기능을 수행하는 데 사용되는 하나의 단계(예를 들어, 하나 이상의 유닛의 기능을 수행하는 데 사용되는 하나의 단계, 또는 복수의 유닛 중 하나 이상의 기능을 각각 수행하는 데 사용되는 복수의 단계)를 포함할 수 있다. 또한, 본 명세서에 설명된 다양한 예시적인 실시예 및/또는 측면의 특징은 특별히 달리 언급되지 않는 한 서로 결합될 수 있음을 이해해야 한다.
비디오 코딩은 일반적으로 비디오 또는 비디오 시퀀스를 구성하는 일련의 화상을 처리하는 것을 지칭한다. 비디오 코딩 분야에서, "화상(picture)", "프레임(frame)", "이미지(image)"라는 용어는 동의어로서 사용될 수 있다. 본 출원(또는 본 개시)에서 사용된 비디오 코딩은 비디오 인코딩 또는 비디오 디코딩 중 하나를 지시한다. 비디오 인코딩은 소스 측에서 수행되고, 일반적으로 (보다 효율적인 저장 및/또는 전송을 위해) 비디오 화상을 표현하기 위한 데이터 양을 감소시키기 위해 원본 비디오 화상을 (예를 들어 압축함으로써) 처리하는 것을 포함한다. 비디오 디코딩은 목적지 측에서 수행되며, 일반적으로 비디오 화상을 재구성하기 위해 인코더에 대한 역처리를 포함한다. 실시예에서 비디오 화상(또는 총칭하여 이하에서 설명되는 화상으로서 지칭됨)의 "코딩"은 비디오 시퀀스의 "인코딩" 또는 "디코딩"으로 이해되어야 한다. 인코딩 부분과 디코딩 부분의 조합은 또한 코덱(encoding and decoding, CODEC)으로서 지칭된다.
무손실 비디오 코딩의 경우, 원본 비디오 화상이 재구성될 수 있다. 즉, 재구성된 비디오 화상은 원본 비디오 화상과 동일한 품질을 갖는다(저장 또는 전송 중에 전송 손실 또는 기타 데이터 손실이 발생하지 않는다고 가정). 손실이 많은 비디오 코딩의 경우, 비디오 화상을 표현하는 데 필요한 데이터의 양을 줄이기 위해 예를 들어 양자화를 통해 추가 압축이 수행되며, 비디오 화상은 디코더 측에서 완벽하게 재구성될 수 없다. 즉, 재구성된 비디오 화상의 품질은 원본 비디오 화상의 품질보다 낮거나 열악하다.
여러 H.261 비디오 코딩 표준은 "손실 하이브리드 비디오 코딩"에 대해 사용된다(구체적으로, 샘플 도메인의 공간적 및 시간적 예측은 변환 도메인에서 양자화를 적용하기 위한 2D 변환 코딩과 결합됨). 비디오 시퀀스의 각각의 화상은 일반적으로 겹치지 않는 블록의 세트로 분할되고, 코딩은 일반적으로 블록 레벨에서 수행된다. 구체적으로, 인코더 측에서 비디오가 일반적으로 블록(비디오 블록) 레벨에서 처리된다. 즉, 인코딩된다. 예를 들어, 공간적(화상 내) 예측 및 시간적(화상 간) 예측을 통해 예측 블록이 생성되고, 예측 블록은 잔여 블록을 획득하기 위해 현재 블록(처리 중이거나 처리될 블록)에서 감산되고, 잔여 블록은 변환 도메인에서 변환되고 전송될(압축될) 데이터의 양을 감소시키기 위해 양자화된다. 디코더 측에서, 인코더에 대한 역처리 부분이 인코딩된 블록 또는 압축된 블록에 적용되어 표현을 위해 현재 블록을 재구성한다. 더욱이, 인코더 및 디코더가 처리를 위해, 즉 후속 블록을 코딩하기 위해 동일한 예측(예를 들어, 인트라 예측 및 인터 예측) 및/또는 재구성을 생성하도록 인코더가 디코더 처리 루프를 복제한다.
본 명세서에서 사용되는 바와 같이, 용어 "블록"은 화상 또는 프레임의 일부일 수 있다. 설명의 편의를 위해, 본 발명의 실시예는 ITU-T 비디오 코딩 전문가 그룹(Video Coding Experts Group, VCEG) 및 ISO/IEC 모션 화상 전문가 그룹(Motion Picture Experts Group, MPEG)의 비디오 코딩에 대해 공동 협력 팀(Joint Collaboration Team on Video Coding, JCT-VC)에 의해 개발된 VVC(Versatile Video Coding) 또는 HEVC(High-Efficiency Video Coding)을 참조하여 여기에서 설명된다. 당업자는 본 발명의 실시예가 HEVC 또는 VVC에 제한되지 않음을 이해한다. 블록은 CU, PU 또는 TU일 수 있다. HEVC에서, CTU는 코딩 트리로서 표현되는 쿼드 트리 구조를 사용하여 복수의 CU로 분할된다. 화상 간(시간적) 또는 화상 내(공간적) 예측을 통해 화상 영역을 인코딩할지 여부에 대한 결정은 CU 레벨에서 행해진다. 각각의 CU는 PU 분할 패턴에 기초하여 1개, 2개 또는 4개의 PU로 더 분할될 수 있다. 하나의 PU 내부에서, 동일한 예측 프로세스가 적용되고, 관련 정보는 PU 단위로 디코더로 전송된다. PU 분할 패턴에 기초하여 예측 프로세스를 적용함으로써 잔여 블록을 획득한 후, CU는 CU에 대해 사용되는 코딩 트리와 유사한 다른 쿼드 트리 구조에 기초하여 변환 유닛(transform unit, TU)으로 분할될 수 있다. 최근 비디오 압축 기술의 발전에서, 쿼드 트리 플러스 이진 트리(Quad-tree plus binary tree, QTBT) 파티션 프레임은 코딩 블록을 분할하는 데 사용된다. QTBT 블록 구조에서, CU는 정사각형 또는 직사각형일 수 있다. VVC에서, 코딩 트리 유닛(coding tree unit, CTU)은 먼저 쿼드 트리 구조를 사용하여 분할된다. 쿼드 트리의 리프(leaf) 노드는 이진 트리 구조를 사용하여 추가로 분할된다. 이진 트리의 리프 노드는 코딩 유닛(coding unit, CU)으로서 지칭되고, CU는 다른 추가 분할없이 예측 및 변환 처리를 위해 사용된다. 이것은 CU, PU 및 TU가 QTBT 코딩 블록 구조에서 동일한 블록 크기를 갖는다는 것을 의미한다. 또한, QTBT 블록 구조와 결합하여 사용할 수 있도록 트리플 트리 분할과 같은 곱셈 분할이 제안된다.
다음은 (본 발명의 실시예가 도 9에 기초하여 보다 상세히 설명되기 전에) 도 1 내지 도 4에 기초한 인코더(20), 디코더(30) 및 코딩 시스템(10 및 40)의 실시예를 설명한다.
도 1은 예시적인 코딩 시스템(10), 예를 들어 본 출원(본 개시)의 기술을 사용할 수 있는 비디오 코딩 시스템(10)의 개념적 또는 개략적인 블록도이다. 비디오 코딩 시스템(10)의 인코더(20)(예를 들어, 비디오 인코더(20)) 및 디코더(30)(예를 들어, 비디오 디코더(30))는 본 출원에서 설명된 다양한 예에 기초하여 (분할/인트라 예측/...)을 위해 사용되는 기술을 수행하도록 구성될 수 있는 예시적인 장치를 나타낸다. 도 1에 도시된 바와 같이, 코딩 시스템(10)은 인코딩된 화상(13)과 같은 인코딩된 데이터(13)를 예를 들어 인코딩된 데이터(13)를 디코딩하는 목적지 장치(14)로 제공하도록 구성된 소스 장치(12)를 포함한다.
소스 장치(12)는 인코더(20)를 포함하고, 선택적으로, 화상 소스(16), 예를 들어 화상 전처리 유닛(18)의 전처리 유닛(18) 및 통신 인터페이스 또는 통신 유닛(22)을 포함할 수 있다.
화상 소스(16)는 예를 들어 실세계 화상을 캡처하도록 구성된 임의 유형의 화상 캡처 장치, 및/또는 화상 또는 코멘트(화면 컨텐츠 인코딩의 경우, 화면 상의 일부 텍스트는 또한 인코딩될 화상 또는 이미지의 일부로 간주됨)를 생성하기 위한 임의 유형의 장치, 예를 들어 컴퓨터 애니메이션 화상을 생성하도록 구성된 컴퓨터 그래픽 프로세서, 또는 실세계 화상 또는 컴퓨터 애니메이션 화상(예를 들어, 스크린 컨텐츠 또는 가상 현실(virtual reality, VR) 화상) 및/또는 이들의 임의의 조합(예를 들어, 증강 현실(augmented reality, AR) 화상)을 획득하고 그리고/또는 제공하도록 구성된 임의 유형의 장치를 포함할 수 있거나 또는 그들일 수 있다.
(디지털) 화상은 강도 값을 갖는 샘플의 2차원 어레이 또는 매트릭스로 간주되거나 간주될 수 있다. 어레이의 샘플은 픽셀(pixel)(간략하게 화상 요소(picture element)) 또는 펠(pel)로서도 지칭된다. 어레이 또는 화상의 수평 및 수직 방향(또는 축)에 있는 샘플의 수량은 화상의 크기 및/또는 해상도를 정의한다. 컬러 표현을 위해, 일반적으로 세 가지 컬러 성분이 사용되며, 구체적으로 화상은 세 개의 샘플 어레이로 표현되거나 이를 포함할 수 있다. RBG 포맷 또는 컬러 공간에서, 화상은 대응하는 적색, 녹색 및 청색 샘플 어레이를 포함한다. 그러나, 비디오 코딩에서, 각각의 픽셀은 일반적으로 휘도/색차 포맷 또는 컬러 공간, 예를 들어 Y(때로는 L로 표시됨)로 표시되는 휘도 성분과 Cb 및 Cr로 표시되는 두 개의 색차 성분을 포함하는 YCbCr로 표시된다. 휘도(짧게는 루마(luma)) 성분 Y는 밝기 또는 그레이(gray) 레벨 강도(예를 들어, 둘 다 그레이 스케일 화상에서 동일함)를 나타내고, 두 개의 색차(짧게는 크로마(chroma)) 성분 Cb 및 Cr은 색차 또는 컬러 정보 성분을 나타낸다. 이와 상응하게, YCbCr 포맷 화상은 휘도 샘플 값(Y)의 휘도 샘플 어레이와 색차 값(Cb 및 Cr)의 두 개의 색차 샘플 어레이를 포함한다. RGB 포맷의 화상은 YCbCr 포맷으로 변환하거나 변경될 수 있으며 그 반대도 가능하다. 이러한 프로세스는 또한 컬러 변경 또는 변환으로 지칭된다. 화상이 단색인 경우, 화상은 휘도 샘플 어레이만을 포함할 수 있다.
화상 소스(16)(예를 들어, 비디오 소스(16))는, 예를 들어, 화상을 캡처하기 위한 카메라, 또는 이전에 캡처되거나 생성된 화상을 포함하거나 저장하는 화상 메모리와 같은 메모리, 및/또는 또는 화상을 획득하거나 수신하기 위한 임의 유형의 인터페이스(내부 또는 외부)일 수 있다. 카메라는 예를 들어 로컬 카메라 또는 소스 장치에 통합된 통합 카메라일 수 있으며, 메모리는 로컬 메모리 또는 예를 들어 소스 장치에 통합된 통합 메모리일 수 있다. 인터페이스는 예를 들어 외부 비디오 소스로부터 화상을 수신하기 위한 외부 인터페이스일 수 있다. 외부 비디오 소스는 예를 들어 카메라, 외부 메모리 또는 외부 화상 생성 장치와 같은 외부 화상 캡처 장치이다. 외부 화상 생성 장치는 예를 들어 외부 컴퓨터 그래픽 프로세서, 컴퓨터 또는 서버이다. 인터페이스는 임의의 독점적 또는 표준화된 인터페이스 프로토콜에 따라 임의 유형의 인터페이스, 예를 들어 유선 또는 무선 인터페이스 또는 광학 인터페이스일 수 있다. 화상 데이터(17)를 획득하기 위한 인터페이스는 통신 인터페이스(22)와 동일한 인터페이스이거나 그 일부일 수 있다.
전처리 유닛(18) 및 전처리 유닛(18)에 의해 수행되는 처리와 달리, 화상 또는 화상 데이터(17)(예를 들어, 비디오 데이터(16))는 또한 원시 화상 또는 원시 화상 데이터(17)로서 지칭될 수 있다.
전처리 유닛(18)은 (원시) 화상 데이터(17)를 수신하고 전처리된 화상(19) 또는 전처리된 화상 데이터(19)를 획득하기 위해 화상 데이터(17)에 대해 전처리를 수행하도록 구성된다. 예를 들어, 전처리 유닛(18)에 의해 수행되는 전처리는 트리밍(trimminig), 컬러 포맷 변환(예를 들어, RGB에서 YCbCr로), 컬러 보정 또는 노이즈 제거를 포함할 수 있다. 전처리 유닛(18)이 선택적 컴포넌트일 수 있음을 이해할 수 있다.
인코더(20)(예를 들어, 비디오 인코더(20))는 전처리된 화상 데이터(19)를 수신하고 인코딩된 화상 데이터(21)를 제공하도록 구성된다(상세한 내용은 예를 들어, 도 2 또는 도 4에 기초하여 아래에서 더 설명됨).
소스 장치(12)의 통신 인터페이스(22)는 인코딩된 화상 데이터(21)를 수신하고 인코딩된 화상 데이터(21)를 저장 또는 직접 재구성을 위해 다른 장치, 예를 들어 목적지 장치(14) 또는 임의의 다른 장치로 전송하도록 구성될 수 있다. 다르게는, 통신 인터페이스(22)는 인코딩된 데이터(13)를 상응하게 저장하고 그리고/또는 인코딩된 데이터(13)를 다른 장치로 전송하기 전에 인코딩된 화상 데이터(21)를 처리하도록 구성된다. 다른 장치는 예를 들어 목적지 장치(14) 또는 디코딩 또는 저장에 사용되는 임의의 다른 장치이다.
목적지 장치(14)는 디코더(30)(예를 들어, 비디오 디코더(30))를 포함하고, 선택적으로 통신 인터페이스 또는 통신 유닛(28), 후처리 유닛(32) 및 디스플레이 장치(34)를 포함할 수 있다.
목적지 장치(14)의 통신 인터페이스(28)는 예를 들어 소스 장치(12) 또는 임의의 다른 소스로부터 직접 인코딩된 화상 데이터(21) 또는 인코딩된 데이터(13)를 수신하도록 구성된다. 임의의 다른 소스는 예를 들어 저장 장치이다. 저장 장치는 예를 들어 인코딩된 화상 데이터 저장 장치이다.
통신 인터페이스(22) 및 통신 인터페이스(28)는 소스 장치(12)와 목적지 장치(14) 사이의 직접 통신 링크를 통해 또는 임의 유형의 네트워크를 통해 인코딩된 화상 데이터(21) 또는 인코딩된 데이터(13)를 전송하거나 또는 수신하도록 구성될 수 있다. 직접 통신 링크는 예를 들어 직접 유선 또는 무선 연결이다. 임의 유형의 네트워크는 예를 들어 유선 또는 무선 네트워크 또는 이들의 임의의 조합, 또는 임의 유형의 사설 또는 공용 네트워크, 또는 이들의 임의의 조합이다.
통신 인터페이스(22)는 예를 들어, 인코딩된 화상 데이터(21)를 통신 링크 또는 통신 네트워크를 통한 전송을 위해 적절한 포맷, 예를 들어 패킷으로 패키징하도록 구성될 수 있다.
통신 인터페이스(22)의 대응하는 부분을 형성하는 통신 인터페이스(28)는 예를 들어, 인코딩된 화상 데이터(21)를 획득하기 위해 인코딩된 데이터(13)를 패킹 해제하도록 구성될 수 있다.
통신 인터페이스(22) 및 통신 인터페이스(28) 모두는 소스 장치(12)에서 목적지 장치(14)를 가리키는 화상표이자 또한 도 1의 인코딩된 화상 데이터(21)에 대해 사용되는 화살표에 의해 지시된 바와 같이 단방향 통신 인터페이스로서 구성될 수 있거나, 또는 양방향 통신 인터페이스로서 구성될 수 있으며, 예를 들어 연결을 설정하고 통신 링크 및/또는 인코딩된 화상 데이터 전송과 같은 데이터 전송과 관련된 임의의 다른 정보를 확인하고 교환하기 위해 메시지를 전송하고 수신하도록 구성될 수 있다.
디코더(30)는 인코딩된 화상 데이터(21)를 수신하고 디코딩된 화상 데이터(31) 또는 디코딩된 화상(31)을 수신하도록 구성된다(상세한 내용은 예를 들어,도 3 또는 도 5에 기초하여 아래에서 더 설명됨).
목적지 장치(14)의 후처리기(32)는 후처리된 화상 데이터(33), 예를 들어 후처리된 화상(33)을 획득하기 위해 디코딩된 화상 데이터(31)(또한 재구성된 화상 데이터로서 지칭됨), 예를 들어 디코딩된 화상(131)을 후처리하도록 구성된다. 후처리 유닛(32)에 의해 수행되는 후처리는 예를 들어, 디스플레이 장치(34)에 의한 디스플레이를 위해 디코딩된 화상 데이터(31)를 준비하기 위해 예를 들어, 컬러 포맷 변환(예를 들어, YCbCr에서 RGB로), 컬러 보정, 트리밍 또는 재처리, 또는 임의의 다른 처리를 포함할 수 있다.
목적지 장치(14)의 디스플레이 장치(34)는 예를 들어 사용자 또는 시청자에게 화상을 디스플레이하기 위해 후처리된 화상 데이터(33)를 수신하도록 구성된다. 디스플레이 장치(34)는 재구성된 화상을 제공하기 위한 임의 유형의 디스플레이, 예를 들어 통합된 또는 외부의 디스플레이 또는 모니터이거나 또는 이들을 포함할 수 있다. 예를 들어, 디스플레이는 액정 디스플레이(liquid crystal display, LCD), 유기 발광 다이오드(organic light emitting diode, OLED) 디스플레이, 플라즈마 디스플레이, 프로젝터, 마이크로 LED 디스플레이, 액정 온 실리콘(liquid crystal on silicon, LCoS), 디지털 라이트 프로세서(digital light processor, DLP) 또는 임의 유형의 다른 디스플레이를 포함할 수 있다.
비록 도 1은 소스 장치(12) 및 목적지 장치(14)를 별개의 장치로 도시하고 있지만, 장치 실시예는 다르게는 소스 장치(12)와 목적지 장치(14) 모두 또는 소스 장치(12) 및 목적지 장치(14) 둘 다의 기능, 즉 소스 장치(12) 또는 대응하는 기능 및 목적지 장치(14) 또는 대응하는 기능을 포함할 수 있다. 이러한 실시예에서, 소스 장치(12) 또는 대응하는 기능 및 목적지 장치(14) 또는 대응하는 기능은 동일한 하드웨어 및/또는 소프트웨어, 별도의 하드웨어 및/또는 소프트웨어, 또는 이들의 임의의 조합을 사용하여 구현될 수 있다.
설명에 기초하여 당업자에게 명백한 바와 같이, 도 1에 도시된 소스 장치(12) 및/또는 목적지 장치(14)의 기능 또는 상이한 유닛의 기능의 존재 및 (정확한) 분할은 실제 장치 및 애플리케이션에 따라 다를 수 있다.
인코더(20)(예를 들어, 비디오 인코더(20)) 및 디코더(30)(예를 들어, 비디오 디코더(30))는 각각 다양한 적절한 회로, 예를 들어 하나 이상의 마이크로 프로세서, 디지털 신호 프로세서(digital signal processor, DSP), 주문형 집적 회로(application-specific integrated circuit, ASIC), 필드 프로그래밍 가능 게이트 어레이(field-programmable gate array, FPGA), 개별 로직, 하드웨어, 또는 이들의 임의의 조합 중 어느 하나로서 구현될 수 있다. 기술이 소프트웨어를 사용하여 부분적으로 구현되는 경우, 장치는 적절한 비 일시적 컴퓨터 판독 가능 저장 매체에 소프트웨어 명령을 저장할 수 있으며, 본 개시의 기술을 수행하기 위해 하나 이상의 프로세서와 같은 하드웨어를 사용하여 명령을 실행할 수 있다. 전술한 컨텐츠(하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 조합 등을 포함함) 중 어느 하나는 하나 이상의 프로세서로 간주될 수 있다. 비디오 인코더(20) 및 비디오 디코더(30)는 각각 하나 이상의 인코더 또는 디코더에 포함될 수 있고, 인코더 또는 디코더는 대응하는 장치에서 결합된 인코더/디코더(코덱)의 일부로 통합될 수 있다.
소스 장치(12)는 비디오 인코딩 장치(device) 또는 비디오 인코딩 장치(aparatus)로 지칭될 수 있다. 목적지 장치(14)는 비디오 디코딩 장치(device) 또는 비디오 디코딩 장치(apparatus)로 지칭될 수 있다. 소스 장치(12) 및 목적지 장치(14)는 비디오 코딩 장치(device) 또는 비디오 코딩 장치(apparatus)의 예일 수 있다.
소스 장치(12) 및 목적지 장치(14)는 임의 유형의 핸드 헬드 또는 고정 장치, 예를 들어 노트북 또는 랩탑 컴퓨터, 휴대폰, 스마트 폰, 태블릿 또는 태블릿 컴퓨터, 비디오 카메라, 데스크탑 컴퓨터, 셋탑 박스, 텔레비전, 디스플레이 장치, 디지털 매체 플레이어, 비디오 게임 콘솔, 비디오 스트리밍 장치(컨텐츠 서비스 서버 또는 컨텐츠 전달 서버와 같음), 방송 수신기 장치 또는 방송 전송기 장치를 포함하는 광범위한 장치 중 어느 하나를 포함할 수 있으며, 임의 유형의 운영 체제를 사용하거나 사용하지 않을 수 있다.
일부 경우에, 소스 장치(12) 및 목적지 장치(14)는 무선 통신을 위해 장착될 수 있다. 따라서, 소스 장치(12) 및 목적지 장치(14)는 무선 통신 장치일 수 있다.
일부 경우에, 도 1에 도시된 비디오 코딩 시스템(10)은 단지 예시일 뿐이며,본 출원의 기술은 인코딩 장치와 디코딩 장치 간의 임의의 데이터 통신을 반드시 포함하지는 않는 비디오 코딩 설정(예를 들어, 비디오 인코딩 또는 비디오 디코딩)에 적용될 수 있다. 다른 예에서, 데이터는 로컬 메모리로부터 검색되거나, 네트워크 등을 통해 스트리밍될 수 있다. 비디오 인코딩 장치는 데이터를 인코딩하고 데이터를 메모리에 저장할 수 있으며, 그리고/또는 비디오 디코딩 장치는 메모리로부터 데이터를 검색하고 데이터를 디코딩할 수 있다. 일부 예에서, 인코딩 및 디코딩은 서로 통신하지 않고 단순히 데이터를 메모리로 인코딩하고 그리고/또는 메모리로부터 데이터를 검색하고 데이터를 디코딩하는 장치에 의해 수행된다.
비디오 인코더(20)를 참조하여 설명된 각각의 예에 대해, 비디오 디코더(30)는 역처리를 수행하도록 구성될 수 있다는 것을 이해해야 한다. 시그널링 신택스 요소와 관련하여, 비디오 디코더(30)는 그러한 신택스 요소를 수신하고 파싱하며 이와 상응하게 관련된 비디오 데이터를 디코딩하도록 구성될 수 있다. 일부 예에서, 비디오 인코더(20)는 ...를 정의하는 하나 이상의 신택스 요소를 인코딩된 비디오 비트스트림으로 엔트로피 인코딩할 수 있다. 그러한 예에서, 비디오 디코더(30)는 그러한 신택스 요소를 파싱하고 이와 상응하게 관련된 비디오 데이터를 디코딩할 수 있다.
인코더 및 인코딩 방법
도 2는 본 출원(개시)의 기술을 구현하도록 구성된 비디오 인코더(20)의 예의 개략적/개념적 블록도이다. 도 2의 예에서, 비디오 인코더(20)는 잔여 계산 유닛(204), 변환 처리 유닛(206), 양자화 유닛(208), 역양자화 유닛(210), 역변환 처리 유닛(212), 재구성 유닛(214), 버퍼(216), 루프 필터 유닛(220), 디코딩된 화상 버퍼(decoded picture buffer, DPB)(230), 예측 처리 유닛(260) 및 엔트로피 인코딩 유닛(270)을 포함한다. 예측 처리 유닛(260)은 인터 예측 유닛(244), 인트라 예측 유닛(254) 및 모드 선택 유닛(262)을 포함할 수 있다. 인터 예측 유닛(244)은 모션 추정 유닛 및 모션 보상 유닛(도면에 도시되지 않음)을 포함할 수 있다. 도 2에 도시된 비디오 인코더(20)는 또한 하이브리드 비디오 코덱에 기초하여 하이브리드 비디오 인코더 또는 비디오 인코더로서 지칭될 수 있다.
예를 들어, 잔여 계산 유닛(204), 변환 처리 유닛(206), 양자화 유닛(208), 예측 처리 유닛(260) 및 엔트로피 인코딩 유닛(270)은 인코더(20)의 순방향 신호 경로를 형성하지만, 예를 들어, 역양자화 유닛(210), 역변환 처리 유닛(212), 재구성 유닛(214), 버퍼(216), 루프 필터(220), 디코딩된 화상 버퍼(DPB)(230) 및 예측 처리 유닛(260)은 인코더의 역방향 신호 경로를 형성한다. 인코더의 역방향 신호 경로는 디코더(도 3의 디코더(30) 참조)의 신호 경로에 대응한다.
인코더(20)는 예를 들어, 입력(202)을 통해, 화상(201) 또는 화상(201)의 블록(203), 예를 들어 비디오 또는 비디오 시퀀스를 형성하는 화상 시퀀스 내의 화상을 수신한다. 화상 블록(203)은 또한 현재 화상 블록 또는 인코딩될 화상 블록으로 지칭될 수 있다. 화상(201)은 현재 화상 또는 인코딩될 화상(특히 비디오 코딩에서, 현재 화상을 다른 화상과 구별하기 위해, 다른 화상은 예를 들어, 동일한 비디오 시퀀스, 즉 또한 현재 화상을 포함하는 비디오 시퀀스의 이전에 인코딩되고 그리고/또는 디코딩된 화상)으로서 지칭될 수 있다.
분할(partitioning)
인코더(20)의 실시예는 화상(201)을 블록(203)과 같은 복수의 블록으로 분할하도록 구성된 분할 유닛(도 2에 도시되지 않음)을 포함할 수 있다. 화상(201)은 일반적으로 복수의 겹치지 않는 블록으로 분할된다. 분할 유닛은 비디오 시퀀스의 모든 화상에 대해 동일한 블록 크기 및 블록 크기를 정의하는 대응하는 그리드를 사용하거나, 화상 또는 서브 세트 또는 화상 그룹 사이의 블록 크기를 변경하며, 각각의 화상을 대응하는 블록으로 분할하도록 구성될 수 있다.
일 예에서, 비디오 인코더(20)의 예측 처리 유닛(260)은 전술한 분할 기술의 임의의 조합을 수행하도록 구성될 수 있다.
화상(201)과 같이, 블록(203)의 크기가 화상(201)의 크기보다 작지만, 블록(203)은 휘도 값(샘플 값)을 갖는 샘플의 2차원 어레이 또는 매트릭스로 간주되거나 간주될 수 있다. 즉, 블록(203)은 예를 들어, 하나의 샘플 어레이(예를 들어, 단색 화상(201)의 경우 루마 어레이), 3개의 샘플 어레이(예를 들어, 컬러 화상의 경우 하나의 루마 어레이 및 두 개의 크로마 어레이) 또는 적용된 컬러 포맷에 따라 다른 임의의 다른 수량 및/또는 어레이 유형을 포함할 수 있다. 블록(203)의 수평 및 수직 방향(또는 축)의 샘플 수량은 블록(203)의 크기를 정의한다.
도 2에 도시된 인코더(20)는 화상(201)을 블록 단위로 인코딩하도록, 예를 들어 각각의 블록(203)에 대한 인코딩 및 예측을 수행하도록 구성된다.
잔여 계산
잔여 계산 유닛(204)은 예를 들어 샘플 도메인에서 잔여 블록(205)을 획득하기 위해 샘플 단위로(픽셀 단위로) 화상 블록(203)의 샘플 값으로부터 예측 블록(265)의 샘플 값을 감산함으로써 화상 블록(203) 및 예측 블록(265)(예측 블록(265)에 대한 세부 사항은 아래에 추가 제공됨))에 기초하여 잔여 블록(205)을 계산하도록 구성된다.
변환
변환 처리 유닛(206)은 변환 도메인에서 변환 계수(207)를 획득하기 위해 변환, 예를 들어 이산 코사인 변환(discrete cosine transform, DCT) 또는 이산 사인 변환(discrete sine transform, DST)을 잔여 블록(205)의 샘플 값에 적용하도록 구성된다. 변환 계수(207)는 또한 변환 잔여 계수로 지칭될 수 있고 변환 도메인에서 잔여 블록(205)을 나타낸다.
변환 처리 유닛(206)은 HEVC/H.265에서 지정된 변환과 같은 DCT/DST의 정수 근사를 적용하도록 구성될 수 있다. 직교 DCT 변환과 비교할 때, 이러한 정수 근사는 일반적으로 인자(factor)에 기초하여 조정된다. 순방향 및 역변환을 사용하여 처리되는 잔여 블록의 표준을 보존하기 위해, 변환 프로세스의 일부로 추가 스케일 팩터가 적용된다. 스케일 팩터는 일반적으로 몇 가지 제약을 기반으로 선택된다. 예를 들어, 스케일 팩터는 시프트 연산에 대한 2의 거듭 제곱, 변환 계수의 비트 깊이, 정확도와 구현 비용 간의 절충이다. 예를 들어, 특정 스케일 팩터는 예를 들어 디코더(30) 측의 역변환 처리 유닛(212)에 의한 역변환 (및 예를 들어 인코더(20) 측의 역변환 처리 유닛(212)에 의한 대응하는 역변환)에 대해 지정되고, 이와 상응하게, 대응하는 스케일 팩터는 인코더(20) 측의 변환 처리 유닛(206)에 의한 순방향 변환에 대해 지정될 수 있다.
양자화
양자화 유닛(208)은, 예를 들어 스칼라 양자화 또는 벡터 양자화를 적용함으로써 양자화된 변환 계수(209)를 획득하기 위해 변환 계수(207)를 양자화하도록 구성된다. 양자화된 변환 계수(209)는 또한 양자화된 잔여 계수(209)로서 지칭될 수 있다. 양자화 프로세스는 변환 계수(207)의 일부 또는 전부와 관련된 비트 깊이를 감소시킬 수 있다. 예를 들어, n 비트 변환 계수는 양자화 중에 m 비트 변환 계수로 라운드 다운(round down)될 수 있으며, 여기서 n은 m보다 크다. 양자화 파라미터(quantization parameter, QP)를 조정함으로써 양자화 정도가 변경될 수 있다. 예를 들어, 스칼라 양자화의 경우, 더 미세하거나 더 거친 양자화를 달성하기 위해 다른 스케일이 적용될 수 있다. 더 작은 양자화 단계는 더 미세한 양자화에 대응하고, 더 큰 양자화 단계는 더 거친 양자화에 대응한다. 적절한 양자화 단계는 양자화 파라미터(QP)에 의해 지시될 수 있다. 예를 들어, 양자화 파라미터는 미리 정의된 적절한 양자화 단계의 세트에 대한 인덱스일 수 있다. 예를 들어, 더 작은 양자화 파라미터는 더 미세한 양자화(더 작은 양자화 단계)에 대응할 수 있고 더 큰 양자화 파라미터는 더 거친 양자화(더 큰 양자화 단계)에 대응하거나, 또는 그 반대일 수 있다. 양자화는 양자화 단계 및 대응하는 양자화 또는 예를 들어 역양자화 유닛(210)에 의해 수행되는 역양자화에 의한 나눗셈을 포함할 수 있거나, 또는 양자화 단계에 의한 곱셈을 포함할 수 있다. HEVC와 같은 일부 표준에 따른 실시예에서, 양자화 단계를 결정하기 위해 양자화 파라미터가 사용될 수 있다. 일반적으로, 양자화 단계는 나눗셈을 포함하는 수학식의 고정 소수점 근사를 사용하여 양자화 파라미터를 기반으로 계산될 수 있다. 잔여 블록의 표준을 복원하기 위해 양자화 및 역양자화에 추가 스케일링 인자가 도입될 수 있으며, 여기서 잔여 블록의 표준은 양자화 단계 및 양자화 파라미터에 대한 수학식의 고정 소수점 근사에서 사용된 스케일로 인해 수정될 수 있다. 예시적인 구현에서, 역변환의 스케일은 역양자화의 스케일과 결합될 수 있다. 다르게는, 맞춤형 양자화 테이블이 사용되어 인코더로부터 디코더로, 예를 들어 비트 스트림으로 시그널링될 수 있다. 양자화는 손실이 있는 작동이며, 여기서 양자화 단계가 클수록 손실이 커진다.
역양자화 유닛(210)은 역양자화된 계수(211)를 획득하기 위해 양자화 유닛(208)의 역양자화를 양자화된 계수에 적용하도록, 예를 들어 양자화 유닛(208)과 동일한 양자화 단계에 기초하거나 또는 이를 사용하여, 역양자화 유닛(208)에 의해 적용되는 양자화 방식의 역을 적용하도록 구성된다. 역양자화된 계수(211)는 또한 역양자화 잔여 계수(211)로서 지칭될 수 있고, 비록 역양자화된 계수(211)가 일반적으로 양자화에 의한 손실로 인해 변환 계수와 다르지만 변환 계수(207)에 대응할 수 있다.
역변환 처리 유닛(212)은 샘플 도메인에서 역변환 블록(213)을 획득하기 위해 변환 처리 유닛(206)에 의해 적용되는 변환의 역변환, 예를 들어 역 이산 코사인 변환(DCT) 또는 역 이산 사인 변환(DST)을 적용하도록 구성된다. 역변환 블록(213)은 또한 역변환 역양자화된 블록(213) 또는 역변환 잔여 블록(213)으로 지칭될 수 있다.
재구성 유닛(214)(예를 들어, 합산기(214))은 예를 들어, 샘플 도메인에서 재구성된 블록(215)을 획득하기 위해 재구성된 잔여 블록(213)의 샘플 값과 예측 블록(265)의 샘플 값을 더함으로써 예측 블록(265)에 역변환 블록(213)(즉, 재구성된 잔여 블록(213))을 추가하도록 구성된다.
선택적으로, 예를 들어 라인 버퍼(216)의 버퍼 유닛(216)(짧게는 "버퍼"(216))은 예를 들어 인트라 예측을 위해 재구성된 블록(215) 및 대응하는 샘플 값을 버퍼링하거나 저장하도록 구성된다. 다른 실시예에서, 인코더는 임의의 유형의 추정 및/또는 예측, 예를 들어 인트라 예측을 위해 버퍼 유닛(216)에 저장되는 필터링되지 않은 재구성된 블록 및/또는 대응하는 샘플 값을 사용하도록 구성될 수 있다.
예를 들어, 실시예에서, 인코더(20)는 버퍼 유닛(216)이 인트라 예측(254)을 위해 사용될 뿐만 아니라 루프 필터 유닛(220)(도 2에 도시되지 않음)에도 사용되는 재구성된 블록(215)을 저장하도록 구성되도록 그리고 예를 들어, 버퍼 유닛(216) 및 디코딩된 화상 버퍼(230)가 하나의 버퍼를 형성하도록 구성될 수 있다. 다른 실시예에서, 필터링된 블록(221) 및/또는 디코딩된 화상 버퍼(230)로부터의 블록 또는 샘플(블록 또는 샘플은 도 2에 도시되지 않음)이 인트라 예측 유닛(254)에 대한 입력 또는 기초로서 사용된다.
루프 필터 유닛(220)(짧게는 "루프 필터"(220))은 픽셀 전환을 부드럽게 하거나 비디오 품질을 향상시키도록 필터링된 블록(221)을 획득하기 위해 재구성된 블록(215)을 필터링하도록 구성된다. 루프 필터 유닛(220)은 디블로킹 필터, 샘플 적응 오프셋(sample-adaptive offset, SAO) 필터와 같은 하나 이상의 루프 필터 또는 다른 필터, 예를 들어 양방향 필터, 적응 루프 필터(adaptive loop filter, ALF), 샤프닝(sharpening) 또는 평활화 필터 또는 협업 필터를 표현하고자 한다. 루프 필터 유닛(220)이 도 2에서 인 루프(in-loop) 필터로 도시되어 있지만, 다른 구현에서, 루프 필터 유닛(220)은 포스트 루프(post-loop) 필터로서 구현될 수 있다. 필터링된 블록(221)은 또한 필터링된 재구성된 블록(221)으로도 지칭될 수 있다. 디코딩된 화상 버퍼(230)는 루프 필터 유닛(220)이 재구성된 인코딩된 블록에 대해 필터링 작동을 수행한 후에 재구성된 인코딩된 블록을 저장할 수 있다.
실시예에서, 인코더(20)(이와 상응하여, 루프 필터 유닛(220))는 예를 들어, 디코더(30)가 디코딩을 위해 동일한 루프 필터 파라미터를 수신하고 적용할 수 있도록 직접 또는 엔트로피 인코딩 유닛(270) 또는 임의의 다른 엔트로피 인코딩 유닛에 의해 수행되는 엔트로피 인코딩 후에 루프 필터 파라미터(예를 들어, 샘플 적응 오프셋 정보)를 출력하도록 구성될 수 있다.
디코딩된 화상 버퍼(DPB)(230)는 비디오 인코더(20)에 의한 비디오 데이터 인코딩에의 사용을 위해 참조 화상 데이터를 저장하는 참조 화상 메모리일 수 있다. DPB(230)는 (동기식 동적 랜덤 액세스 메모리(dynamic random access memory, DRAM)(SDRAM), 자기 저항성 RAM(magnetoresistive RAM, MRAM), 저항성 RAM(resistive RAM, RRAM) 또는 기타 유형의 메모리 장치를 포함하는) 동적 랜덤 액세스 메모리(DRAM)와 같은 다양한 메모리 장치 중 어느 하나에 의해 형성될 수 있다. DPB(230) 및 버퍼(216)는 동일한 메모리 장치 또는 별도의 메모리 장치에 의해 제공될 수 있다. 예에서, 디코딩된 화상 버퍼(DPB)(230)는 필터링된 블록(221)을 저장하도록 구성된다. 디코딩된 화상 버퍼(230)는 이전에 필터링된 다른 블록, 예를 들어 동일한 현재 화상 또는 다른 화상, 예를 들어 이전에 재구성된 화상의 이전에 재구성되고 필터링된 블록(221)을 저장하도록 추가로 구성될 수 있으며, 예를 들어 인터 예측을 위해, 완전한 이전에 재구성된, 즉 디코딩된 화상 (및 대응하는 참조 블록 및 샘플) 및/또는 부분적으로 재구성된 현재 화상 (및 대응하는 참조 블록 및 샘플)을 제공할 수 있다. 예에서, 재구성된 블록(215)이 인 루프 필터링없이 재구성된 경우, 디코딩된 화상 버퍼(DPB)(230)는 재구성된 블록(215)을 저장하도록 구성된다.
블록 예측 처리 유닛(260)으로도 지칭되는 예측 처리 유닛(260)은 블록(203)(현재 화상(201)의 현재 블록(203)) 및 재구성된 화상 데이터, 예를 들어 버퍼(216)로부터의 동일한(현재의) 화상 및/또는 디코딩된 화상 버퍼(230)로부터의 하나 이상의 이전에 디코딩된 화상의 참조 화상 데이터(231)를 수신하거나 획득하고, 구체적으로 인터 예측 블록(245) 또는 인트라 예측 블록(255)일 수 있는 예측 블록(265)을 제공하기 위해, 예측을 위한 이러한 데이터를 처리하도록 구성된다.
모드 선택 유닛(262)은 잔여 블록(205)의 평가를 위해 그리고 재구성된 블록(215)의 재구성을 위해 예측 모드(예를 들어, 인트라 또는 인터 예측 모드) 및/또는 예측 블록(265)으로 사용될 대응하는 예측 블록(245 또는 255)을 선택하도록 구성될 수 있다.
실시예에서, 모드 선택 유닛(262)은 (예를 들어, 예측 처리 유닛(260)에 의해 지원되는 예측 모드로부터) 예측 모드를 선택하도록 구성될 수 있으며, 여기서 예측 모드는 최상의 매칭 또는 최소 잔여(최소 잔여는 전송 또는 저장을 위한 더 나은 압축을 의미함)를 제공하거나, 또는 최소 시그널링 오버헤드(최소 시그널링 오버헤드는 전송 또는 저장을 위한 더 나은 압축을 의미함)를 제공하거나, 또는 둘 다를 고려하거나 균형을 유지한. 모드 선택 유닛(262)은 레이트 왜곡 최적화(rate distortion optimization, RDO)에 기초하여 예측 모드를 결정하도록, 구체적으로는, 최소 레이트 왜곡 최적화를 제공하는 예측 모드를 선택하거나, 또는 관련된 레이트 왜곡이 적어도 예측 모드 선택 기준을 충족하는 예측 모드를 선택하도록 구성될 수 있다.
이하, 인코더(20)의 예에 의해 수행되는(예를 들어, 예측 처리 유닛(260)에 의해) 수행되는 예측 처리 및 (예를 들어, 모드 선택 유닛(262)에 의해 수행되는) 모드 선택에 대해 상세히 설명한다.
전술한 바와 같이, 인코더(20)는 (미리 결정된) 예측 모드의 세트로부터 최적 또는 최적 예측 모드를 결정하거나 선택하도록 구성된다. 예측 모드의 세트는 예를 들어 인트라 예측 모드 및/또는 인터 예측 모드를 포함할 수 있다.
인트라 예측 모드의 세트는 35개의 다른 인트라 예측 모드, 예를 들어 DC(또는 평균) 모드 및 평면 모드와 같은 비 방향 모드, 또는 H.265에서 정의된 것과 같은 방향 모드를 포함할 수 있거나, 또는 67개의 다른 인트라 예측 모드, 예를 들어 DC(또는 평균) 모드 및 평면 모드와 같은 비 방향 모드 또는 개발중인 H.266에서 정의된 것과 같은 방향 모드를 포함할 수 있다.
(가능한) 인터 예측 모드의 세트는 이용 가능한 참조 화상(즉, 예를 들어 전술한 바와 같이 DPB(230)에 저장된 적어도 일부 디코딩된 화상)에 의존하고, 다른 인터 예측 파라미터는 예를 들어 전체 참조 화상 또는 참조 화상의 일부, 예를 들어 현재 화상 블록의 영역 주변의 검색 윈도우 영역만이 가장 매칭되는 참조 블록을 검색하는 데 사용되는지의 여부에 의존하며, 그리고/또는 예를 들어 하프-펠(half-pel) 및/또는 쿼터-펠(quarter pel) 보간과 같은 픽셀 보간이 적용되는지 여부에 의존한다.
전술한 예측 모드에 추가하여, 스킵(skip) 모드 및/또는 직접 모드가 또한 적용될 수 있다.
예측 처리 유닛(260)은 예를 들어 쿼드 트리(quad-tree, QT) 분할, 이진 트리(binary-tree, BT) 분할, 트리플 트리(triple-tree 또는 ternary-tree, TT) 분할 또는 이들의 임의의 조합을 반복적으로 사용함으로써 블록(203)을 더 작은 블록 파티션(partition) 또는 서브 블록으로 분할하고, 예를 들어 각각의 블록 파티션 또는 서브 블록에 대한 예측을 수행하도록 추가로 구성될 수 있다. 모드 선택은 분할된 블록(203)의 트리 구조의 선택과 각각의 블록 파티션 또는 서브 블록에 적용되는 예측 모드의 선택을 포함한다.
인터 예측 유닛(244)은 모션 추정(motion estimation, ME) 유닛(도 2에 도시되지 않음)과 모션 보상(motion compensation, MC) 유닛(도 2에 도시되지 않음)을 포함할 수 있다. 모션 추정 유닛은 화상 블록(203)(현재 화상(201)의 현재 화상 블록(203)) 및 디코딩된 화상(231) 또는 적어도 하나 이상의 이전에 재구성된 블록, 예를 들어 모션 추정을 위해 다른/상이한 이전에 디코딩된 화상(231)의 하나 이상의 재구성된 블록을 수신하거나 획득하도록 구성된다. 예를 들어, 비디오 시퀀스는 현재 화상과 이전에 디코딩된 화상(31)을 포함할 수 있거나, 또는 즉, 현재 화상과 이전에 디코딩된 화상(31)은 비디오 시퀀스를 형성하는 화상의 일부이거나 또는 시퀀스를 형성할 수 있다.
예를 들어, 인코더(20)는 동일한 화상의 복수의 참조 블록 또는 복수의 다른 화상의 상이한 화상으로부터 참조 블록을 선택하고, 참조 화상(또는 참조 화상 인덱스) 및/또는 참조 화상의 위치(X, Y 좌표)와 현재 블록의 위치 사이의 오프셋(공간적 오프셋)을 인터 예측 파라미터로서 모션 추정 유닛(도 2에 도시되지 않음)에게 제공하도록 구성될 수 있다. 오프셋은 또한 모션 벡터(motion vector, MV)로서 지칭된다.
모션 보상 유닛은 인터 예측 파라미터를 획득하고 예를 들어 수신하고, 인터 예측 블록(245)을 획득하기 위해 인터 예측 파라미터에 기초하거나 또는 이를 사용하여 인터 예측을 수행하도록 구성된다. 모션 보상 유닛(도 2에 도시되지 않음)에 의해 수행되는 모션 보상은 모션 추정을 통해 결정된 모션/블록 벡터에 기초하여 예측 블록을 페치(fetch)하거나 생성하는 것을 포함할 수 있다(서브 픽셀 정밀도로 보간을 수행할 수 있음). 보간 필터링은 알려진 픽셀 샘플로부터 추가 픽셀 샘플을 생성할 수 있으므로, 화상 블록을 코딩하는 데 사용될 수 있는 후보 예측 블록의 수량을 잠재적으로 증가시킬 수 있다. 현재 화상 블록의 PU에 대한 모션 벡터를 수신하면, 모션 보상 유닛(246)은 모션 벡터가 참조 화상 리스트 중 하나에서 가리키는 예측 블록을 찾을 수 있다. 모션 보상 유닛(246)은 또한 비디오 디코더(30)가 비디오 슬라이스의 화상 블록을 디코딩하기 위해 신택스 요소를 사용할 수 있도록 블록 및 비디오 슬라이스와 연관된 신택스 요소를 생성할 수 있다.
인트라 예측 유닛(254)은 인트라 추정을 위해 동일한 화상의 화상 블록(203)(현재 화상 블록) 및 하나 이상의 이전에 재구성된 블록, 예를 들어 재구성된 이웃 블록을 획득하도록, 예를 들어 수신하도록 구성된다. 예를 들어, 인코더(20)는 복수의(미리 결정된) 인트라 예측 모드로부터 인트라 예측 모드를 선택하도록 구성될 수 있다.
실시예에서, 인코더(20)는 최적화 기준에 따라, 예를 들어 최소 잔여(예를 들어, 현재 화상 블록(203)과 가장 유사한 예측 블록(255)를 제공하는 인트라 예측 모드) 또는 최소 레이트 왜곡에 기초하여 인트라 예측 모드를 선택하도록 구성될 수 있다.
인트라 예측 유닛(254)은 예를 들어 선택된 인트라 예측 모드에서의 인트라 예측 파라미터에 기초하여 인트라 예측 블록(255)을 결정하도록 추가로 구성된다. 어쨌든, 블록에 대한 인트라 예측 모드를 선택한 후, 인트라 예측 유닛(254)은 인트라 예측 파라미터, 즉 블록에 대해 선택된 인트라 예측 모드를 지시하는 정보를 엔트로피 인코딩 유닛(270)에게 제공하도록 추가로 구성된다. 예에서, 인트라 예측 유닛(254)은 후술하는 인트라 예측 기술의 임의의 조합을 수행하도록 구성될 수 있다.
엔트로피 인코딩 유닛(270)은 출력(272)을 통해 예를 들어 인코딩된 비트스트림(21)의 형태로 출력될 수 있는 인코딩된 화상 데이터(21)를 획득하기 위해 양자화된 계수(209), 인터 예측 파라미터, 인트라 예측 파라미터, 및/또는 루프 필터 파라미터 중 하나 또는 모두에 대해 엔트로피 인코딩 알고리즘 또는 방식(예를 들어, 가변 길이 코딩(variable length coding, VLC) 방식, 컨텍스트 적응 VLC(context adaptive VLC, CAVLC) 방식, 산술 코딩 방식, 컨텍스트 적응 이진 산술 코딩(context adaptive binary arithmetic coding, CABAC), 신택스 기반 컨텍스트 적응 이진 산술 코딩(syntax-based context-adaptive binary arithmetic coding, SBAC), 확률 간격 분할 엔트로피(probability interval partitioning entropy, PIPE) 코딩 또는 다른 엔트로피 인코딩 방법 또는 기술)을 적용하도록 구성된다. 인코딩된 비트스트림은 비디오 디코더(30)로 전송되거나, 또는 비디오 디코더(30)에 의한 추후 전송 또는 검색을 위해 보관될 수있다. 엔트로피 인코딩 유닛(270)은 인코딩되고 있는 현재 비디오 슬라이스에 대한 다른 신택스 요소를 엔트로피 인코딩하도록 추가로 구성될 수 있다.
비디오 인코더(20)의 또 다른 구조적 변형이 비디오 스트림을 인코딩하는 데 사용될 수 있다. 예를 들어, 비 변환 기반 인코더(20)는 일부 블록 또는 프레임에 대해 변환 처리 유닛(206)없이 잔여 신호를 직접 양자화할 수 있다. 다른 구현에서, 인코더(20)는 단일 유닛으로 결합된 양자화 유닛(208) 및 역양자화 유닛(210)을 가질 수 있다.
도 3은 본 출원의 기술을 구현하도록 구성된 예시적인 비디오 디코더(30)를 도시한다. 비디오 디코더(30)는 디코딩된 화상(231)을 획득하기 위해 예를 들어 인코더(20)에 의해 인코딩된 인코딩된 화상 데이터(예를 들어, 인코딩된 비트스트림)(21)를 수신하도록 구성된다. 디코딩 프로세스에서, 비디오 디코더(30)는 비디오 인코더(20)로부터 비디오 데이터, 예를 들어, 인코딩된 비디오 슬라이스 및 연관된 신택스 요소의 화상 블록을 나타내는 인코딩된 비디오 비트스트림을 수신한다.
도 3의 예에서, 디코더(30)는 엔트로피 디코딩 유닛(304), 역양자화 유닛(310), 역변환 처리 유닛(312), 재구성 유닛(314)(예를 들어, 합산기(314)), 버퍼(316), 루프 필터(320), 디코딩된 화상 버퍼(330) 및 예측 처리 유닛(360)을 포함한다. 예측 처리 유닛(360)은 인터 예측 유닛(344), 인트라 예측 유닛(354) 및 모드 선택 유닛(362)을 포함할 수 있다. 일부 예에서, 비디오 디코더(30)는 일반적으로 도 2의 비디오 인코더(20)를 참조하여 설명된 인코딩 패스에 역인 디코딩 패스를 수행할 수 있다.
엔트로피 디코딩 유닛(304)은 예를 들어, 양자화된 계수(309) 및/또는 디코딩된 인코딩 파라미터(도 3에 도시되지 않음), 예를 들어 인터 예측 파라미터, 인트라 예측 파라미터, 루프 필터 파라미터 및/또는 (디코딩되는) 다른 신택스 요소 중 하나 또는 모두를 획득하기 위해 인코딩된 화상 데이터(21)에 대해 엔트로피 디코딩을 수행하도록 구성된다. 엔트로피 디코딩 유닛(304)은 인터 예측 파라미터, 인트라 예측 파라미터 및/또는 다른 신택스 요소를 예측 처리 유닛(360)으로 전달하도록 추가로 구성된다. 비디오 디코더(30)는 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨에서 신택스 요소를 수신할 수 있다.
역양자화 유닛(310)은 역양자화 유닛(110)과 동일한 기능을 가질 수 있다. 역변환 처리 유닛(312)은 역변환 처리 유닛(212)과 동일한 기능을 가질 수 있다. 재구성 유닛(314)은 재구성 유닛(214)과 동일한 기능을 가질 수 있다. 버퍼(316)는 버퍼(216)와 동일한 기능을 가질 수 있다. 루프 필터(320)는 루프 필터(220)와 동일한 기능을 가질 수 있다. 디코딩된 화상 버퍼(330)는 디코딩된 화상 버퍼(230)와 동일한 기능을 가질 수 있다.
예측 처리 유닛(360)은 인터 예측 유닛(344) 및 인트라 예측 유닛(354)을 포함할 수 있다. 인터 예측 유닛(344)은 기능면에서 인터 예측 유닛(244)과 유사할 수 있고, 인트라 예측 유닛(354)은 기능면에서 인트라 예측 유닛(254)와 유사할 수 있다. 예측 처리 유닛(360)은 일반적으로 블록 예측을 수행하고 그리고/또는 인코딩된 데이터(21)로부터 예측 블록(365)을 획득하고, 예측 관련 파라미터 및/또는 예를 들어 엔트로피 디코딩 유닛(304)로부터 선택된 예측 모드에 대한 정보를 (명시적으로 또는 암시적으로) 수신하거나 획득하도록 구성된다.
비디오 슬라이스가 인트라 인코딩된(I) 슬라이스로서 인코딩되는 경우, 예측 처리 유닛(360)의 인트라 예측 유닛(354)은 시그널링된 인트라 예측 모드 및 현재 프레임 또는 화상의 이전에 디코딩된 블록으로부터의 데이터에 기초하여 현재 비디오 슬라이스의 화상 블록에 대한 예측 블록(365)을 생성하도록 구성된다. 비디오 프레임이 인터 인코딩된(B 또는 P) 슬라이스로서 인코딩되는 경우 경우, 예측 처리 유닛(360)의 인터 예측 유닛(344)(예를 들어, 모션 보상 유닛)은 엔트로피 디코딩 유닛(304)으로부터 수신된 모션 벡터 및 다른 신택스 요소에 기초하여 현재 비디오 슬라이스의 비디오 블록에 대한 예측 블록(365)을 생성하도록 구성된다. 인터 예측을 위해, 예측 블록은 하나의 참조 화상 리스트에 있는 참조 화상 중 하나로부터 생성될 수 있다. 비디오 디코더(30)는 디폴트 구성 기술을 사용하고 DPB(330)에 저장된 참조 화상에 기초하여 참조 프레임 리스트, list 0 및 list 1을 구성할 수 있다.
예측 처리 유닛(360)은 모션 벡터 및 다른 신택스 요소를 파싱함으로써 현재 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정하고, 디코딩 중인 현재 비디오 블록에 대한 예측 블록을 생성하기 위해 예측 정보를 사용하도록 구성된다. 예를 들어, 예측 처리 유닛(360)은 현재 비디오 슬라이스에서 비디오 블록을 디코딩하기 위해 수신된 일부 신택스 요소를 사용하여, 비디오 슬라이스의 비디오 블록을 인코딩하기 위한 예측 모드(예를 들어, 인트라 또는 인터 예측), 인터 예측 슬라이스 유형(예를 들어, B 슬라이스, P 슬라이스 또는 GPB 슬라이스), 슬라이스에 대한 참조 화상 리스트 중 하나 이상의 구성 정보, 슬라이스에 대한 각각의 인터 인코딩된 비디오 블록의 모션 벡터, 슬라이스에서 각각 인터 인코딩된 비디오 블록의 인터 예측 상태, 기타 정보를 결정한다.
역양자화 유닛(310)은 비트 스트림으로 제공되고 엔트로피 디코딩 유닛(304)에 의해 디코딩된 양자화된 변환 계수에 대해 역양자화(즉, dequantization)를 수행하도록 구성될 수 있다. 역양자화 프로세스는 적용되어야 하는 양자화 정도 및 마찬가지로 적용되어야 하는 역양자화 정도를 결정하기 위해 비디오 슬라이스의 각각의 비디오 블록에 대해 비디오 인코더(20)에 의해 계산된 양자화 파라미터를 사용하는 것을 포함할 수 있다.
역변환 처리 유닛(312)은 픽셀 도메인에서 잔여 블록을 생성하기 위해 변환 계수에 역변환(예를 들어, 역 DCT, 역 정수 변환 또는 개념적으로 유사한 역변환 프로세스)을 적용하도록 구성된다.
재구성 유닛(314)(예를 들어, 합산기(314))은 예를 들어 샘플 도메인에서 재구성된 블록(315)을 획득하기 위해, 재구성된 잔여 블록(313)의 샘플 값과 예측 블록(365)의 샘플 값을 더함으로써 예측 블록(365)에 역변환 블록(313)(즉, 재구성된 잔여 블록(313))을 추가하도록 구성된다.
루프 필터 유닛(320)(코딩 루프 동안 또는 코딩 루프 이후)은 픽셀 전환을 평활화하거나 비디오 품질을 향상시키도록 필터링된 블록(321)을 획득하기 위해 재구성된 블록(315)을 필터링하도록 구성된다. 예에서, 루프 필터 유닛(320)은 아래에서 설명되는 필터링 기술의 임의의 조합을 수행하도록 구성될 수 있다. 루프 필터 유닛(320)은 디블로킹 필터, 샘플 적응 오프셋(sample-adaptive offset, SAO) 필터와 같은 하나 이상의 루프 필터 또는 다른 필터, 예를 들어 양방향 필터, 적응 루프 필터(adaptive loop filter, ALF), 샤프닝 또는 평활화 필터, 또는 협업 필터를 나타내기 위한 것이다. 루프 필터 유닛(320)이 도 3에서 인 루프 필터로 도시되어 있지만, 다른 구현에서, 루프 필터 유닛(320)은 포스트 루프 필터로서 구현될 수 있다.
주어진 프레임 또는 화상의 디코딩된 비디오 블록(321)은 이후의 모션 보상에 사용되는 참조 화상을 저장하는 디코딩된 화상 버퍼(330)에 저장된다.
디코더(30)는 예를 들어, 사용자에 대한 표현 또는 사용자에 의한 시청을 위해 출력(332)을 통해 디코딩된 화상(31)을 출력하도록 구성된다.
비디오 디코더(30)의 다른 변형이 압축된 비트 스트림을 디코딩하는 데 사용될 수 있다. 예를 들어, 디코더(30)는 루프 필터 유닛(320)없이 출력 비디오 스트림을 생성할 수 있다. 예를 들어, 비 변환 기반 디코더(30)는 일부 블록 또는 프레임에 대해 역변환 처리 유닛(312)없이 잔여 신호를 직접 역양자화할 수 있다. 다른 구현에서, 비디오 디코더(30)는 단일 유닛으로 결합된 역양자화 유닛(310) 및 역변환 처리 유닛(312)을 가질 수 있다.
도 4는 예시 실시예에 따른 도 2의 인코더(20) 및/또는 도 3의 디코더를 포함하는 비디오 코딩 시스템(40)의 예의 예시도이다. 시스템(40)은 본 출원의 다양한 기술의 조합을 구현할 수 있다. 설명된 구현에서, 비디오 코딩 시스템(40)은 이미징 장치(41), 비디오 인코더(20), 비디오 디코더(30)(및/또는 처리 유닛(46)의 로직 회로(47)를 사용하여 구현된 비디오 인코더), 안테나(42), 하나 이상의 프로세서(43), 하나 이상의 메모리(44) 및/또는 디스플레이 장치(45)를 포함할 수 있다.
도면에 도시된 바와 같이, 이미징 장치(41), 안테나(42), 처리 유닛(46), 로직 회로(47), 비디오 인코더(20), 비디오 디코더(30), 프로세서(43), 메모리(44) 및/또는 디스플레이 장치(45)는 서로 통신할 수 있다. 설명된 바와 같이, 비디오 코딩 시스템(40)이 비디오 인코더(20) 및 비디오 디코더(30)를 사용하여 예시되었지만, 다른 상이한 예에서, 비디오 코딩 시스템(40)은 비디오 인코더(20)만을 포함하거나 또는 비디오 디코더(30)만을 포함할 수 있다.
일부 예에서, 도면에 도시된 바와 같이, 비디오 코딩 시스템(40)은 안테나(42)를 포함할 수 있다. 예를 들어, 안테나(42)는 비디오 데이터의 인코딩된 비트 스트림을 전송하거나 수신하도록 구성될 수 있다. 또한, 일부 예에서, 비디오 코딩 시스템(40)은 디스플레이 장치(45)를 포함할 수 있다. 디스플레이 장치(45)는 비디오 데이터를 제공하도록 구성될 수 있다. 일부 예에서, 도면에 도시된 바와 같이, 로직 회로(47)는 처리 유닛(46)에 의해 구현될 수 있다. 처리 유닛(46)은 주문형 집적 회로(application-specific integrated circuit, ASIC) 로직, 그래픽 프로세서, 범용 프로세서 등을 포함할 수 있다. 비디오 코딩 시스템(40)은 선택적인 프로세서(43)를 더 포함할 수 있다. 선택적인 프로세서(43)는 유사하게 주문형 집적 회로(ASIC) 로직, 그래픽 프로세서, 범용 프로세서 등을 포함할 수 있다. 일부 예에서, 로직 회로(47)는 하드웨어, 예를 들어 비디오 코딩을 위한 전용 하드웨어에 의해 구현될 수 있다. 프로세서(43)는 범용 소프트웨어, 운영체제 등에 의해 구현될 수 있다. 또한, 메모리(44)는 임의 유형의 메모리, 예를 들어 휘발성 메모리(예를 들어, 정적 랜덤 액세스 메모리(Static Random Access Memory, SRAM) 또는 동적 랜덤 액세스 메모리(Dynamic Random Access Memory, DRAM), 또는 비 휘발성 메모리(예를 들어, 플래시 메모리)일 수 있다. 비 제한적인 예에서, 메모리(44)는 캐시 메모리로서 구현될 수 있다. 일부 예들에서, 로직 회로(47)는 (예를 들어, 화상 버퍼의 구현을 위해) 메모리(44)에 액세스할 수 있다. 다른 예에서, 로직 회로(47) 및/또는 처리 유닛(46)은 화상 버퍼 등의 구현을 위한 메모리(예를 들어, 캐시)를 포함할 수 있다.
일부 예에서, 로직 회로를 사용하여 구현되는 비디오 인코더(20)는 화상 버퍼(예를 들어, 처리 유닛(46) 또는 메모리(44)에 의해 구현됨) 및 그래픽 처리 유닛(예를 들어, 처리 유닛(46)에 의해 구현됨)을 포함할 수 있다. 그래픽 처리 유닛은 화상 버퍼에 통신 가능하게 결합될 수 있다. 그래픽 처리 유닛은 도 2를 참조하여 설명된 다양한 모듈 및/또는 본 명세서에서 설명된 다른 인코더 시스템 또는 서브 시스템을 구현하기 위해 로직 회로(47)를 사용하여 구현된 비디오 인코더(20)를 포함할 수 있다. 로직 회로는 본 명세서에서 설명된 다양한 작동을 수행하도록 구성될 수 있다.
비디오 디코더(30)는 유사한 방식으로 도 3의 디코더(30)를 참조하여 설명된 다양한 모듈 및/또는 본 명세서에서 설명된 다른 디코더 시스템 또는 서브 시스템을 구현하기 위해 로직 회로(47)에 의해 구현될 수 있다. 일부 예에서, 로직 회로를 사용하여 구현된 비디오 디코더(30)는 화상 버퍼(처리 유닛(46) 또는 메모리(44)에 의해 구현됨)) 및 그래픽 처리 유닛(예를 들어, 처리 유닛(46)에 의해 구현됨)을 포함할 수 있다. 그래픽 처리 유닛은 화상 버퍼에 통신 가능하게 결합될 수 있다. 그래픽 처리 유닛은 도 3을 참조하여 설명된 다양한 모듈 및/또는 본 명세서에서 설명된 임의의 다른 디코더 시스템 또는 서브 시스템을 구현하기 위해 로직 회로(47)를 사용하여 구현된 비디오 디코더(30)를 포함할 수 있다.
일부 예에서, 비디오 코딩 시스템(40)의 안테나(42)는 비디오 데이터의 인코딩된 비트 스트림을 수신하도록 구성될 수 있다. 상기한 바와 같이, 인코딩된 비트스트림은 비디오 프레임 코딩과 관련되고 본 명세서에서 설명된 데이터, 지시자, 인덱스 값, 모드 선택 데이터 등, 예를 들어, 코딩 분할과 관된 데이터(예를 들어, 변환 계수 또는 양자화된 변환 계수, 선택적 지시자(설명된 바와 같음), 및/또는 코딩 분할을 정의하는 데이터)를 포함할 수 있다. 비디오 코딩 시스템(40)은 안테나(42)에 결합된 비디오 디코더(30)이자 또한 인코딩된 비트스트림을 디코딩하도록 구성된 비디오 디코더(30)를 더 포함할 수 있다. 디스플레이 장치(45)는 비디오 프레임을 제공하도록 구성된다.
도 5는 예시 실시예에 따른 도 1의 소스 장치(12) 및 목적지 장치(14) 중 하나 또는 둘로서 사용될 수 있는 장치(500)의 단순화된 블록도이다. 장치(500)는 본 출원의 기술을 구현할 수 있다. 장치(500)는 복수의 컴퓨팅 장치를 포함하는 컴퓨팅 시스템의 형태일 수 있거나, 또는 모바일 폰, 태블릿 컴퓨터, 랩탑 컴퓨터, 노트북 컴퓨터 또는 데스크탑 컴퓨터와 같은 단일 컴퓨팅 장치의 형태일 수 있다.
장치(500)의 프로세서(502)는 중앙 처리 장치일 수 있다. 다르게는, 프로세서(502)는 존재하거나 또는 미래에 개발될 정보를 조작하거나 또는 처리할 수 있는 임의의 다른 유형의 장치 또는 복수의 장치일 수 있다. 도면에 도시된 바와 같이, 개시된 구현은 프로세서(502)와 같은 단일 프로세서를 사용하여 실행될 수 있지만, 속도 및 효율성의 이점은 하나 이상의 프로세서를 사용함으로써 달성될 수 있다.
구현에서, 장치(500)의 메모리(504)는 읽기 전용 메모리(Read Only Memory, ROM) 장치 또는 랜덤 액세스 메모리(random access memory, RAM) 장치일 수 있다. 임의의 다른 적절한 유형의 저장 장치가 메모리(504)로서 사용될 수 있다. 메모리(504)는 버스(512)를 통해 프로세서(502)에 의해 액세스되는 코드 및 데이터(506)를 포함할 수 있다. 메모리(504)는 운영 체제(508) 및 애플리케이션 프로그램(510)을 더 포함할 수 있다. 애플리케이션 프로그램(510)은 프로세서(502)가 본 명세서에서 설명된 방법을 수행할 수 있도록 하는 적어도 하나의 프로그램을 포함한다. 예를 들어, 애플리케이션 프로그램(510)은 애플리케이션 1 내지 N을 포함할 수 있고, 애플리케이션 1 내지 N은 본 명세서에서 설명되는 방법을 수행하는 비디오 코딩 애플리케이션을 더 포함할 수 있다. 장치(500)는 보조 메모리(514) 형태로 추가 메모리를 더 포함할 수 있다. 보조 메모리(514)는 예를 들어 모바일 컴퓨팅 장치와 함께 사용되는 메모리 카드일 수 있다. 비디오 통신 세션은 많은 양의 정보를 포함할 수 있기 때문에, 정보는 보조 메모리(514)에 완전히 또는 부분적으로 저장될 수 있고 필요에 따라 처리를 위해 메모리(504)에 로딩될 수 있다.
장치(500)는 하나 이상의 출력 장치, 예를 들어 디스플레이(518)를 더 포함할 수 있다. 예에서, 디스플레이(518)는 터치 입력을 감지하도록 작동하는 터치 감지 요소를 디스플레이에 결합하는 터치 감지 디스플레이일 수 있다. 디스플레이(518)는 버스(512)를 통해 프로세서(502)에 결합될 수 있다. 디스플레이(518)에 더하여, 사용자가 장치(500)를 프로그래밍하게 하거나 그렇지 않으면 장치(500)를 사용할 수 있게 하는 다른 출력 장치가 더 제공될 수 있거나, 또는 다른 출력 장치가 디스플레이(518)의 대안으로서 제공될 수 있다. 출력 장치가 디스플레이이거나 디스플레이를 포함하는 경우, 디스플레이는 액정 디스플레이(liquid crystal display, LCD), 음극선관(cathode-ray tube, CRT) 디스플레이, 플라즈마 디스플레이 또는 유기 LED(organic LED, OLED) 디스플레이와 같은 발광 다이오드(light emitting diode, LED) 디스플레이르르 포함하는 상이한 방식으로 구현될 수 있다.
장치(500)는 이미지 감지 장치(520)를 더 포함하거나 이에 연결될 수 있다. 이미지 감지 장치(520)는 예를 들어, 화상을 감지할 수 있으면서 존재하거나 미리에 개발될 카메라 또는 임의의 다른 이미지 감지 장치(520)이다. 화상은 예를 들어 장치(500)를 실행하는 사용자의 화상이다. 이미지 감지 장치(520)는 장치(500)를 실행하는 사용자를 향하여 직접 배치될 수 있다. 예를 들어, 이미지 감지 장치(520)의 위치 및 광축은 이미지 감지 장치(520)의 시야가 디스플레이(518)에 인접한 영역을 포함하고 디스플레이(518)가 영역에서 보일 수 있도록 구성될 수 있다.
장치(500)는 사운드 감지 장치(522)를 더 포함하거나 이에 연결될 수 있다. 사운드 감지 장치(522)는 예를 들어, 장치(500) 근처에서 사운드를 감지할 수 있으면서 존재하거나 또는 미래에 개발될 마이크 또는 임의의 다른 사운드 감지 장치이다. 사운드 감지 장치(522)는 장치(500)를 조작하는 사용자를 향하여 직접 배치될 수 있으며, 사용자가 장치(500)를 실행할 때 사용자가 내는 사운드, 예를 들어 음성 또는 다른 사운드를 수신하도록 구성될 수 있다.
장치(500)의 프로세서(502) 및 메모리(504)가 도 5에서 단일 유닛으로 통합된 것으로 도시되어 있지만, 다른 구성이 계속 사용될 수 있다. 프로세서(502)의 실행은 로컬 영역 또는 다른 네트워크에 직접 연결되거나 분산될 수 있는 복수의 머신(각각의 머신은 하나 이상의 프로세서를 가짐)에 분산될 수 있다. 메모리(504)는 복수의 머신에 분산될 수 있다. 예를 들어, 메모리(504)는 네트워크 기반 메모리 또는 장치(500)를 실행하는 복수의 머신의 메모리이다. 여기서 단일 버스로 도시되어 있지만, 장치(500)의 버스(512)는 복수의 버스에 의해 형성될 수 있다. 또한, 보조 메모리(514)는 장치(500)의 다른 컴포넌트에 직접 연결될 수 있거나 네트워크를 통해 액세스될 수 있다. 또한, 보조 메모리(514)는 단일 통합 유닛, 예를 들어 하나의 메모리 카드 또는 복수의 유닛, 예를 들어 복수의 메모리 카드를 포함할 수 있다. 따라서, 장치(500)는 복수의 구성으로 구현될 수 있다.
도 6은 이진 트리, 트리플 트리 및 쿼드 트리의 분할 모드를 설명한다.
쿼드 트리는 하나의 노드가 4개의 자식 노드로 분할될 수 있음을 지시하는 트리 구조이다. H.265 비디오 코딩 표준에서, 쿼드 트리 기반 CTU 분할 모드가 사용된다. CTU는 루트 노드로서 사용되며, 각각의 노드는 사각형 영역에 대응한다. 노드는 분할되지 않을 수 있거나(이 경우, 노드에 대응하는 영역은 CU임) 또는 노드가 4개의 하위 레벨 노드로 분할된다. 구체적으로, 정사각형 영역은 4개의 동일한 크기의 정사각형 영역으로 분할되고(4개의 정사각형 영역 각각의 길이와 폭은 분할 전의 정사각형 영역의 길이와 폭의 절반임), 각각의 영역은 도 6의 (a)에 도시된 바와 같이 하나의 노드에 대응한다.
이진 트리는 하나의 노드가 2개의 자식 노드로 분할될 수 있음을 지시하는 트리 구조이다. 이진 트리가 사용되는 기존의 코딩 방법에서, 이진 트리 구조의 노드는 분할되지 않을 수 있거나, 또는 노드는 2개의 하위 레벨 노드로 분할될 수 있다. 노드를 2개의 노드로 분할하는 방식에는 두 가지가 있다. 즉, (1) 수평 이진 분할 : 노드에 대응하는 영역이 2개의 동일한 크기의 영역(상위 영역과 하위 영역)으로 분할되고, 도 6의 (b)에 도시된 바와 같이 각각의 영역은 하나의 노드에 대응하거나, 또는 (2) 수직 이진 분할 : 노드에 대응하는 영역이 2개의 동일한 크기의 영역(좌측 영역과 우측 영역)으로 분할되고, 각각의 영역은 도 6의 (c)에 도시된 바와 같이 하나의 노드에 대응한다.
트리플 트리는 하나의 노드가 3개의 자식 노드로 분할될 수 있음을 지시하는 트리 구조이다. 트리플 트리가 사용되는 기존의 코딩 방식에서, 트리플 트리 구조의 노드는 분할되지 않을 수 있거나, 또는 노드가 3개의 하위 레벨의 노드로 분할될 수 있다. 노드를 3개의 노드로 분할하는 방식은 두 가지가 있다.
(1) 수평 터너리 분할 : 노드에 대응하는 영역이 3개의 영역(상부 영역, 중간 영역, 하부 영역)으로 분할되며, 여기서 각각의 영역은 하나의 노드이고, 상부 영역, 중간 영역 및 하부 영역의 높이는 도 6의 (d)에 도시된 바와 같이 각각 노드의 높이의 1/4, 1/2 및 1/4이거나, 또는 (2) 수직 터너리 분할 : 노드에 대응하는 영역이 3개의 영역(좌측 영역, 중간 영역 및 우측 영역)으로 분할되고, 여기서 각각의 영역은 하나의 노드에 대응하며, 좌측 영역, 중간 영역 및 우측 영역의 폭은 도 6의 (e)에 도시된 바와 같이 노드 폭의 1/4, 1/2 및 1/4이다.
H.265 비디오 코딩 표준에서, 화상의 프레임은 겹치지 않는 코딩 트리 유닛(CTU)으로 분할된다. CTU 크기는 64 x 64로 설정될 수 있다(CTU 크기는 다르게는 다른 값으로 설정될 수 있다. 예를 들어, JVET 참조 소프트웨어 JEM의 CTU 크기는 128 x 128 또는 256 x 256으로 증가됨). 64 x 64 CTU는 64개의 컬럼과 컬럼당 64개의 픽셀이 있는 직사각형 픽셀 매트릭스를 포함하며, 각각의 픽셀은 휘도 성분 또는/및 색차 성분을 포함한다.
H.265에서, 쿼드 트리(quad-tree, 줄여서 QT) 기반의 CTU 분할 모드가 사용된다. CTU는 쿼드 트리의 루트(root) 노드로 사용되며, CTU는 쿼드 트리 분할 모드에서 여러 리프 노드(leaf node)로 재귀적으로 분할된다. 하나의 노드는 하나의 화상 영역에 대응한다. 노드가 분할되지 않은 경우, 노드는 리프 노드로서 지칭되고, 노드에 대응하는 화상 영역은 CU가 된다. 노드가 추가로 분할되면, 노드에 대응하는 화상 영역이 4개의 동일한 크기의 영역(4개의 영역 각각의 길이와 폭이 각각 분할 영역의 길이와 폭의 절반임)이고, 각각의 영역은 하나의 노드에 대응한다. 이러한 노드가 추가로 분할되는지 여부는 별도로 결정되어야 한다. 노드가 분할될 것인지 여부는 비트스트림에 있으면서 노드에 대응하는 분할 플래그 split_cu_flag에 의해 지시된다. 노드 A는 4개의 노드 Bi로 분할되며, 여기서 i = 0, 1, 2, 3이다. Bi는 A의 자식 노드로서 지칭되고, A는 Bi의 부모 노드로서 지칭된다. 루트 노드의 쿼드 트리 깊이(qtDepth)는 0이다. 노드의 쿼드 트리 깊이는 노드의 부모 노드의 쿼드 트리 깊이에 1을 더한 값이다. 설명을 간단히하기 위해, 다음에서, 노드의 크기 및 형상은 노드에 대응하는 화상 영역의 크기 및 형상이다.
보다 구체적으로, 64 x 64 CTU 노드(쿼드 트리 깊이가 0임)의 경우, CTU 노드에 대응하는 split_cu_flag에 기초하여, 분할이 수행되지 않을 수 있고 CTU 노드가 64 x 64 CU가 될 수 있거나, 또는 CTU가 4개의 32 x 32 노드로 분할된다(쿼드 트리 깊이는 1임). 4개의 32 x 32 노드 각각은 노드에 대응하는 split_cu_flag에 기초하여 더 분할되거나 또는 분할되지 않을 수 있다. 32 x 32 노드가 추가로 분할되면, 4개의 16 x 16 노드(쿼드 트리 깊이가 2임)가 생성된다. 나머지는 노드가 더 이상 분할되지 않을 때까지 유추로 추론될 수 있다. 이러한 방식으로, 하나의 CTU가 하나의 CU 그룹으로 분할된다. CU의 최소 크기(size)는 시퀀스 파라미터 세트(SPS : Sequence Parameter Set)에서 식별된다. 예를 들어, 8 x 8 CU는 최소 CU이다. 전술한 재귀적 분할 프로세스에서, 노드의 크기가 최소 CU 크기(munimum CU size)와 같으면, 노드는 기본적으로 더 이상 분할되지 않으며, 노드의 분할 플래그는 비트스트림에 포함될 필요가 없다.
노드가 리프 노드인 것으로 파싱된 후, 리프 노드는 CU이고, CU에 대응하는 코딩 정보(CU의 예측 모드 및 변환 계수와 같은 정보, 예를 들어 H.265의 coding_unit() 신택스 구조를 포함함)가 추가로 파싱된다. 그 후, CU에 대응하는 재구성된 화상을 생성하기 위해 예측, 역양자화, 역변환 및 루프 필터링과 같은 디코딩 처리가 코딩 정보에 기초하여 CU에 대해 수행된다. 쿼드 트리 구조는 CTU가 로컬 화상 특징에 기초하여 적절한 크기의 CU 그룹으로 분할될 수 있다. 예를 들어, 평평한 영역은 상대적으로 큰 CU로 분할되고, 텍스처가 풍부한 영역은 비교적 작은 CU로 분할된다.
쿼드 트리 분할에 기초하여, 이진 분할 모드와 터너리(ternary) 분할 모드가 다용도 비디오 코딩 테스트 모델(Versatile video coding Test Model, VTM) 참조 소프트웨어에 추가된다. VTM은 JVET에서 개발된 새로운 코덱 참조 소프트웨어이다.
이진 분할은 노드를 2개의 자식 노드로 분할하는 것이다. 두 가지 특정 이진 분할 모드가 있다. (1) 수평 이진 분할 : 노드에 대응하는 영역이 2개의 동일한 크기의 영역(상부 영역과 하부 영역(구체적으로, 폭이 변경되지 않고 유지되고, 높이가 분할 전 영역 높이의 절반임)으로 분할되고, 각각의 영역은 도 6의 (b)에 도시된 바와 같이 하나의 노드에 대응하거나, 또는 (2) 수직 이진 분할 : 도 6의 (c)에 도시된 바와 같이, 노드에 대응하는 영역이 2개의 동일한 크기 영역(좌측 영역과 우측 영역(구체적으로, 높이는 변경되지 않고 유지되며, 폭은 분할 전의 영역의 폭의 절반임)으로 분할된다.
터너리 분할은 노드를 3개의 자식 노드로 분할하는 것이다. 두 가지 특정 터너리 분할 모드가 있다.
(1) 수평 터너리 분할 : 노드에 대응하는 영역이 3개의 영역(상부 영역, 중간 영역, 하부 영역)으로 분할되며, 여기서 각각의 영역은 하나의 노드에 대응하고, 상부 영역의 높이는 중간이고, 하부 영역은 도 6의 (d)에 도시된 바와 같이 노드 높이의 각각 1/4, 1/2 및 1/4이거나, 또는 (2) 수직 터너리 분할 : 노드에 대응하는 영역이 3개의 영역(좌측 영역, 중간 영역 및 우측 영역)으로 분할되며, 여기서 각각의 영역은 하나의 노드에 대응하고, 좌측 영역, 중간 영역 및 우측 영역의 폭은 도 6의 (e)에 도시된 바와 같이 각각 노드 폭의 1/4, 1/2 및 1/4이다.
VTM에서, QT 및 BT/TT를 캐스케이딩하는 분할 모드가 사용되며, 이는 줄여서 QT-MTT(Quad Tree + Multi-Type Tree) 분할 모드로 지칭된다. 보다 구체적으로, CTU는 QT 리프 노드를 생성하기 위해 QT를 사용하여 분할된다. QT의 노드는 쿼드 트리 분할을 사용하여 4개의 QT 자식 노드로 더 분할되거나, 또는 하나의 QT 리프 노드가 쿼드 트리 분할을 사용하지 않고 생성된다. QT 리프 노드는 MTT의 루트 노드로서 기능한다. MTT의 노드는 4개의 분할 모드(수평 이진 분할, 수직 이진 분할, 수평 터너리 분할, 수직 터너리 분할) 중 하나를 사용하여 자식 노드로 분할될 수 있거나, 또는 더 이상의 분할 없이 MTT 리프 노드가 될 수 있다. MTT의 리프 노드는 코딩 유닛(CU)이다.
도 7은 QT-MTT를 사용하여 CTU가 a에서 p로 16개의 CU로 분할된 예를 도시한다. 도 7의 우측 도면에서, 각각의 엔드 포인트(endpoint)는 하나의 노드를 나타낸다. 하나의 노드에 연결된 4개의 선은 쿼드 트리 분할을 지시하고, 하나의 노드에 연결된 2개의 선은 이진 분할을 지시하며, 하나의 노드에 연결된 3개의 선은 터너리 분할을 지시한다. 실선은 QT 분할을 지시하고, 파선은 MTT 분할의 제1 계층 분할을 지시하며, 점선은 MTT 분할의 제2 계층 분할을 지시한다. a에서 p는 16개의 MTT 리프 노드이고, 각각의 MTT 리프 노드는 하나의 CU이다. 도 7의 좌측 도면에 도시된 CU 분할 도면은 도 7의 우측 도면에 도시된 분할 모드를 사용하여 CU에 대해 획득된다.
QT-MTT 분할 모드에서, 각각의 CU는 QT 깊이(쿼드 트리 깊이, QT 깊이) 및 MTT 깊이(다중 유형 트리 깊이, MTT 깊이)를 가진다. QT 깊이는 CU가 속하는 QT 리프 노드의 QT 깊이를 지시하고, MTT 깊이는 CU가 속하는 MTT 리프 노드의 MTT 깊이를 지시한다. 코딩 트리의 루트 노드의 경우, QT 깊이는 0이고 MTT 깊이는 0이다. QT 분할이 코딩 트리 상의 노드에 대해 사용되는 경우, 분할을 통해 획득되는 자식 노드의 QT 깊이는 노드의 QT 깊이에 1을 더하고, MTT 깊이는 변경되지 않는다. 마찬가지로, MTT 분할(즉, BT 분할 또는 TT 분할 중 하나)이 코딩 트리 상의 노드에 사용되는 경우, 분할을 통해 획득된 자식 노드의 MTT 깊이는 노드의 MTT 깊이에 1을 더한 값이고, QT 깊이는 변경되지 않는다. 예를 들어, 도 7에서, a, b, c, d, e, f, g, i 또는 j의 QT 깊이는 1이고, MTT 깊이는 2이며, h의 QT 깊이는 1이고, MTT 깊이는 1이며, n, o 또는 p의 QT 깊이는 2이고, MTT 깊이는 0이며, 1 또는 m의 QT 깊이는 2이고, MTT 깊이는 1이다. CTU가 하나의 CU로만 분할되는 경우, CU의 QT 깊이는 0이고, MTT 깊이는 0이다.
HEVC에서, 하나의 CU는 하나의 휘도 블록 양자화 파라미터(Quantization Parameter, QP) 및 2개의 색차 블록 양자화 파라미터를 포함하며, 여기서 색차 블록 양자화 파라미터는 휘도 블록 양자화 파라미터로부터 도출된다. 색차 블록 양자화 파라미터는 줄여서 색차 QP로서 지칭되며, 휘도 블록 양자화 파라미터는 줄여서 휘도 QP로서 지칭된다. 현재 CU(current CU)의 휘도 QP의 디코딩은 다음 처리를 포함한다.
diff_cu_qp_delta_depth 신택스 요소는 화상 파라미터 세트(Picture Parameter Set, PPS)로부터 획득되고, 양자화 그룹(Quantization Group, QG)은 신택스 요소에 기초하여 도출된다. 구체적으로, 양자화 그룹은 N x N 영역이며, 여기서 N = CTUSize >> diff_cu_qp_delta_depth이고, CTUSize는 CTU의 측면 길이이다. 예를 들어, 64 x 64 CTU의 CTUSize는 64이다. 64 x 64 CTU는 크기가 N x N이고 M이 양의 정수인 M개의 QG로 분할된다. 예를 들어, diff_cu_qp_delta_depth = 2인 경우, CTU는 도 8에 도시된 바와 같이, 크기가 16 x 16인 16 개의 QG로 분할된다. HEVC에서 QT 분할만이 사용되기 때문에, 전술한 QG 결정 방식으로 획득된 QG가 크기가 QG의 크기보다 작은 복수의 CU를 포함하는 경우, QG는 반드시 복수의 완전한 CU를 포함한다. 즉, 크기가 QG의 크기보다 작은 복수의 CU는 QG에 완전히 포함되고, 크기가 QG의 크기보다 작은 CU는 복수의 QG에 포함될 수 없다. 또한, QT 분할만이 사용되는 경우, 전술 한 QG 결정 방식으로 획득된 QG는 CU가 QG와 동일한 크기를 가지면 CU가 QG에 확실히 포함되는 것을 추가로 보장할 수 있다. CU가 QG보다 큰 경우, CU는 확실히 복수의 완전한 QG를 포함한다.
현재 CU가 위치한 현재 양자화 그룹(current quantization group, 줄여서 현재 QG)이 결정되고, 여기서 현재 QG는 현재 CU의 좌측 상단 코너의 좌표를 커버하는 QG이다. 현재 CU의 좌측 상단 코너의 좌표가 Pcu = (xCb, yCb)이면, 현재 양자화 그룹의 좌측 상단 코너의 좌표는 Pqg = (xQg, yQg)이며, 여기서
xQg = xCb - (xCb & ((1 << Log2MinCuQpDeltaSize) - 1))
yQg = yCb - (yCb & ((1 << Log2MinCuQpDeltaSize) - 1))이다.
Log2MinCuQpDeltaSize = log2(CTUSize) - diff_cu_qp_delta_depth이고, log2(x)는 2를 밑으로 하는 x의 로그이다.
현재 CU의 QP 델타는 예를 들어 HEVC 표준에서 CuQpDeltaVal과 같이 획득된다. 현재 CU가 QG에 잔여가 있는 제1 CU인 경우(예를 들어, 현재 CU의 코딩된 블록 플래그 cbf_luma, cbf_cb, cbf_cr 중 하나가 0이 아닌 값을 갖는 경우, 현재 CU가 잔여를 갖고 있음을 지시함), 현재 CU의 QP 델타는 비트스트림으로부터 파싱된다. QP 델타는 현재 QG에서 현재 CU의 코딩 시퀀스 이후에 있는 모든 CU의 QP 델타로서 사용된다. 현재 QG에서 현재 CU의 코딩 시퀀스 이전에 있는 모든 CU의 QP 델타는 0이다.
현재 QG의 휘도 블록 양자화 파라미터 예측자는 예를 들어 HEVC 표준에서 qPY_PRED로 획득된다. qPY_PRED는 현재 QG의 좌측 이웃 위치의 휘도 QP와 상부 이웃 위치의 휘도 QP에 기초한 예측을 통해 획득될 수 있다. 현재 QG의 좌측 이웃 위치는 (xQg - 1, yQg)이고, 상부 이웃 위치는 (xQg, yQg - 1)이다. 상부 이웃 위치의 휘도 QP는 상부 이웃 위치를 커버하는 코딩 유닛의 휘도 QP이다. 상부 이웃 위치가 사용될 수 없거나 현재 블록과 동일한 타일(Tile)에 속하지 않는 경우, 상부 이웃 위치의 휘도 QP는 이전 QG의 마지막 CU의 휘도 QP(예를 들어, HEVC 표준의 qPY_PREV)로 설정된다. 마찬가지로, 좌측 이웃 위치의 휘도 QP는 좌측 이웃 위치를 커버하는 코딩 유닛의 휘도 QP이다. 좌측 이웃 위치가 사용될 수 없거나 현재 블록과 동일한 타일에 속하지 않는 경우, 좌측 이웃 위치의 휘도 QP는 이전 QG의 마지막 CU의 휘도 QP로 설정된다. 이웃 위치가 사용될 수 없는 것으로 결정되는 방법은 여러 가지가 있을 수 있다. 예를 들어, 이웃 위치가 현재 스트립 밖에 있으면, 이웃 위치가 사용될 수 없다. 다른 예로, 이웃 위치가 현재 화상 밖에 있으면, 이웃 위치가 사용될 수 없다. 또 다른 예로, 이웃 위치가 현재 CTU 내에 있지 않으면, 이웃 위치가 사용될 수 없다. 다른 예로, 이웃 위치의 픽셀이 재구성되지 않으면, 이웃 위치가 사용될 수 없다.
현재 CU의 휘도 QP는 현재 CU의 QP 델타(QP delta)에 현재 QG의 휘도 블록 양자화 파라미터 예측자를 더함으로써 획득된다.
QT-MTT 분할 모드에서, 전술한 QG 분할 모드를 사용하면 하나의 QG로 하여금 CU의 일부만을 포함하게 할 수 있거나 또는 하나의 CU가 복수의 다른 QG를 포함할 수 있음을 알 수 있다. 따라서, QG와 CU 사이의 매칭을 보장하기 위해 새로운 디코딩(QG 결정) 방법이 필요하다. 즉, 하나의 CU가 두 개의 다른 QG에 속하지 않도록 함으로써 디코딩 효율을 향상시킬 수 있다.
도 9는 본 출원의 실시예에 따른 비디오 디코더(예를 들어, 도 3의 비디오 디코더(30))의 예시적인 작동을 도시한 흐름도이다. 비디오 디코더(30)의 하나 이상의 구조적 요소는 도 9의 기술을 수행하는 데 사용될 수 있다. 본 실시예는 다음의 단계를 포함한다.
단계 901 : 현재 노드를 획득하기 위해 코딩 트리 분할 정보를 파싱한다.
코딩 트리 분할 정보는 수신된 비트스트림으로부터 비디오 디코더(30)에 의해 획득되고, 이러한 단계는 구체적으로 비디오 디코더(30)의 엔트로피 디코딩 유닛에 의해 수행될 수 있다.
현재 노드는 CU일 수 있으며, 예를 들어 도 7에서 a, b, c, d, e, f, g, h, i, j, k, l, m, n, o 또는 p일 수 있다. 다르게는, 현재 노드는 CTU의 QT-MTT 분할 프로세스에서 더 분할되어야 하는 노드일 수 있다. 도 7이 예로서 사용되며, 현재 노드는 a 및 b에 대응하는 노드, c 및 d에 대응하는 노드, e, f 및 g에 대응하는 노드, i 및 j에 대응하는 노드, l, m, n, o 및 p에 대응하는 노드, l 및 m에 대응하는 노드, a, b, c, d, e, f 및 g에 대응하는 노드, 또는 h, i 및 j에 대응하는 노드일 수 있다.
단계 902 : 현재 노드의 깊이 N에 기초하여, 현재 양자화 그룹에 의해 커버되는 영역을 결정한다. 구현에서, 현재 노드의 깊이 N에 기초하여, 현재 양자화 그룹에 의해 커버되는 영역을 결정하는 단계는 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표를 결정하는 단계를 포함한다. 좌측 상부 코너의 좌표가 결정된 후, 현재 양자화 그룹에 의해 커버되는 특정 영역이 결정될 수 있다. 따라서, 이하의 설명에서, 현재 양자화 그룹에 의해 커버되는 영역을 결정하는 단계는 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표를 결정하는 단계로서 이해될 수 있다.
상이한 요구사항에 기초하여, 현재 노드의 깊이 N을 결정하는 상이한 방식이있을 수 있음이 이해될 수 있다.
본 발명의 본 실시예에서, 이하에서 현재 노드의 깊이 N에 기초하여 현재 양자화 그룹에 의해 커버되는 영역을 결정하는 4가지 방식이 제공된다.
방식 1 : 현재 노드의 깊이 N 및 제1 임계값 T1에 기초하여 현재 양자화 그룹에 의해 커버되는 영역을 결정한다.
구체적으로, 먼저 현재 노드의 깊이 N이 제1 임계 값 T1보다 큰 것으로 결정된다. 현재 노드의 깊이 N이 제1 임계 값 T1보다 크면, 현재 노드의 (N - T1) 번째 계층 부모 노드가 획득된다. 그 후, 현재 양자화 그룹에 의해 커버되는 영역이 (N - T1) 번째 계층 부모 노드에 의해 커버되는 영역인 것으로 결정된다. 제1 임계 값 T1은 미리 설정된 음이 아닌 정수이다. 예를 들어, 0, 1, 2 또는 3일 수 있다.
현재 노드의 깊이 N을 결정하는 두 가지 방식이 있다. 한 가지 방식은 현재 노드의 깊이 N을 현재 노드의 QT 깊이로 결정하는 것이다. 예를 들어, 도 7에서, 노드 a, b, c, d, e, f, g, h, i, j 또는 k의 QT 깊이는 1이고, l, m, n, o 또는 p의 QT 깊이는 2이다. 다른 방식은 현재 노드의 QT 깊이와 현재 노드의 MTT 깊이의 합으로 현재 노드의 깊이 N을 결정하는 것이다. 예를 들어, 도 7의 노드 k의 QT 깊이 및 MTT 깊이는 0이다. 따라서, 노드 k의 깊이 N은 1이다. 도 7에서 노드 a의 QT 깊이 및 MTT 깊이는 2이다. 따라서, 노드의 깊이 N은 3이다. 코딩 트리의 루트 노드의 QT 깊이는 0이다. QT 분할이 QT 코딩 트리의 노드에 대해 사용되면, 분할을 통해 획득되는 자식 노드의 QT 깊이는 노드의 QT 깊이에 1을 더한 값이다. QT 분할이 QT의 노드에 대해 사용되지 않는 경우, 노드는 MTT 루트 노드이다. MTT 루트 노드의 MTT 깊이는 0이다. MTT 분할이 MTT 코딩 트리의 노드에 대해 사용되는 경우, 분할을 통해 획득되는 자식 노드의 MTT 깊이는 노드의 MTT 깊이에 1을 더한 값이고, 자식 노드의 QT 깊이는 노드의 QT 깊이이다. 즉, CTU 루트 노드에서 시작하여, QT 분할의 S1 회 및 MTT 분할의 S2 회 후에 현재 노드가 획득하면, 현재 노드의 QT 깊이는 S1이고, 현재 노드의 MTT 깊이는 S2이다. 도 7이 예로 사용된다. MTT 깊이가 1인 노드는 a 및 b에 대응하는 노드(즉, a 및 b가 위치한 영역을 포함하는 노드), c 및 d에 대응하는 노드, e, f 및 g에 대응하는 노드, h에 대응하는 노드, i 및 j에 대응하는 노드, l에 대응하는 노드, m에 대응하는 노드를 포함한다. MTT 깊이가 1인 것은 CTU에서 QT 분할이 수행된 후 획득되는 QT 리프 노드에 대해 하나의 MTT 분할만을 수행하여 노드가 획득될 수 있음을 지시한다. MTT 깊이가 2인 노드는 a에 대응하는 노드, b에 대응하는 노드, c에 대응하는 노드, d에 대응하는 노드, e에 대응하는 노드, f에 대응하는 노드, g에 대응하는 노드, i에 대응하는 노드 및 j에 대응하는 노드를 포함한다. MTT 깊이가 2 인 것은 CTU에서 QT 분할이 수행된 후에 획득되는 QT 리프 노드에서 두 개의 MTT 분할을 수행하여 노드가 획득됨을 지시한다. 유사하게, MTT 깊이가 3, 4, 5 등인 노드도 있을 수 있다(도 7에서 MTT 깊이가 2보다 큰 노드는 없음).
방식 2 : 현재 노드의 깊이 N 및 제1 임계값 T1에 기초하여 현재 양자화 그룹에 의해 커버되는 영역을 결정한다. 본 구현에서, 현재 노드의 깊이 N은 현재 노드의 QT 깊이로 결정된다.
현재 노드의 깊이 N이 제1 임계값 T1보다 크거나 현재 노드의 다중 유형 트리 깊이 M이 0보다 크면, 현재 노드의 K 번째 계층 쿼드 트리 노드가 획득되며, 여기서 K = min(N, T1)이고, min(a, b)는 a와 b 사이에서 더 작은 값이 사용됨을 지시한다. 그 후, 현재 양자화 그룹에 의해 커버되는 영역이 K 번째 계층 쿼드 트리 노드에 의해 커버되는 영역인 것으로 결정된다. 제1 임계값 T1은 미리 설정된 음이 아닌 정수이다. 예를 들어, 0, 1, 2 또는 3일 수 있다.
K 번째 계층 쿼드 트리 노드는 현재 노드를 포함하는 노드이자 또한 CTU에서 시작하여 K 번의 쿼드 트리 분할 후에 생성되는 노드, 즉 현재 노드의 (M + N - K) 번째 계층 부모 노드이다. K 번째 계층 쿼드 트리 노드의 좌측 상부 코너의 좌표 (xK, yK)는,
xK = xCb - (xCb & ((1 << K1) - 1))
yK = yCb - (yCb & ((1 << K1) - 1))이다.
xCb 및 yCb는 현재 노드의 좌측 상부 코너의 좌표 (xCb, yCb)의 수평 및 수직 좌표를 지시하며, K1 = log2(CTUSize) - K이다.
K 번째 계층 쿼드 트리 노드의 폭과 높이는 (1 << K1)보다 작으며, 여기서 a << b는 a를 b 비트만큼 좌측으로 이동시키는 작동을 지시한다.
방식 3 : 현재 노드의 깊이 N 및 제1 임계값 T1에 기초하여, 현재 양자화 그룹에 의해 커버되는 영역을 결정한다. 현재 노드는 QT-MTT 코딩 트리 상의 노드이고, 현재 노드는 추가로 분할될 수 있거나 분할되지 않을 수 있다.
구체적으로, 먼저 현재 노드의 깊이 N이 제1 임계값 T1과 같은지 여부가 결정된다. 현재 노드의 깊이 N이 제1 임계 값 T1과 같으면, 현재 양자화 그룹에 의해 커버되는 영역이 현재 노드에 의해 커버되는 영역으로 결정된다. 이에 상응하여, 노드의 좌측 상부 코너의 좌표가 저장될 수 있으며, 노드의 폭 및 높이도 또한 저장될 수 있다. 현재 양자화 그룹의 CU는 휘도 QP 예측과 같은 처리 중에 저장된 정보를 읽을 수 있다.
제1 임계값 T1의 값 및 깊이 N을 결정하는 방식에 대해서는 방식 1을 참조한다.
방식 4 : 현재 노드의 깊이 N 및 제1 임계값 T1에 기초하여 현재 양자화 그룹에 의해 커버되는 영역을 결정한다. 본 구현에서, 현재 노드의 깊이 N은 현재 노드의 QT 깊이로 결정된다.
조건 1과 조건 2가 모두 충족되면, 현재 양자화 그룹에 의해 커버되는 영역이 현재 노드에 의해 커버되는 영역으로 결정된다. 조건 1은 현재 노드의 깊이 N이 제1 임계값 T1보다 작거나 같다는 것이다. 조건 2는 현재 노드의 다중 유형 트리 깊이 M이 0과 같다는 것이다.
방식 5 : 현재 노드의 깊이 N 및 제1 임계값 T1에 기초하여 현재 양자화 그룹에 의해 커버되는 영역을 결정한다. 본 구현에서, 현재 노드의 깊이 N은 현재 노드의 QT 깊이로 결정된다.
조건 3 및 조건 4가 모두 충족되거나, 조건 5가 충족되면, 현재 양자화 그룹에 의해 커버되는 영역이 현재 노드에 의해 커버되는 영역인 것으로 결정된다. 조건 3은 현재 노드의 깊이 N이 제1 임계값 T1과 같다는 것이다. 조건 4는 현재 노드의 다중 유형 트리 깊이 M이 0과 같다는 것이다. 조건 5는 현재 노드의 깊이 N이 제1 임계값 T1보다 작다는 것이다.
방식 6 : 현재 노드의 깊이 N 및 제1 임계값 T1에 기초하여 현재 양자화 그룹에 의해 커버되는 영역을 결정한다. 본 구현에서, 현재 노드의 깊이 N은 현재 노드의 QT 깊이로 결정된다.
조건 3 및 조건 4가 모두 충족되거나, 조건 5 및 조건 6이 모두 충족되면, 현재 양자화 그룹에 의해 커버되는 영역이 현재 노드에 의해 커버되는 영역인 것으로 결정된다. 조건 3은 현재 노드의 깊이 N이 제1 임계값 T1과 같다는 것이다. 조건 4는 현재 노드의 다중 유형 트리 깊이 M이 0과 같다는 것이다. 조건 5는 현재 노드의 깊이 N이 제1 임계값 T1보다 작다는 것이다. 조건 6은 현재 노드의 다중 유형 트리 깊이 M이 제4 임계값 T4보다 작거나 같다는 것이다.
제4 임계값 T4는 미리 설정된 양의 정수이다. 예를 들어, T4는 1, 2 또는 3일 수 있다. 다른 예를 들어, T4 = T1 - N이다.
방식 7 : 현재 노드의 깊이 N 및 제1 임계값 T1에 기초하여 현재 양자화 그룹에 의해 커버되는 영역을 결정한다. 본 구현에서, 현재 노드의 깊이 N은 현재 노드의 QT 깊이로 결정된다.
조건 1 및 조건 7이 모두 충족되면, 현재 양자화 그룹에 의해 커버되는 영역이 현재 노드에 의해 커버되는 영역인 것으로 결정된다. 조건 1은 현재 노드의 깊이 N이 제1 임계값 T1보다 작거나 같다는 것이다. 조건 7은 현재 노드의 다중 유형 트리 깊이 M이 T1 - N보다 작다는 것이다.
방식 8 : 현재 노드의 깊이 N, 현재 노드의 분할 모드 및 제2 임계값 T2에 기초하여 현재 양자화 그룹에 의해 커버되는 영역을 결정한다.
세부 사항은 다음과 같다.
1. 현재 노드의 깊이 N이 제2 임계값 T2에서 1을 뺀 값과 같고, 현재 노드의 분할 모드가 터너리 분할 모드인 경우, 현재 양자화 그룹에 의해 커버되는 영역은 현재 노드에 의해 커버되는 영역인 것으로 결정된다.
2. 다르게는, 현재 노드의 깊이 N이 제2 임계값 T2와 같고, 현재 노드의 분할 모드가 이진 분할 모드 또는 쿼드 트리 분할 모드인 경우, 현재 양자화 그룹에 의해 커버되는 영역은 현재 노드에 의해 커버되는 영역인 것으로 결정된다.
3. 다르게는, 현재 노드의 깊이가 제2 임계값 이하이고, 현재 노드가 더 이상 분할되지 않으면, 현재 양자화 그룹에 의해 커버되는 영역은 현재 노드에 의해 커버되는 영역인 것으로 결정된다. 이 경우, 현재 양자화 그룹에 의해 커버되는 영역은 CU의 커버리지 영역이다.
제2 임계값 T2는 미리 설정된 양의 정수이다. 예를 들어, 제2 임계값 T2는 제1 임계값 T1의 X배로 설정될 수 있으며, 여기서 X는 1보다 큰 정수이다. 예를 들어, X는 2, 3 또는 4일 수 있다. 다르게는, T2는 직접 2, 3, 4, 6, 8, 9 등으로 설정될 수 있다.
현재 노드의 깊이 N은 현재 노드의 QT 깊이 및 현재 노드의 이진 깊이 Db에 기초하여 결정된다. 예를 들어, 구현에서는 N = Dq * 2 + Db이고, 다른 구현에서, N = Dq + Db이다. Dq는 현재 노드의 QT 깊이이다.
MTT 분할은 이진 분할, 터너리 분할 분할, 또는 쿼드 트리 분할일 수 있다. 따라서, 서로 다른 분할 모드에서, 현재 노드의 이진 깊이 Db는 서로 다른 방식으로 결정될 수 있다. 특히, 이진이 아닌 분할의 깊이는 이진 깊이로 변환되어야 한다. 예를 들어, 변환은 다음과 같은 방식으로 수행될 수 있다.
현재 노드가 MTT 루트 노드이면, 현재 노드의 이진 깊이 Db는 0이다.
다르게는, 현재 노드가 MTT 노드이고 MTT 루트 노드가 아니고(즉, 현재 노드의 MTT 깊이가 0보다 큰 경우), 현재 노드가 이진 분할 노드에서 획득된 자식 노드인 경우, 현재 노드의 이진 깊이 Db는 현재 노드의 직접 부모 노드의 이진 깊이에 1을 더한 값이다.
다르게는, 현재 노드가 MTT 노드이고 MTT 루트 노드가 아니며, 현재 노드가 터너리 분할 모드에서 획득된 중간 자식 노드(즉, 3개의 자식 노드 중 중간 자식 노드)인 경우, 현재 노드의 이진 깊이 Db는 현재 노드의 직접 부모 노드의 이진 깊이에 1을 더한 값이다.
다르게는, 현재 노드가 MTT 노드이고 MTT 루트 노드가 아니며, 현재 노드가 터너리 분할 모드에서 획득된 중간이 아닌 자식 노드인 경우, 현재 노드의 이진 깊이 Db는 현재 노드의 직접 부모 노드의 이진 깊이에 2를 더한 값이다.
N = Dq * 2 + Db 방식으로 결정된 깊이는 노드의 영역과 일대일 대응관계임을 알 수 있다. 예를 들어, CTU가 128 x 128이고 노드의 깊이가 N인 경우, 노드의 영역은 (128 x 128) >> N이다.
방식 9 : 현재 노드의 깊이 N, 현재 노드의 분할 모드 및 제3 임계값 T3에 기초하여 현재 양자화 그룹에 의해 커버되는 영역을 결정한다.
세부 사항은 다음과 같다 :
1. 현재 노드의 깊이 N이 제3 임계값 T3에서 1을 뺀 값과 같고, 현재 노드의 분할 모드가 터너리 분할 모드 또는 쿼드 트리 분할 모드인 경우, 현재 양자화 그룹에 의해 커버되는 영역은 현재 노드에 의해 커버되는 영역인 것으로 결정된다.
2. 다르게는, 현재 노드의 깊이 N이 제3 임계값 T3와 같고, 현재 노드의 분할 모드가 이진 분할 모드인 경우, 현재 양자화 그룹에 의해 커버되는 영역은 현재 노드에 의해 커버되는 영역인 것으로 결정된다.
3. 다르게는, 현재 노드의 깊이 N이 제3 임계값 T3와 같고, 현재 노드가 더 이상 분할되지 않으면, 현재 양자화 그룹에 의해 커버되는 영역은 현재 영역에 의해 커버되는 영역인 것으로 결정된다. 이 경우, 현재 양자화 그룹에 의해 커버되는 영역은 CU의 커버리지 영역이다.
제3 임계 값 T3는 미리 설정된 양의 정수일 수 있다. 예를 들어, 3, 4 또는 5일 수 있다.
현재 노드의 깊이 N을 결정하는 방식에 대해서는 방식 3을 참조한다.
단계 903 : 현재 양자화 그룹에 의해 커버되는 영역에서 현재 CU의 QP 델타를 획득한다.
이러한 단계의 특정 구현에 대해서는 기존의 구현을 참조한다. 예를 들어, HEVC 표준에서 CuQpDeltaVal 방식을 참조한다. 보다 구체적으로, 현재 CU가 현재 QG에 잔여를 갖고 있는 제1 CU인 경우, 현재 CU의 QP 델타(예를 들어, 절대값 및 심볼을 포함함)는 비트스트림에서 파싱된다. 현재 CU의 코딩 시퀀스가 현재 QG에서 잔여를 갖는 제1 CU의 코딩 시퀀스 이후이면, 현재 CU의 QP 델타는 현재 QG에서 잔여를 갖는 제1 CU의 QP 델타로 결정된다. 현재 CU의 코딩 시퀀스가 현재 QG에서 잔여를 갖는 제1 CU의 코딩 시퀀스 이전인 경우, 현재 CU의 QP 델타는 0인 것으로 결정된다. 현재 CU의 코딩된 블록 플래그(coded block falg, cbf) cbf_luma, cbf_cb, cbf_cr 중 적어도 하나가 0이 아닌 값을 가지면, 현재 CU가 잔여를 갖고 있음을 지시한다.
단계 904 : 현재 CU의 QP 델타에 기초하여 현재 CU의 재구성된 화상을 획득한다.
이러한 단계의 특정 구현에 대해서는 기존의 구현을 참조한다. 예를 들어, HEVC 표준의 방식을 참조하거나, 또는 다른 예로, H.264/AVC 표준의 방식을 참조한다. 예를 들어, 현재 CU의 역양자화된 계수는 현재 CU의 QP 델타에 기초하여 획득될 수 있다. 현재 CU의 재구성된 잔여 블록은 현재 CU의 역양자화된 계수에 기초하여 획득된다. 그 후, 현재 CU의 재구성된 화상은 현재 CU의 재구성된 잔여 블록에 기초하여 획득된다.
구체적으로, 좌측 이웃 위치의 휘도 QPA와 상부 이웃 위치의 휘도 QPB는 현재 양자화 그룹의 좌측 상부 코너의 좌표에 기초하여 먼저 획득될 수 있고, 현재 QG의 휘도 QP 예측자는 QPA 및 QPB에 기초하여 획득된다. 구체적인 구현 방법의 경우, HEVC에서 qPY_PRED를 계산하는 방법을 참조한다. 현재 QG의 좌측 상부 코너의 좌표는 Pqg = (xQg, yQg)로 기록된다. 현재 QG의 좌측 이웃 위치는 PA = (xQg - 1, yQg)이고, 현재 QG의 상부 이웃 위치는 PB = (xQg, yQg - 1)이다. 상부 이웃 위치의 휘도 QP는 상부 이웃 위치 PB를 커버하는 코딩 유닛의 휘도 QP이다. 상부 이웃 위치가 사용될 수 없거나(예를 들어, 상부 이웃 위치가 현재 스트립 외부에 있거나 상부 이웃 위치의 재구성이 완료되지 않은 경우) 현재 블록과 동일한 타일(Tile)에 속하지 않는 경우, 상부 이웃 위치의 휘도 QP는 이전 QG의 마지막 CU의 휘도 QP로 설정된다(예를 들어, HEVC 표준의 qPY_PREV). 마찬가지로, 좌측 이웃 위치의 휘도 QP는 좌측 이웃 위치 PA를 커버하는 코딩 유닛의 휘도 QP이다. 좌측 이웃 위치가 사용될 수 없거나 현재 블록과 동일한 타일에 속하지 않는 경우, 좌측 이웃 위치의 휘도 QP는 이전 QG의 마지막 CU의 휘도 QP로 설정된다.
현재 QG의 휘도 QP 예측자는 다음의 방법 중 하나를 사용하여 QPA 및 QPB에 기초하여 획득될 수 있다.
방법 1 : QPA 및 QPB의 평균값은 휘도 QP 예측자로서 사용된다. 이러한 방법은 HEVC의 방법과 동일한다.
방법 2 : 현재 CU의 영역은 R1이고, 좌측 이웃 위치가 위치한 CU의 영역은 R2이며, 상부 이웃 위치가 위치한 CU의 영역은 R3이다. max(R1, R2)/min(R1, R2) * Th < max(R1, R3)/min(R1, R3)이면, 휘도 QP 예측자는 QPA로 설정된다. max(R1, R2)/min(R1, R2) > max(R1, R3)/min(R1, R3) * Th인 경우, 휘도 QP 예측자는 QPB로 설정된다. 그렇지 않으면, 휘도 QP 예측자는 QPA와 QPB의 평균값으로 설정된다. max(a, b)는 a와 b 사이에서 더 큰 값이고, min(a, b)는 a와 b 사이에서 더 작은 값이며, Th는 1보다 크거나 같은 양수이다, 예를 들어, Th = 1, 2 또는 4이다.
QG의 모든 CU의 휘도 QP 예측자의 계산 방법은 동일한다. 따라서, 단순화된 구현으로서, QG의 제1 CU가 디코딩되는 경우, QG의 휘도 QP 예측자에 대한 계산 처리가 수행될 수 있고, 휘도 QP 예측자는 QG의 다른 CU에 대해 사용된다. 이런 식으로, 계산이 감소된다.
그 다음, 현재 CU의 휘도 QP는 현재 CU의 QP 델타(QP delta)에 현재 QG의 휘도 블록 양자화 파라미터 예측자를 더함으로써 획득된다. 구체적으로, QpY = ((qPY_PRED + CuQpDeltaVal + 52 + 2 * QpBdOffsetY) % (52 + QpBdOffsetY)) - QpBdOffsetY이며, 여기서 qPY_PRED는 휘도 블록 양자화 파라미터 예측자이고, CuQpDeltaVal은 현재 CU의 QP 델타이며, QpBdOffsetY는 휘도 성분의 비트 폭과 관련된 미리 설정된 상수이다(예를 들어, 휘도 성분의 비트 폭이 8인 경우, QpBdOffsetY는 0이거나, 또는 휘도 성분의 비트 폭이 10인 경우, QpBdOffsetY는 12임).
선택적으로, 개선된 처리 방식에서, 현재 QG에서 잔여를 갖는 제1 CU의 QP 델타가 0이 아닌 경우, 코딩 시퀀스가 현재 QG에서 잔여를 갖는 제1 CU의 것 이전의 모든 CU의 휘도 QP는 잔여를 갖는 제1 CU의 휘도 QP로 수정된다. 즉, 현재 QG의 모든 CU의 QP 델타는 현재 CU의 QP 델타로 설정되고, 현재 QG의 모든 CU의 QP 값은 현재 CU의 QP 값으로 설정된다. 지정된 QP 값은 후속 코딩 작동, 예를 들어 디블로킹 필터링 또는 QP 예측에 대해 사용된다.
현재 CU의 휘도 QP 및 색차 QP가 획득된 후, 역양자화 및 역변환 처리는 현재 CU의 잔여 화상을 획득하기 위해 현재 CU의 변환 계수에 대해 수행될 수 있다.
인터 예측 처리 또는 인트라 예측 처리는 현재 CU의 인터 예측 화상 또는 인트라 예측 화상를 획득하기 위해 현재 CU의 예측 모드에 기초하여 현재 CU에 대해 수행된다.
현재 CU의 잔여 화상은 현재 CU의 재구성된 화상을 생성하기 위해 현재 CU의 예측 화상에 중첩된다.
구현에서, 휘도 QP가 획득된 후, 휘도 QP와 색차 QP 사이의 매핑 관계 및 색차 QP의 오프셋 값에 기초하여 색차 QP가 추가로 획득될 수 있다. 본 발명의 본 실시예에서는 특정 구현이 제한되지 않는다.
본 발명의 다른 실시예는, 현재 노드를 획득하기 위해 코딩 트리 분할 정보를 파싱하고, 현재 노드의 깊이 N에 기초하여 현재 양자화 그룹에 의해 커버되는 영역을 결정하며, 현재 양자화 그룹에 의해 커버되는 영역에서 현재 CU의 QP 델타를 획득하고, 현재 CU의 QP 델타에 기초하여 현재 CU의 휘도 QP를 결정하도록 구성된 엔트로피 디코딩 유닛(304)을 포함하는 비디오 디코더(30)를 더 제공한다.
구현에서, 현재 노드의 깊이 N에 기초하여, 현재 양자화 그룹에 의해 커버되는 영역을 결정하는 것은 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표를 결정하는 것을 포함한다. 좌측 상부 코너의 좌표가 결정된 후, 현재 양자화 그룹에 의해 커버되는 특정 영역이 결정될 수 있다. 따라서, 이하의 설명에서, 현재 양자화 그룹에 의해 커버되는 영역을 결정하는 것은 현재 양자화 그룹에 의해 커버되는 영역의 좌측 상부 코너의 좌표를 결정하는 것으로 이해될 수 있다.
역양자화 유닛(310)은 현재 CU의 휘도 QP에 기초하여 현재 CU의 역양자화된 계수를 획득하도록 구성된다.
역변환 처리 유닛(312)은 현재 CU의 역양자화된 계수에 기초하여 현재 CU의 재구성된 잔여 블록을 획득하도록 구성된다.
재구성 유닛(314)은 현재 CU의 재구성된 잔여 블록에 기초하여 현재 CU의 재구성된 화상을 획득하도록 구성된다.
비디오 디코더(30)의 특정 구현에 대해서는 도 9에서 설명된 방법을 참조한다. 자세한 내용은 여기서 다시 설명되지 않는다.
구현에서, 현재 노드의 깊이 N은 현재 노드의 쿼드 트리 깊이 N이다. 엔트로피 디코딩 유닛(304)은 구체적으로, 현재 노드의 깊이 N에 기초하여 현재 양자화 그룹에 의해 커버되는 영역을 결정하거나, 또는 현재 노드의 다중 유형 트리 깊이 M에 기초하여 현재 양자화 그룹에 의해 커버되는 영역을 결정하도록 구성된다. N이 제1 임계값 T1보다 크거나 M이 0보다 크면, 현재 양자화 그룹에 의해 커버되는 영역은 현재 노드의 K 번째 계층 쿼드 트리 노드에 의해 커버되는 영역이다. K는 N과 T1 사이의 작은 값이고, K 번째 계층 쿼드 트리 노드는 현재 노드를 포함하는 쿼드 트리 노드이자 또한 코딩 트리 유닛 CTU에서 시작하여 K 번의 쿼드 트리 분할 후에 생성되는 쿼드 트리 노드이다.
K 번째 계층 쿼드 트리 노드는 현재 노드의 (M + N - K) 계층 부모 노드이다.
구현에서, 현재 노드의 깊이 N은 현재 노드의 쿼드 트리 깊이 N이다. 엔트로피 디코딩 유닛(304)은 구체적으로 현재 노드의 쿼드 트리 깊이 N 및 현재 노드의 다중 유형 트리 깊이 M에 기초하여 현재 양자화 그룹에 의해 커버되는 영역을 결정하도록 구성된다. N이 제1 임계값 T1보다 작거나 같고 M이 0이면, 현재 양자화 그룹에 의해 커버되는 영역은 현재 노드에 의해 커버되는 영역이다.
구현에서, 현재 노드의 깊이 N은 현재 노드의 쿼드 트리 깊이 N이다. 엔트로피 디코딩 유닛(304)은 구체적으로, 현재 노드의 쿼드 트리 깊이 N에 기초하여 현재 양자화 그룹에 의해 커버되는 영역을 결정하거나, 또는 현재 노드의 쿼드 트리 깊이 N 및 현재 노드의 다중 유형 트리 깊이 M에 기초하여 현재 양자화 그룹에 의해 커버되는 영역을 결정하도록 구성된다. N이 제1 임계값 T1과 같고 M이 0이면, 현재 양자화 그룹에 의해 커버되는 영역은 현재 노드에 의해 커버되는 영역이다. 다르게는, N이 제1 임계값 T1보다 작으면, 현재 양자화 그룹에 의해 커버되는 영역은 현재 노드에 의해 커버되는 영역이다.
구현에서, 현재 노드의 깊이 N은 현재 노드의 쿼드 트리 깊이 N이다. 엔트로피 디코딩 유닛(304)은 구체적으로 현재 노드의 쿼드 트리 깊이 N 및 현재 노드의 다중 유형 트리 깊이 M에 기초하여 현재 양자화 그룹에 의해 커버되는 영역을 결정하도록 구성된다. N이 제1 임계값 T1과 같고 M이 0이면, 현재 양자화 그룹에 의해 커버되는 영역은 현재 노드에 의해 커버되는 영역이다. 다르게는, N이 제1 임계값 T1보다 작고 M이 제4 임계값 T4보다 작거나 같으면, 현재 양자화 그룹에 의해 커버되는 영역은 현재 노드에 의해 커버되는 영역이다.
구현에서, 제4 임계값 T4는 미리 설정된 양의 정수일 수 있다. 예를 들어, 1, 2, 3 또는 4일 수 있다.
구현에서, 제4 임계값은 제1 임계값 T1에 기초하여 결정될 수 있고, 현재 노드의 쿼드 트리 깊이 N은 예를 들어 T4 = T1 - N일 수 있다.
구현에서, 현재 노드의 깊이 N은 현재 노드의 쿼드 트리 깊이 N이다. 엔트로피 디코딩 유닛(304)은 구체적으로 현재 노드의 쿼드 트리 깊이 N 및 현재 노드의 다중 유형 트리 깊이 M에 기초하여 현재 양자화 그룹에 의해 커버되는 영역을 결정하도록 구성된다. N이 제1 임계값 T1보다 작거나 같고 M이 T1 - N보다 작거나 같으면, 현재 양자화 그룹에 의해 포함되는 영역은 현재 노드에 의해 커버되는 영역이다.
구현에서, 엔트로피 디코딩 유닛(304)은 구체적으로, 현재 노드의 깊이 N이 제1 임계값 T1보다 크면, 현재 노드의 (N T1) 번째 계층 부모 노드를 획득하고, 현재 양자화 그룹에 의해 커버되는 영역이 (N - T1) 번째 계층 부모 노드에 의해 커버되는 영역인 것으로 결정하도록 구성될 수 있다.
구현에서, 엔트로피 디코딩 유닛(304)은 구체적으로, 현재 노드의 깊이 N이 제1 임계값 T1과 같으면, 현재 양자화 그룹에 의해 커버되는 영역이 현재 노드에 의해 커버되는 영역인 것으로 결정하도록 구성될 수 있다.
구현에서, 현재 노드의 깊이는 현재 노드의 QT 깊이이거나, 또는 현재 노드의 깊이는 현재 노드의 QT 깊이와 현재 노드의 MTT 깊이의 합이다.
구현에서, 제1 임계값 T1은 0, 1, 2 또는 3이다.
구현에서, 엔트로피 디코딩 유닛(304)은 현재 노드의 분할 모드를 획득하고, 현재 노드의 깊이 N이 제2 임계값 T2에서 1을 뺀 값과 같고 현재 노드의 분할 모드가 터너리 분할 모드인 경우, 현재 양자화 그룹에 의해 포함되는 영역이 현재 노드에 의해 커버되는 영역인 것으로 결정하거나, 또는 현재 노드의 깊이 N이 제2 임계값 T2와 같고 현재 노드의 분할 모드가 이진 분할 모드 또는 쿼드 트리 분할 모드인 경우, 현재 양자화 그룹에 의해 커버되는 영역이 현재 노드에 의해 커버되는 영역인 것으로 결정하거나, 또는 현재 노드의 깊이 N이 제2 임계값보다 작거나 같고 현재 노드가 더 이상 분할되지 않는 경우, 현재 양자화 그룹에 의해 커버되는 영역이 현재 노드에 의해 커버되는 영역인 것으로 결정하도록 추가로 구성될 수 있다.
구현에서, 제2 임계값은 2, 3, 4, 6, 8 또는 9이다.
구현에서, 엔트로피 디코딩 유닛(304)은 현재 노드의 스플리소 모드를 획득하고, 현재 노드의 깊이 N이 제3 임계값 T3에서 1을 뺀 값과 같고 현재 노드의 분할 모드가 터너리 분할 모드 또는 쿼드 트리 분할 모드인 경우 현재 양자화 그룹에 의해 커버되는 영역이 현재 노드에 의해 커버되는 영역인 것으로 결정하거나, 또는 현재 노드의 깊이 N이 제3 임계값 T3와 같고 현재 노드의 분할 모드가 이진 분할 모드인 경우, 현재 양자화 그룹에 의해 커버되는 영역이 현재 노드에 의해 커버되는 영역인 것으로 결정하거나, 또는 현재 노드의 깊이 N이 제3 임계값 T3와 같고 현재 노드가 더 이상 분할되지 않는 경우, 현재 양자화 그룹에 의해 커버되는 영역이 현재 노드에 의해 커버되는 영역인 것으로 결정하도록 추가로 구성될 수 있다.
구현에서, 제3 임계값은 3, 4, 5 등일 수 있다.
구현에서, 엔트로피 디코딩 유닛(304)은 구체적으로 현재 노드의 QT 깊이 및 현재 노드의 이진 깊이 Db에 기초하여 현재 노드의 깊이 N을 결정하도록 구성될 수 있다.
구현에서, 엔트로피 디코딩 유닛(304)은 구체적으로 다음의 계산 수학식 N = Dq * 2 + Db을 사용하여 현재 노드의 깊이 N을 결정하도록 구성될 수 있으며, 여기서 Dq는 현재 노드의 QT 깊이이다.
구현에서, 현재 노드가 MTT 루트 노드이면, 현재 노드의 이진 깊이 Db는 0이거나, 또는 현재 노드가 MTT 노드이고 MTT 루트 노드가 아니며 현재 노드가 이진 분할 모드에서 획득된 자식 노드인 경우, 현재 노드의 이진 깊이 Db는 현재 노드의 직접 부모 노드의 이진 깊이에 1을 더한 값이거나, 또는 현재 노드가 MTT 노드이고 MTT 루트 노드가 아니며 현재 노드가 터너리 분할 모드에서 획득된 중간 자식 노드인 경우 현재 노드의 이진 깊이 Db는 현재 노드의 직접 부모 노드의 이진 깊이에 1을 더한 값이거나, 또는 현재 노드가 MTT 노드이고 MTT 루트 노드가 아니며 현재 노드가 터너리 분할 모드에서 획득된 중간이 아닌 자식 노드인 경우, 현재 노드의 이진 깊이 Db는 현재 노드의 직접 부모 노드의 이진 깊이에 2를 더한 값이다.
구현에서, 엔트로피 디코딩 유닛(304)은 현재 양자화 그룹에서 잔여를 갖는 제1 CU의 QP 델타가 0이 아닌 경우, 코딩 시퀀스가 현재 양자화 그룹에서 잔여를 갖는 제1 CU의 것 이전의 모든 CU의 휘도 QP를 잔여를 갖는 제1 CU의 휘도 QP로 수정하도록 추가로 구성된다. 이에 상응하여, 현재 CU가 현재 양자화 그룹에서 잔여를 갖는 제1 CU 이전의 CU인 경우, 역양자화 유닛(310)은 구체적으로 잔여를 갖는 제1 CU의 휘도 QP에 기초하여 현재 CU의 역양자화된 계수를 획득하도록 구성된다.
본 발명의 실시예는 전술한 방법 중 어느 하나를 수행하도록 구성된 실행 회로를 포함하는 비디오 디코더를 더 제공한다.
본 발명의 실시예는 적어도 하나의 프로세서 및 적어도 하나의 프로세서에 결합된 비 휘발성 컴퓨터 판독 가능 저장 매체를 포함하는 비디오 디코더를 더 제공한다. 비 휘발성 컴퓨터 판독 가능 저장 매체는 적어도 하나의 프로세서에 의해 실행될 수 있는 컴퓨터 프로그램을 저장하고, 컴퓨터 프로그램이 적어도 하나의 프로세서에 의해 실행될 때, 비디오 디코더는 전술한 방법 중 어느 하나를 수행하도록 구성된다.
본 발명의 실시예는 하나 이상의 프로세서에 의해 실행될 수 있는 컴퓨터 프로그램을 저장하도록 구성된 컴퓨터 판독 가능 저장 매체를 더 제공한다. 컴퓨터 프로그램이 적어도 하나의 프로세서에 의해 실행될 때, 전술한 방법 중 어느 하나가 수행된다.
본 발명의 실시예는 컴퓨터 프로그램을 더 제공한다. 컴퓨터 프로그램이 실행될 때, 전술한 방법 중 어느 하나가 수행된다.
하나 이상의 예에서, 설명된 기능은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에 의해 구현될 수 있다. 소프트웨어에 의해 구현되는 경우, 기능은 하나 이상의 명령 또는 코드로 컴퓨터 판독 가능 매체에 저장되거나 전송될 수 있으며 하드웨어 기반 처리 장치에 의해 실행될 수 있다. 컴퓨터 판독 가능 매체는 데이터 저장 매체 또는 통신 매체와 같은 유형의 매체에 대응하는 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 통신 매체는 예를 들어 통신 프로토콜에 따라 한 장소에서 다른 장소로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함한다. 이러한 방식에서, 컴퓨터 판독 가능 매체는 일반적으로 (1) 비 일시적 유형의 컴퓨터 판독 가능 저장 매체, 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체는 본 발명의 실시예에서 설명된 기술을 구현하기 위한 명령, 코드 및/또는 데이터 구조를 검색하기 위해 하나 이상의 컴퓨터 또는 하나 이상의 프로세서에 의해 액세스될 수 있는 임의의 사용 가능한 매체일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 매체를 포함할 수 있다.
제한이 아닌 예로서, 이러한 컴퓨터 판독 가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 저장 장치, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 플래시 메모리 또는 명령이나 데이터 구조의 형태로 필요한 프로그램 코드를 저장하는 데 사용될 수 있고 컴퓨터에서 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 연결은 적절하게 컴퓨터 판독 가능 매체로서 지칭될 수 있다. 예를 들어, 명령이 동축 케이블, 광섬유 케이블, 트위스트 페어(twisted pair), 디지털 가입자 회선(digital subscriber line, DSL) 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술을 사용하여 웹 사이트, 서버 또는 다른 원격 소스로부터 전송되는 경우, 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술은 매체의 정의에 포함된다. 그러나, 컴퓨터 판독 가능 저장 매체 및 데이터 저장 매체는 연결, 반송파, 신호 또는 다른 일시적인 매체를 포함하지 않지만, 실제로는 비 일시적 유형의 저장 매체를 포함한다는 것을 이해해야 한다. 본 명세서에서 사용되는 바와 같이, 디스크(disk)와 디스크(disc)는 컴팩트 디스크(compact disc, CD), 레이저 디스크, 광 디스크, 디지털 다용도 디스크(digital versatile disc, DVD), 플로피 디스크 및 블루레이 디스크를 포함한다. 디스크(disk)는 일반적으로 데이터를 자기적으로 재생하지만 디스크(disc)는 레이저를 사용하여 데이터를 광학적으로 재생한다. 전술한 항목의 조합도 컴퓨터 판독 가능 매체의 범위에 포함되어야 한다.
명령은 하나 이상의 프로세서에 의해 실행될 수 있다. 하나 이상의 프로세서는 예를 들어 하나 이상의 디지털 신호 프로세서(digital signal processor, DSP), 범용 마이크로 프로세서, 주문형 집적 회로(application specific integrated circuit, ASIC), 필드 프로그래밍 가능 로직 어레이(field programmable logic array, FPGA, FPGA) 또는 기타 동등한 집적 또는 이산 로직 회로이다. 따라서, 본 명세서에서 사용되는 "프로세서"라는 용어는 전술한 구조 또는 본 명세서에 설명된 기술을 구현하기에 적합한 임의의 다른 구조일 수 있다. 또한, 일부 측면에서, 본 명세서에 설명된 기능은 인코딩 및 디코딩을 위해 구성된 전용 하드웨어 및/또는 소프트웨어 모듈 내에 제공되거나 결합된 코덱에 통합될 수 있다. 또한, 기술은 모두 하나 이상의 회로 또는 로직 요소에서 구현될 수 있다.
본 개시의 기술은 무선 핸드셋, 집적 회로(integrated circuit, IC) 또는 IC 세트(예를 들어, 칩 세트)를 포함하는 매우 다양한 디바이스 또는 장치에서 구현될 수 있다. 개시된 기술을 수행하도록 구성된 장치의 기능적 측면을 강조하기 위해 다양한 컴포넌트, 모듈 또는 유닛이 본 개시에서 설명되지만, 반드시 상이한 하드웨어 유닛에 의해 구현되는 것은 아니다. 정확하게, 상기한 바와 같이, 다양한 유닛은 적절한 소프트웨어 및/또는 펌웨어와 결합하여 코덱 하드웨어 유닛으로 결합될 수 있거나, 또는 상호 운용되는 하드웨어 유닛의 세트에 의해 제공될 수 있다. 하드웨어 유닛은 상기한 하나 이상의 프로세서를 포함한다.

Claims (10)

  1. 비디오 처리 방법으로서,
    코딩 트리 분할 정보를 획득하는 단계;
    상기 코딩 트리 분할 정보에 따라 비디오 블록에 대한 파티션 프로세스를 수행하여 현재 노드를 획득하는 단계;
    적어도 상기 현재 노드의 깊이에 기초하여 상기 현재 노드의 커버 영역이 현재 양자화 그룹(quantization group, QG)의 커버 영역과 동일한지 여부를 결정하는 단계;
    상기 현재 노드의 커버 영역이 상기 현재 QG의 커버 영역과 동일하다고 결정하는 것에 응답하여, 상기 현재 QG의 커버 영역의 좌측 상부 코너의 좌표를 획득하는 단계; 및
    상기 현재 QG의 커버 영역의 현재 코딩 유닛(coding unit, CU)의 양자화 파라미터(quantization parameter, QP) 델타를 획득하는 단계
    를 포함하는 비디오 처리 방법.
  2. 제1항에 있어서,
    상기 현재 노드의 깊이가 제2 임계값(T2)에서 1을 뺀 값과 같고, 상기 현재 노드의 분할 모드가 터너리(ternary) 분할 모드일 때, 상기 현재 노드의 커버 영역은 상기 현재 QG의 커버 영역과 동일하거나;
    상기 현재 노드의 깊이가 제2 임계값(T2)과 같고, 상기 현재 노드의 분할 노드가 이진 분할 모드 또는 쿼드트리 분할 모드일 때, 상기 현재 노드의 커버 영역은 상기 현재 QG의 커버 영역과 동일하거나;
    상기 현재 노드의 깊이(N)가 제3 임계값(T3)에서 1을 뺀 값과 같고, 상기 현재 노드의 분할 모드가 터너리 분할 모드 또는 쿼드트리 분할 모드일 때, 상기 현재 노드의 커버 영역은 상기 현재 QG의 커버 영역과 동일하거나; 또는
    상기 현재 노드의 깊이(N)가 제3 임계값(T3)과 같고, 상기 현재 노드의 분할 모드가 이진 분할 모드일 때, 상기 현재 노드의 커버 영역은 상기 현재 QG의 커버 영역과 동일한,
    비디오 처리 방법.
  3. 제2항에 있어서,
    상기 현재 노드의 깊이는 상기 현재 노드의 쿼드트리(QT) 깊이 및 상기 현재 노드의 이진 깊이에 기초하여 결정되는,
    비디오 처리 방법.
  4. 제3항에 있어서,
    상기 현재 노드의 깊이는 다음의 계산식
    N = Dq * 2 + Db
    을 만족하고,
    Dq는 상기 현재 노드의 QT 깊이를 나타내고,
    Db는 상기 현재 노드의 이진 깊이를 나타내며,
    N은 상기 현재 노드의 깊이를 나타내는, 비디오 처리 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 QP 델타는 절대값 및 부호에 의해 표현되는, 비디오 처리 방법.
  6. 비디오 처리 장치로서,
    적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서에 결합되고, 상기 비디오 처리 장치가 제1항 내지 제5항 중 어느 한 항에 따른 방법을 수행하도록 상기 적어도 하나의 프로세서에 의해 실행하기 위한 프로그래밍 명령을 저장하는 하나 이상의 메모리
    를 포함하는 비디오 처리 장치.
  7. 비디오 인코더로서,
    제6항에 따른 비디오 처리 장치와 메모리를 포함하고,
    상기 비디오 처리 장치는 또한, 코딩 트리 분할 정보를 포함하는 비트스트림을 획득하도록 구성되고;
    상기 메모리는 상기 비트스트림을 저장하도록 구성되는, 비디오 인코더.
  8. 비디오 디코더로서,
    메모리와 제6항에 따른 비디오 처리 장치를 포함하고,
    상기 메모리는 코딩 트리 분할 정보를 포함하는 비트스트림을 저장하도록 구성되고,
    상기 비디오 처리 장치는 또한, 상기 비트스트림을 파싱하여 상기 코딩 트리 분할 정보를 획득하고, 적어도 상기 코딩 트리 분할 정보에 기초하여 파티션 프로세스를 수행하도록 구성되는, 비디오 디코더.
  9. 프로그램을 기록한 컴퓨터 판독 가능 저장 매체로서,
    상기 프로그램은 상기 컴퓨터가 제1항 내지 제5항 중 어느 한 항의 방법을 실행하게 하는, 컴퓨터 판독 가능 저장 매체.
  10. 컴퓨터로 하여금 제1항 내지 제5항 중 어느 한 항의 방법을 실행하게 하도록 구성된 컴퓨터 프로그램.
KR1020237042192A 2018-09-05 2019-08-28 비디오 디코딩 방법 및 비디오 디코더 KR20230170817A (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
CN201811032693 2018-09-05
CN201811032693.7 2018-09-05
CN201811104788.5 2018-09-21
CN201811104788.5A CN110881129B (zh) 2018-09-05 2018-09-21 视频解码方法及视频解码器
KR1020217009873A KR102612489B1 (ko) 2018-09-05 2019-08-28 비디오 디코딩 방법 및 비디오 디코더
PCT/CN2019/102944 WO2020048361A1 (zh) 2018-09-05 2019-08-28 视频解码方法及视频解码器

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020217009873A Division KR102612489B1 (ko) 2018-09-05 2019-08-28 비디오 디코딩 방법 및 비디오 디코더

Publications (1)

Publication Number Publication Date
KR20230170817A true KR20230170817A (ko) 2023-12-19

Family

ID=69727285

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217009873A KR102612489B1 (ko) 2018-09-05 2019-08-28 비디오 디코딩 방법 및 비디오 디코더
KR1020237042192A KR20230170817A (ko) 2018-09-05 2019-08-28 비디오 디코딩 방법 및 비디오 디코더

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020217009873A KR102612489B1 (ko) 2018-09-05 2019-08-28 비디오 디코딩 방법 및 비디오 디코더

Country Status (7)

Country Link
US (2) US11431997B2 (ko)
EP (1) EP3840378A1 (ko)
JP (2) JP7143512B2 (ko)
KR (2) KR102612489B1 (ko)
CN (6) CN110881129B (ko)
BR (1) BR112021004124A2 (ko)
SG (1) SG11202102195XA (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11553180B2 (en) 2018-06-21 2023-01-10 Telefonaktiebolaget Lm Ericsson (Publ) Tile partitions with sub-tiles in video coding
CN112602329B (zh) 2018-06-21 2023-08-11 瑞典爱立信有限公司 用于360度视频解码的块置乱
WO2020070196A1 (en) 2018-10-02 2020-04-09 Telefonaktiebolaget Lm Ericsson (Publ) Encoding and decoding pictures based on tile group id
WO2020156515A1 (en) * 2019-01-31 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Refined quantization steps in video coding
CN114598873B (zh) * 2020-12-03 2023-06-20 华为技术有限公司 量化参数的解码方法和装置
WO2022214055A1 (en) * 2021-04-09 2022-10-13 Beijing Bytedance Network Technology Co., Ltd. Interaction of multiple partitions
CN116527927A (zh) * 2021-11-11 2023-08-01 杭州海康威视数字技术股份有限公司 一种图像的解码方法、编码方法及装置

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9210442B2 (en) 2011-01-12 2015-12-08 Google Technology Holdings LLC Efficient transform unit representation
HUE060786T2 (hu) * 2011-01-13 2023-04-28 Canon Kk Képkódoló berendezés, képkódoló eljárás és program, valamint képdekódoló berendezés, képdekódoló eljárás és program
US20120189052A1 (en) 2011-01-24 2012-07-26 Qualcomm Incorporated Signaling quantization parameter changes for coded units in high efficiency video coding (hevc)
US9112526B2 (en) * 2011-06-15 2015-08-18 Sony Corporation Binarization of DQP using separate absolute value and sign (SAVS) in CABAC
US9161046B2 (en) * 2011-10-25 2015-10-13 Qualcomm Incorporated Determining quantization parameters for deblocking filtering for video coding
US9521410B2 (en) * 2012-04-26 2016-12-13 Qualcomm Incorporated Quantization parameter (QP) coding in video coding
EP2966866A4 (en) * 2013-04-05 2016-10-26 Samsung Electronics Co Ltd VIDEO CODING METHOD AND DEVICE THEREFOR, AND VIDEO CODING METHOD AND DEVICE THEREFOR
CN104104966B (zh) * 2013-04-08 2017-11-24 华为技术有限公司 视频块的划分方法和装置
US9294766B2 (en) * 2013-09-09 2016-03-22 Apple Inc. Chroma quantization in video coding
CN103702131B (zh) 2013-12-25 2017-02-15 清华大学 一种基于模式预处理的帧内编码优化方法和系统
US10136141B2 (en) * 2014-06-11 2018-11-20 Qualcomm Incorporated Determining quantization parameter (QP) values and delta QP values for palette coded blocks in video coding
WO2016024142A1 (en) 2014-08-12 2016-02-18 Intel Corporation System and method of motion estimation for video coding
US9743092B2 (en) 2015-10-13 2017-08-22 Nokia Technologies Oy Video coding with helper data for spatial intra-prediction
CN108713320B (zh) 2016-03-16 2022-05-17 寰发股份有限公司 视频编码中限制块尺寸的视频数据处理方法与装置
US10326989B2 (en) * 2016-05-25 2019-06-18 Arris Enterprises Llc General block partitioning method
CN112968821B (zh) * 2016-05-27 2022-03-08 松下电器(美国)知识产权公司 电子控制单元、通信方法以及车载网络系统
EP4199515A1 (en) * 2016-05-27 2023-06-21 SHARP Kabushiki Kaisha Systems and methods for varying quantization parameters
CN107566848B (zh) * 2016-06-30 2020-04-14 华为技术有限公司 编解码的方法及装置
US10448056B2 (en) * 2016-07-15 2019-10-15 Qualcomm Incorporated Signaling of quantization information in non-quadtree-only partitioned video coding
WO2018018486A1 (en) * 2016-07-28 2018-02-01 Mediatek Inc. Methods of reference quantization parameter derivation for signaling of quantization parameter in quad-tree plus binary tree structure
CN107770525B (zh) 2016-08-15 2020-07-24 华为技术有限公司 一种图像编码的方法及装置
WO2018045332A1 (en) * 2016-09-02 2018-03-08 Vid Scale, Inc. Methods and apparatus for coded block flag coding in quad-tree plus binary-tree block partitioning
CN108781286A (zh) 2016-12-26 2018-11-09 日本电气株式会社 视频编码方法、视频解码方法、视频编码设备、视频解码设备以及程序
AU2018311926B2 (en) * 2017-08-03 2022-08-18 FG Innovation Company Limited Systems and methods for partitioning video blocks in an inter prediction slice of video data
WO2019131807A1 (en) * 2017-12-29 2019-07-04 Sharp Kabushiki Kaisha Systems and methods for partitioning video blocks for video coding
US10904529B2 (en) * 2018-01-19 2021-01-26 Qualcomm Incorporated Quantization group for video coding
WO2020035066A1 (en) * 2018-08-16 2020-02-20 Mediatek Inc. Methods and apparatuses of chroma quantization parameter derivation in video processing system

Also Published As

Publication number Publication date
CN112040229B (zh) 2021-06-29
US20220329839A1 (en) 2022-10-13
JP7463460B2 (ja) 2024-04-08
BR112021004124A2 (pt) 2021-05-25
JP2022179505A (ja) 2022-12-02
CN118018765A (zh) 2024-05-10
SG11202102195XA (en) 2021-04-29
EP3840378A4 (en) 2021-06-23
JP2021536703A (ja) 2021-12-27
KR102612489B1 (ko) 2023-12-08
CN112040229A (zh) 2020-12-04
KR20210047949A (ko) 2021-04-30
EP3840378A1 (en) 2021-06-23
JP7143512B2 (ja) 2022-09-28
CN110881129B (zh) 2024-01-05
CN118175342A (zh) 2024-06-11
CN117956197A (zh) 2024-04-30
US11431997B2 (en) 2022-08-30
US20210195226A1 (en) 2021-06-24
CN118042173A (zh) 2024-05-14
CN110881129A (zh) 2020-03-13

Similar Documents

Publication Publication Date Title
KR102612489B1 (ko) 비디오 디코딩 방법 및 비디오 디코더
CN112673626B (zh) 各分割约束元素之间的关系
JP7401542B2 (ja) ピクチャのブロックのイントラ予測の方法
KR20230087621A (ko) 비디오 처리 방법, 비디오 처리 장치, 인코더, 디코더, 매체 및 컴퓨터 프로그램
US20220329795A1 (en) Picture partitioning method and apparatus
US11503290B2 (en) Video encoder, video decoder and methods
CN113170100A (zh) 用于帧内预测的方法和装置
CN114679583B (zh) 视频编码器、视频解码器及对应方法
WO2020073882A1 (en) Video decoder and corresponding methods
WO2020069632A1 (en) A video encoder, a video decoder and corresponding methods
WO2020048361A1 (zh) 视频解码方法及视频解码器

Legal Events

Date Code Title Description
A107 Divisional application of patent