KR20230111257A - 향상 계층에 대한 인코딩 및 디코딩 방법들 및 장치들 - Google Patents

향상 계층에 대한 인코딩 및 디코딩 방법들 및 장치들 Download PDF

Info

Publication number
KR20230111257A
KR20230111257A KR1020237022494A KR20237022494A KR20230111257A KR 20230111257 A KR20230111257 A KR 20230111257A KR 1020237022494 A KR1020237022494 A KR 1020237022494A KR 20237022494 A KR20237022494 A KR 20237022494A KR 20230111257 A KR20230111257 A KR 20230111257A
Authority
KR
South Korea
Prior art keywords
block
enhancement layer
picture
reconstructed
layer
Prior art date
Application number
KR1020237022494A
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 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20230111257A publication Critical patent/KR20230111257A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/34Scalability techniques involving progressive bit-plane based encoding of the enhancement layer, e.g. fine granular scalability [FGS]
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • 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)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 출원은 향상 계층에 대한 인코딩 및 디코딩 방법들 및 장치들을 제공한다. 본 방법들은: 인코더가 인코딩될 픽처 블록의 베이스 계층의 재구성된 블록을 획득하는 단계; 인코딩될 픽처 블록 및 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 인코딩될 픽처 블록의 향상 계층의 잔차 블록을 획득하는 단계; 향상 계층의 잔차 블록의 변환-블록 분할 방식을 결정하는 단계; 및 변환-블록 분할 방식에 기초하여 향상 계층의 잔차 블록에 대해 변환을 수행하는 단계를 포함한다. 디코더는 디코딩될 픽처 블록의 향상 계층의 잔차 블록의 비트스트림을 획득하고; 향상 계층의 잔차 블록의 비트스트림에 대해 엔트로피 디코딩, 역양자화 및 역변환을 수행하여 향상 계층의 재구성된 잔차 블록을 획득하고; 디코딩될 픽처 블록의 베이스 계층의 재구성된 블록을 획득하고; 향상 계층의 재구성된 잔차 블록 및 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 향상 계층의 재구성된 블록을 획득한다. 본 출원은 인코더에 대한 처리 절차를 단순화하고 인코더의 인코딩 효율을 개선할 수 있다. 또한, 적응형 TU 분할 방법을 사용하여 잔차 블록의 압축 효율이 보다 효과적으로 개선될 수 있다.

Description

향상 계층에 대한 인코딩 및 디코딩 방법들 및 장치들
본 출원은 2020년 12월 8일자로 중국 지적 재산권 관리국에 출원되고 발명의 명칭이 "ENCODING AND DECODING METHODS AND APPARATUSES FOR ENHANCEMENT LAYER"인 중국 특허 출원 제202011424168.7호에 대한 우선권을 주장하며, 그 전체가 본 명세서에 참고로 포함된다.
본 발명의 실시예들은 비디오 또는 픽처 압축 기술들의 분야에 관한 것으로, 특히, 향상 계층에 대한 인코딩 및 디코딩 방법들 및 장치들에 관한 것이다.
비디오 코딩(비디오 인코딩 및 디코딩)은 디지털 비디오 애플리케이션들, 예를 들어, 디지털 방송 텔레비전들, 인터넷들 및 모바일 네트워크들을 통한 비디오 송신, 비디오 채팅 및 비디오 회의와 같은 실시간 대화 애플리케이션들, DVD들, 블루레이 디스크들, 비디오 콘텐츠 취득 및 편집 시스템들, 및 캠코더들의 보안 애플리케이션들에서 널리 사용된다.
비디오가 짧더라도 다량의 비디오 데이터가 묘사될 필요가 있다. 이것은 데이터가 제한된 대역폭 용량을 갖는 네트워크를 통해 전송되어야 하거나 다른 방식들로 송신되어야 할 때 어려움을 초래할 수 있다. 따라서, 비디오 데이터는 대개 현대의 통신 네트워크를 통해 송신되기 전에 압축될 필요가 있다. 메모리 자원들이 제한될 수 있기 때문에, 비디오의 크기는 또한 비디오가 저장 디바이스에 저장될 때 문제들을 야기할 수 있다. 비디오 압축 디바이스는 비디오 데이터의 송신 또는 저장 이전에 비디오 데이터를 인코딩하기 위해 소스 측 상의 소프트웨어 및/또는 하드웨어를 일반적으로 사용하고, 그렇게 함으로써 디지털 비디오 픽처들을 표현하는데 필요한 데이터의 볼륨을 감소시킨다. 압축된 데이터는 그 후 목적지 측의 비디오 압축해제 디바이스에 의해 수신된다. 네트워크 자원들이 제한되고 더 높은 비디오 품질에 대한 요건들이 계속 증가함에 따라, 압축 및 압축해제 기술들이 개선될 필요가 있다. 이러한 개선된 기술들은 압축비를 개선하고 픽처 품질에 거의 영향을 미치지 않을 수 있다.
H.265/HEVC 표준에서, 코딩 유닛(Coding Unit, CU)은 하나의 휘도 양자화 파라미터(quantization parameter, QP)와 2개의 색차 양자화 파라미터를 포함하고, 여기서 색차 양자화 파라미터들은 휘도 양자화 파라미터로부터 도출될 수 있다. 따라서, 휘도 양자화 파라미터의 코딩 효율을 개선하는 것은 비디오 코딩 효율을 개선하기 위한 핵심 기술이다.
본 출원은 인코더에 대한 처리 절차를 단순화하고 인코더의 인코딩 효율을 개선하기 위해, 향상 계층에 대한 인코딩 및 디코딩 방법들 및 장치들을 제공한다. 또한, 적응형 TU 분할 방법을 사용하는 것에 의해, 향상 계층의 TU 크기는 더 이상 CU 크기에 의해 제한되지 않아서, 잔차 블록의 압축 효율이 보다 효과적으로 개선될 수 있다.
제1 양태에 따르면, 본 출원은 인코더가 인코딩될 픽처 블록의 베이스 계층의 재구성된 블록을 획득하는 단계를 포함하는, 향상 계층에 대한 인코딩 및 디코딩 방법들을 제공한다. 인코더는 인코딩될 픽처 블록 및 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여, 인코딩될 픽처 블록의 향상 계층의 잔차 블록을 획득한다. 인코더는 향상 계층의 잔차 블록의 변환-블록 분할 방식을 결정한다. 인코더는 변환-블록 분할 방식에 기초하여 향상 계층의 잔차 블록에 대해 변환을 수행하여 향상 계층의 잔차 블록의 비트스트림을 획득한다. 디코더는 디코딩될 픽처 블록의 향상 계층의 잔차 블록의 비트스트림을 획득한다. 디코더는 향상 계층의 잔차 블록의 비트스트림에 대해 엔트로피 디코딩, 역양자화, 및 역변환을 수행하여 향상 계층의 재구성된 잔차 블록을 획득한다. 디코더는 디코딩될 픽처 블록의 베이스 계층의 재구성된 블록을 획득한다. 디코더는 향상 계층의 재구성된 잔차 블록 및 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 향상 계층의 재구성된 블록을 획득한다.
스케일러블 비디오 코딩(scalable video coding)이라고도 지칭되는 계층화된 비디오 코딩(layered video coding)은 기존의 비디오 코딩 표준의 확장된 코딩 표준(일반적으로 진보된 비디오 코딩(advanced video coding, AVC)의 확장된 표준 스케일러블 비디오 코딩(scalable video coding, SVC)(H.264) 또는 고효율 비디오 코딩(high efficiency video coding, HEVC)(H.265)의 확장된 표준 스케일러블 고효율 비디오 코딩(scalable high efficiency video coding, SHVC)이다. 스케일러블 비디오 코딩은 실시간 비디오 송신에서 네트워크 대역폭의 실시간 변화에 의해 야기되는 패킷 손실 및 지연 변동 문제들을 해결하는데 주로 사용된다.
스케일러블 비디오 코딩에서의 기본 구조들은 계층들이라고도 지칭될 수 있다. 스케일러블 비디오 코딩 기술에서, 원래의 픽처 블록에 대해 공간 스케일러빌리티(resolution scalability)를 수행하여, 상이한 해상도들을 갖는 계층들의 비트스트림들을 획득할 수 있다. 해상도는 픽셀들로서 표현되는 픽처 블록의 크기일 수 있다. 하위-계층 해상도는 비교적 낮고, 상위-계층 해상도는 하위-계층 해상도보다 낮지 않다. 대안적으로, 원래의 픽처 블록에 대해 시간 스케일러빌리티(프레임 레이트 스케일러빌리티)를 수행하여 상이한 프레임 레이트들을 갖는 계층들의 비트스트림들을 획득할 수 있다. 프레임 레이트는 단위 시간당 비디오에 포함된 픽처 프레임들의 수량일 수 있다. 하위-계층 프레임 레이트는 비교적 낮고, 상위-계층 프레임 레이트는 하위-계층 프레임 레이트보다 낮지 않다. 대안적으로, 원래의 픽처 블록에 대해 품질 스케일러빌리티를 수행하여 상이한 인코딩 품질을 갖는 계층들의 비트스트림들을 획득할 수 있다. 인코딩 품질은 비디오 품질일 수 있다. 하위-계층 픽처 왜곡 정도는 비교적 크고, 상위-계층 픽처 왜곡 정도는 하위-계층 픽처 왜곡 정도보다 높지 않다.
일반적으로, 베이스 계층이라고 지칭되는 계층은 스케일러블 비디오 코딩에서 최하위 계층이다. 공간 스케일러빌리티에서, 베이스 계층 픽처 블록은 최저 해상도를 사용하여 인코딩된다. 시간 스케일러빌리티에서, 베이스 계층 픽처 블록은 최저 프레임 레이트를 사용하여 인코딩된다. 품질 스케일러빌리티에서, 베이스 계층 픽처 블록은 최고 QP 또는 최저 비트 레이트를 사용하여 인코딩된다. 다시 말해서, 베이스 계층은 스케일러블 비디오 코딩에서 최저 품질을 갖는 계층이다. 향상 계층이라고 지칭되는 계층은 스케일러블 비디오 코딩에서 베이스 계층 위의 계층이고, 로우에서 하이까지 복수의 향상 계층이 있을 수 있다. 베이스 계층에 의해 획득된 인코딩 정보에 기초하여, 최하위-계층 향상 계층은 베이스 계층보다 높은 인코딩 해상도를 갖거나, 베이스 계층보다 높은 프레임 레이트를 갖거나, 베이스 계층보다 높은 비트 레이트를 갖는다. 하위-계층 향상 계층의 인코딩 정보에 기초하여 상위-계층 향상 계층에 대해 더 높은 품질을 갖는 픽처 블록이 인코딩될 수 있다.
예를 들어, 도 9는 본 출원에 따른 스케일러블 비디오 코딩에서의 계층들의 예시적인 개략도이다. 도 9에 도시된 바와 같이, 원래의 픽처 블록이 스케일러블 인코더에 전송된 후, 원래의 픽처 블록은 상이한 인코딩 구성들에 기초하여 베이스 계층 픽처 블록 B 및 향상 계층 픽처 블록들(E1 내지 En, 여기서 n≥1)로 계층화될 수 있고, 그 후 픽처 블록들을 개별적으로 인코딩하여 베이스 계층 비트스트림 및 향상 계층 비트스트림을 포함하는 비트스트림들을 획득한다. 베이스 계층 비트스트림은 일반적으로 최저 공간-도메인 픽처 블록, 최저 시간-도메인 픽처 블록, 또는 최저 품질 픽처 블록을 인코딩함으로써 획득되는 비트스트림이다. 향상 계층 비트스트림은 상위-계층 공간-도메인 픽처 블록, 상위-계층 시간-도메인 픽처 블록, 또는 상위-계층 품질 픽처 블록을 중첩 및 인코딩함으로써 베이스 계층에 기초하여 획득되는 비트스트림이다. 향상 계층들의 수량이 증가함에 따라, 인코딩을 위한 공간-도메인 계층들, 시간-도메인 계층들, 또는 품질 계층들이 점점 더 높아진다. 비트스트림들을 디코더에 송신할 때, 인코더는 베이스 계층 비트스트림의 송신을 우선적으로 보장한다. 네트워크에 마진이 있을 때, 인코더는 점점 더 상위 계층들에서 비트스트림들을 점진적으로 송신한다. 디코더는 먼저 베이스 계층 비트스트림을 수신 및 디코딩하고, 수신된 향상 계층 비트스트림에 기초하여 계층 단위 방식으로, 하위 계층으로부터 상위 계층까지 순차적으로 점점 더 높은 공간-도메인 계층들, 시간-도메인 계층들, 또는 품질 계층들을 갖는 비트스트림들을 디코딩한 다음, 하위-계층 재구성된 블록에 상위-계층 디코딩 정보를 중첩시켜, 더 높은 해상도, 더 높은 프레임 레이트, 또는 더 높은 품질을 갖는 재구성된 블록을 획득한다.
인코딩될 픽처 블록은 인코더에 의해 현재 처리되고 있는 픽처 블록일 수 있고, 픽처 블록은 풀-프레임 픽처에서 최대 코딩 유닛(largest coding unit, LCU)일 수 있다. 풀-프레임 픽처는 인코더에 의해 처리되는 비디오에 포함되는 픽처 시퀀스에서의 임의의 픽처 프레임일 수 있다. 분할 처리는 픽처 프레임에 대해 수행되지 않았고, 픽처 프레임의 크기는 완전한 픽처 프레임의 크기이다. H.265 표준에서, 비디오 코딩이 수행되기 전에, 원래의 픽처 프레임은 복수의 코딩 트리 유닛(coding tree unit, CTU)으로 분할된다. CTU는 비디오 코딩을 위한 최대 코딩 유닛이고, 쿼드트리 방식으로 상이한 크기들의 CU들로 분할될 수 있다. 최대 코딩 유닛으로서, CTU는 LCU라고도 지칭된다. 대안적으로, 픽처 블록은 풀-프레임 픽처일 수 있거나, 또는 픽처 블록은 풀-프레임 픽처에서의 관심 영역(region of interest, ROI), 즉, 처리될 필요가 있고 픽처에서 특정되는 특정 픽처 영역일 수 있다.
전술된 바와 같이, 비디오 시퀀스에서의 각각의 픽처는 일반적으로 블록 레벨에서 인코딩되는 비중첩 블록들의 세트로 일반적으로 분할된다. 다시 말해서, 인코더는 보통 비디오를 블록(픽처 블록) 레벨에서 처리, 즉 인코딩한다. 예를 들어, 인코더는 공간 예측(인트라 예측) 및 시간 예측(인터 예측)을 통해 예측 블록을 생성하고; 픽처 블록(현재 처리된/처리될 블록)으로부터 예측 블록을 감산하여 잔차 블록을 획득하고; 변환 도메인에서 잔차 블록에 대해 변환 및 양자화를 수행하여, 송신(압축)될 데이터의 볼륨이 감소될 수 있게 한다. 인코더는 추가로, 역양자화 및 역변환을 수행하여 재구성된 잔차 블록을 획득할 필요가 있고, 그 후, 재구성된 잔차 블록의 픽셀 값들을 예측 블록의 픽셀 값들에 가산하여 재구성된 블록을 획득한다. 베이스 계층의 재구성된 블록은 원래의 픽처 블록을 계층화하여 획득되는 베이스 계층 픽처 블록에 대해 전술한 동작들을 수행하여 획득되는 재구성된 블록이다. 인코더는 원래의 픽처 블록(예를 들어, LCU)에 기초하여 베이스 계층의 예측 블록을 획득하고; 원래의 픽처 블록 및 베이스 계층의 예측 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 베이스 계층의 잔차 블록을 획득하고; 베이스 계층의 잔차 블록에 대해 분할을 수행한 이후에, 잔차 블록에 대해 변환 및 양자화를 수행하고, 베이스 계층의 인코딩 제어 정보, 예측 정보, 모션 정보 등과 함께 잔차 블록에 대해 엔트로피 인코딩을 수행하여 베이스 계층 비트스트림을 획득한다. 인코더는 양자화된 계수에 대해 역양자화 및 역변환을 수행하여 베이스 계층의 재구성된 잔차 블록을 획득하고, 그 후 베이스 계층의 예측 블록 및 베이스 계층의 재구성된 잔차 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 베이스 계층의 재구성된 블록을 획득한다.
향상 계층 픽처 블록의 해상도는 베이스 계층 픽처 블록의 해상도보다 낮지 않거나, 향상 계층 픽처 블록의 인코딩 품질은 베이스 계층 픽처 블록의 인코딩 품질보다 낮지 않다. 전술된 바와 같이, 인코딩 품질은 비디오 품질일 수 있다. 향상 계층 픽처 블록의 인코딩 품질이 베이스 계층 픽처 블록의 인코딩 품질보다 낮지 않다는 것은, 베이스 계층의 픽처 왜곡 정도가 비교적 크고, 향상 계층의 픽처 왜곡 정도가 베이스 계층의 픽처 왜곡 정도보다 높지 않다는 것을 의미할 수 있다.
픽처 블록은 복수의 픽셀을 포함하고, 복수의 픽셀은 어레이로 배열되며, 픽처 블록에서 각각의 픽셀의 위치는 행 번호 및 열 번호를 사용하여 고유하게 식별될 수 있다. 인코딩될 픽처 블록 및 베이스 계층의 재구성된 블록의 크기들은 양자 모두 MxN이라고, 즉, 인코딩될 픽처 블록 및 베이스 계층의 재구성된 블록 각각은 MxN 픽셀들을 포함한다고 가정된다. a(i1, j1)는 인코딩될 픽처 블록에서 i1번째 열과 j1번째 행을 갖는 픽셀을 나타내며, 여기서 i1은 1부터 M까지의 범위에 있고 j1은 1부터 N까지의 범위에 있다. b(i2, j2)는 베이스 계층의 재구성된 블록에서 i1번째 열과 j1번째 행을 갖는 픽셀을 나타내며, 여기서 i2는 1부터 M까지의 범위에 있고 j2는 1부터 N까지의 범위에 있다. 인코딩될 픽처 블록 및 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들은, 픽셀들이 각각 속하는 픽처 블록들에서의 행 번호들 및 열 번호들이 각각 서로 동일한, 즉, i1=i2 및 j1=j2인 픽셀들이다. 예를 들어, 픽처 블록의 크기는 16×16이고, 픽처 블록은 16×16 픽셀들을 포함하고, 행 번호들은 0 내지 15이고, 열 번호들은 0 내지 15이고, 인코딩될 픽처 블록에서 식별자 a(0, 0)를 갖는 픽셀 및 베이스 계층의 재구성된 블록에서 식별자 b(0, 0)를 갖는 픽셀은 대응하는 픽셀들이거나, 또는 인코딩될 픽처 블록에서 식별자 a(6, 9)를 갖는 픽셀 및 베이스 계층의 재구성된 블록에서 식별자 b(6, 9)를 갖는 픽셀은 대응하는 픽셀들이다. 대응하는 픽셀들 사이의 차이를 계산하는 것은, 인코딩될 픽처 블록 및 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들의 픽셀 값들 사이의 차이를 계산하는 것일 수 있다. 픽셀 값은 픽셀의 휘도 값, 색차 값 등일 수 있다. 이것은 본 출원에서 특별히 제한되지 않는다.
SHVC 표준에서, 인코더는 베이스 계층의 재구성된 블록에 기초하여 향상 계층의 예측 블록을 예측하고나서, 베이스 계층의 재구성된 블록 및 향상 계층의 예측 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 향상 계층의 잔차 블록을 획득한다. 대조적으로, 본 출원에서, 인코딩될 픽처 블록 및 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 직접 계산하여 향상 계층의 잔차 블록을 획득할 수 있다. 이것은 향상 계층의 예측 블록을 획득하는 프로세스를 감소시켜, 인코더에 대한 처리 절차가 단순화될 수 있고, 인코더의 인코딩 효율이 개선될 수 있게 한다.
본 출원에서, 향상 계층의 잔차 블록의 변환-블록 분할 방식은 베이스 계층의 잔차 블록의 변환-블록 분할 방식과 상이하다. 구체적으로, 인코더가 향상 계층의 잔차 블록을 처리할 때 사용되는 변환-블록 분할 방식은 인코더가 베이스 계층의 잔차 블록을 처리할 때 사용되는 변환-블록 분할 방식과 상이하다. 예를 들어, 베이스 계층의 잔차 블록은 TT 분할 방식으로 3개의 서브블록으로 분할되지만, 향상 계층의 잔차 블록은 TT 분할 방식이 아닌 방식으로 분할된다. 인코더는 다음의 적응형 방식으로 향상 계층의 잔차 블록의 변환-블록 분할 방식을 결정할 수 있다:
가능한 구현에서, 인코더는 먼저 향상 계층의 잔차 블록의 제1 최대 변환 유닛(largest transform unit, LTU)에 대해 반복 트리 구조 분할을 수행하여 복수의 분할 깊이의 변환 유닛들(transform units, TUs)을 획득하고- 복수의 분할 깊이의 최대 분할 깊이는 Dmax와 동일하고, Dmax는 양의 정수임 -; 제1 TU의 손실 추정치 및 제1 TU에 포함되는 복수의 제2 TU의 손실 추정치들의 합계에 기초하여 제1 TU의 분할 방식을 결정할 수 있고, 제1 TU의 분할 깊이는 i이고, 제2 TU의 깊이는 i+1이고, 0≤i≤Dmax-1이다.
인코딩될 픽처 블록의 크기에 대응하여, 향상 계층의 잔차 블록의 크기는 풀-프레임 픽처의 크기일 수 있거나, 풀-프레임 픽처에서 분할된 픽처 블록(예를 들어, CTU 또는 CU)의 크기일 수 있거나, 풀-프레임 픽처에서 ROI의 크기일 수 있다. LTU는 픽처 블록들에서의 변환 처리에 사용되는 최대 크기의 픽처 블록이고, LTU의 크기는 베이스 계층의 재구성된 블록의 크기와 동일할 수 있다. 이것은 변환 코딩의 효율이 최대화되면서 상이한 재구성된 블록들에 대응하는 향상 계층들이 동시에 처리될 수 있다는 것을 보장할 수 있다. 하나의 LTU는 구성된 분할 정보에 기초하여 복수의 노드로 분할될 수 있고, 각각의 노드는 어떠한 노드들도 더 이상 분할되지 않을 때까지 구성된 분할 정보에 기초하여 추가로 분할될 수 있다. 이 프로세스는 반복 트리 구조 분할이라고 지칭될 수 있다. 트리 구조 분할은 QT 분할, BT 분할, 및/또는 TT 분할을 포함할 수 있고, EQT 분할을 추가로 포함할 수 있다. LTU의 분할 방식은 본 출원에서 특별히 제한되지 않는다. 한 번에 하나의 노드를 분할함으로써 복수의 노드가 획득된다. 분할이 수행되는 노드는 부모 노드라고 지칭되고, 분할을 통해 획득된 노드들은 서브노드들이라고 지칭된다. 루트 노드의 분할 깊이(depth)는 0이고, 서브노드의 깊이는 부모 노드의 깊이+1이다. 따라서, 루트 노드 LTU로부터 시작하여 향상 계층의 잔차 블록에 대해 반복 트리 구조 분할을 수행하여, 복수의 깊이의 TU들을 획득할 수 있다. 복수의 깊이에서 최대 깊이(즉, 분할을 통해 획득된 최소 TU의 깊이)는 Dmax이다. LTU의 폭 및 높이는 양자 모두 L이고, 최소 TU의 폭 및 높이는 양자 모두 S라고 가정된다. 이 경우, 최소 TU의 분할 깊이는
Figure pct00001
이고, 여기서
Figure pct00002
는 라운딩 다운(rounding down)을 나타내고, 따라서 Dmax≤d이다.
변환 분할을 통해 획득된 전술한 TU들에 기초하여, 인코더는 레이트-왜곡 최적화(rate distortion optimization, RDO) 처리를 수행하여 LTU의 분할 방식을 결정한다. 분할 깊이 i를 갖는 제1 TU 및 깊이 i+1을 갖는 제2 TU가 예로서 사용된다. i는 Dmax-1로부터 시작하고, i의 값들은 내림차순으로 취해지고, 제2 TU는 제1 TU를 분할함으로써 획득된다. 인코더는 먼저 제1 TU에 대해 변환 및 양자화를 수행하여 제1 TU의 양자화된 계수를 획득하고(양자화된 계수는 도 10에서의 양자화 처리를 통해 획득될 수 있음); 제1 TU의 양자화된 계수를 프리코딩하여(프리코딩은 인코딩된 코드 워드의 길이를 추정하기 위해 수행되는 인코딩 프로세스, 또는 인코딩과 유사한 방식으로 처리를 수행하는 프로세스임) 제1 TU의 코드 워드 길이(즉, 비트스트림 크기) R을 획득하고; 제1 TU의 양자화된 계수에 대해 역양자화 및 역변환을 수행하여 TU의 재구성된 블록을 획득하고; 제1 TU와 제1 TU의 재구성된 블록의 제곱 차이들의 합계를 계산하여 제1 TU의 왜곡 값 D를 획득하고; 최종적으로 제1 TU의 비트스트림 크기 R 및 제1 TU의 왜곡 값 D에 기초하여 제1 TU의 손실 추정치 C를 획득한다.
제1 TU의 왜곡 값 D의 계산 공식은 다음과 같다:
Figure pct00003
, 여기서
Prs(i,j)는 TU의 범위 내의 좌표점(i,j)에서의 제1 TU의 잔차 픽셀의 원래 값을 나타내고, Prc(i,j)는 TU의 범위 내의 좌표점(i,j)에서의 제1 TU의 잔차 픽셀의 재구성된 값을 나타낸다.
제1 TU의 손실 추정치 C의 계산 공식은 다음과 같다:
C=D+λR, 여기서
λ는 현재 계층의 양자화된 계수에 관련된 상수 값을 나타내고, 현재 계층의 픽셀 왜곡 상태를 결정한다.
인코더는 동일한 방법을 사용하여 제2 TU들의 손실 추정치들을 계산할 수 있다. 제1 TU의 손실 추정치 및 제2 TU들의 손실 추정치들을 획득한 후에, 인코더는 제1 TU의 손실 추정치를 복수의 제2 TU들의 손실 추정치들의 합계와 비교하고- 복수의 제2 TU는 제1 TU를 분할함으로써 획득됨 -; 2개의 비교된 값들 중 더 작은 것에 대응하는 분할 방식을 제1 TU의 분할 방식으로서 결정한다. 구체적으로, 제1 TU의 손실 추정치가 복수의 제2 TU의 손실 추정치들의 합계보다 크면, 제1 TU를 복수의 제2 TU로 분할하는 방식이 제1 TU의 분할 방식으로서 결정된다. 제1 TU의 손실 추정치가 복수의 제2 TU의 손실 추정치들의 합계보다 작거나 같으면, 제1 TU는 추가로 분할되지 않는다. 전술한 방법을 사용하여 LTU의 모든 TU를 순회한 후에, 인코더는 LTU의 분할 방식을 획득할 수 있다. 향상 계층의 잔차 블록이 하나의 LTU만을 포함할 때, LTU의 분할 방식은 향상 계층의 잔차 블록의 분할 방식이다. 향상 계층의 잔차 블록이 복수의 LTU를 포함할 때, LTU들의 분할 방식 및 향상 계층의 잔차 블록을 LTU들로 분할하는 방식은 향상 계층의 잔차 블록의 분할 방식을 구성한다.
본 출원에서, 향상 계층의 잔차 블록에 사용되는 TU 분할 방식은 베이스 계층의 잔차 블록에 사용되는 것과 상이하고, 적응형 TU 분할 방법, 즉 향상 계층의 잔차 블록에 적합한 TU 분할 방식이고; 그 후 인코딩이 수행된다. 향상 계층의 잔차 블록에 대한 TU 분할이 베이스 계층에 대한 CU 분할 방식과 독립적일 때, 향상 계층의 TU 크기는 더 이상 CU 크기에 의해 제한되지 않아서, 인코딩 유연성이 개선될 수 있게 된다.
인코더는 변환-블록 분할 방식에 기초하여 향상 계층의 잔차 블록에 대해 변환, 양자화, 및 엔트로피 인코딩을 수행하여 향상 계층의 잔차 블록의 비트스트림을 획득할 수 있다. 변환, 양자화, 및 엔트로피 인코딩 방법들에 대해서는, 전술한 설명들을 참조한다. 세부사항들은 여기에서 다시 설명되지 않는다.
향상 계층의 잔차 블록의 비트스트림을 획득한 후에, 디코더는 비트스트림에서 운반되는 신택스 요소에 기초하여 비트스트림에 대해 엔트로피 디코딩, 역양자화, 및 역변환 처리를 수행하여 향상 계층의 재구성된 잔차 블록을 획득한다. 향상 계층의 재구성된 잔차 블록에 포함된 복수의 픽셀의 행 번호들 및 열 번호들, 및 베이스 계층의 재구성된 블록에 포함된 복수의 픽셀의 행 번호들 및 열 번호들에 기초하여, 디코더는 2개의 픽처 블록 중 하나에서의 픽셀들을 다른 픽처 블록에서의 대응하는 픽셀들에 추가하여, 향상 계층의 재구성된 블록을 획득하며, 여기서 2개의 픽처 블록 중 하나에서의 픽셀들은 각각 다른 픽처 블록에서의 대응하는 픽셀들과 동일한 행 번호 및 열 번호를 갖는다.
본 출원에서, 인코딩될 픽처 블록 및 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 직접 계산하여 향상 계층의 잔차 블록을 획득할 수 있다. 이것은 향상 계층의 예측 블록을 획득하는 프로세스를 감소시켜, 인코더에 대한 처리 절차가 단순화될 수 있고, 인코더의 인코딩 효율이 개선될 수 있게 한다. 또한, 향상 계층의 잔차 블록에 사용되는 TU 분할 방식은 베이스 계층의 잔차 블록에 사용되는 것과 상이하고, 적응형 TU 분할 방법, 즉, 향상 계층의 잔차 블록에 적합한 TU 분할 방식이고; 그 후 인코딩이 수행된다. 향상 계층의 잔차 블록에 대한 TU 분할이 베이스 계층에 대한 CU 분할 방식과 독립적일 때, 향상 계층의 TU 크기는 더 이상 CU 크기에 의해 제한되지 않아서, 잔차 블록의 압축 효율이 보다 효과적으로 개선될 수 있게 된다.
전술한 방법은 2개의 계층화 방식: 공간 스케일러빌리티와 품질 스케일러빌리티에 적용가능하다. 공간 스케일러빌리티를 픽처 블록에 사용하여 베이스 계층 픽처 블록 및 향상 계층 픽처 블록을 획득할 때, 베이스 계층 픽처 블록의 해상도는 향상 계층 픽처 블록의 해상도보다 낮다. 따라서, 인코딩될 픽처 블록 및 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 인코딩될 픽처 블록의 향상 계층의 잔차 블록을 획득하기 이전에, 인코더는 원래의 인코딩될 픽처 블록에 대해 다운샘플링을 수행하여 제1 해상도를 갖는 인코딩될 픽처 블록을 획득하고, 베이스 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행하여 제1 해상도를 갖는 베이스 계층의 재구성된 블록을 획득할 수 있다. 다시 말해서, 인코더는 원래의 인코딩될 픽처 블록에 대해 다운샘플링을 개별적으로 수행하고, 베이스 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행할 수 있어, 인코딩될 픽처 블록의 해상도는 베이스 계층의 재구성된 블록의 해상도와 동일하다.
제2 양태에 따르면, 본 출원은 인코더가 인코딩될 픽처 블록의 제1 향상 계층의 재구성된 블록을 획득하는 단계를 포함하는, 향상 계층에 대한 인코딩 및 디코딩 방법들을 제공한다. 인코더는 인코딩될 픽처 블록 및 제1 향상 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 인코딩될 픽처 블록의 제2 향상 계층의 잔차 블록을 획득한다. 인코더는 제2 향상 계층의 잔차 블록의 변환-블록 분할 방식을 결정한다. 인코더는 변환-블록 분할 방식에 기초하여 제2 향상 계층의 잔차 블록에 대해 변환을 수행하여 제2 향상 계층의 잔차 블록의 비트스트림을 획득한다. 디코더는 디코딩될 픽처 블록의 제2 향상 계층의 잔차 블록의 비트스트림을 획득한다. 디코더는 제2 향상 계층의 잔차 블록의 비트스트림에 대해 엔트로피 디코딩, 역양자화, 및 역변환을 수행하여 제2 향상 계층의 재구성된 잔차 블록을 획득한다. 디코더는 디코딩될 픽처 블록의 제1 향상 계층의 재구성된 블록을 획득한다. 디코더는 제2 향상 계층의 재구성된 잔차 블록 및 제1 향상 계층의 재구성된 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 제2 향상 계층의 재구성된 블록을 획득한다.
본 출원의 이러한 실시예에서, 픽처 블록이 베이스 계층 이외에, 공간 스케일러빌리티, 시간 스케일러빌리티, 또는 품질 스케일러빌리티를 사용하여 계층화된 이후에, 픽처 블록은 복수의 향상 계층으로 추가로 분할된다. 제1 양태와 비교하여, 이 실시예는 하위-계층 향상 계층(제1 향상 계층)에 기초한 상위 계층, 즉 제2 향상 계층에 대한 인코딩 및 디코딩 방법들을 설명한다.
베이스 계층의 재구성된 블록을 획득하기 위한 방법과의 차이는: 코드 블록이 처리될 픽처 블록 및 처리될 픽처 블록의 제3 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 제1 향상 계층의 잔차 블록을 획득하고- 제3 계층은 제1 향상 계층보다 하위 계층이고, 베이스 계층 또는 향상 계층일 수 있음 -; 제1 향상 계층의 잔차 블록에 대해 변환 및 양자화를 수행하여 제1 향상 계층의 잔차 블록의 양자화된 계수를 획득하고; 제1 향상 계층의 잔차 블록의 양자화된 계수에 대해 역양자화 및 역변환을 수행하여 제1 향상 계층의 재구성된 잔차 블록을 획득하고; 최종적으로 제3 계층의 재구성된 블록 및 제1 향상 계층의 재구성된 잔차 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 제1 향상 계층의 재구성된 블록을 획득할 수 있다는 점에 있다.
본 출원의 이 실시예에서, 제2 향상 계층의 잔차 블록의 변환-블록 분할 방식은 제1 향상 계층의 잔차 블록의 변환-블록 분할 방식과 상이하다. 인코더는 대안적으로 전술한 RDO 처리를 사용하여 제2 향상 계층의 잔차 블록의 변환-블록 분할 방식을 결정할 수 있다. 세부사항들은 여기에서 다시 설명되지 않는다.
본 출원에서, 제2 향상 계층의 잔차 블록에 사용되는 TU 분할 방식은 제1 향상 계층의 잔차 블록 및 베이스 계층의 잔차 블록에 사용되는 것들과 상이하고, 적응형 TU 분할 방법, 즉, 제2 향상 계층의 잔차 블록에 적합한 TU 분할 방식이고; 그 후 인코딩이 수행된다. 제2 향상 계층의 잔차 블록에 대한 TU 분할이 다른 계층에 대한 CU 또는 TU 분할 방식과 독립적일 때, 제2 향상 계층의 TU 크기는 더 이상 CU 크기에 의해 제한되지 않거나 또는 제2 향상 계층의 TU 크기는 더 이상 제1 향상 계층의 TU 크기에 의해 제한되지 않아서, 인코딩 유연성이 개선될 수 있게 된다.
본 출원에서, 인코딩될 픽처 블록 및 제1 향상 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 직접 계산하여 제2 향상 계층의 잔차 블록을 획득할 수 있다. 이것은 제2 향상 계층의 예측 블록을 획득하는 프로세스를 감소시켜, 인코더에 대한 처리 절차가 단순화될 수 있고, 인코더의 인코딩 효율이 개선될 수 있게 한다. 또한, 제2 향상 계층의 잔차 블록에 사용되는 TU 분할 방식은 제1 향상 계층의 잔차 블록에 사용되는 것과 상이하고, 적응형 TU 분할 방법, 즉 제2 향상 계층의 잔차 블록에 적합한 TU 분할 방식이고; 그 후 인코딩이 수행된다. 제2 향상 계층의 잔차 블록에 대한 TU 분할이 제1 향상 계층에 대한 CU 또는 TU 분할 방식과 독립적일 때, 제2 향상 계층의 TU 크기는 더 이상 CU 크기에 의해 제한되지 않거나 제2 향상 계층의 TU 크기는 더 이상 제1 향상 계층의 TU 크기에 의해 제한되지 않아서, 잔차 블록의 압축 효율이 더 효과적으로 개선될 수 있게 된다.
전술한 방법은 2개의 계층화 방식: 공간 스케일러빌리티와 품질 스케일러빌리티에 적용가능하다. 공간 스케일러빌리티를 픽처 블록에 사용하여 제1 향상 계층 픽처 블록 및 제2 향상 계층 픽처 블록을 획득할 때, 제1 향상 계층 픽처 블록의 해상도는 제2 향상 계층 픽처 블록의 해상도보다 낮다. 따라서, 인코딩될 픽처 블록 및 제1 향상 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 인코딩될 픽처 블록의 제2 향상 계층의 잔차 블록을 획득하기 전에, 인코더는 원래의 인코딩될 픽처 블록에 대해 다운샘플링을 수행하여 제1 해상도를 갖는 인코딩될 픽처 블록을 획득하고, 제1 향상 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행하여 제1 해상도를 갖는 제1 향상 계층의 재구성된 블록을 획득할 수 있다. 다시 말해서, 인코더는 원래의 인코딩될 픽처 블록에 대해 다운샘플링을 개별적으로 수행하고, 제1 향상 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행하여, 인코딩될 픽처 블록의 해상도가 제1 향상 계층의 재구성된 블록의 해상도와 동일하게 할 수 있다.
제3 양태에 따르면, 본 출원은 인코딩 장치를 제공하며, 이 인코딩 장치는: 인코딩될 픽처 블록의 베이스 계층의 재구성된 블록을 획득하고; 인코딩될 픽처 블록 및 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 인코딩될 픽처 블록의 향상 계층의 잔차 블록을 획득하도록 구성된 획득 모듈- 향상 계층 픽처 블록의 해상도는 베이스 계층 픽처 블록의 해상도보다 낮지 않거나, 또는 향상 계층 픽처 블록의 인코딩 품질은 베이스 계층 픽처 블록의 인코딩 품질보다 낮지 않음 -; 향상 계층의 잔차 블록의 변환-블록 분할 방식을 결정하도록 구성된 결정 모듈- 향상 계층의 잔차 블록의 변환-블록 분할 방식은 베이스 계층의 잔차 블록의 변환-블록 분할 방식과 상이함 -; 및 변환-블록 분할 방식에 기초하여 향상 계층의 잔차 블록에 대해 변환을 수행하여 향상 계층의 잔차 블록의 비트스트림을 획득하도록 구성된 인코딩 모듈을 포함한다.
가능한 구현에서, 결정 모듈은 구체적으로: 향상 계층의 잔차 블록의 제1 최대 변환 유닛 LTU에 대해 반복 트리 구조 분할을 수행하여 복수의 분할 깊이의 변환 유닛들 TU들을 획득하고- 복수의 분할 깊이의 최대 분할 깊이는 Dmax와 동일하고, Dmax는 양의 정수임 -; 제1 TU의 손실 추정치 및 제1 TU에 포함되는 복수의 제2 TU의 손실 추정치들의 합계에 기초하여 제1 TU의 분할 방식을 결정하도록 구성되며, 제1 TU의 분할 깊이는 i이고, 제2 TU의 깊이는 i+1이고, 0≤i≤Dmax-1이다.
가능한 구현에서, 결정 모듈은 구체적으로: TU에 대해 변환 및 양자화를 수행하여 TU의 양자화된 계수를 획득하고- TU는 제1 TU 또는 제2 TU임 -; TU의 양자화된 계수를 프리코딩하여 TU의 코드 워드 길이를 획득하고; TU의 양자화된 계수에 대해 역양자화 및 역변환을 수행하여 TU의 재구성된 블록을 획득하고; TU와 TU의 재구성된 블록의 제곱 차이들의 합계 SSD를 계산하여 TU의 왜곡 값을 획득하고; TU의 코드 워드 길이 및 TU의 왜곡 값에 기초하여 TU의 손실 추정치를 획득하고; 제1 TU의 손실 추정치와 복수의 제2 TU의 손실 추정치들의 합계 중 더 작은 것을 결정하고; 더 작은 것에 대응하는 분할 방식을 제1 TU의 분할 방식으로서 결정하도록 구성된다.
가능한 구현에서, LTU의 크기는 베이스 계층의 재구성된 블록의 크기와 동일하거나, 또는 LTU의 크기는 베이스 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행함으로써 획득된 재구성된 블록의 크기와 동일하다.
가능한 구현에서, 인코딩될 픽처 블록은 풀-프레임 픽처에서 최대 코딩 유닛 LCU이거나, 인코딩될 픽처 블록은 풀-프레임 픽처이거나, 인코딩될 픽처 블록은 풀-프레임 픽처에서 관심 영역 ROI이다.
가능한 구현에서, 베이스 계층 및 향상 계층은 해상도 또는 인코딩 품질 스케일러빌리티에 기초하여 획득된다.
가능한 구현에서, 베이스 계층 및 향상 계층이 해상도 스케일러빌리티에 기초하여 획득될 때, 획득 모듈은: 원래의 인코딩될 픽처 블록에 대해 다운샘플링을 수행하여 제1 해상도를 갖는 인코딩될 픽처 블록을 획득하고; 베이스 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행하여 제1 해상도를 갖는 베이스 계층의 재구성된 블록을 획득하도록 추가로 구성된다.
가능한 구현에서, 획득 모듈은 구체적으로: 처리될 픽처 블록 및 처리될 픽처 블록의 예측 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 처리될 픽처 블록의 잔차 블록을 획득하고; 처리될 픽처 블록의 잔차 블록에 대해 변환 및 양자화를 수행하여 처리될 픽처 블록의 양자화된 계수를 획득하고; 처리될 픽처 블록의 양자화된 계수에 대해 역양자화 및 역변환을 수행하여 처리될 픽처 블록의 재구성된 잔차 블록을 획득하고; 처리될 픽처 블록의 예측 블록 및 처리될 픽처 블록의 재구성된 잔차 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 베이스 계층의 재구성된 블록을 획득하도록 구성된다.
제4 양태에 따르면, 본 출원은 인코딩 장치를 제공하며, 이 인코딩 장치는: 인코딩될 픽처 블록의 제1 향상 계층의 재구성된 블록을 획득하고; 인코딩될 픽처 블록 및 제1 향상 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 인코딩될 픽처 블록의 제2 향상 계층의 잔차 블록을 획득하도록 구성된 획득 모듈- 제2 향상 계층 픽처 블록의 해상도는 제1 향상 계층 픽처 블록의 해상도보다 낮지 않거나, 제2 향상 계층 픽처 블록의 인코딩 품질은 제1 향상 계층 픽처 블록의 인코딩 품질보다 낮지 않음 -; 제2 향상 계층의 잔차 블록의 변환-블록 분할 방식을 결정하도록 구성된 결정 모듈- 제2 향상 계층의 잔차 블록의 변환-블록 분할 방식은 제1 계층의 잔차 블록의 변환-블록 분할 방식과 상이함 -; 및 변환-블록 분할 방식에 기초하여 제2 향상 계층의 잔차 블록에 대해 변환을 수행하여 제2 향상 계층의 잔차 블록의 비트스트림을 획득하도록 구성된 인코딩 모듈을 포함한다.
가능한 구현에서, 결정 모듈은 구체적으로: 제2 향상 계층의 잔차 블록의 제1 최대 변환 유닛 LTU에 대해 반복 트리 구조 분할을 수행하여 복수의 분할 깊이의 변환 유닛들 TU들을 획득하고- 복수의 분할 깊이의 최대 분할 깊이는 Dmax와 동일하고, Dmax는 양의 정수임 -; 제1 TU의 손실 추정치 및 제1 TU에 포함되는 복수의 제2 TU의 손실 추정치들의 합계에 기초하여 제1 TU의 분할 방식을 결정하도록 구성되며, 제1 TU의 분할 깊이는 i이고, 제2 TU의 깊이는 i+1이고, 0≤i≤Dmax-1이다.
가능한 구현에서, 결정 모듈은 구체적으로: TU에 대해 변환 및 양자화를 수행하여 TU의 양자화된 계수를 획득하고- TU는 제1 TU 또는 제2 TU임 -; TU의 양자화된 계수를 프리코딩하여 TU의 코드 워드 길이를 획득하고; TU의 양자화된 계수에 대해 역양자화 및 역변환을 수행하여 TU의 재구성된 블록을 획득하고; TU와 TU의 재구성된 블록의 제곱 차이들의 합계 SSD를 계산하여 TU의 왜곡 값을 획득하고; TU의 코드 워드 길이 및 TU의 왜곡 값에 기초하여 TU의 손실 추정치를 획득하고; 제1 TU의 손실 추정치와 복수의 제2 TU의 손실 추정치들의 합계 중 더 작은 것을 결정하고; 더 작은 것에 대응하는 분할 방식을 제1 TU의 분할 방식으로서 결정하도록 구성된다.
가능한 구현에서, LTU의 크기는 제1 향상 계층의 재구성된 블록의 크기와 동일하거나, LTU의 크기는 제1 향상 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행함으로써 획득된 재구성된 블록의 크기와 동일하다.
가능한 구현에서, 인코딩될 픽처 블록은 풀-프레임 픽처에서 최대 코딩 유닛 LCU이거나, 인코딩될 픽처 블록은 풀-프레임 픽처이거나, 인코딩될 픽처 블록은 풀-프레임 픽처에서 관심 영역 ROI이다.
가능한 구현에서, 제1 향상 계층 및 제2 향상 계층은 품질 스케일러빌리티 방식 또는 공간 스케일러빌리티 방식으로 계층화를 통해 획득된다.
가능한 구현에서, 제1 향상 계층 및 제2 향상 계층이 공간 스케일러빌리티 방식으로 계층화를 통해 획득될 때, 획득 모듈은: 원래의 인코딩될 픽처 블록에 대해 다운샘플링을 수행하여 제2 해상도를 갖는 인코딩될 픽처 블록을 획득하고; 제1 향상 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행하여 제2 해상도를 갖는 제1 향상 계층의 재구성된 블록을 획득하도록 추가로 구성된다.
가능한 구현에서, 획득 모듈은 구체적으로: 처리될 픽처 블록 및 처리될 픽처 블록의 제3 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 제1 향상 계층의 잔차 블록을 획득하고- 제1 향상 계층 픽처 블록의 해상도는 제3-계층 픽처 블록의 해상도보다 낮지 않거나, 제1 향상 계층 픽처 블록의 인코딩 품질은 제3-계층 픽처 블록의 인코딩 품질보다 낮지 않음 -; 제1 향상 계층의 잔차 블록에 대해 변환 및 양자화를 수행하여 제1 향상 계층의 잔차 블록의 양자화된 계수를 획득하고; 제1 향상 계층의 잔차 블록의 양자화된 계수에 대해 역양자화 및 역변환을 수행하여 제1 향상 계층의 재구성된 잔차 블록을 획득하고; 제3 계층의 재구성된 블록 및 제1 향상 계층의 재구성된 잔차 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 제1 향상 계층의 재구성된 블록을 획득하도록 구성된다.
제5 양태에 따르면, 본 출원은 디코딩 장치를 제공하며, 이 장치는: 디코딩될 픽처 블록의 향상 계층의 잔차 블록의 비트스트림을 획득하도록 구성된 획득 모듈; 향상 계층의 잔차 블록의 비트스트림에 대해 엔트로피 디코딩, 역양자화, 및 역변환을 수행하여 향상 계층의 재구성된 잔차 블록을 획득하도록 구성된 디코딩 모듈; 및 디코딩될 픽처 블록의 베이스 계층의 재구성된 블록을 획득하고- 향상 계층 픽처 블록의 해상도는 베이스 계층 픽처 블록의 해상도보다 낮지 않거나, 또는 향상 계층 픽처 블록의 인코딩 품질은 베이스 계층 픽처 블록의 인코딩 품질보다 낮지 않음 -; 향상 계층의 재구성된 잔차 블록 및 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 향상 계층의 재구성된 블록을 획득하도록 구성된 재구성 모듈을 포함한다.
가능한 구현에서, 디코딩될 픽처 블록은 풀-프레임 픽처에서 최대 코딩 유닛 LCU이거나, 디코딩될 픽처 블록은 풀-프레임 픽처이거나, 디코딩될 픽처 블록은 풀-프레임 픽처에서 관심 영역 ROI이다.
가능한 구현에서, 베이스 계층 및 향상 계층은 품질 스케일러빌리티 방식 또는 공간 스케일러빌리티 방식으로 계층화를 통해 획득된다.
가능한 구현에서, 베이스 계층 및 향상 계층이 공간 스케일러빌리티 방식으로 계층화를 통해 획득될 때, 재구성 모듈은 베이스 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행하여 해상도가 제3 해상도인 베이스 계층의 재구성된 블록을 획득하도록 추가로 구성되며, 제3 해상도는 향상 계층의 재구성된 잔차 블록의 해상도와 동일하다.
가능한 구현에서, 재구성 모듈은 구체적으로: 베이스 계층의 잔차 블록의 비트스트림을 획득하고; 베이스 계층의 잔차 블록의 비트스트림에 대해 엔트로피 디코딩을 수행하여 베이스 계층의 잔차 블록의 디코딩된 데이터를 획득하고; 베이스 계층의 잔차 블록의 디코딩된 데이터에 대해 역양자화 및 역변환을 수행하여 베이스 계층의 재구성된 잔차 블록을 획득하고; 베이스 계층의 잔차 블록의 디코딩된 데이터에 기초하여 베이스 계층의 예측 블록을 획득하고; 베이스 계층의 재구성된 잔차 블록 및 베이스 계층의 예측 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 베이스 계층의 재구성된 블록을 획득하도록 구성된다.
제6 양태에 따르면, 본 출원은 디코딩 장치를 제공하며, 이 장치는: 디코딩될 픽처 블록의 제2 향상 계층의 잔차 블록의 비트스트림을 획득하도록 구성된 획득 모듈; 제2 향상 계층의 잔차 블록의 비트스트림에 대해 엔트로피 디코딩, 역양자화, 및 역변환을 수행하여 제2 향상 계층의 재구성된 잔차 블록을 획득하도록 구성된 디코딩 모듈; 및 디코딩될 픽처 블록의 제1 향상 계층의 재구성된 블록을 획득하고- 제2 향상 계층 픽처 블록의 해상도는 제1 향상 계층 픽처 블록의 해상도보다 낮지 않거나, 제2 향상 계층 픽처 블록의 인코딩 품질은 제1 향상 계층 픽처 블록의 인코딩 품질보다 낮지 않음 -; 제2 향상 계층의 재구성된 잔차 블록 및 제1 향상 계층의 재구성된 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 제2 향상 계층의 재구성된 블록을 획득하도록 구성된 재구성 모듈을 포함한다.
가능한 구현에서, 디코딩될 픽처 블록은 풀-프레임 픽처에서 최대 코딩 유닛 LCU이거나, 디코딩될 픽처 블록은 풀-프레임 픽처이거나, 디코딩될 픽처 블록은 풀-프레임 픽처에서 관심 영역 ROI이다.
가능한 구현에서, 제1 향상 계층 및 제2 향상 계층은 품질 스케일러빌리티 방식 또는 공간 스케일러빌리티 방식으로 계층화를 통해 획득된다.
가능한 구현에서, 제1 향상 계층 및 제2 향상 계층이 공간 스케일러빌리티 방식으로 계층화를 통해 획득될 때, 재구성 모듈은 제1 향상 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행하여 해상도가 제4 해상도인 제1 향상 계층의 재구성된 블록을 획득하도록 추가로 구성되며, 제4 해상도는 제2 향상 계층의 재구성된 잔차 블록의 해상도와 동일하다.
가능한 구현에서, 재구성 모듈은 구체적으로: 제1 향상 계층의 잔차 블록의 비트스트림을 획득하고; 제1 향상 계층의 잔차 블록의 비트스트림에 대해 엔트로피 디코딩, 역양자화, 및 역변환을 수행하여 제1 향상 계층의 재구성된 잔차 블록을 획득하고; 제1 향상 계층의 재구성된 잔차 블록 및 제3 계층의 재구성된 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 제1 향상 계층의 재구성된 블록을 획득하도록 구성되고, 제1 향상 계층 픽처 블록의 해상도는 제3-계층 픽처 블록의 해상도보다 낮지 않거나, 제1 향상 계층 픽처 블록의 인코딩 품질은 제3-계층 픽처 블록의 인코딩 품질보다 낮지 않다.
제7 양태에 따르면, 본 출원은 프로세서와 메모리를 포함하는 인코더를 제공하며, 여기서 프로세서는 메모리에 결합되고, 메모리는 컴퓨터 판독가능 명령어들을 저장하고; 프로세서는 컴퓨터 판독가능 명령어들을 판독하도록 구성하여, 인코더가 제1 양태와 제2 양태 중 어느 하나에 따른 방법을 구현하게 한다.
제8 양태에 따르면, 본 출원은 프로세서와 메모리를 포함하는 디코더를 제공하며, 여기서 프로세서는 메모리에 결합되고, 메모리는 컴퓨터 판독가능 명령어들을 저장하고; 프로세서는 컴퓨터 판독가능 명령어들을 판독하도록 구성하여, 인코더가 제1 양태와 제2 양태 중 어느 하나에 따른 방법을 구현하게 한다.
제9 양태에 따르면, 본 출원은 프로그램 코드를 포함하는 컴퓨터 프로그램 제품을 제공하며, 여기서 컴퓨터 프로그램 제품이 컴퓨터 또는 프로세서 상에서 실행되고 있을 때, 컴퓨터 프로그램 제품은 제1 양태와 제2 양태 중 어느 하나에 따른 방법을 수행하는데 사용된다.
제10 양태에 따르면, 본 출원은 프로그램 코드를 포함하는 컴퓨터 판독가능 저장 매체를 제공하며, 여기서 컴퓨터 판독가능 저장 매체가 컴퓨터 디바이스 상에서 실행되고 있을 때, 컴퓨터 판독가능 저장 매체는 제1 양태와 제2 양태 중 어느 하나에 따른 방법을 수행하는데 사용된다.
도 1a는 본 출원의 실시예에 따른 코딩 시스템(10)의 예시적인 블록도이고;
도 1b는 본 출원의 실시예에 따른 비디오 코딩 시스템(40)의 예시적인 블록도이고;
도 2는 본 출원의 실시예에 따른 비디오 인코더(20)의 예시적인 블록도이고;
도 3은 본 출원의 실시예에 따른 비디오 디코더(30)의 예시적인 블록도이고;
도 4는 본 출원의 실시예에 따른 비디오 코딩 디바이스(400)의 예시적인 블록도이고;
도 5는 본 출원의 실시예에 따른 장치(500)의 예시적인 블록도이고;
도 6a 내지 도 6g는 본 출원의 실시예에 따른 분할 방식들의 몇몇 예시적인 개략도들이고;
도 7은 본 출원에 따른 QT-MTT 분할 방식의 예시적인 개략도이고;
도 8은 본 출원에 따른 향상 계층에 대한 코딩 방법의 예시적인 흐름도이고;
도 9는 본 출원에 따른 스케일러블 비디오 코딩의 계층들의 예시적인 개략도이고;
도 10은 본 출원에 따른 향상 계층에 대한 인코딩 방법의 예시적인 흐름도이고;
도 11은 본 출원에 따른 향상 계층에 대한 코딩 방법의 예시적인 흐름도이고;
도 12a 및 도 12b는 본 출원에 따른 향상 계층에 대한 코딩 방법의 예시적인 흐름도이고;
도 13a 및 도 13b는 본 출원에 따른 향상 계층에 대한 코딩 방법의 예시적인 흐름도이고;
도 14a 및 도 14b는 본 출원에 따른 향상 계층에 대한 코딩 방법의 예시적인 흐름도이고;
도 15는 본 출원에 따른 향상 계층에 대한 코딩 방법의 예시적인 흐름도이고;
도 16은 본 출원에 따른 인코딩 장치의 구조의 예시적인 개략도이고;
도 17은 본 출원에 따른 디코딩 장치의 구조의 예시적인 개략도이다.
본 출원의 실시예들은 비디오 픽처 압축 기술을 제공하고, 구체적으로 계층화된 잔차 코딩에 기초하는 인코딩 및 디코딩 아키텍처를 제공하여, 종래의 하이브리드 비디오 인코딩 및 디코딩 시스템을 개선한다.
비디오 코딩은 일반적으로 비디오 또는 비디오 시퀀스를 형성하는 픽처 시퀀스의 처리를 지칭한다. 비디오 코딩 분야에서, 용어들 "픽처(picture)", "프레임(frame)", 및 "이미지(image)"는 동의어로서 사용될 수 있다. 비디오 코딩(또는 일반적으로 코딩이라고 지칭됨)은 2개의 부분: 비디오 인코딩과 비디오 디코딩을 포함한다. 비디오 인코딩은 소스 측에서 수행되고, 일반적으로 (더 효율적인 저장 및/또는 송신을 위해) 비디오 픽처를 표현하는데 필요한 데이터의 볼륨을 감소시키기 위해 원래의 비디오 픽처를 처리(예를 들어, 압축)하는 것을 포함한다. 비디오 디코딩은 목적지 측에서 수행되며, 일반적으로 비디오 픽처를 재구성하기 위해 인코더의 처리와 반대인 역 처리를 포함한다. 실시예들에서 비디오 픽처(또는 일반적으로 픽처라고 지칭됨)의 "코딩"은 비디오 픽처 또는 비디오 시퀀스의 "인코딩" 또는 "디코딩"으로서 이해되어야 한다. 인코딩 부분과 디코딩 부분의 조합은 인코딩/디코딩(encoding and decoding, CODEC)이라고도 지칭된다.
무손실 비디오 코딩의 경우, 원래의 비디오 픽처가 재구성될 수 있다. 다시 말해서, 재구성된 비디오 픽처는 원래의 비디오 픽처와 동일한 품질을 가진다(저장 또는 송신 동안 송신 손실이 없거나 다른 데이터 손실이 없는 것으로 가정된다). 손실 비디오 코딩의 경우, 비디오 픽처를 표현하는데 필요한 데이터의 볼륨을 감소시키기 위해 양자화 등을 통해 추가적인 압축이 수행되지만, 디코더 측은 비디오 픽처를 완전히 재구성할 수 없다. 다시 말해서, 재구성된 비디오 픽처는 원래의 비디오 픽처보다 더 낮거나 더 나쁜 품질을 가진다.
몇몇 비디오 코딩 표준들은 "손실 하이브리드 비디오 인코딩 및 디코딩"에 사용된다(즉, 픽셀 도메인에서의 공간 및 시간 예측은 변환 도메인에서의 양자화에 사용되는 2D 변환 코딩과 조합된다). 비디오 시퀀스에서의 각각의 픽처는 일반적으로 블록 레벨에서 인코딩되는 비중첩 블록들의 세트로 일반적으로 분할된다. 다시 말해서, 인코더는 일반적으로 비디오를 블록(비디오 블록) 레벨로 처리, 즉 인코딩한다. 예를 들어, 인코더는 공간 예측(인트라 예측) 및 시간 예측(인터 예측)을 통해 예측 블록을 생성하고; 현재 블록(현재 처리되는/처리될 블록)으로부터 예측 블록을 감산하여 잔차 블록을 획득하고; 변환 도메인에서 잔차 블록에 대해 변환 및 양자화를 수행하여, 송신(압축)될 데이터의 볼륨이 감소되게 한다. 디코더 측에서, 인코더의 처리와 반대인 역 처리 부분이 인코딩된 또는 압축된 블록에 적용되어 표현에 사용되는 현재 블록을 재구성한다. 또한, 인코더는 디코더에 의해 수행되는 처리 단계를 반복하여, 인코더 및 디코더 양자 모두가 처리를 위해 동일한 예측(예를 들어, 인트라 예측 및 인터 예측) 픽셀 및/또는 동일한 재구성된 픽셀을 생성하게 할 필요가 있는데, 즉, 후속 블록을 코딩한다.
코딩 시스템(10)의 이하의 실시예에서, 인코더(20)와 디코더(30)는 도 1a 내지 도 3을 참조하여 설명된다.
도 1a는 본 출원의 실시예에 따른 코딩 시스템(10)의 예시적인 블록도이다. 예를 들어, 코딩 시스템(10)은 본 출원에서의 기술들을 이용할 수 있는 비디오 코딩 시스템(10)(또는 줄여서 코딩 시스템(10)이라고 지칭됨)이다. 비디오 코딩 시스템(10)에서의 비디오 인코더(20)(또는 줄여서 인코더(20)라고 지칭됨) 및 비디오 디코더(30)(또는 줄여서 디코더(30)라고 지칭됨)는 본 출원에서 설명되는 다양한 예들에 기초하여 다양한 기술들을 수행하도록 구성될 수 있는 디바이스들 등을 나타낸다.
도 1a에 도시된 바와 같이, 코딩 시스템(10)은 소스 디바이스(12)를 포함한다. 소스 디바이스(12)는 인코딩된 픽처와 같은 인코딩된 픽처 데이터(21)를 인코딩된 픽처 데이터(21)를 디코딩하도록 구성된 목적지 디바이스(14)에 제공하도록 구성된다.
소스 디바이스(12)는 인코더(20)를 포함하고, 선택적으로 픽처 소스(16), 전처리기(또는 전처리 유닛)(18), 예를 들어, 픽처 전처리기 및 통신 인터페이스(또는 통신 유닛)(22)를 포함할 수 있다.
픽처 소스(16)는, 현실 세계 픽처를 캡처하기 위한 임의의 타입의 픽처 캡처 디바이스 및/또는 임의의 타입의 픽처 생성 디바이스, 예를 들어, 컴퓨터 애니메이션 픽처를 생성하기 위한 컴퓨터 그래픽 처리 유닛, 또는 현실 세계 픽처 및 컴퓨터 생성 픽처(예를 들어, 스크린 콘텐츠, 가상 현실(virtual reality, VR) 픽처) 및/또는 이들의 임의의 조합(예를 들어, 증강 현실(augmented reality, AR) 픽처)을 획득 및/또는 제공하기 위한 임의의 타입의 디바이스를 포함할 수 있거나 또는 이들일 수 있다. 픽처 소스는 임의의 타입의 내부 메모리 또는 전술한 픽처들 중 임의의 것을 저장하는 메모리일 수 있다.
픽처(또는 픽처 데이터)(17)를 전처리기(또는 전처리 유닛)(18)에 의해 수행되는 처리와 구별하기 위해, 픽처(또는 픽처 데이터)(17)는 원래의 픽처(또는 원래의 픽처 데이터)(17)라고도 지칭될 수 있다.
전처리기(18)는 원래의 픽처 데이터(17)를 수신하고 원래의 픽처 데이터(17)에 전처리를 수행하여 전처리된 픽처(또는 전처리된 픽처 데이터)(19)를 획득하도록 구성된다. 예를 들어, 전처리기(18)에 의해 수행되는 전처리는, 예를 들어, 트리밍, 컬러 포맷 변환(예를 들어, RGB로부터 YCbCr로의 변환), 컬러 정정, 또는 잡음 감소를 포함할 수 있다. 전처리 유닛(18)은 선택적 컴포넌트일 수 있다는 점이 이해될 수 있다.
비디오 인코더(또는 인코더)(20)는, 전처리된 픽처 데이터(19)를 수신하고 인코딩된 픽처 데이터(21)를 제공하도록 구성된다(세부사항들은 도 2 등에 기초하여 이하에 추가로 설명된다).
소스 디바이스(12)에서의 통신 인터페이스(22)는, 인코딩된 픽처 데이터(21)를 수신하고 인코딩된 픽처 데이터(21)(또는 이러한 데이터의 임의의 다른 버전들)를, 저장 또는 직접 재구성을 위해, 통신 채널(13)을 통해 다른 디바이스, 예를 들어, 목적지 디바이스(14), 또는 임의의 다른 디바이스에 전송하도록 구성될 수 있다.
목적지 디바이스(14)는 디코더(30)를 포함하고, 선택적으로 통신 인터페이스(또는 통신 유닛)(28), 후처리기(또는 후처리 유닛)(32), 및 디스플레이 디바이스(34)를 포함할 수 있다.
목적지 디바이스(14) 내의 통신 인터페이스(28)는 소스 디바이스(12)로부터 직접 또는 임의의 다른 소스 디바이스, 예를 들어, 저장 디바이스로부터 인코딩된 픽처 데이터(21)(또는 이러한 데이터의 임의의 다른 버전들)를 수신하도록 구성된다. 예를 들어, 저장 디바이스는 인코딩된 픽처 데이터 저장 디바이스이고, 인코딩된 픽처 데이터(21)를 디코더(30)에 제공한다.
통신 인터페이스(22)와 통신 인터페이스(28)는 소스 디바이스(12)와 목적지 디바이스(14) 사이에서 직접 통신 링크, 예를 들어, 직접 유선 또는 무선 접속을 통해; 또는 임의의 타입의 네트워크, 예를 들어, 유선 또는 무선 네트워크 또는 이들의 임의의 조합, 또는 임의의 타입의 사설 또는 공중 네트워크 또는 이들의 임의의 타입의 조합을 통해 인코딩된 픽처 데이터(또는 인코딩된 데이터)(21)를 전송 또는 수신하도록 구성될 수 있다.
예를 들어, 통신 인터페이스(22)는 인코딩된 픽처 데이터(21)를 패킷 또는 다른 적절한 포맷으로 캡슐화하고/하거나 통신 링크 또는 통신 네트워크를 통한 송신에 임의의 타입의 송신 인코딩 또는 처리를 사용하여 인코딩된 픽처화된 데이터를 처리하도록 구성될 수 있다.
통신 인터페이스(22)에 대응하여, 통신 인터페이스(28)는, 예를 들어, 송신된 데이터를 수신하고, 임의의 타입의 대응하는 송신 디코딩 또는 처리 및/또는 역캡슐화를 사용하여 송신된 데이터를 처리하여, 인코딩된 픽처 데이터(21)를 획득하도록 구성될 수 있다.
통신 인터페이스(22)와 통신 인터페이스(28) 양쪽 모두는, 도 1a에서 소스 디바이스(12)로부터 목적지 디바이스(14)를 가리키는 대응하는 통신 채널(13)에 대한 화살표로 표시된 단방향 통신 인터페이스, 또는 양방향 통신 인터페이스로서 구성될 수 있다. 2개의 통신 인터페이스는, 접속을 확립하고, 통신 링크 및/또는 인코딩된 픽처화된 데이터 송신 등의 데이터 송신에 관련된 임의의 다른 정보를 확인하고 교환하며, 기타의 동작을 수행하기 위해, 메시지 등을 전송 및 수신하도록 구성될 수 있다.
비디오 디코더(또는 디코더)(30)는, 인코딩된 픽처 데이터(21)를 수신하고 디코딩된 픽처 데이터(또는 디코딩된 픽처 데이터)(31)를 제공하도록 구성된다(세부사항들은 도 3 등에 기초하여 이하에 추가로 설명된다).
후처리기(32)는 디코딩된 픽처와 같은 디코딩된 픽처 데이터(31)(재구성된 픽처 데이터라고도 지칭됨)를 후처리하여, 후처리된 픽처와 같은 후처리된 픽처 데이터(33)를 획득하도록 구성된다. 후처리 유닛(32)에 의해 수행되는 후처리는, 예를 들어, 컬러 포맷 변환(예를 들어, YCbCr로부터 RGB로의 변환), 컬러 정정, 트리밍, 리샘플링, 또는 디스플레이 디바이스(34)에 의한 디스플레이를 위해 디코딩된 픽처 데이터(31)를 생성하는 것과 같은 임의의 다른 처리 등을 포함할 수 있다.
디스플레이 디바이스(34)는 후처리된 픽처 데이터(33)를 수신하여, 픽처를 사용자, 뷰어 등에 디스플레이하도록 구성된다. 디스플레이 디바이스(34)는 재구성된 픽처를 표현하기 위한 임의의 타입의 디스플레이, 예를 들어, 통합 또는 외부 디스플레이 스크린 또는 디스플레이일 수 있거나 이를 포함할 수 있다. 예를 들어, 디스플레이 스크린은 액정 디스플레이(liquid crystal display, LCD), 유기 발광 다이오드(organic light emitting diode, OLED) 디스플레이, 플라즈마 디스플레이, 프로젝터, 마이크로-LED 디스플레이, 실리콘 액정(liquid crystal on silicon, LCoS), 디지털 광 프로세서(digital light processor, DLP), 또는 임의의 다른 타입들의 디스플레이 스크린을 포함할 수 있다.
도 1a는 소스 디바이스(12)와 목적지 디바이스(14)를 별개의 디바이스로서 도시하고 있지만, 디바이스 실시예들에서, 소스 디바이스(12)와 목적지 디바이스(14) 양쪽 모두가 포함되거나 소스 디바이스(12)와 목적지 디바이스(14) 양쪽 모두의 기능들이 포함될 수 있는데, 즉, 소스 디바이스(12) 또는 대응하는 기능들과 목적지 디바이스(14) 양쪽 모두가 포함되거나 대응하는 기능들이 포함될 수 있다. 이러한 실시예들에서, 소스 디바이스(12) 또는 대응하는 기능들과 목적지 디바이스(14) 또는 대응하는 기능들은, 동일한 하드웨어 및/또는 소프트웨어, 별개의 하드웨어 및/또는 소프트웨어, 또는 이들의 임의의 조합을 사용하여 구현될 수 있다.
설명에 기초하여, 도 1a에 도시된 소스 디바이스(12) 및/또는 목적지 디바이스(14)의 상이한 유닛들 또는 기능들의 존재 및 (정확한) 분할은 실제 디바이스 및 애플리케이션에 따라 달라질 수 있다는 것이 통상의 기술자에게 명백하다.
인코더(20)(예를 들어, 비디오 인코더(20)), 디코더(30)(예를 들어, 비디오 디코더(30)), 또는 인코더(20)와 디코더(30) 둘 다는 도 1b에 도시된 처리 회로, 예를 들어, 하나 이상의 마이크로프로세서, 디지털 신호 프로세서(digital signal processor, DSP), 주문형 집적 회로(application-specific integrated circuit, ASIC), 필드 프로그램가능 게이트 어레이(field-programmable gate array, FPGA), 이산 로직, 하드웨어, 전용 비디오 코딩 프로세서, 또는 이들의 임의의 조합을 사용하여 구현될 수 있다. 인코더(20)는 도 2의 인코더(20)를 참조하여 설명된 모듈들 및/또는 본 명세서에서 설명된 임의의 다른 인코더 시스템 또는 서브시스템을 구현하기 위해 처리 회로(46)를 사용하여 구현될 수 있다. 디코더(30)는 도 3의 디코더(30)를 참조하여 설명된 모듈들 및/또는 본 명세서에서 설명된 임의의 다른 디코더 시스템 또는 서브시스템을 구현하기 위해 처리 회로(46)를 사용하여 구현될 수 있다. 처리 회로(46)는 후술하는 다양한 동작들을 수행하도록 구성될 수 있다. 도 5에 도시된 바와 같이, 일부 기술들이 소프트웨어로 구현되는 경우, 디바이스는 적절한 컴퓨터 판독가능 저장 매체에 소프트웨어 명령어들을 저장할 수 있고, 하나 이상의 프로세서를 사용하여 하드웨어로 명령어들을 실행하여, 본 발명에서의 기술들을 수행할 수 있다. 비디오 인코더(20)와 비디오 디코더(30) 중 어느 하나는, 도 1b에 도시된 바와 같이, 코덱(encoder/decoder, CODEC)의 일부로서 단일 디바이스에 통합될 수 있다.
소스 디바이스(12)와 목적지 디바이스(14) 각각은, 임의의 타입의 핸드헬드 디바이스 또는 고정 디바이스, 예를 들어, 노트북 컴퓨터, 랩탑 컴퓨터, 모바일 전화, 스마트폰, 태블릿, 태블릿 컴퓨터, 카메라, 데스크탑 컴퓨터, 셋탑 박스, 텔레비전, 디스플레이 디바이스, 디지털 미디어 재생기, 비디오 게임 콘솔, 비디오 스트리밍 디바이스(예를 들어, 콘텐츠 서비스 서버 또는 콘텐츠 전달 서버), 방송 수신 디바이스, 방송 송신 디바이스 등을 포함한, 광범위한 디바이스들 중 임의의 하나를 포함할 수 있고, 임의의 타입의 운영 체제를 사용하거나 사용하지 않을 수 있다. 일부 경우들에서, 소스 디바이스(12)와 목적지 디바이스(14)는 무선 통신을 위한 컴포넌트들이 구비될 수 있다. 따라서, 소스 디바이스(12)와 목적지 디바이스(14)는 무선 통신 디바이스들일 수 있다.
일부 경우들에서, 도 1a에 도시된 비디오 코딩 시스템(10)은 단지 예일 뿐이고, 본 출원에서 제공되는 기술들은 비디오 코딩 설정들(예를 들어, 비디오 인코딩 또는 비디오 디코딩)에 적용가능하다. 이러한 설정들은 인코딩 디바이스와 디코딩 디바이스 사이의 임의의 데이터 통신을 반드시 포함하는 것은 아니다. 다른 예들에서, 데이터는 로컬 메모리로부터 검색되고, 네트워크 등을 통해 전송된다. 비디오 인코딩 디바이스는 데이터를 인코딩하고 데이터를 메모리에 저장할 수 있고/있거나 비디오 디코딩 디바이스는 메모리로부터 데이터를 검색하고 데이터를 디코딩할 수 있다. 일부 예들에서, 인코딩 및 디코딩은 서로 통신하지 않지만 단순히 메모리에 데이터를 인코딩하고/하거나 메모리로부터 데이터를 검색하고 데이터를 디코딩하는 디바이스들에 의해 수행된다.
도 1b는 본 출원의 실시예에 따른 비디오 코딩 시스템(40)의 예시적인 블록도이다. 도 1b에 도시된 바와 같이, 비디오 코딩 시스템(40)은 촬상 디바이스(41), 비디오 인코더(20), 비디오 디코더(30)(및/또는 처리 회로(46)를 사용하여 구현된 비디오 코덱), 안테나(42), 하나 이상의 프로세서(43), 하나 이상의 내부 메모리(44), 및/또는 디스플레이 디바이스(45)를 포함할 수 있다.
도 1b에 도시된 바와 같이, 촬상 디바이스(41), 안테나(42), 처리 회로(46), 비디오 인코더(20), 비디오 디코더(30), 프로세서(43), 내부 메모리(44), 및/또는 디스플레이 디바이스(45)는 서로 통신할 수 있다. 비디오 코딩 시스템(40)은 상이한 예들에서 비디오 인코더(20)만을 또는 비디오 디코더(30)만을 포함할 수 있다.
일부 예들에서, 안테나(42)는 비디오 데이터의 인코딩된 비트스트림을 송신 또는 수신하도록 구성될 수 있다. 또한, 일부 예들에서, 디스플레이 디바이스(45)는 비디오 데이터를 제시하도록 구성될 수 있다. 처리 회로(46)는 주문형 집적 회로(application-specific integrated circuit, ASIC) 로직, 그래픽 처리 유닛, 범용 프로세서 등을 포함할 수 있다. 비디오 코딩 시스템(40)은 또한 선택적 프로세서(43)를 포함할 수 있다. 선택적 프로세서(43)는 유사하게 주문형 집적 회로(application-specific integrated circuit, ASIC) 로직, 그래픽 처리 유닛, 범용 프로세서 등을 포함할 수 있다. 더욱이, 메모리(44)는 임의의 타입의 메모리, 예를 들어, 휘발성 메모리(예를 들어, 정적 랜덤 액세스 메모리(static random access memory, SRAM) 또는 동적 랜덤 액세스 메모리(dynamic random access memory, DRAM)) 또는 비휘발성 메모리(예를 들어, 플래시 메모리)일 수 있다. 비제한적인 예에서, 내부 메모리(44)는 캐시 메모리에 의해 구현될 수 있다. 다른 예들에서, 처리 회로(46)는 픽처 버퍼 등을 구현하도록 구성된 메모리(예를 들어, 캐시)를 포함할 수 있다.
일부 예들에서, 로직 회로를 사용하여 구현되는 비디오 인코더(20)는 (예를 들어, 처리 회로(46) 또는 내부 메모리(44)를 사용하여 구현되는) 픽처 버퍼 및 (예를 들어, 처리 회로(46)를 사용하여 구현되는) 그래픽 처리 유닛에 포함될 수 있다. 그래픽 처리 유닛은 픽처 버퍼에 통신가능하게 결합될 수 있다. 그래픽 처리 유닛은 처리 회로(46)를 사용하여 구현되는 비디오 인코더(20)에 포함되어, 도 2를 참조하여 설명된 모듈들 및/또는 본 명세서에서 설명된 임의의 다른 인코더 시스템 또는 서브시스템을 구현할 수 있다. 로직 회로는 본 명세서에 설명된 다양한 동작들을 수행하도록 구성될 수 있다.
일부 예들에서, 비디오 디코더(30)는 도 3의 비디오 디코더(30)를 참조하여 설명된 모듈들 및/또는 본 명세서에서 설명된 임의의 다른 디코더 시스템 또는 서브시스템을 구현하기 위해 유사한 방식으로 처리 회로(46)를 사용하여 구현될 수 있다. 일부 예들에서, 로직 회로를 사용하여 구현되는 비디오 디코더(30)는 (처리 회로(46) 또는 내부 메모리(44)를 사용하여 구현되는) 픽처 버퍼 및 (예를 들어, 처리 회로(46)를 사용하여 구현되는) 그래픽 처리 유닛에 포함될 수 있다. 그래픽 처리 유닛은 픽처 버퍼에 통신가능하게 결합될 수 있다. 그래픽 처리 유닛은 처리 회로(46)를 사용하여 구현되는 비디오 디코더(30)에 포함되어, 도 3을 참조하여 설명된 모듈들 및/또는 본 명세서에서 설명된 임의의 다른 디코더 시스템 또는 서브시스템을 구현할 수 있다.
일부 예들에서, 안테나(42)는 비디오 데이터의 인코딩된 비트스트림을 수신하도록 구성될 수 있다. 설명된 바와 같이, 인코딩된 비트스트림은 본 명세서에서 설명된 비디오 프레임 인코딩에 관련된 데이터, 표시자, 인덱스 값, 모드 선택 데이터 등, 예를 들어, 인코딩 분할(encoding partitioning)에 관련된 데이터(예를 들어, 변환 계수 또는 양자화된 변환 계수, (설명된) 선택적 표시자, 및/또는 인코딩 분할을 정의하는 데이터)를 포함할 수 있다. 비디오 코딩 시스템(40)은 안테나(42)에 결합되고 인코딩된 비트스트림을 디코딩하도록 구성되는 비디오 디코더(30)를 추가로 포함할 수 있다. 디스플레이 디바이스(45)는 비디오 프레임을 제시하도록 구성된다.
본 출원의 이 실시예에서, 비디오 인코더(20)를 참조하여 설명된 예들과 관련하여, 비디오 디코더(30)는 역 프로세스를 수행하도록 구성될 수 있다는 것을 이해해야 한다. 시그널링 신택스 요소와 관련하여, 비디오 디코더(30)는 이러한 신택스 요소를 수신 및 파싱하고 그에 대응하여 관련 비디오 데이터를 디코딩하도록 구성될 수 있다. 일부 예들에서, 비디오 인코더(20)는 신택스 요소에 대해 엔트로피 인코딩을 수행하여 인코딩된 비디오 비트스트림을 획득할 수 있다. 이러한 예들에서, 비디오 디코더(30)는 이러한 신택스 요소를 파싱하고 그에 대응하여 관련 비디오 데이터를 디코딩할 수 있다.
설명의 용이함을 위해, 본 발명의 실시예들은 ITU-T 비디오 코딩 전문가 그룹(video coding experts group, VCEG) 및 ISO/IEC 동영상 전문가 그룹(motion picture experts group, MPEG)에 의해 구성된 비디오 코딩에 관한 공동 협력 팀(joint collaboration team on video coding, JCT-VC)에 의해 개발된 다목적 비디오 코딩(versatile video coding, VVC) 참조 소프트웨어 또는 고효율 비디오 코딩(high-efficiency video coding, HEVC)을 참조하여 설명된다. 본 기술분야의 통상의 기술자는 본 발명의 실시예들이 HEVC 또는 VVC로 제한되지 않는다는 것을 이해한다.
인코더 및 인코딩 방법
도 2는 본 출원의 실시예에 따른 비디오 인코더(20)의 예시적인 블록도이다. 도 2에 도시된 바와 같이, 비디오 인코더(20)는 입력단(또는 입력 인터페이스)(201), 잔차 계산 유닛(204), 변환 처리 유닛(206), 양자화 유닛(208), 역양자화 유닛(210), 및 역변환 처리 유닛(212), 재구성 유닛(214), 루프 필터(220), 디코딩된 픽처 버퍼(decoded picture buffer, DPB)(230), 모드 선택 유닛(260), 엔트로피 인코딩 유닛(270), 및 출력단(또는 출력 인터페이스)(272)을 포함한다. 모드 선택 유닛(260)은 인터 예측 유닛(244), 인트라 예측 유닛(254), 및 분할 유닛(262)을 포함할 수 있다. 인터 예측 유닛(244)은 모션 추정 유닛과 모션 보상 유닛 (도시되지 않음)을 포함할 수 있다. 도 2에 도시된 비디오 인코더(20)는 또한 하이브리드 비디오 인코더 또는 하이브리드 비디오 코덱에 기초한 비디오 인코더라고도 지칭될 수 있다.
잔차 계산 유닛(204), 변환 처리 유닛(206), 양자화 유닛(208), 및 모드 선택 유닛(260)은 인코더(20)의 순방향 신호 경로를 형성하는 반면, 역양자화 유닛(210), 역변환 처리 유닛(212), 재구성 유닛(214), 버퍼(216), 루프 필터(220), 디코딩된 픽처 버퍼(decoded picture buffer, DPB)(230), 인터 예측 유닛(244), 및 인트라 예측 유닛(254)은 인코더의 역방향 신호 경로를 형성한다. 인코더(20)의 역방향 신호 경로는 디코더(도 3의 디코더(30)를 참조)의 신호 경로에 대응한다. 역양자화 유닛(210), 역변환 처리 유닛(212), 재구성 유닛(214), 루프 필터(220), 디코딩된 픽처 버퍼(230), 인터 예측 유닛(244), 및 인트라 예측 유닛(254)은 비디오 인코더(20)의 "내장 디코더"를 추가로 형성한다.
픽처 및 픽처 분할(픽처 및 블록)
인코더(20)는, 입력단(201) 등을 통해, 픽처(또는 픽처 데이터)(17), 예를 들어, 비디오 또는 비디오 시퀀스를 형성하는 픽처 시퀀스에서의 픽처를 수신하도록 구성될 수 있다. 수신된 픽처 또는 픽처 데이터는 대안적으로 전처리된 픽처(또는 전처리된 픽처 데이터)(19)일 수 있다. 간단함의 용이함을 위해, 픽처(17)는 후속하는 설명들에서 사용된다. 픽처(17)는 현재 픽처 또는 인코딩될 픽처라고 지칭될 수도 있다(특히 현재 픽처가 비디오 인코딩에서의 다른 픽처와 구별될 때, 다른 픽처는, 예를 들어, 동일한 비디오 시퀀스, 즉, 현재 픽처를 또한 포함하는 비디오 시퀀스에서의 이전에 인코딩된 픽처 및/또는 디코딩된 픽처임).
(디지털) 픽처는 강도 값들을 갖는 픽셀들을 포함하는 2차원 어레이 또는 매트릭스이거나 또는 이들로서 고려될 수 있다. 어레이 내의 픽셀은 펠(픽셀 또는 펠)(픽처 요소의 짧은 형태)로도 지칭될 수 있다. 어레이 또는 픽처의 수평 및 수직 방향들(또는 축들)에서의 픽셀들의 수량은 픽처의 크기 및/또는 해상도를 정의한다. 컬러의 표현을 위해, 3개의 컬러 성분이 일반적으로 사용된다. 다시 말해서, 픽처는 3개의 픽셀 어레이로서 표현되거나 이를 포함할 수 있다. RBG 포맷 또는 컬러 공간에서, 픽처는 대응하는 적색-녹색-청색 픽셀 어레이를 포함한다. 그러나, 비디오 코딩에서, 각각의 픽셀은 일반적으로 휘도/색차 포맷 또는 컬러 공간, 예를 들어, Y로 표현되는 휘도 성분(때때로 L로 대신 표현됨) 및 Cb 및 Cr로 표현되는 2개의 색차 성분을 포함하는 YCbCr로 표현된다. 휘도(루마) 성분 Y는 휘도 또는 그레이 스케일 강도를 나타내고(예를 들어, 휘도 및 그레이 스케일 강도는 그레이-스케일 픽처에서 동일함), 2개의 색차(chrominance, 줄여서 크로마) 성분들 Cb 및 Cr은 색차 또는 컬러 정보 성분들을 나타낸다. 이에 대응하여, YCbCr 포맷에서의 픽처는 휘도 픽셀 값(Y)을 갖는 휘도 픽셀 어레이 및 색차 값들(Cb 및 Cr)을 갖는 2개의 색차 픽셀 어레이를 포함한다. RGB 포맷에서의 픽처는 YCbCr 포맷으로 변환 또는 변형될 수 있고, 그 반대도 가능하다. 이 프로세스는 컬러 변환 또는 변형이라고도 지칭된다. 픽처가 단색이면, 픽처는 휘도 픽셀 어레이만을 포함할 수 있다. 이에 대응하여, 픽처는, 예를 들어, 단색 포맷에서의 휘도 픽셀 어레이 또는 4:2:0, 4:2:2, 및 4:4:4 컬러 포맷들에서의 휘도 픽셀 어레이 및 2개의 대응하는 색차 픽셀 어레이일 수 있다.
실시예에서, 비디오 인코더(20)의 실시예는 픽처(17)를 복수의 픽처 블록(203)(일반적으로 비중첩됨)으로 분할하도록 구성된 픽처 분할 유닛(도 2에 도시되지 않음)을 포함할 수 있다. 이러한 블록들은 H.265/HEVC 및 VVC 표준들에서 루트 블록들, 매크로블록들(H.264/AVC), 코딩 트리 블록들(Coding Tree Blocks, CTBs), 또는 코딩 트리 유닛들(Coding Tree Units, CTUs)이라고도 지칭될 수 있다. 분할 유닛은: 비디오 시퀀스에서의 모든 픽처에 대한 블록 크기들을 정의하는 동일한 블록 크기들 및 대응하는 그리드들을 사용하거나, 픽처들, 픽처 서브세트 또는 픽처 그룹 사이의 블록 크기를 변경하고, 각각의 픽처를 대응하는 블록들로 분할하도록 구성될 수 있다.
다른 실시예들에서, 비디오 인코더는 픽처(17)의 블록(203), 예를 들어 픽처(17)를 형성하는 하나, 여러 개 또는 모든 블록을 직접 수신하도록 구성될 수 있다. 픽처 블록(203)은 현재 픽처 블록 또는 인코딩될 픽처 블록이라고도 지칭될 수 있다.
픽처(17)와 같이, 픽처 블록(203)은 강도 값들(픽셀 값들)을 갖는 픽셀들을 포함하는 2차원 어레이 또는 매트릭스이거나 그로서 간주될 수 있지만, 픽처 블록(203)은 크기가 픽처(17)보다 작다. 다시 말해서, 블록(203)은, 예를 들어, 하나의 픽셀 어레이(예를 들어, 단색 픽처(17)의 경우 휘도 어레이, 또는 컬러 픽처의 경우 휘도 어레이 또는 색차 어레이), 3개의 픽셀 어레이(예를 들어, 컬러 픽처(17)의 경우 1개의 휘도 어레이와 2개의 색차 어레이), 또는 사용된 컬러 포맷에 기초한 임의의 다른 수량 및/또는 타입의 어레이들을 포함할 수 있다. 블록(203)의 수평 및 수직 방향들(또는 축들)에서의 픽셀들의 수량은 블록(203)의 크기를 정의한다. 이에 대응하여, 블록은 M×N(M열×N행) 픽셀 어레이, M×N 변환 계수 어레이 등일 수 있다.
실시예에서, 도 2에 도시된 비디오 인코더(20)는 픽처(17)를 블록 단위로 인코딩하도록, 예를 들어, 각각의 블록(203)에 대해 인코딩 및 예측을 수행하도록 구성된다.
실시예에서, 도 2에 도시된 비디오 인코더(20)는 대안적으로, 슬라이스(비디오 슬라이스라고도 지칭됨)를 사용하여 픽처를 분할 및/또는 인코딩하도록 구성될 수 있다. 픽처는 하나 이상의 슬라이스(일반적으로 비중첩됨)를 사용하여 분할되거나 인코딩될 수 있다. 각각의 슬라이스는 하나 이상의 블록(예를 들어, 하나 이상의 코딩 트리 유닛 CTU) 또는 하나 이상의 블록 그룹(예를 들어, H.265/HEVC/VVC 표준에서의 하나 이상의 타일(tile) 및 VVC 표준에서의 하나 이상의 브릭(brick))을 포함할 수 있다.
실시예에서, 도 2에 도시된 비디오 인코더(20)는 대안적으로, 슬라이스/타일 그룹(비디오 타일 그룹이라고도 지칭됨) 및/또는 타일(비디오 타일이라고도 지칭됨)을 사용하여 픽처를 분할 및/또는 인코딩하도록 구성될 수 있다. 픽처는 하나 이상의 슬라이스/타일 그룹(일반적으로 비중첩됨)을 사용하여 분할 또는 인코딩될 수 있다. 각각의 슬라이스/타일 그룹은 하나 이상의 블록(예를 들어, 하나 이상의 CTU), 하나 이상의 타일 등을 포함할 수 있다. 각각의 타일은 직사각형 형상 등일 수 있고, 하나 이상의 완전한 또는 부분 블록(예를 들어, 하나 이상의 CTU)을 포함할 수 있다.
잔차 계산
잔차 계산 유닛(204)은 픽처 블록(203) 및 예측 블록(265)에 기초하여 다음의 방식으로 잔차 블록(205)에 대해 계산을 수행하도록 구성된다(예측 블록(265)에 관한 세부사항들은 후속하여 설명된다). 예를 들어, 픽처 블록(203)의 픽셀 값들로부터 픽셀 단위로(펠 단위로) 예측 블록(265)의 픽셀 값들을 감산하여, 픽셀 도메인에서 잔차 블록(205)을 획득한다.
변환
변환 처리 유닛(206)은 잔차 블록(205)의 픽셀 값에 대해 이산 코사인 변환(discrete cosine transform, DCT), 이산 사인 변환(discrete sine transform, DST) 등을 수행하여 변환 도메인에서 변환 계수(207)를 획득하도록 구성된다. 변환 계수(207)는 변환 잔차 계수들이라고도 지칭될 수 있고, 변환 도메인에서 잔차 블록(205)을 가리킨다.
변환 처리 유닛(206)은 HEVC/H.265에 명시된 변환과 같은 DCT/DST의 정수 근사를 적용하도록 구성될 수 있다. 직교 DCT 변환과 비교하여, 이러한 정수 근사는 일반적으로 인자(factor)에 의해 비례해서 스케일링된다. 변환 및 역변환 처리가 수행된 잔차 블록의 놈(norm)을 보존하기 위해서는, 변환 프로세스에서 다른 비례 스케일 인자가 사용된다. 비례 스케일 인자는 일반적으로 일부 제약들에 기초하여 선택된다. 예를 들어, 비례 스케일 인자는 시프트 연산에 대해 2의 거듭제곱, 변환 계수의 비트 심도, 또는 정확도와 구현 비용 사이의 밸런스이다. 예를 들어, 인코더 측(20) 상의 역변환 처리 유닛(212)에 의해 역변환에 대해 특정 비례 스케일 인자가 특정되고(그리고, 예를 들어, 디코더 측(30) 상의 역변환 처리 유닛(312)에 의해, 대응하는 역변환에 대해 특정 비례 스케일 인자가 특정되고), 인코더 측(20) 상의 변환 처리 유닛(206)에 의해 변환에 대해 대응하는 비례 스케일 인자가 특정된다.
실시예에서, 비디오 인코더(20)(구체적으로, 변환 처리 유닛(206))는 변환 파라미터, 예를 들어, 하나 이상의 변환 타입을 출력하도록 구성될 수 있다. 예를 들어, 비디오 인코더(20)는 변환 파라미터를 직접 출력하거나, 또는 엔트로피 인코딩 유닛(270)을 사용하여 변환 파라미터를 인코딩 또는 압축하고, 그 후 처리된 변환 파라미터를 출력하여, 비디오 디코더(30)는, 예를 들어, 디코딩을 위한 변환 파라미터를 수신하여 사용할 수 있다.
양자화
양자화 유닛(208)은 변환 계수(207)에 대해 스칼라 양자화 또는 벡터 양자화와 같은 양자화를 수행하여 양자화된 변환 계수(209)를 획득하도록 구성된다. 양자화된 변환 계수(209)는 양자화된 잔차 계수(209)라고도 지칭될 수 있다.
양자화 프로세스는 변환 계수(207)의 일부 또는 전부와 관련된 비트 심도를 감소시킬 수 있다. 예를 들어, n-비트 변환 계수는 양자화 동안 m-비트 변환 계수로 라운딩 다운될 수 있으며, 여기서 n은 m 초과이다. 양자화 정도는 양자화 파라미터(quantization parameter, QP)를 조정함으로써 수정될 수 있다. 예를 들어, 스칼라 양자화에 대해, 더 미세한 또는 더 거친 양자화를 달성하기 위해 상이한 비율들이 적용될 수 있다. 더 작은 양자화 단계는 더 미세한 양자화에 대응하고, 더 큰 양자화 단계는 더 거친 양자화에 대응한다. 적절한 양자화 단계는 양자화 파라미터(quantization parameter, QP)로 표시될 수 있다. 예를 들어, 양자화 파라미터는 적절한 양자화 단계의 미리 정의된 세트에 대한 인덱스일 수 있다. 예를 들어, 더 작은 양자화 파라미터는 더 미세한 양자화(더 작은 양자화 단계)에 대응할 수 있고, 더 큰 양자화 파라미터는 더 거친 양자화(더 큰 양자화 단계)에 대응할 수 있거나, 그 반대도 가능하다. 양자화는 양자화 단계에 의한 나눗셈을 포함할 수 있고, 역양자화 유닛(210) 등에 의해 수행되는 대응하는 역양자화는 양자화 단계에 의한 곱셈을 포함할 수 있다. HEVC와 같은 일부 표준들에 따른 실시예에서, 양자화 단계는 양자화 파라미터를 사용하여 결정될 수 있다. 일반적으로, 양자화 단계는 나눗셈을 포함하는 방정식의 고정 소수점 근사를 사용하여 양자화 파라미터에 기초하여 계산될 수 있다. 양자화 단계 및 양자화 파라미터에 사용되는 방정식의 고정 소수점 근사에서 사용되는 비율 때문에 수정될 수 있는 잔차 블록의 놈을 복원하기 위해서는 양자화 및 역양자화에 다른 비례 스케일 인자가 사용될 수 있다. 예시적인 구현에서, 역변환 및 역양자화의 비율들이 결합될 수 있다. 대안적으로, 맞춤화된 양자화 테이블이 비트스트림 등에서 인코더에 의해 디코더에 사용되고 표시될 수 있다. 양자화는 손실 동작이고, 더 큰 양자화 단계는 더 큰 손실을 나타낸다.
실시예에서, 비디오 인코더(20)(구체적으로, 양자화 유닛(208))는 양자화 파라미터(quantization parameter, QP)를 출력하도록 구성될 수 있다. 예를 들어, 비디오 인코더(20)는 양자화 파라미터를 직접 출력하거나, 또는 엔트로피 인코딩 유닛(270)을 사용하여 양자화 파라미터를 인코딩 또는 압축하고, 그 후 처리된 양자화 파라미터를 출력하여, 비디오 디코더(30)는, 예를 들어, 디코딩을 위한 양자화 파라미터를 수신하여 사용할 수 있다.
역양자화
역양자화 유닛(210)은 양자화 계수에 대해 역양자화를 수행하여 역양자화된 계수(211)를 획득하도록 구성되고, 여기서 역양자화는 양자화 유닛(208)에 의해 수행되는 양자화의 역 프로세스이다. 예를 들어, 역양자화 유닛(210)은, 양자화 유닛(208)과 동일한 양자화 단계에 기초하여 또는 이를 사용하여, 양자화 유닛(208)에 의해 수행되는 양자화 스킴에 대응하는 역양자화 스킴을 수행한다. 역양자화된 계수(211)는 역양자화된 잔차 계수(211)로서도 지칭될 수 있고, 변환 계수(207)에 대응한다. 그러나, 역양자화된 계수(211)는 일반적으로 양자화 손실로 인해 변환 계수와 완전히 동일하지는 않다.
역변환
역변환 처리 유닛(212)은 역변환을 수행하도록 구성되며, 여기서 역변환은 변환 처리 유닛(206)에 의해 수행되는 변환의 역 프로세스이다. 예를 들어, 역변환 처리 유닛(212)은 역 이산 코사인 변환(discrete cosine transform, DCT) 또는 역 이산 사인 변환(discrete sine transform, DST)을 수행하여, 픽셀 도메인에서 재구성된 잔차 블록(213)(또는 대응하는 역양자화된 계수(213))을 획득한다. 재구성된 잔차 블록(213)은 변환 블록(213)이라고도 지칭될 수 있다.
재구성
재구성 유닛(214)(예를 들어, 합산기(214))은 변환 블록(213)(즉, 재구성된 잔차 블록(213))을 예측 블록(265)에 가산하고, 예를 들어, 재구성된 잔차 블록(213)의 픽셀 값들 및 예측 블록(265)의 픽셀 값들을 가산하여, 픽셀 도메인에서 재구성된 블록(215)을 획득하도록 구성된다.
필터링
루프 필터 유닛(220)(또는 줄여서 "루프 필터"(220)라고 지칭됨)은 필터링된 블록(221)을 획득하기 위해 재구성된 블록(215)을 필터링하거나, 필터링된 픽셀 값을 획득하기 위해 재구성된 픽셀을 필터링하도록 일반적으로 구성된다. 예를 들어, 루프 필터 유닛은 픽셀 변환을 원활하게 수행하거나, 비디오 품질을 개선하도록 구성된다. 루프 필터 유닛(220)은 블록화-해제 필터, 샘플-적응형 오프셋(sample-adaptive offset, SAO) 필터, 또는 하나 이상의 다른 필터, 예를 들어, 적응형 루프 필터(adaptive loop filter, ALF), 잡음 억제 필터(noise suppression filter, NSF), 또는 이들의 임의의 조합과 같은 하나 이상의 루프 필터를 포함할 수 있다. 예를 들어, 루프 필터 유닛(220)은 블록화-해제 필터, SAO 필터, 및 ALF 필터를 포함할 수 있다. 필터링 프로세스는 블록화-해제 필터, SAO 필터, 및 ALF 필터에 의해 순차적으로 수행될 수 있다. 다른 예로서, 크로마 스케일링을 갖는 루마 매핑(luma mapping with chroma scaling, LMCS) 프로세스(즉, 적응형 인-루프 재성형기)가 추가된다. 이 프로세스는 블록화-해제 전에 수행된다. 다른 예로서, 블록화-해제 필터링 프로세스는 또한 내부 서브블록 에지들, 예를 들어, 아핀 서브블록 에지, ATMVP 서브블록 에지, 서브블록 변환(sub-block transform, SBT) 에지, 및 인트라 서브-파티션(intra sub-partition, ISP) 에지에 적용될 수 있다. 루프 필터 유닛(220)이 도 2에서 인 루프 필터로서 도시되어 있지만, 루프 필터 유닛(220)은 다른 구성들에서 포스트-루프 필터로서 구현될 수 있다. 필터링된 블록(221)은 필터링된 재구성된 블록(221)이라고도 지칭될 수 있다.
실시예에서, 비디오 인코더(20)(구체적으로, 루프 필터 유닛(220))는 루프 필터 파라미터(예를 들어, SAO 필터 파라미터, ALF 필터 파라미터, 또는 LMCS 파라미터)를 출력하도록 구성될 수 있다. 예를 들어, 비디오 인코더(20)는 루프 필터 파라미터를 직접 출력하거나, 또는 엔트로피 인코딩 유닛(270)을 사용하여 루프 필터 파라미터에 대해 엔트로피 인코딩을 수행하고, 그 후 처리된 루프 필터 파라미터를 출력하여, 디코더(30)는, 예를 들어, 디코딩을 위한 동일하거나 상이한 루프 필터 파라미터들을 수신하여 사용할 수 있다.
디코딩된 픽처 버퍼
디코딩된 픽처 버퍼(decoded picture buffer, DPB)(230)는 비디오 데이터를 인코딩하는 동안 비디오 인코더(20)에 의해 사용되는 참조 픽처 데이터를 저장하는 참조 픽처 메모리일 수 있다. DPB(230)는 동기식 DRAM(synchronous DRAM, SDRAM)을 포함하는 동적 랜덤 액세스 메모리(dynamic random access memory, DRAM), 자기저항 RAM(magnetoresistive RAM, MRAM), 및 저항 RAM(resistive RAM, RRAM), 또는 다른 타입의 저장 디바이스와 같은 임의의 타입의 다양한 메모리 디바이스들에 의해 형성될 수 있다. 디코딩된 픽처 버퍼(230)는 하나 이상의 필터링된 블록(221)을 저장하도록 구성될 수 있다. 디코딩된 픽처 버퍼(230)는, 동일한 현재 픽처의 다른 이전에 필터링된 블록들, 또는 이전에 재구성된 블록들과 같은 상이한 픽처들의 다른 이전에 필터링된 블록들, 예를 들어, 이전에 재구성되고 필터링된 블록(221)을 저장하도록 추가로 구성될 수 있고, 이전에 완전히 재구성된 픽처, 즉, 디코딩된 픽처(및 대응하는 참조 블록 및 픽셀들), 및/또는 재구성된 현재 픽처의 일부(및 대응하는 참조 블록 및 픽셀들)를 제공할 수 있다. 예를 들어, 이러한 픽처들은 인터 예측에 사용된다. 디코딩된 픽처 버퍼(230)는 하나 이상의 필터링되지 않은 재구성된 블록들(215)을 저장하거나, 필터링되지 않은 재구성된 픽셀, 예를 들어, 루프 필터 유닛(220)에 의해 필터링되지 않은 재구성된 블록(215), 또는 다른 처리가 수행되지 않은 재구성된 블록 또는 재구성된 픽셀을 일반적으로 저장하도록 추가로 구성될 수 있다.
모드 선택 (분할 및 예측)
모드 선택 유닛(260)은 분할 유닛(262), 인터 예측 유닛(244), 및 인트라 예측 유닛(254)을 포함하고, 디코딩된 픽처 버퍼(230) 또는 다른 버퍼(예를 들어, 도면에 도시되지 않은 열 버퍼)로부터, 원래의 블록(203)(현재 픽처(17)의 현재 블록(203))과 같은 원래의 픽처 데이터 및 재구성된 블록 데이터, 예를 들어, 동일한(현재) 픽처 및/또는 하나 이상의 이전에 디코딩된 픽처의 필터링된 및/또는 필터링되지 않은 재구성된 픽셀 또는 재구성된 블록을 수신 또는 획득하도록 구성된다. 재구성된 블록 데이터는 예측, 예를 들어, 인터 예측 또는 인트라 예측에 필요한 참조 픽처 데이터로서 사용하여 예측 블록(265) 또는 예측기(265)를 획득한다.
모드 선택 유닛(260)은 현재 블록의 예측 모드(예를 들어, 인트라 또는 인터 예측 모드)에 대한 분할 방식을 결정 또는 선택하고(분할이 수행되지 않음), 대응하는 예측 블록(265)을 생성하여, 잔차 블록(205)에 대한 계산을 수행하고 재구성된 블록(215)을 재구성하도록 구성될 수 있다.
실시예에서, 모드 선택 유닛(260)은 (예를 들어, 모드 선택 유닛(260)에 의해 지원되거나 이에 이용가능한 예측 모드들로부터) 분할 및 예측 모드를 선택하도록 구성될 수 있다. 예측 모드는 최상의 매칭 또는 최소 잔차를 제공하거나(최소 잔차는 송신 또는 저장을 위한 더 나은 압축을 의미함), 최소 시그널링 오버헤드들을 제공하거나(최소 시그널링 오버헤드는 송신 또는 저장을 위한 더 나은 압축을 의미함), 또는 이 2가지 양태들을 고려하거나 밸런싱한다. 모드 선택 유닛(260)은 레이트-왜곡 최적화(rate distortion Optimization, RDO)에 기초하여 분할 및 예측 모드를 결정하도록, 즉, 최소 레이트-왜곡을 위한 최적화를 제공하는 예측 모드를 선택하도록 구성될 수 있다. 본 명세서에서 "최상", "최저" 및 "최적"과 같은 용어들은 반드시 일반적으로 "최상", "최저" 및 "최적"을 지칭하는 것은 아니며, 종료 또는 선택 기준이 충족되는 경우도 지칭할 수 있다. 예를 들어, 임계치 또는 다른 제한들 위 또는 아래의 값은 "차선의 선택"을 유발할 수 있지만, 복잡성 및 처리 시간은 감소된다.
다시 말해서, 분할 유닛(262)은: 비디오 시퀀스에서의 픽처를 코딩 트리 유닛들(coding tree units, CTUs)의 시퀀스로 분할하고- CTU(203)는 더 작은 블록 부분들 또는 서브블록들(다시 블록을 형성함)로 추가로 분할될 수 있음 -, 예를 들어, 쿼드트리 분할(quad-tree partitioning, QT), 이진 트리 분할(binary-tree partitioning, BT), 트리플 트리 분할(triple-tree partitioning, TT), 또는 이들의 임의의 조합을 반복적으로 사용하고; 예를 들어, 블록 부분들 또는 서브블록들 각각에 대한 예측을 수행하도록 구성될 수 있다. 모드 선택은 분할된 블록(203)의 트리 구조의 선택 및 블록 부분들 또는 서브블록들 각각에 적용되는 예측 모드의 선택을 포함한다.
다음은 비디오 인코더(20)에 의해 수행되는 (예를 들어, 분할 유닛(262)에 의해 수행되는) 분할 및 (예를 들어, 인터 예측 유닛(244) 및 인트라 예측 유닛(254)에 의해 수행되는) 예측 처리를 상세히 설명한다.
분할
분할 유닛(262)은 코딩 트리 유닛(203)을 더 작은 부분들, 예를 들어, 정사각형 또는 직사각형 형상의 더 작은 블록들로 분할(또는 스플릿)할 수 있다. 3개의 픽셀 어레이를 갖는 픽처에 대해, 하나의 CTU는 N×N 휘도 픽셀 블록들과 2개의 대응하는 색차 픽셀 블록들을 포함한다.
H.265/HEVC 비디오 코딩 표준에서, 픽처의 하나의 프레임은 비중첩 CTU들로 분할된다. CTU의 크기는 64x64로 설정될 수 있다(또는 CTU의 크기는 다른 값으로 설정될 수 있고, 예를 들어, JVET 참조 소프트웨어 JEM에서의 CTU의 크기는 128x128 또는 256x256으로 증가된다). 64x64 CTU는 64개의 열 및 열당 64개의 픽셀을 갖는 직사각형 픽셀 어레이를 포함하고, 각각의 픽셀은 휘도 성분 또는/및 색차 성분을 포함한다.
QT-기반의 CTU 분할 방법은 H.265에서 사용된다. CTU는 QT의 루트(root) 노드로서 사용되고, CTU는, 예를 들어, 도 6a에 도시된 바와 같이, QT 분할 방식으로 여러 리프 노드들(leaf nodes)로 재귀적으로 분할된다. 하나의 노드는 하나의 픽처 영역에 대응한다. 노드가 분할되지 않으면, 노드는 리프 노드라고 지칭되고, 노드에 대응하는 픽처 영역은 CU이다. 노드가 추가로 분할되면, 노드에 대응하는 픽처 영역은 동일한 크기의 4개의 영역으로 분할될 수 있고(4개의 영역 각각의 길이 및 폭은 각각 원래 영역의 길이 및 폭의 절반임), 각각의 영역은 하나의 노드에 대응한다. 이러한 노드들이 추가로 분할되는지는 개별적으로 결정될 필요가 있다. 노드를 분할할지는 비트스트림에 있고 노드에 대응하는 분할 플래그 필드 split_cu_flag로 표시된다. 노드 A는 4개의 노드 Bi로 한 번 분할되고, 여기서 i는 0 내지 3의 범위에 있다. Bi는 A의 서브노드라고 지칭되고, A는 Bi의 부모 노드라고 지칭된다. 루트 노드의 QT 깊이(qtDepth)는 0이고, 노드의 QT 깊이는 노드의 부모 노드의 QT 깊이+1이다. 설명의 간결성을 위해, 이하에서는 노드의 크기 및 형상은 노드에 대응하는 픽처 영역의 크기 및 형상이다.
예를 들어, 하나의 64×64 CTU(CTU의 QT 깊이는 0임)에 대응하는 split_cu_flag에 기초하여, CTU가 분할되지 않았다고 결정되면, CTU는 하나의 64×64 CU이거나; 또는 CTU가 분할되었다고 결정되면, CTU는 4개의 32×32 노드(각 노드의 QT 깊이는 1임)로 분할된다. 4개의 32×32 노드 각각이 추가로 분할되어야 하는지의 여부는 노드에 대응하는 split_cu_flag에 기초하여 결정될 수 있다. 하나의 32×32 노드가 추가로 분할되면, 4개의 16×16 노드가 생성된다(각 노드의 QT 깊이는 2이다). 전술한 프로세스는 노드들이 더 이상 분할되지 않을 때까지 계속된다. 이러한 방식으로, 하나의 CTU가 하나의 CU 그룹으로 분할된다. 최소 CU 크기(size)는 시퀀스 파라미터 세트(sequence parameter set, SPS)에서 식별된다. 예를 들면, 8×8은 최소 CU 크기이다. 전술한 재귀적 분할 프로세스에서, 노드의 크기가 최소 CU 크기(minimum CU size)와 동일하면, 디폴트로 노드는 추가로 분할되지 않고, 노드의 스플릿 플래그 필드가 비트스트림에 포함될 필요가 없다고 간주된다.
파싱을 통해, 노드가 리프 노드이고 리프 노드가 CU라는 것을 알게 된 후에, CU에 대응하는 코딩 정보(CU의 예측 모드 및 변환 계수와 같은 정보, 예를 들어, H.265에서의 coding_unit() 신택스 구조를 포함함)가 추가로 파싱된다. 그 후, 예측, 역양자화, 역변환, 및 루프 필터링과 같은 디코딩 처리가 이들 코딩 정보에 기초하여 CU에 대해 수행되어, CU에 대응하는 재구성된 블록을 생성한다. QT 분할은 CTU가 픽처의 로컬 특징들에 기초하여 적절한 크기들의 CU들의 그룹으로 분할될 수 있게 한다. 예를 들어, 평활 영역은 더 큰 크기들의 CU들로 분할되고, 텍스처가 풍부한 영역은 더 작은 크기들의 CU들로 분할된다.
QT 분할에 기초하여, BT 분할 방식 및 TT 분할 방식이 H.266/VVC 표준에 추가된다.
BT 분할 방식에서, 하나의 노드는 2개의 서브노드로 분할된다. 2개의 특정 BT 분할 방식이 있다:
(1) "수평 이진 분할": 노드에 대응하는 영역은 동일한 크기의 2개의 영역: 상부 영역과 하부 영역으로 분할된다. 구체적으로, 2개의 영역 각각에 대해, 폭은 변경되지 않고 유지되고, 높이는 분할 전의 영역의 높이의 절반이고, 분할을 통해 획득된 각각의 영역은 하나의 서브노드에 대응한다. 이 경우는, 예를 들어, 도 6b에 도시되어 있다.
(2) "수직 이진 분할": 노드에 대응하는 영역은 동일한 크기의 2개의 영역: 좌측 영역과 우측 영역으로 분할된다. 구체적으로, 2개의 영역 각각에 대해, 높이는 변경되지 않고 유지되고, 폭은 분할 전의 영역의 폭의 절반이고, 분할을 통해 획득된 각각의 영역은 하나의 서브노드에 대응한다. 이 경우는, 예를 들어, 도 6c에 도시되어 있다.
TT 분할 방식에서, 하나의 노드는 3개의 서브노드로 분할된다. 2개의 특정 TT 분할 방식이 있다:
(1) "수평 삼진 분할": 노드에 대응하는 영역은 3개의 영역: 상부 영역, 중간 영역, 및 하부 영역으로 분할된다. 3개의 영역: 상부 영역, 중간 영역, 및 하부 영역의 경우, 높이들은 각각 분할 전의 영역의 높이의 1/4, 1/2, 및 1/4이고, 분할을 통해 획득된 각각의 영역은 하나의 서브노드에 대응한다. 이 경우는, 예를 들어, 도 6d에 도시되어 있다.
(2) "수직 삼진 분할": 노드에 대응하는 영역은 3개의 영역: 좌측 영역, 중간 영역, 및 우측 영역으로 분할된다. 3개의 영역: 좌측 영역, 중간 영역, 및 우측 영역의 경우, 폭들은 각각 분할 전의 영역의 폭의 1/4, 1/2, 및 1/4이고, 분할을 통해 획득되는 각각의 영역은 하나의 서브노드에 대응한다. 이 경우는, 예를 들어, 도 6e에 도시되어 있다.
H.266은 QT 분할이 BT/TT 분할과 결합되는 방식을 사용하며, 이는 줄여서 QT-MTT 분할 방식이라고 지칭된다. 구체적으로, CTU는 QT 분할을 통해 4개의 QT 노드를 생성하고, QT 노드는, QT 노드가 QT 분할 방식으로 더 이상 분할되지 않고 QT 리프 노드로서 사용될 때까지, QT 분할 방식으로 4개의 QT 노드로 추가로 분할될 수 있거나; 또는 QT 노드들은 QT 분할 방식으로 분할되지 않고 QT 리프 노드들로서 직접 사용된다. QT 리프 노드는 MTT의 루트 노드로서 사용된다. MTT에서의 노드는 4개의 분할 방식: 수평 이진 분할, 수직 이진 분할, 수평 삼진 분할, 및 수직 삼진 분할 중 하나를 사용하여 서브노드로 분할될 수 있거나; 또는 MTT에서의 노드는 추가로 분할되지 않고 MTT 리프 노드로서 사용된다. MTT 리프 노드는 CU이다.
예를 들어, 도 7은 본 출원에 따른 QT-MTT 분할 방식의 예시적인 개략도이다. 도 7에 도시한 바와 같이, CTU는 QT-MTT를 사용하여, 총 16개의 CU, 즉 a 내지 p로 분할된다. 트리 다이어그램에서의 각각의 종점은 하나의 노드를 나타내고, 하나의 노드는 QT 분할을 나타내기 위해 4개의 라인에 접속되고, 하나의 노드는 BT 분할을 나타내기 위해 2개의 라인에 접속되고, 하나의 노드는 TT 분할을 나타내기 위해 3개의 라인에 접속된다. 실선은 QT 분할을 나타내고, 파선은 제1-계층 MTT 분할을 나타내고, 파선은 제2-계층 MTT 분할을 나타낸다. a 내지 p는 16개의 MTT 리프 노드이고, 각각의 MTT 리프 노드는 하나의 CU에 대응한다. 도 7의 CTU의 분할 다이어그램는 트리 다이어그램에 기초하여 획득될 수 있다.
QT-MTT 분할 방식에서, 각각의 CU는 QT 깊이(또는 QT depth)(quad-tree depth, QT depth) 및 MTT 계층(MTT depth)(multi-type tree depth, MTT depth)을 갖는다. QT 깊이는 CU가 속하는 QT 리프 노드의 QT 깊이를 나타내고, MTT 계층은 CU가 속하는 MTT 리프 노드의 MTT 계층을 나타낸다. 예를 들어, 도 7에서, a, b, c, d, e, f, g, i, 및 j의 QT 깊이들은 1이고, a, b, c, d, e, f, g, i, 및 j의 MTT 계층들은 2이고; h의 QT 깊이는 1이고, h의 MTT 계층은 1이고; n, o, 및 p의 QT 깊이들은 2이고, n, o, 및 p의 MTT 계층들은 0이고; l 및 m의 QT 깊이들은 2이고, l 및 m의 MTT 계층들은 1이다. CTU가 단지 하나의 CU로 분할되면, CU의 QT 깊이는 0이고, MTT 계층은 0이다.
AVS3 표준은 다른 QT-MTT 분할 방법, 즉 QT 분할이 BT/EQT 분할과 결합되는 방식을 사용한다. 다시 말해서, AVS3 표준은 H.266에서의 TT 분할을 확장된 쿼드트리(extended quad-tree, EQT) 분할로 대체한다. 구체적으로, CTU는 QT 분할을 통해 4개의 QT 노드를 생성하고, QT 노드는, QT 노드가 QT 분할 방식으로 더 이상 분할되지 않고 QT 리프 노드로서 사용될 때까지, QT 분할 방식으로 4개의 QT 노드로 추가로 분할될 수 있거나; 또는 QT 노드들은 QT 분할 방식으로 분할되지 않고 QT 리프 노드들로서 직접 사용된다. QT 리프 노드는 MTT의 루트 노드로서 사용된다. MTT에서의 노드는 4개의 분할 방식: 수평 이진 분할, 수직 이진 분할, 수평 4진 분할, 및 수직 4진 분할 중 하나를 사용하여 서브노드로 분할될 수 있거나; 또는 MTT에서의 노드는 추가로 분할되지 않고 MTT 리프 노드로서 사용된다. MTT 리프 노드는 CU이다.
EQT 분할 방식에서, 하나의 노드는 4개의 서브노드로 분할된다. 2개의 특정 EQT 분할 방식이 있다:
(1) "수평 4진 분할": 노드에 대응하는 영역은 4개의 영역: 상부 영역, 중간 좌측 영역, 중간 우측 영역, 및 하부 영역으로 분할된다. 4개의 영역: 상부 영역, 중간 좌측 영역, 중간 우측 영역, 및 하부 영역의 경우, 높이들은 각각 분할 전의 영역의 높이의 1/4, 1/2, 1/2, 및 1/4이고, 중간 좌측 영역 및 중간 우측 영역의 폭들은 각각 분할 전의 영역의 폭의 1/2이고, 분할을 통해 획득된 각각의 영역은 하나의 서브노드에 대응한다. 이 경우는, 예를 들어, 도 6f에 도시되어 있다.
(2) "수직 4진 분할": 노드에 대응하는 영역은 4개의 영역: 좌측 영역, 중간 상부 영역, 중간 하부 영역, 및 우측 영역으로 분할된다. 4개의 영역: 좌측 영역, 중간 상부 영역, 중간 하부 영역, 및 우측 영역의 경우, 폭들은 각각 분할 전의 영역의 폭의 1/4, 1/2, 1/2, 및 1/4이고, 중간 상부 영역 및 중간 하부 영역의 높이들은 각각 분할 전의 영역의 높이의 1/2이고, 분할을 통해 획득된 각각의 영역은 하나의 서브노드에 대응한다. 이 경우는, 예를 들어, 도 6g에 도시되어 있다.
H.265/HEVC 표준에서, YUV 4:2:0 포맷에서의 픽처에 대해, 하나의 CTU는 하나의 휘도 블록과 2개의 색차 블록을 포함한다. 휘도 블록과 색차 블록들은 동일한 방식으로 분할될 수 있고, 휘도-색차 결합 코딩 트리라고 지칭된다. VVC에서, 현재 프레임이 I 프레임이면, CTU가 인트라 프레임(I 프레임)에서 미리 설정된 크기(예를 들어, 64x64)의 노드일 때, 노드에 포함되는 휘도 블록은, 휘도 코딩 트리를 사용하여, 휘도 블록들만을 포함하는 코딩 유닛들의 그룹으로 분할되고, 노드에 포함되는 색차 블록은, 색차 코딩 트리를 사용하여, 색차 블록들만을 포함하는 코딩 유닛들의 그룹으로 분할된다. 휘도 코딩 트리의 분할과 색차 코딩 트리의 분할은 서로 독립적이다. 휘도 블록 및 색차 블록에 독립적으로 사용되는 코딩 트리들은 별개의 트리들(separate trees)이라고 지칭된다. H.265에서, CU는 휘도 픽셀과 색차 픽셀을 포함한다. H.266 및 AVS3과 같은 표준들에서, 휘도 픽셀과 색차 픽셀 둘 다를 포함하는 CU 이외에, 휘도 픽셀만을 포함하는 휘도 CU 및 색차 픽셀만을 포함하는 색차 CU가 또한 존재한다.
전술된 바와 같이, 비디오 인코더(20)는 (미리 결정된) 예측 모드 세트로부터 최상의 또는 최적의 예측 모드를 결정하거나 선택하도록 구성된다. 예측 모드 세트는, 예를 들어, 인트라 예측 모드 및/또는 인터 예측 모드를 포함할 수 있다.
인트라 예측
인트라 예측 모드 세트는 35개의 상이한 인트라 예측 모드, 예를 들어, DC(또는 평균) 모드 및 평면 모드와 같은 비-방향성 모드들, 또는 HEVC에서 정의된 방향성 모드들을 포함할 수 있거나; 또는 67개의 상이한 인트라 예측 모드, 예를 들어, DC(또는 평균) 모드 및 평면 모드와 같은 비-방향성 모드들, 또는 VVC에서 정의된 방향성 모드들을 포함할 수 있다. 예를 들어, 몇몇 종래의 각도 인트라 예측 모드들은, VVC에서 정의되는, 비-정사각형 블록들에 대한 광각 인트라 예측 모드들로 적응적으로 대체된다. 다른 예로서, DC 예측에 대한 나눗셈 연산을 피하기 위해, 비-정사각형 블록들에 대한 평균을 계산하기 위해 더 긴 변들만이 사용된다. 또한, 평면-모드 인트라 예측 결과는 위치 의존적 인트라 예측 조합(position dependent intra prediction combination, PDPC) 방법을 사용하여 추가로 수정될 수 있다.
인트라 예측 유닛(254)은 인트라 예측 모드 세트에서의 인트라 예측 모드들에 기초하여 동일한 현재 픽처의 이웃 블록들의 재구성된 픽셀들을 사용하여 인트라 예측 블록(265)을 생성하도록 구성된다.
인트라 예측 유닛(254)(또는 일반적으로 모드 선택 유닛(260))은, 인트라 예측 파라미터가 인코딩된 픽처 데이터(21)에 포함되도록, 인트라 예측 파라미터(또는 일반적으로 블록에 대한 선택된 인트라 예측 모드를 나타내는 정보)를 신택스 요소(266)의 형태로 엔트로피 인코딩 유닛(270)에 출력하도록 추가로 구성된다. 이러한 방식으로, 비디오 디코더(30)는 동작들을 수행할 수 있는데, 예를 들어, 디코딩을 위해 예측 파라미터를 수신하여 사용할 수 있다.
인터 예측
가능한 구현에서, 인터 예측 모드 세트는 이용가능한 참조 픽처(예를 들어, DBP(230)에 저장된 이전에 디코딩된 픽처들 중 적어도 일부) 및 다른 인터 예측 파라미터들에 의존한다. 예를 들어, 인터 예측 모드 세트는 전체 참조 픽처 또는 참조 픽처의 일부만, 예를 들어, 현재 블록의 영역 근처의 검색 윈도우 영역이 최상으로 매칭된 참조 블록을 검색하는데 사용되는지에 의존하고/하거나 1/2-펠 보간, 1/4-펠 보간, 및/또는 1/16 펠 보간과 같은 픽셀 보간이 수행되는지에 의존한다.
전술한 예측 모드들 이외에, 스킵 모드 및/또는 직접 모드(direct mode)가 사용될 수 있다.
예를 들어, 병합 예측이 확장된다. 그러한 모드의 병합 후보 리스트는 시퀀스에서의 다음의 5가지 타입의 후보: 공간 이웃 CU들로부터의 공간 MVP, 병치된 CU들로부터의 시간 MVP, FIFO 테이블로부터의 이력-기반 MVP, 쌍별 평균 MVP, 및 제로 MV들로 구성된다. 쌍방-매칭 기반 디코더-측 모션 벡터 리파인먼트(decoder side motion vector refinement, DMVR)는 병합 모드의 MV들의 정확도를 증가시키기 위해 적용될 수 있다. MVD를 갖는 병합 모드(merge mode with MVD, MMVD)는 모션 벡터 차이를 갖는 병합 모드에서 비롯된다. MMVD 플래그는 스킵 플래그 및 병합 플래그가 전송된 직후에 전송되어, MMVD 모드가 CU에 사용되는지를 명시한다. CU-레벨 적응형 모션 벡터 해상도(adaptive motion vector resolution, AMVR) 스킴이 적용될 수 있다. AMVR은 CU의 MVD들이 상이한 정밀도로 인코딩되게 한다. MVD는 현재 CU에 대한 예측 모드에 기초하여 현재 CU에 대해 적응적으로 선택된다. CU가 병합 모드에서 인코딩될 때, 조합된 인터/인트라 예측(combined inter/intra prediction, CIIP) 모드가 현재 CU에 적용될 수 있다. 인터 및 인트라 예측 신호들에 대해 가중 평균화를 수행하여 CIIP 예측을 획득한다. 아핀 모션 보상 예측의 경우, 블록의 아핀 모션 필드는 2개의 제어 포인트들의 모션 벡터들(4-파라미터) 또는 3개의 제어 포인트들의 모션 벡터들(6-파라미터)의 모션 정보를 사용하여 기술된다. 서브블록-기반 시간 모션 벡터 예측(subblock-based temporal motion vector prediction, SbTMVP)은 HEVC에서의 시간 모션 벡터 예측(temporal motion vector prediction, TMVP)과 유사하지만, 현재 CU에서의 서브-CU들의 모션 벡터들을 예측하기 위해 사용된다. 이전에 BIO로 지칭되는 양방향 광학 흐름(bi-directional optical flow, BDOF)은 특히 곱셈들의 수량 및 곱셈기의 값의 관점에서 계산을 감소시키는 단순화된 버전이다. 삼각형 파티션 모드에서, CU는 2개의 분할 방식: 대각선 분할 및 반-대각선 분할을 사용하여 2개의 삼각형 형상 부분으로 균일하게 분할된다. 또한, 양방향 예측 모드에서의 간단한 평균화가 확장되어, 2개의 예측 신호에 대해 수행되는 가중 평균화를 지원한다.
인터 예측 유닛(244)은 모션 추정(motion estimation, ME) 유닛 및 모션 보상(motion compensation, MC) 유닛(양자 모두 도 2에 도시되지 않음)을 포함할 수 있다. 모션 추정 유닛은, 모션 추정을 수행하기 위해, 픽처 블록(203)(현재 픽처(17)의 현재 픽처 블록(203)) 및 디코딩된 픽처(231), 또는 적어도 하나 이상의 이전에 재구성된 블록, 예를 들어, 다른/상이한 이전에 디코딩된 픽처들(231)의 하나 이상의 재구성된 블록을 수신 또는 획득하도록 구성될 수 있다. 예를 들어, 비디오 시퀀스는 현재 픽처 및 이전에 디코딩된 픽처(231)를 포함할 수 있다. 다시 말해서, 현재 픽처 및 이전에 디코딩된 픽처(231)는 비디오 시퀀스를 형성하는 픽처 시퀀스의 일부일 수 있거나 또는 픽처 시퀀스를 형성할 수 있다.
예를 들어, 인코더(20)는: 복수의 다른 픽처에서의 동일한 픽처 또는 상이한 픽처들의 복수의 참조 블록으로부터 참조 블록을 선택하고, 인터 예측 파라미터/인터 예측 파라미터들로서 참조 픽처(또는 참조 픽처 인덱스) 및/또는 참조 블록의 위치(좌표들 x 및 y)와 현재 블록의 위치 사이의 오프셋(공간 오프셋)을 모션 추정 유닛에 제공하도록 구성될 수 있다. 이 오프셋은 모션 벡터(motion vector, MV)라고도 지칭된다.
모션 보상 유닛은, 인터 예측 파라미터를 획득, 예를 들어 수신하고, 인터 예측 파라미터에 기초하여 또는 이를 사용하여 인터 예측을 수행하여 인터 예측 블록(246)을 획득하도록 구성된다. 모션 보상 유닛에 의해 수행되는 모션 보상은 모션 추정을 통해 결정되는 모션/블록 벡터에 기초하여 예측 블록의 추출 또는 생성을 포함할 수 있고, 서브픽셀 정밀도에 관한 보간을 추가로 포함할 수 있다. 보간 필터링은 알려진 픽셀들의 픽셀 위치들로부터 다른 픽셀의 픽셀 위치를 생성하는데 사용될 수 있고, 그로 인해 픽처 블록들을 인코딩하는데 사용될 수 있는 후보 예측 블록들의 수량을 잠재적으로 증가시킨다. 현재 픽처 블록의 PU에 대응하는 모션 벡터를 수신하면, 모션 보상 유닛은, 참조 픽처 리스트들 중 하나에, 모션 벡터가 가리키는 예측 블록을 위치시킬 수 있다.
모션 보상 유닛은 블록 및 비디오 슬라이스에 관련되는 신택스 요소를 추가로 생성할 수 있어, 비디오 디코더(30)는 신택스 요소를 사용하여 비디오 슬라이스의 픽처 블록을 디코딩한다. 대안적으로, 모션 보상 유닛은 타일 그룹 및/또는 타일 및 대응하는 신택스 요소를 슬라이스 및 대응하는 신택스 요소에 대한 대체로서 생성하거나 사용할 수 있다.
엔트로피 인코딩
엔트로피 인코딩 유닛(270)은 양자화된 잔차 계수(209), 인터 예측 파라미터, 인트라 예측 파라미터, 루프 필터 파라미터, 및/또는 다른 신택스 요소들에 엔트로피 인코딩 알고리즘 또는 스킴(예를 들어, 가변-길이 코딩(variable length coding, VLC) 스킴, 컨텍스트-적응형 VLC(context adaptive VLC, CALVC) 스킴, 산술 코딩 스킴, 이진화 알고리즘, 컨텍스트-적응형 이진 산술 코딩(context adaptive binary arithmetic coding, CABAC), 신택스-기반 컨텍스트-적응형 이진 산술 코딩(syntax-based context-adaptive binary arithmetic coding, SBAC), 확률 간격 분할 엔트로피(probability interval partitioning entropy, PIPE) 코딩, 또는 다른 엔트로피 인코딩 방법론 또는 기술)을 적용하여, 인코딩된 비트스트림(21) 등의 형태로 출력단(272)을 통해 출력될 수 있는 인코딩된 픽처 데이터(21)를 획득하도록 구성되어, 비디오 디코더(30)는 디코딩을 위한 파라미터들을 수신하여 사용할 수 있게 된다. 인코딩된 비트스트림(21)은 비디오 디코더(30)에 송신될 수 있거나, 또는 비디오 디코더(30)에 의한 후속 송신 또는 검색을 위해 메모리에 저장될 수 있다.
비디오 인코더(20)의 다른 구조적 변형들이 비디오 스트림을 인코딩하기 위해 사용될 수 있다. 예를 들어, 비변환 기반 인코더(20)는 일부 블록들 또는 프레임들에 대해 사용되는 변환 처리 유닛(206)이 없을 때 직접 잔차 신호에 대해 양자화를 수행할 수 있다. 다른 구현에서, 인코더(20)는 단일 유닛으로 결합되는 양자화 유닛(208) 및 역양자화 유닛(210)을 가질 수 있다.
디코더 및 디코딩 방법
도 3은 본 출원의 실시예에 따른 비디오 디코더(30)의 예시적인 블록도이다. 비디오 디코더(30)는, 예를 들어, 인코더(20)에 의해 인코딩되는 인코딩된 픽처 데이터(21)(예를 들어, 인코딩된 비트스트림(21))를 수신하여, 디코딩된 픽처(331)를 획득하도록 구성된다. 인코딩된 픽처 데이터 또는 비트스트림은 인코딩된 픽처 데이터를 디코딩하는데 사용되는 정보, 예를 들어, 인코딩된 비디오 슬라이스(및/또는 타일 그룹 또는 타일)의 픽처 블록을 나타내는 데이터 및 관련된 신택스 요소를 포함한다.
도 3의 예에서, 디코더(30)는 엔트로피 디코딩 유닛(304), 역양자화 유닛(310), 역변환 처리 유닛(312), 재구성 유닛(314)(예를 들어, 합산기(314)), 루프 필터(320), 디코딩된 픽처 버퍼(DBP)(330), 모드 적용 유닛(360), 인터 예측 유닛(344), 및 인트라 예측 유닛(354)을 포함한다. 인터 예측 유닛(344)은 모션 보상 유닛이거나 또는 이를 포함할 수 있다. 일부 예들에서, 비디오 디코더(30)는 도 2에서 비디오 인코더(100)를 참조하여 설명된 인코딩 패스와 일반적으로 반대인 디코딩 프로세스를 수행할 수 있다.
인코더(20)에서 설명된 바와 같이, 역양자화 유닛(210), 역변환 처리 유닛(212), 재구성 유닛(214), 루프 필터(220), 디코딩된 픽처 버퍼 DPB(230), 인터 예측 유닛(344), 및 인트라 예측 유닛(354)은 비디오 인코더(20)의 "내장 디코더"를 추가로 형성한다. 이에 대응하여, 역양자화 유닛(310)은 기능면에서 역양자화 유닛(110)과 동일할 수 있고, 역변환 처리 유닛(312)은 기능면에서 역변환 처리 유닛(122)과 동일할 수 있고, 재구성 유닛(314)은 기능면에서 재구성 유닛(214)과 동일할 수 있고, 루프 필터(320)는 기능면에서 루프 필터(220)와 동일할 수 있고, 디코딩된 픽처 버퍼(330)는 기능면에서 디코딩된 픽처 버퍼(230)와 동일할 수 있다. 따라서, 비디오 인코더(20)의 대응하는 유닛들 및 기능들의 설명들은 비디오 디코더(30)의 대응하는 유닛들 및 기능들에 대응하여 적용가능하다.
엔트로피 디코딩
엔트로피 디코딩 유닛(304)은 비트스트림(21)(또는 일반적으로 인코딩된 픽처 데이터(21))을 파싱하고 인코딩된 픽처 데이터(21)에 대해 엔트로피 디코딩을 수행하여, 양자화된 계수(309) 및/또는 디코딩된 코딩 파라미터(도 3에 도시되지 않음) 등을, 예를 들어, 인터 예측 파라미터들(예를 들어, 참조 픽처 인덱스 및 모션 벡터), 인트라 예측 파라미터(예를 들어, 인트라 예측 모드 또는 인덱스), 변환 파라미터, 양자화 파라미터, 루프 필터 파라미터, 및/또는 다른 신택스 요소들 중 임의의 하나 또는 전부를 획득하도록 구성된다. 엔트로피 디코딩 유닛(304)은 인코더(20)의 엔트로피 인코딩 유닛(270)에 의해 적용된 인코딩 스킴들에 대응하는 디코딩 알고리즘 또는 스킴을 적용하도록 구성될 수 있다. 엔트로피 디코딩 유닛(304)은 모드 적용 유닛(360)에 대한 인터 예측 파라미터들, 인트라 예측 파라미터, 및/또는 다른 신택스 요소들을 제공하고, 디코더(30)의 다른 유닛들에 대한 다른 파라미터들을 제공하도록 추가로 구성될 수 있다. 비디오 디코더(30)는 비디오 슬라이스 및/또는 비디오 블록 레벨에서 신택스 요소를 수신할 수 있다. 대안적으로, 비디오 디코더(30)는 타일 그룹 및/또는 타일 및 대응하는 신택스 요소를 슬라이스 및 대응하는 신택스 요소에 대한 대체로서 수신하거나 사용할 수 있다.
역양자화
역양자화 유닛(310)은 (예를 들어, 엔트로피 디코딩 유닛(304)에 의한 파싱 및/또는 디코딩을 통해) 인코딩된 픽처 데이터(21)로부터 양자화 파라미터(quantization parameter, QP)(또는 일반적으로 역양자화에 관련된 정보) 및 양자화된 계수를 수신하고, 양자화 파라미터에 기초하여 디코딩된 양자화된 계수(309)에 대해 역양자화를 수행하여 역양자화된 계수(311)를 획득하도록 구성될 수 있다. 역양자화된 계수(311)는 변환 계수(311)라고도 지칭될 수 있다. 역양자화 프로세스는 비디오 슬라이스에서의 각각의 비디오 블록에 대해 비디오 인코더(20)에 의해 계산된 양자화 파라미터를 사용하여 양자화 정도를 결정하고, 수행될 필요가 있는 역양자화의 정도를 결정하는 것을 포함할 수 있다.
역변환
역변환 처리 유닛(312)은: 변환 계수(311)라고도 지칭되는 역양자화된 계수(311)를 수신하고, 역양자화된 계수(311)에 변환을 적용하여 픽셀 도메인에서 재구성된 잔차 블록들(213)을 획득하도록 구성될 수 있다. 재구성된 잔차 블록(213)은 변환 블록들(313)이라고도 지칭될 수 있다. 변환은 역변환, 예를 들어, 역 DCT, 역 DST, 역 정수 변환, 또는 개념적으로 유사한 역변환 프로세스일 수 있다. 역변환 처리 유닛(312)은 (예를 들어, 엔트로피 디코딩 유닛(304)에 의한 파싱 및/또는 디코딩을 통해) 인코딩된 픽처 데이터(21)로부터 변환 파라미터 또는 대응하는 정보를 수신하여, 역양자화된 계수(311)에 적용될 변환을 결정하도록 추가로 구성될 수 있다.
재구성
재구성 유닛(314)(예를 들어, 합산기(314))은 재구성된 잔차 블록(313)을 예측 블록(365)에 가산하여, 예를 들어, 재구성된 잔차 블록(313)의 픽셀 값들과 예측 블록(365)의 픽셀 값들을 가산하여, 픽셀 도메인에서 재구성된 블록(315)을 획득하도록 구성된다.
필터링
(코딩 루프에서의 또는 코딩 루프 후의) 루프 필터 유닛(320)은 재구성된 블록(315)을 필터링하여 필터링된 블록(321)을 획득하고, 픽셀 변환을 원활하게 수행하고, 비디오 품질을 개선하는 등을 수행하도록 구성된다. 루프 필터 유닛(320)은 블록화-해제 필터, 샘플-적응형 오프셋(sample-adaptive offset, SAO) 필터, 또는 하나 이상의 다른 필터, 예를 들어, 적응형 루프 필터(adaptive loop filter, ALF), 잡음 억제 필터(noise suppression filter, NSF), 또는 이들의 임의의 조합과 같은 하나 이상의 루프 필터를 포함할 수 있다. 예를 들어, 루프 필터 유닛(220)은 블록화-해제 필터, SAO 필터, 및 ALF 필터를 포함할 수 있다. 필터링 프로세스는 블록화-해제 필터, SAO 필터, 및 ALF 필터에 의해 순차적으로 수행될 수 있다. 다른 예로서, 크로마 스케일링을 갖는 루마 매핑(luma mapping with chroma scaling, LMCS) 프로세스(즉, 적응형 인-루프 재성형기)가 추가된다. 이 프로세스는 블록화-해제 전에 수행된다. 다른 예로서, 블록화-해제 필터링 프로세스는 또한 내부 서브블록 에지들, 예를 들어, 아핀 서브블록 에지, ATMVP 서브블록 에지, 서브블록 변환(sub-block transform, SBT) 에지, 및 인트라 서브-파티션(intra sub-partition, ISP) 에지에 적용될 수 있다. 루프 필터 유닛(320)이 도 3에서 인 루프 필터로서 도시되어 있지만, 루프 필터 유닛(320)은 다른 구성들에서 포스트-루프 필터로서 구현될 수 있다.
디코딩된 픽처 버퍼
그 후, 픽처에서의 디코딩된 비디오 블록(321)은 디코딩된 픽처 버퍼(330)에 저장되고, 디코딩된 픽처 버퍼(330)는 참조 픽처로서 사용되는 디코딩된 픽처(331)를 저장한다. 참조 픽처는 다른 픽처들 및/또는 출력 및 디스플레이에 대한 후속 모션 보상에 사용된다.
디코더(30)는 출력단(312) 등을 통해 디코딩된 픽처(311)를 출력하도록 구성되어, 디코딩된 픽처(311)가 사용자에게 제시되거나 사용자에 의해 시청된다.
예측
인터 예측 유닛(344)은 기능면에서 인터 예측 유닛(244)(특히 모션 보상 유닛)과 동일할 수 있고, 인트라 예측 유닛(354)은 기능면에서 인터 예측 유닛(254)과 동일할 수 있고, 2개의 예측 유닛들은 (예를 들어, 엔트로피 디코딩 유닛(304)에 의한 파싱 및/또는 디코딩을 통해) 인코딩된 픽처 데이터(21)로부터 수신되는 분할 및/또는 예측 파라미터들 또는 대응하는 정보에 기초하여 스플리팅 또는 분할 및 예측을 수행하기로 결정한다. 모드 적용 유닛(360)은 재구성된 블록들, 블록들, 또는 대응하는(필터링된 또는 필터링되지 않은) 픽셀들에 기초하여 각각의 블록에 대해 예측(인트라 또는 인터 예측)을 수행하여 예측 블록(365)을 획득하도록 구성될 수 있다.
비디오 슬라이스가 인트라-코딩된(intra coded, I) 슬라이스로서 코딩될 때, 모드 적용 유닛(360) 내의 인트라 예측 유닛(354)은 현재 픽처의 이전에 디코딩된 블록으로부터의 표시된 인트라 예측 모드 및 데이터에 기초하여 현재 비디오 슬라이스의 픽처 블록에 대한 예측 블록(365)을 생성하도록 구성된다. 비디오 픽처가 인터-코딩된(즉, B 또는 P) 슬라이스로서 코딩될 때, 모드 적용 유닛(360) 내의 인터 예측 유닛(344)(예를 들어, 모션 보상 유닛)은 엔트로피 디코딩 유닛(304)으로부터 수신되는 다른 신택스 요소들 및 모션 벡터에 기초하여 현재 비디오 슬라이스에서의 비디오 블록에 대한 예측 블록(365)을 생성하도록 구성된다. 인터 예측을 위해, 이러한 예측 블록들은 참조 픽처 리스트들 중 하나에서의 참조 픽처들 중 하나에 기초하여 생성될 수 있다. 비디오 디코더(30)는 디폴트 구성 기법을 사용하여 DPB(330)에 저장된 참조 픽처에 기초하여 참조 프레임 리스트들 0 및 1을 구성할 수 있다. 슬라이스(예를 들어, 비디오 슬라이스) 또는 슬라이스에 대한 대체 이외에 타일 그룹(예를 들어, 비디오 타일 그룹) 및/또는 타일(예를 들어, 비디오 타일)의 실시예들에 동일하거나 유사한 프로세스가 적용될 수 있다. 예를 들어, 비디오는 I, P, 또는 B 타일 그룹 및/또는 타일을 사용하여 코딩될 수 있다.
모드 적용 유닛(360)은 모션 벡터 및 다른 신택스 요소들을 파싱하는 것에 의해 현재 비디오 슬라이스에서의 비디오 블록에 대한 예측 정보를 결정하고, 이러한 예측 정보를 사용하여 디코딩되고 있는 현재 비디오 블록에 대한 예측 블록을 생성하도록 구성된다. 예를 들어, 모드 적용 유닛(360)은 수신된 신택스 요소들 중 일부를 사용하여, 비디오 슬라이스 내의 비디오 블록을 코딩하기 위해 사용되는 예측(예를 들어, 인트라 또는 인터 예측) 모드, 인터 예측 슬라이스 타입(예를 들어, B 슬라이스, P 슬라이스, 또는 GPB 슬라이스), 슬라이스에 대한 하나 이상의 참조 픽처 리스트의 구성 정보, 슬라이스에 대한 각각의 인터-코딩된 비디오 블록의 모션 벡터, 슬라이스에 대한 각각의 인터-코딩된 비디오 블록의 인터 예측 상태, 및 다른 정보를 결정하여, 현재 비디오 슬라이스에서 비디오 블록들을 디코딩한다. 슬라이스(예를 들어, 비디오 슬라이스) 또는 슬라이스에 대한 대체 이외에 타일 그룹(예를 들어, 비디오 타일 그룹) 및/또는 타일(예를 들어, 비디오 타일)의 실시예들에 동일하거나 유사한 프로세스가 적용될 수 있다. 예를 들어, 비디오는 I, P, 또는 B 타일 그룹 및/또는 타일을 사용하여 코딩될 수 있다.
실시예에서, 도 3에 도시된 비디오 인코더(30)는 대안적으로 슬라이스(비디오 슬라이스라고도 지칭됨)를 사용하여 픽처를 분할 및/또는 디코딩하도록 구성될 수 있다. 픽처는 하나 이상의 슬라이스(일반적으로 비중첩됨)를 사용하여 분할되거나 디코딩될 수 있다. 각각의 슬라이스는 하나 이상의 블록(예를 들어, 하나 이상의 CTU) 또는 하나 이상의 블록 그룹(예를 들어, H.265/HEVC/VVC 표준에서의 하나 이상의 타일 및 VVC 표준에서의 하나 이상의 브릭)을 포함할 수 있다.
실시예에서, 도 3에 도시된 비디오 디코더(30)는 대안적으로 슬라이스/타일 그룹(비디오 타일 그룹이라고도 지칭됨) 및/또는 타일(비디오 타일이라고도 지칭됨)을 사용하여 픽처를 분할 및/또는 디코딩하도록 구성될 수 있다. 픽처는 하나 이상의 슬라이스/타일 그룹(일반적으로 비중첩됨)을 사용하여 분할 또는 디코딩될 수 있다. 각각의 슬라이스/타일 그룹은 하나 이상의 블록(예를 들어, 하나 이상의 CTU), 하나 이상의 타일 등을 포함할 수 있다. 각각의 타일은 직사각형 형상 등일 수 있고, 하나 이상의 완전한 또는 부분 블록(예를 들어, 하나 이상의 CTU)을 포함할 수 있다.
인코딩된 픽처 데이터(21)를 디코딩하기 위해 비디오 디코더(30)의 다른 변형들이 사용될 수 있다. 예를 들어, 디코더(30)는 루프 필터 유닛(320) 없이 출력 비디오 스트림을 생성할 수 있다. 예를 들어, 비변환 기반 디코더(30)는 일부 블록들 또는 프레임들에 대해 사용되는 역변환 처리 유닛(312)이 없을 때 직접 잔차 신호에 대해 역양자화를 수행할 수 있다. 다른 구현에서, 비디오 디코더(30)는 단일 유닛으로 결합되는 역양자화 유닛(310) 및 역변환 처리 유닛(312)을 가질 수 있다.
인코더(20) 및 디코더(30)에서, 현재 단계의 처리 결과가 추가로 처리될 수 있고, 그 후 추가 처리를 통해 획득되는 결과가 다음 단계로 출력될 수 있다는 것을 이해해야 한다. 예를 들어, 보간 필터링, 모션 벡터 도출, 또는 루프 필터링이 수행된 후에, 보간 필터링, 모션 벡터 도출, 또는 루프 필터링의 처리 결과에 대해 클리핑(clip) 또는 시프트(shift) 연산과 같은 추가 연산이 수행될 수 있다.
현재 블록의 도출된 모션 벡터들(아핀 모드에서의 제어-포인트 모션 벡터, 아핀, 평면, ATMVP 모드들에서의 서브블록 모션 벡터들, 및 시간 모션 벡터를 포함하지만 이에 제한되지는 않음)에 대해 추가 연산들이 수행될 수 있다는 점에 유의해야 한다. 예를 들어, 모션 벡터의 값은 모션 벡터의 비트 심도에 기초하여 미리 정의된 범위로 제약된다. 모션 벡터의 비트 심도가 bitDepth인 경우, 범위는 -2^(bitDepth-1) 내지 2^(bitDepth-1)-1이고, 여기서 "^"는 지수를 나타낸다. 예를 들어, bitDepth가 16과 동일하게 설정되면, 범위는 -32768 내지 32767이고; bitDepth가 18과 동일하게 설정되면, 범위는 -131072 내지 131071이다. 예를 들어, 4개의 4x4 서브블록의 MV들의 정수부들 사이의 최대 차이가 N 픽셀보다 크지 않도록, 예를 들어, 하나의 픽셀보다 크지 않도록, 도출된 모션 벡터(예를 들어, 하나의 8x8 블록 내의 4개의 4x4 서브블록의 MV들)의 값이 제약된다. bitDepth에 기초하여 모션 벡터를 제약하기 위한 2가지 방법이 본 명세서에서 제공된다.
비디오 인코딩 및 디코딩이 전술한 실시예들에서 주로 설명되었지만, 코딩 시스템(10), 인코더(20), 및 디코더(30)의 실시예들, 및 본 명세서에서 설명된 다른 실시예들은 또한 스틸-픽처 처리 또는 인코딩 및 디코딩, 즉, 임의의 이전의 픽처 또는 연속적인 픽처들과 독립적으로 비디오 인코딩 및 디코딩에서 단일 픽처의 처리 또는 인코딩 및 디코딩에 사용될 수 있다는 점에 유의해야 한다. 일반적으로, 픽처 처리가 단일 픽처(17)에 대해서만 수행되면 인터 예측 유닛(244)(인코더) 및 인터 예측 유닛(344)(디코더)은 이용불가능할 수 있다. 잔차 계산(204/304), 변환(206), 양자화(208), 역양자화(210/310), (역)변환(212/312), 분할(262/362), 인트라 예측(254/354), 및/또는 루프 필터링(220/320), 엔트로피 인코딩(270), 및 엔트로피 디코딩(304)과 같은, 비디오 인코더(20) 및 비디오 디코더(30)의 모든 다른 기능들(도구들 또는 기술들이라고도 함)이 또한 스틸-픽처 처리를 위해 사용될 수 있다.
도 4는 본 출원의 실시예에 따른 비디오 코딩 디바이스(400)의 예시적인 블록도이다. 비디오 코딩 디바이스(400)는 본 명세서에서 설명된 개시된 실시예들을 구현하기에 적합하다. 실시예에서, 비디오 코딩 디바이스(400)는 디코더, 예를 들어, 도 1a의 비디오 디코더(30)일 수 있거나, 또는 인코더, 예를 들어, 도 1a의 비디오 인코더(20)일 수 있다.
비디오 코딩 디바이스(400)는: 데이터를 수신하도록 구성된 입구 포트(410)(또는 입력 포트(410)) 및 수신기 유닛(receiver unit, Rx)(420); 데이터를 처리하도록 구성된 프로세서, 논리적 유닛, 또는 중앙 처리 유닛(central processing unit, CPU)(430); 데이터를 송신하도록 구성된 송신기 유닛(transmitter unit, Tx)(440) 및 출구 포트(450)(또는 출력 포트(450)); 및 데이터를 저장하도록 구성된 메모리(460)를 포함한다. 비디오 코딩 디바이스(400)는 입구 포트(410), 수신기 유닛(420), 송신기 유닛(440), 및 출구 포트(450)에 결합되는 광-전기(optical-to-electrical, OE) 컴포넌트 및 전기-광(electrical-to-optical, EO) 컴포넌트를 추가로 포함할 수 있고, OE 컴포넌트 및 EO 컴포넌트는 광 신호들 또는 전기 신호들의 출구들 또는 입구들로서 사용된다.
프로세서(430)는 하드웨어 및 소프트웨어를 사용함으로써 구현된다. 프로세서(430)는 하나 이상의 프로세서 칩, 코어(예를 들어, 멀티-코어 프로세서), FPGA, ASIC, 또는 DSP로서 구현될 수 있다. 프로세서(430)는 입구 포트(410), 수신기 유닛(420), 송신기 유닛(440), 출구 포트(450), 및 메모리(460)와 통신한다. 프로세서(430)는 코딩 모듈(470)을 포함한다. 이러한 코딩 모듈(470)은 전술된 개시된 실시예들을 구현한다. 예를 들어, 코딩 모듈(470)은 다양한 코딩 동작들을 수행, 처리, 준비, 또는 제공한다. 따라서, 코딩 모듈(470)은 비디오 코딩 디바이스(400)의 기능들에 대한 실질적인 개선을 제공하고, 상이한 상태들 사이의 비디오 코딩 디바이스(400)의 스위칭에 영향을 미친다. 대안적으로, 코딩 모듈(470)은 메모리(460)에 저장되고 프로세서(430)에 의해 실행되는 명령어들을 사용하여 구현된다.
메모리(460)는 하나 이상의 자기 디스크, 테이프 드라이브, 및 솔리드-스테이트 드라이브를 포함하고, 오버-플로우 데이터 저장 디바이스로서 사용될 수 있고, 이러한 프로그램이 실행을 위해 선택될 때 프로그램을 저장하고 프로그램의 실행 동안 판독되는 명령어들 및 데이터를 저장하도록 구성된다. 메모리(460)는 휘발성 및/또는 비휘발성일 수 있고, 판독 전용 메모리(read-only memory, ROM), 랜덤 액세스 메모리(random access memory, RAM), 삼진 콘텐츠 어드레스 가능 메모리(ternary content-addressable memory, TCAM), 및/또는 정적 랜덤 액세스 메모리(static random-access memory, SRAM)를 포함할 수 있다.
도 5는 본 출원의 실시예에 따른 장치(500)의 예시적인 블록도이다. 장치(500)는 도 1a의 소스 디바이스(12) 및 목적지 디바이스(14) 중 어느 하나 또는 둘 모두로서 사용될 수 있다.
장치(500)에서의 프로세서(502)는 중앙 처리 유닛일 수 있다. 대안적으로, 프로세서(502)는 오늘날 존재하거나 미래에 개발될 정보를 조작 또는 처리할 수 있는 임의의 다른 타입의 디바이스 또는 복수의 디바이스들일 수 있다. 개시된 구현들이 단일 프로세서, 예를 들어, 도면에 도시된 프로세서(502)를 사용함으로써 구현될 수 있지만, 더 높은 속도 및 더 높은 효율은 하나 초과의 프로세서를 사용함으로써 달성된다.
구현에서, 장치(500) 내의 메모리(504)는 판독 전용 메모리(ROM) 디바이스 또는 랜덤 액세스 메모리(RAM) 디바이스일 수 있다. 임의의 다른 적절한 타입의 저장 디바이스가 메모리(504)로서 대안적으로 사용될 수 있다. 메모리(504)는 버스(512)를 통해 프로세서(502)에 의해 액세스되는 코드 및 데이터(506)를 포함할 수 있다. 메모리(504)는 운영 체제(508) 및 애플리케이션 프로그램(510)을 추가로 포함할 수 있고, 애플리케이션 프로그램(510)은 프로세서(502)가 본 명세서에서 설명된 방법들을 수행할 수 있게 하는 적어도 하나의 프로그램을 포함한다. 예를 들어, 애플리케이션 프로그램(510)은 애플리케이션들 1 내지 N을 포함할 수 있고, 본 명세서에서 설명된 방법들을 수행하기 위한 비디오 코딩 애플리케이션을 추가로 포함한다.
장치(500)는 디스플레이(518)와 같은 하나 이상의 출력 디바이스를 추가로 포함할 수 있다. 예에서, 디스플레이(518)는 터치 입력을 감지하도록 구성될 수 있는 터치 감지 요소와 디스플레이를 결합하는 터치 감지 디스플레이일 수 있다. 디스플레이(518)는 버스(512)를 통해 프로세서(502)에 결합될 수 있다.
장치(500) 내의 버스(512)는 본 명세서에서 단일 버스로서 묘사되어 있지만, 버스(512)는 복수의 버스를 포함할 수 있다. 또한, 보조 메모리는 장치(500) 내의 다른 컴포넌트들에 직접 결합될 수 있거나, 또는 네트워크를 통해 액세스될 수 있으며, 메모리 카드와 같은 단일 통합 유닛 또는 복수의 메모리 카드와 같은 복수의 유닛을 포함할 수 있다. 따라서, 장치(500)는 매우 다양한 구성들을 가질 수 있다.
도 8은 본 출원에 따른 향상 계층에 대한 코딩 방법의 예시적인 흐름도이다. 프로세스(800)는 비디오 인코더(20)(또는 인코더) 및 비디오 디코더(30)(또는 디코더)에 의해 수행될 수 있다. 프로세스(800)는 일련의 단계들 또는 동작들로서 설명된다. 프로세스(800)의 단계들 또는 동작들은 다양한 시퀀스들로 및/또는 동시에 수행될 수 있으며, 도 8에 도시된 실행 시퀀스로 한정되지 않는다는 것을 이해해야 한다.
단계 801: 인코더는 인코딩될 픽처 블록의 베이스 계층의 재구성된 블록을 획득한다.
스케일러블 비디오 코딩(scalable video coding)이라고도 지칭되는 계층화된 비디오 코딩(layered video coding)은 기존의 비디오 코딩 표준의 확장된 코딩 표준(일반적으로 진보된 비디오 코딩(advanced video coding, AVC)의 확장된 표준 스케일러블 비디오 코딩(scalable video coding, SVC)(H.264) 또는 고효율 비디오 코딩(high efficiency video coding, HEVC)(H.265)의 확장된 표준 스케일러블 고효율 비디오 코딩(scalable high efficiency video coding, SHVC)이다. 스케일러블 비디오 코딩은 실시간 비디오 송신에서 네트워크 대역폭의 실시간 변화에 의해 야기되는 패킷 손실 및 지연 변동 문제들을 해결하는데 주로 사용된다.
스케일러블 비디오 코딩에서의 기본 구조들은 계층들이라고도 지칭될 수 있다. 스케일러블 비디오 코딩 기술에서, 원래의 픽처 블록에 대해 공간 스케일러빌리티(resolution scalability)를 수행하여, 상이한 해상도들을 갖는 계층들의 비트스트림들을 획득할 수 있다. 해상도는 픽셀들로서 표현되는 픽처 블록의 크기일 수 있다. 하위-계층 해상도는 비교적 낮고, 상위-계층 해상도는 하위-계층 해상도보다 낮지 않다. 대안적으로, 원래의 픽처 블록에 대해 시간 스케일러빌리티(프레임 레이트 스케일러빌리티)를 수행하여 상이한 프레임 레이트들을 갖는 계층들의 비트스트림들을 획득할 수 있다. 프레임 레이트는 단위 시간당 비디오에 포함된 픽처 프레임들의 수량일 수 있다. 하위-계층 프레임 레이트는 비교적 낮고, 상위-계층 프레임 레이트는 하위-계층 프레임 레이트보다 낮지 않다. 대안적으로, 원래의 픽처 블록에 대해 품질 스케일러빌리티를 수행하여 상이한 인코딩 품질을 갖는 계층들의 비트스트림들을 획득할 수 있다. 인코딩 품질은 비디오 품질일 수 있다. 하위-계층 픽처 왜곡 정도는 비교적 크고, 상위-계층 픽처 왜곡 정도는 하위-계층 픽처 왜곡 정도보다 높지 않다.
일반적으로, 베이스 계층이라고 지칭되는 계층은 스케일러블 비디오 코딩에서 최하위 계층이다. 공간 스케일러빌리티에서, 베이스 계층 픽처 블록은 최저 해상도를 사용하여 인코딩된다. 시간 스케일러빌리티에서, 베이스 계층 픽처 블록은 최저 프레임 레이트를 사용하여 인코딩된다. 품질 스케일러빌리티에서, 베이스 계층 픽처 블록은 최고 QP 또는 최저 비트 레이트를 사용하여 인코딩된다. 다시 말해서, 베이스 계층은 스케일러블 비디오 코딩에서 최저 품질을 갖는 계층이다. 향상 계층이라고 지칭되는 계층은 스케일러블 비디오 코딩에서 베이스 계층 위의 계층이고, 로우에서 하이까지 복수의 향상 계층이 있을 수 있다. 베이스 계층에 의해 획득된 인코딩 정보에 기초하여, 최하위-계층 향상 계층은 베이스 계층보다 높은 인코딩 해상도를 갖거나, 베이스 계층보다 높은 프레임 레이트를 갖거나, 베이스 계층보다 높은 비트 레이트를 갖는다. 하위-계층 향상 계층의 인코딩 정보에 기초하여 상위-계층 향상 계층에 대해 더 높은 품질을 갖는 픽처 블록이 인코딩될 수 있다.
예를 들어, 도 9는 본 출원에 따른 스케일러블 비디오 코딩에서의 계층들의 예시적인 개략도이다. 도 9에 도시된 바와 같이, 원래의 픽처 블록이 스케일러블 인코더에 전송된 후, 원래의 픽처 블록은 상이한 인코딩 구성들에 기초하여 베이스 계층 픽처 블록 B 및 향상 계층 픽처 블록들(E1 내지 En, 여기서 n≥1)로 계층화될 수 있고, 그 후 픽처 블록들을 개별적으로 인코딩하여 베이스 계층 비트스트림 및 향상 계층 비트스트림을 포함하는 비트스트림들을 획득한다. 베이스 계층 비트스트림은 일반적으로 최저 공간-도메인 픽처 블록, 최저 시간-도메인 픽처 블록, 또는 최저 품질 픽처 블록을 인코딩함으로써 획득되는 비트스트림이다. 향상 계층 비트스트림은 상위-계층 공간-도메인 픽처 블록, 상위-계층 시간-도메인 픽처 블록, 또는 상위-계층 품질 픽처 블록을 중첩 및 인코딩함으로써 베이스 계층에 기초하여 획득되는 비트스트림이다. 향상 계층들의 수량이 증가함에 따라, 인코딩을 위한 공간-도메인 계층들, 시간-도메인 계층들, 또는 품질 계층들이 점점 더 높아진다. 비트스트림들을 디코더에 송신할 때, 인코더는 베이스 계층 비트스트림의 송신을 우선적으로 보장한다. 네트워크에 마진이 있을 때, 인코더는 점점 더 상위 계층들에서 비트스트림들을 점진적으로 송신한다. 디코더는 먼저 베이스 계층 비트스트림을 수신 및 디코딩하고, 수신된 향상 계층 비트스트림에 기초하여 계층 단위 방식으로, 하위 계층으로부터 상위 계층까지 순차적으로 점점 더 높은 공간-도메인 계층들, 시간-도메인 계층들, 또는 품질 계층들을 갖는 비트스트림들을 디코딩한 다음, 하위-계층 재구성된 블록에 상위-계층 디코딩 정보를 중첩시켜, 더 높은 해상도, 더 높은 프레임 레이트, 또는 더 높은 품질을 갖는 재구성된 블록을 획득한다.
인코딩될 픽처 블록은 인코더에 의해 현재 처리되고 있는 픽처 블록일 수 있고, 픽처 블록은 풀-프레임 픽처에서 최대 코딩 유닛(largest coding unit, LCU)일 수 있다. 풀-프레임 픽처는 인코더에 의해 처리되는 비디오에 포함되는 픽처 시퀀스에서의 임의의 픽처 프레임일 수 있다. 분할 처리는 픽처 프레임에 대해 수행되지 않았고, 픽처 프레임의 크기는 완전한 픽처 프레임의 크기이다. H.265 표준에서, 비디오 코딩이 수행되기 전에, 원래의 픽처 프레임은 복수의 코딩 트리 유닛(coding tree unit, CTU)으로 분할된다. CTU는 비디오 코딩을 위한 최대 코딩 유닛이고, 쿼드트리 방식으로 상이한 크기들의 CU들로 분할될 수 있다. 최대 코딩 유닛으로서, CTU는 LCU라고도 지칭된다. 대안적으로, 픽처 블록은 풀-프레임 픽처일 수 있거나, 또는 픽처 블록은 풀-프레임 픽처에서의 관심 영역(region of interest, ROI), 즉, 처리될 필요가 있고 픽처에서 특정되는 특정 픽처 영역일 수 있다.
전술된 바와 같이, 비디오 시퀀스에서의 각각의 픽처는 일반적으로 블록 레벨에서 인코딩되는 비중첩 블록들의 세트로 일반적으로 분할된다. 다시 말해서, 인코더는 보통 비디오를 블록(픽처 블록) 레벨에서 처리, 즉 인코딩한다. 예를 들어, 인코더는 공간 예측(인트라 예측) 및 시간 예측(인터 예측)을 통해 예측 블록을 생성하고; 픽처 블록(현재 처리된/처리될 블록)으로부터 예측 블록을 감산하여 잔차 블록을 획득하고; 변환 도메인에서 잔차 블록에 대해 변환 및 양자화를 수행하여, 송신(압축)될 데이터의 볼륨이 감소될 수 있게 한다. 인코더는 추가로, 역양자화 및 역변환을 수행하여 재구성된 잔차 블록을 획득할 필요가 있고, 그 후, 재구성된 잔차 블록의 픽셀 값들을 예측 블록의 픽셀 값들에 가산하여 재구성된 블록을 획득한다. 베이스 계층의 재구성된 블록은 원래의 픽처 블록을 계층화하여 획득되는 베이스 계층 픽처 블록에 대해 전술한 동작들을 수행하여 획득되는 재구성된 블록이다. 예를 들어, 도 10은 본 출원에 따른 향상 계층에 대한 인코딩 방법의 예시적인 흐름도이다. 도 10에 도시된 바와 같이, 인코더는 원래의 픽처 블록(예를 들어, LCU)에 기초하여 베이스 계층의 예측 블록을 획득하고; 원래의 픽처 블록 및 베이스 계층의 예측 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 베이스 계층의 잔차 블록을 획득하고; 베이스 계층의 잔차 블록에 대해 분할을 수행한 이후에, 잔차 블록에 대해 변환 및 양자화를 수행하고, 베이스 계층의 인코딩 제어 정보, 예측 정보, 모션 정보 등과 함께 잔차 블록에 대해 엔트로피 인코딩을 수행하여 베이스 계층 비트스트림을 획득한다. 인코더는 양자화된 계수에 대해 역양자화 및 역변환을 수행하여 베이스 계층의 재구성된 잔차 블록을 획득하고, 그 후 베이스 계층의 예측 블록 및 베이스 계층의 재구성된 잔차 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 베이스 계층의 재구성된 블록을 획득한다.
단계 802: 인코더는 인코딩될 픽처 블록 및 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여, 인코딩될 픽처 블록의 향상 계층의 잔차 블록을 획득한다.
향상 계층 픽처 블록의 해상도는 베이스 계층 픽처 블록의 해상도보다 낮지 않거나, 향상 계층 픽처 블록의 인코딩 품질은 베이스 계층 픽처 블록의 인코딩 품질보다 낮지 않다. 전술된 바와 같이, 인코딩 품질은 비디오 품질일 수 있다. 향상 계층 픽처 블록의 인코딩 품질이 베이스 계층 픽처 블록의 인코딩 품질보다 낮지 않다는 것은, 베이스 계층의 픽처 왜곡 정도가 비교적 크고, 향상 계층의 픽처 왜곡 정도가 베이스 계층의 픽처 왜곡 정도보다 높지 않다는 것을 의미할 수 있다.
픽처 블록은 복수의 픽셀을 포함하고, 복수의 픽셀은 어레이로 배열되며, 픽처 블록에서 각각의 픽셀의 위치는 행 번호 및 열 번호를 사용하여 고유하게 식별될 수 있다. 인코딩될 픽처 블록 및 베이스 계층의 재구성된 블록의 크기들은 양자 모두 MxN이라고, 즉, 인코딩될 픽처 블록 및 베이스 계층의 재구성된 블록 각각은 MxN 픽셀들을 포함한다고 가정된다. a(i1, j1)는 인코딩될 픽처 블록에서 i1번째 열과 j1번째 행을 갖는 픽셀을 나타내며, 여기서 i1은 1부터 M까지의 범위에 있고 j1은 1부터 N까지의 범위에 있다. b(i2, j2)는 베이스 계층의 재구성된 블록에서 i1번째 열과 j1번째 행을 갖는 픽셀을 나타내며, 여기서 i2는 1부터 M까지의 범위에 있고 j2는 1부터 N까지의 범위에 있다. 인코딩될 픽처 블록 및 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들은, 픽셀들이 각각 속하는 픽처 블록들에서의 행 번호들 및 열 번호들이 각각 서로 동일한, 즉, i1=i2 및 j1=j2인 픽셀들이다. 예를 들어, 픽처 블록의 크기는 16×16이고, 픽처 블록은 16×16 픽셀들을 포함하고, 행 번호들은 0 내지 15이고, 열 번호들은 0 내지 15이고, 인코딩될 픽처 블록에서 식별자 a(0, 0)를 갖는 픽셀 및 베이스 계층의 재구성된 블록에서 식별자 b(0, 0)를 갖는 픽셀은 대응하는 픽셀들이거나, 또는 인코딩될 픽처 블록에서 식별자 a(6, 9)를 갖는 픽셀 및 베이스 계층의 재구성된 블록에서 식별자 b(6, 9)를 갖는 픽셀은 대응하는 픽셀들이다. 대응하는 픽셀들 사이의 차이를 계산하는 것은, 인코딩될 픽처 블록 및 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들의 픽셀 값들 사이의 차이를 계산하는 것일 수 있다. 픽셀 값은 픽셀의 휘도 값, 색차 값 등일 수 있다. 이것은 본 출원에서 특별히 제한되지 않는다.
도 10에 도시된 바와 같이, SHVC 표준에서, 인코더는 베이스 계층의 재구성된 블록에 기초하여 향상 계층의 예측 블록을 예측하고나서, 베이스 계층의 재구성된 블록 및 향상 계층의 예측 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 향상 계층의 잔차 블록을 획득한다. 대조적으로, 단계 802에서, 인코딩될 픽처 블록 및 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 직접 계산하여 향상 계층의 잔차 블록을 획득할 수 있다. 이것은 향상 계층의 예측 블록을 획득하는 프로세스를 감소시켜, 인코더에 대한 처리 절차가 단순화될 수 있고, 인코더의 인코딩 효율이 개선될 수 있게 한다.
단계 803: 인코더는 향상 계층의 잔차 블록의 변환-블록 분할 방식을 결정한다.
향상 계층의 잔차 블록의 변환-블록 분할 방식은 베이스 계층의 잔차 블록의 변환-블록 분할 방식과 상이하다. 구체적으로, 인코더가 향상 계층의 잔차 블록을 처리할 때 사용되는 변환-블록 분할 방식은 인코더가 베이스 계층의 잔차 블록을 처리할 때 사용되는 변환-블록 분할 방식과 상이하다. 예를 들어, 베이스 계층의 잔차 블록은 TT 분할 방식으로 3개의 서브블록으로 분할되지만, 향상 계층의 잔차 블록은 TT 분할 방식이 아닌 방식으로 분할된다. 인코더는 다음의 적응형 방식으로 향상 계층의 잔차 블록의 변환-블록 분할 방식을 결정할 수 있다:
가능한 구현에서, 인코더는 먼저 향상 계층의 잔차 블록의 제1 최대 변환 유닛(largest transform unit, LTU)에 대해 반복 트리 구조 분할을 수행하여 복수의 분할 깊이의 변환 유닛들(transform units, TUs)을 획득하고- 복수의 분할 깊이의 최대 분할 깊이는 Dmax와 동일하고, Dmax는 양의 정수임 -; 제1 TU의 손실 추정치 및 제1 TU에 포함되는 복수의 제2 TU의 손실 추정치들의 합계에 기초하여 제1 TU의 분할 방식을 결정할 수 있고, 제1 TU의 분할 깊이는 i이고, 제2 TU의 깊이는 i+1이고, 0≤i≤Dmax-1이다.
인코딩될 픽처 블록의 크기에 대응하여, 향상 계층의 잔차 블록의 크기는 풀-프레임 픽처의 크기일 수 있거나, 풀-프레임 픽처에서 분할된 픽처 블록(예를 들어, CTU 또는 CU)의 크기일 수 있거나, 풀-프레임 픽처에서 ROI의 크기일 수 있다. LTU는 픽처 블록들에서의 변환 처리에 사용되는 최대 크기의 픽처 블록이고, LTU의 크기는 베이스 계층의 재구성된 블록의 크기와 동일할 수 있다. 이것은 변환 코딩의 효율이 최대화되면서 상이한 재구성된 블록들에 대응하는 향상 계층들이 동시에 처리될 수 있다는 것을 보장할 수 있다. 하나의 LTU는 구성된 분할 정보에 기초하여 복수의 노드로 분할될 수 있고, 각각의 노드는 어떠한 노드들도 더 이상 분할되지 않을 때까지 구성된 분할 정보에 기초하여 추가로 분할될 수 있다. 이 프로세스는 반복 트리 구조 분할이라고 지칭될 수 있다. 트리 구조 분할은 QT 분할, BT 분할, 및/또는 TT 분할을 포함할 수 있고, EQT 분할을 추가로 포함할 수 있다. LTU의 분할 방식은 본 출원에서 특별히 제한되지 않는다. 한 번에 하나의 노드를 분할함으로써 복수의 노드가 획득된다. 분할이 수행되는 노드는 부모 노드라고 지칭되고, 분할을 통해 획득된 노드들은 서브노드들이라고 지칭된다. 루트 노드의 분할 깊이(depth)는 0이고, 서브노드의 깊이는 부모 노드의 깊이+1이다. 따라서, 루트 노드 LTU로부터 시작하여 향상 계층의 잔차 블록에 대해 반복 트리 구조 분할을 수행하여, 예를 들어 도 7에 도시된 바와 같이 복수의 깊이의 TU들을 획득할 수 있다. 복수의 깊이에서 최대 깊이(즉, 분할을 통해 획득된 최소 TU의 깊이)는 Dmax이다. LTU의 폭 및 높이는 양자 모두 L이고, 최소 TU의 폭 및 높이는 양자 모두 S라고 가정된다. 이 경우, 최소 TU의 분할 깊이는
Figure pct00004
이고, 여기서
Figure pct00005
는 라운딩 다운(rounding down)을 나타내고, 따라서 Dmax≤d이다.
변환 분할을 통해 획득된 전술한 TU들에 기초하여, 인코더는 레이트-왜곡 최적화(rate distortion optimization, RDO) 처리를 수행하여 LTU의 분할 방식을 결정한다. 분할 깊이 i를 갖는 제1 TU 및 깊이 i+1을 갖는 제2 TU가 예로서 사용된다. i는 Dmax-1로부터 시작하고, i의 값들은 내림차순으로 취해지고, 제2 TU는 제1 TU를 분할함으로써 획득된다. 인코더는 먼저 제1 TU에 대해 변환 및 양자화를 수행하여 제1 TU의 양자화된 계수를 획득하고(양자화된 계수는 도 10에서의 양자화 처리를 통해 획득될 수 있음); 제1 TU의 양자화된 계수를 프리코딩하여(프리코딩은 인코딩된 코드 워드의 길이를 추정하기 위해 수행되는 인코딩 프로세스, 또는 인코딩과 유사한 방식으로 처리를 수행하는 프로세스임) 제1 TU의 비트스트림 크기 R을 획득하고; 제1 TU의 양자화된 계수에 대해 역양자화 및 역변환을 수행하여 TU의 재구성된 블록을 획득하고; 제1 TU와 제1 TU의 재구성된 블록의 제곱 차이들의 합계를 계산하여 제1 TU의 왜곡 값 D를 획득하고; 최종적으로 제1 TU의 비트스트림 크기 R 및 제1 TU의 왜곡 값 D에 기초하여 제1 TU의 손실 추정치 C를 획득한다.
제1 TU의 왜곡 값 D의 계산 공식은 다음과 같다:
Figure pct00006
, 여기서
Prs(i,j)는 TU의 범위 내의 좌표점(i,j)에서의 제1 TU의 잔차 픽셀의 원래 값을 나타내고, Prc(i,j)는 TU의 범위 내의 좌표점(i,j)에서의 제1 TU의 잔차 픽셀의 재구성된 값을 나타낸다.
제1 TU의 손실 추정치 C의 계산 공식은 다음과 같다:
C=D+λR, 여기서
λ는 현재 계층의 양자화된 계수에 관련된 상수 값을 나타내고, 현재 계층의 픽셀 왜곡 상태를 결정한다.
인코더는 동일한 방법을 사용하여 제2 TU들의 손실 추정치들을 계산할 수 있다. 제1 TU의 손실 추정치 및 제2 TU들의 손실 추정치들을 획득한 후에, 인코더는 제1 TU의 손실 추정치를 복수의 제2 TU들의 손실 추정치들의 합계와 비교하고- 복수의 제2 TU는 제1 TU를 분할함으로써 획득됨 -; 2개의 비교된 값들 중 더 작은 것에 대응하는 분할 방식을 제1 TU의 분할 방식으로서 결정한다. 구체적으로, 제1 TU의 손실 추정치가 복수의 제2 TU의 손실 추정치들의 합계보다 크면, 제1 TU를 복수의 제2 TU로 분할하는 방식이 제1 TU의 분할 방식으로서 결정된다. 제1 TU의 손실 추정치가 복수의 제2 TU의 손실 추정치들의 합계보다 작거나 같으면, 제1 TU는 추가로 분할되지 않는다. 전술한 방법을 사용하여 LTU의 모든 TU를 순회한 후에, 인코더는 LTU의 분할 방식을 획득할 수 있다. 향상 계층의 잔차 블록이 하나의 LTU만을 포함할 때, LTU의 분할 방식은 향상 계층의 잔차 블록의 분할 방식이다. 향상 계층의 잔차 블록이 복수의 LTU를 포함할 때, LTU들의 분할 방식 및 향상 계층의 잔차 블록을 LTU들로 분할하는 방식은 향상 계층의 잔차 블록의 분할 방식을 구성한다.
본 출원에서, 향상 계층의 잔차 블록에 사용되는 TU 분할 방식은 베이스 계층의 잔차 블록에 사용되는 것과 상이하고, 적응형 TU 분할 방법, 즉 향상 계층의 잔차 블록에 적합한 TU 분할 방식이고; 그 후 인코딩이 수행된다. 향상 계층의 잔차 블록에 대한 TU 분할이 베이스 계층에 대한 CU 분할 방식과 독립적일 때, 향상 계층의 TU 크기는 더 이상 CU 크기에 의해 제한되지 않아서, 인코딩 유연성이 개선될 수 있게 된다.
단계 804: 인코더는 변환-블록 분할 방식에 기초하여 향상 계층의 잔차 블록에 대해 변환을 수행하여 향상 계층의 잔차 블록의 비트스트림을 획득한다.
인코더는 변환-블록 분할 방식에 기초하여 향상 계층의 잔차 블록에 대해 변환, 양자화, 및 엔트로피 인코딩을 수행하여 향상 계층의 잔차 블록의 비트스트림을 획득할 수 있다. 변환, 양자화, 및 엔트로피 인코딩 방법들에 대해서는, 전술한 설명들을 참조한다. 세부사항들은 여기에서 다시 설명되지 않는다.
단계 805: 디코더는 디코딩될 픽처 블록의 향상 계층의 잔차 블록의 비트스트림을 획득한다.
인코더와 디코더는 인코더와 디코더 사이의 유선 또는 무선 링크를 통해 비트스트림들(베이스 계층 비트스트림 및 향상 계층 비트스트림을 포함함)을 송신할 수 있다. 세부사항들은 여기에서 설명되지 않는다.
단계 806: 디코더는 향상 계층의 잔차 블록의 비트스트림에 대해 엔트로피 디코딩, 역양자화, 및 역변환을 수행하여 향상 계층의 재구성된 잔차 블록을 획득한다.
향상 계층의 잔차 블록의 비트스트림을 획득한 후에, 디코더는 비트스트림에서 운반되는 신택스 요소에 기초하여 비트스트림에 대해 엔트로피 디코딩, 역양자화, 및 역변환 처리를 수행하여 향상 계층의 재구성된 잔차 블록을 획득한다. 이 프로세스에 대해서는, 전술한 설명들을 참조한다. 인코더는 또한 재구성된 블록을 획득하는 프로세스에서 전술한 동작들을 수행한다. 따라서, 세부사항들은 여기에서 다시 설명되지 않는다.
단계 807: 디코더는 디코딩될 픽처 블록의 베이스 계층의 재구성된 블록을 획득한다.
디코더 측은 단계 801에서의 설명을 참조하여, 인코더에 의해 수행되는 것과 동일한 방법을 사용함으로써 베이스 계층의 재구성된 블록을 획득할 수 있다. 세부사항들은 여기에서 다시 설명되지 않는다.
단계 808: 디코더는 향상 계층의 재구성된 잔차 블록 및 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 향상 계층의 재구성된 블록을 획득한다.
향상 계층의 재구성된 잔차 블록에 포함된 복수의 픽셀의 행 번호들 및 열 번호들, 및 베이스 계층의 재구성된 블록에 포함된 복수의 픽셀의 행 번호들 및 열 번호들에 기초하여, 디코더는 2개의 픽처 블록 중 하나에서의 픽셀들을 다른 픽처 블록에서의 대응하는 픽셀들에 추가하여, 향상 계층의 재구성된 블록을 획득하며, 여기서 2개의 픽처 블록 중 하나에서의 픽셀들은 각각 다른 픽처 블록에서의 대응하는 픽셀들과 동일한 행 번호 및 열 번호를 갖는다.
본 출원에서, 인코딩될 픽처 블록 및 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 직접 계산하여 향상 계층의 잔차 블록을 획득할 수 있다. 이것은 향상 계층의 예측 블록을 획득하는 프로세스를 감소시켜, 인코더에 대한 처리 절차가 단순화될 수 있고, 인코더의 인코딩 효율이 개선될 수 있게 한다. 또한, 향상 계층의 잔차 블록에 사용되는 TU 분할 방식은 베이스 계층의 잔차 블록에 사용되는 것과 상이하고, 적응형 TU 분할 방법, 즉, 향상 계층의 잔차 블록에 적합한 TU 분할 방식이고; 그 후 인코딩이 수행된다. 향상 계층의 잔차 블록에 대한 TU 분할이 베이스 계층에 대한 CU 분할 방식과 독립적일 때, 향상 계층의 TU 크기는 더 이상 CU 크기에 의해 제한되지 않아서, 잔차 블록의 압축 효율이 보다 효과적으로 개선될 수 있게 된다.
도 8에 도시된 방법은 2개의 계층화 방식: 공간 스케일러빌리티와 품질 스케일러빌리티에 적용가능하다. 공간 스케일러빌리티를 픽처 블록에 사용하여 베이스 계층 픽처 블록 및 향상 계층 픽처 블록을 획득할 때, 베이스 계층 픽처 블록의 해상도는 향상 계층 픽처 블록의 해상도보다 낮다. 따라서, 인코딩될 픽처 블록 및 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 인코딩될 픽처 블록의 향상 계층의 잔차 블록을 획득하기 이전에, 인코더는 원래의 인코딩될 픽처 블록에 대해 다운샘플링을 수행하여 제1 해상도를 갖는 인코딩될 픽처 블록을 획득하고, 베이스 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행하여 제1 해상도를 갖는 베이스 계층의 재구성된 블록을 획득할 수 있다. 다시 말해서, 인코더는 원래의 인코딩될 픽처 블록에 대해 다운샘플링을 개별적으로 수행하고, 베이스 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행할 수 있어, 인코딩될 픽처 블록의 해상도는 베이스 계층의 재구성된 블록의 해상도와 동일하다.
도 11은 본 출원에 따른 향상 계층에 대한 코딩 방법의 예시적인 흐름도이다. 프로세스(1100)는 비디오 인코더(20)(또는 인코더) 및 비디오 디코더(30)(또는 디코더)에 의해 수행될 수 있다. 프로세스(1100)는 일련의 단계들 또는 동작들로서 설명된다. 프로세스(1100)의 단계들 또는 동작들은 다양한 시퀀스들로 및/또는 동시에 수행될 수 있으며, 도 11에 도시된 실행 시퀀스로 한정되지 않는다는 것을 이해해야 한다.
단계 1101: 인코더는 인코딩될 픽처 블록의 제1 향상 계층의 재구성된 블록을 획득한다.
도 9에 도시된 바와 같이, 픽처 블록이 베이스 계층 이외에, 공간 스케일러빌리티, 시간 스케일러빌리티, 또는 품질 스케일러빌리티를 사용하여 계층화된 이후에, 픽처 블록은 복수의 향상 계층으로 추가로 분할된다. 도 8에 도시된 방법은 베이스 계층에 기초한, 베이스 계층보다 높은 향상 계층에 대한 인코딩 및 디코딩 방법들인 반면, 이 실시예는 하위-계층 향상 계층(제1 향상 계층)에 기초한, 상위 계층, 즉, 제2 향상 계층에 대한 인코딩 및 디코딩 방법들을 설명한다.
베이스 계층의 재구성된 블록을 획득하기 위한 방법과의 차이는: 코드 블록이 처리될 픽처 블록 및 처리될 픽처 블록의 제3 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 제1 향상 계층의 잔차 블록을 획득하고- 제3 계층은 제1 향상 계층보다 하위 계층이고, 베이스 계층 또는 향상 계층일 수 있음 -; 제1 향상 계층의 잔차 블록에 대해 변환 및 양자화를 수행하여 제1 향상 계층의 잔차 블록의 양자화된 계수를 획득하고; 제1 향상 계층의 잔차 블록의 양자화된 계수에 대해 역양자화 및 역변환을 수행하여 제1 향상 계층의 재구성된 잔차 블록을 획득하고; 최종적으로 제3 계층의 재구성된 블록 및 제1 향상 계층의 재구성된 잔차 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 제1 향상 계층의 재구성된 블록을 획득할 수 있다는 점에 있다.
단계 1102: 인코더는 인코딩될 픽처 블록 및 제1 향상 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 인코딩될 픽처 블록의 제2 향상 계층의 잔차 블록을 획득한다.
단계 1103: 인코더는 제2 향상 계층의 잔차 블록의 변환-블록 분할 방식을 결정한다.
제2 향상 계층의 잔차 블록의 변환-블록 분할 방식은 제1 향상 계층의 잔차 블록의 변환-블록 분할 방식과 상이하다.
인코더는 대안적으로 전술한 RDO 처리를 사용하여 제2 향상 계층의 잔차 블록의 변환-블록 분할 방식을 결정할 수 있다. 세부사항들은 여기에서 다시 설명되지 않는다.
본 출원에서, 제2 향상 계층의 잔차 블록에 사용되는 TU 분할 방식은 제1 향상 계층의 잔차 블록 및 베이스 계층의 잔차 블록에 사용되는 것들과 상이하고, 적응형 TU 분할 방법, 즉, 제2 향상 계층의 잔차 블록에 적합한 TU 분할 방식이고; 그 후 인코딩이 수행된다. 제2 향상 계층의 잔차 블록에 대한 TU 분할이 다른 계층에 대한 CU 또는 TU 분할 방식과 독립적일 때, 제2 향상 계층의 TU 크기는 더 이상 CU 크기에 의해 제한되지 않거나 또는 제2 향상 계층의 TU 크기는 더 이상 제1 향상 계층의 TU 크기에 의해 제한되지 않아서, 인코딩 유연성이 개선될 수 있게 된다.
단계 1104: 인코더는 변환-블록 분할 방식에 기초하여 제2 향상 계층의 잔차 블록에 대해 변환을 수행하여 제2 향상 계층의 잔차 블록의 비트스트림을 획득한다.
단계 1105: 디코더는 디코딩될 픽처 블록의 제2 향상 계층의 잔차 블록의 비트스트림을 획득한다.
단계 1106: 디코더는 제2 향상 계층의 잔차 블록의 비트스트림에 대해 엔트로피 디코딩, 역양자화, 및 역변환을 수행하여 제2 향상 계층의 재구성된 잔차 블록을 획득한다.
단계 1107: 디코더는 디코딩될 픽처 블록의 제1 향상 계층의 재구성된 블록을 획득한다.
단계 1108: 디코더는 제2 향상 계층의 재구성된 잔차 블록 및 제1 향상 계층의 재구성된 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 제2 향상 계층의 재구성된 블록을 획득한다.
본 출원에서, 인코딩될 픽처 블록 및 제1 향상 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 직접 계산하여 제2 향상 계층의 잔차 블록을 획득할 수 있다. 이것은 제2 향상 계층의 예측 블록을 획득하는 프로세스를 감소시켜, 인코더에 대한 처리 절차가 단순화될 수 있고, 인코더의 인코딩 효율이 개선될 수 있게 한다. 또한, 제2 향상 계층의 잔차 블록에 사용되는 TU 분할 방식은 제1 향상 계층의 잔차 블록에 사용되는 것과 상이하고, 적응형 TU 분할 방법, 즉 제2 향상 계층의 잔차 블록에 적합한 TU 분할 방식이고; 그 후 인코딩이 수행된다. 제2 향상 계층의 잔차 블록에 대한 TU 분할이 제1 향상 계층에 대한 CU 또는 TU 분할 방식과 독립적일 때, 제2 향상 계층의 TU 크기는 더 이상 CU 크기에 의해 제한되지 않거나 제2 향상 계층의 TU 크기는 더 이상 제1 향상 계층의 TU 크기에 의해 제한되지 않아서, 잔차 블록의 압축 효율이 더 효과적으로 개선될 수 있게 된다.
도 11에 도시된 방법은 2개의 계층화 방식: 공간 스케일러빌리티와 품질 스케일러빌리티에 적용가능하다. 공간 스케일러빌리티를 픽처 블록에 사용하여 제1 향상 계층 픽처 블록 및 제2 향상 계층 픽처 블록을 획득할 때, 제1 향상 계층 픽처 블록의 해상도는 제2 향상 계층 픽처 블록의 해상도보다 낮다. 따라서, 인코딩될 픽처 블록 및 제1 향상 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 인코딩될 픽처 블록의 제2 향상 계층의 잔차 블록을 획득하기 전에, 인코더는 원래의 인코딩될 픽처 블록에 대해 다운샘플링을 수행하여 제1 해상도를 갖는 인코딩될 픽처 블록을 획득하고, 제1 향상 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행하여 제1 해상도를 갖는 제1 향상 계층의 재구성된 블록을 획득할 수 있다. 다시 말해서, 인코더는 원래의 인코딩될 픽처 블록에 대해 다운샘플링을 개별적으로 수행하고, 제1 향상 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행하여, 인코딩될 픽처 블록의 해상도가 제1 향상 계층의 재구성된 블록의 해상도와 동일하게 할 수 있다.
이하에서는 여러 특정 실시예를 사용하여 도 8 및 도 11에 도시된 실시예를 설명한다.
실시예 1
도 12a 및 도 12b는 본 출원에 따른 향상 계층에 대한 코딩 방법의 예시적인 흐름도이다. 도 12a 및 도 12b에 도시된 바와 같이, 픽처 블록은 이 실시예에서 품질 스케일러빌리티를 사용하여 계층화되고, 여기서 픽처 블록은 LCU이다.
인코더 측:
단계 1: 인코더가 원래의 픽처 프레임을 획득하고, LCU에 기초하여 베이스 계층 픽처 블록을 인코딩하고, LCU의 베이스 계층 및 베이스 계층 비트스트림의 재구성된 블록을 획득한다.
이 단계에서, H.264/H.265 표준에 따르는 인코더가 인코딩을 수행하는데 사용될 수 있거나, 다른 비표준 비디오 인코더가 인코딩을 수행하는데 사용될 수 있디. 이것은 본 출원에서 한정되지 않는다. 이 실시예에서, 인코더가 H.265 표준에 따르는 예가 설명을 위해 사용된다.
LCU의 크기에 기초하여 원래의 이미지 프레임에 대해 픽처 분할이 수행된다. 최적의 예측 유닛(PU)을 획득하기 위해 각각의 LCU에 대해 CU 분할이 수행되고, 베이스 계층의 예측 블록을 획득하기 위해 픽처 블록에 대해 인트라 예측 또는 인터 예측이 수행된다. 최적의 TU 분할을 획득하기 위해, 잔차 쿼드트리(RQT) 분할 프로세스가 CU에서 수행될 수 있다. TU 분할 방식으로 베이스 계층의 잔차 블록에 대해 변환 및 양자화가 수행될 수 있고, LCU의 제어 정보, 예측 정보, 모션 정보 등과 함께 잔차 블록에 대해 엔트로피 인코딩을 수행하여 베이스 계층 비트스트림을 획득할 수 있다. 최적의 PU 및 최적의 TU 분할을 획득하는 전술한 프로세스에서, 최적의 인코딩 압축비를 달성하기 위해 RDO 처리가 사용될 수 있다.
역양자화 및 역변환 프로세스들이 양자화된 계수에 대해 수행되어 베이스 계층의 재구성된 잔차 블록을 획득한 후에, 베이스 계층의 재구성된 잔차 블록 및 베이스 계층의 예측 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여, 베이스 계층의 재구성된 블록을 획득한다. 이 실시예에서는, LCU 내의 각각의 CU에 대해 전술한 프로세스들을 수행하여, 전체 LCU의 베이스 계층의 재구성된 블록을 획득할 수 있다.
선택적으로, 단계 2가 수행되기 전에, 인코더는 LCU의 베이스 계층의 재구성된 블록에 대해 추가 후처리(예를 들어, 루프 필터링)를 수행한 다음, 후처리된 블록을 LCU의 베이스 계층의 재구성된 블록으로서 사용할 수 있다. 후처리 프로세스를 수행할지는 본 명세서에서 제한되지 않는다. 후처리 프로세스가 수행되면, 후처리를 표시하는 정보는 베이스 계층 비트스트림으로 인코딩될 필요가 있다.
단계 2: LCU에 대응하는 픽처 블록 및 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 LCU의 향상 계층의 잔차 블록을 획득한다.
단계 3: LCU의 향상 계층의 잔차 블록을 잔차 인코딩을 위한 향상-계층 인코더에 전송한다.
이 단계에서, LCU는 LCU의 향상 계층의 잔차 블록이 획득된 후에 처리를 위해 향상-계층 인코더에 전송될 수 있다. 미리 특정된 최대 변환 유닛(LTU)은 현재 대응하는 위치에서 향상 계층에 대응하는 LCU이다. 상이한 크기들의 TU들을 획득하기 위해 적응형 TU 분할이 수행된다. 특정 방법은 잔차 쿼드트리(RQT)에 기초한 RDO 방법일 수 있다. 본 방법은 다음과 같이 설명된다.
(1) LTU의 폭과 높이 양쪽 모두가 L로 설정되고, LTU는 L×L 정사각형이다. RQT 분할을 통해 획득된 최대 분할 깊이 Dmax는 미리 특정되고, 여기서 Dmax>0이고, LTU는 그 분할 깊이가 0인 TU이다. Dmax를 특정하는 관점에서, 변환을 수행하는데 사용될 수 있는 최소 TU의 크기가 고려될 필요가 있다. Dmax의 값은 변환을 수행하는데 사용될 수 있는 최소 TU의 크기의, LTU의 크기에 대한, 대응하는 깊이를 초과하지 않는다. 예를 들어, 변환 프로세스를 수행하는데 사용될 수 있는 최소 TU의 폭 및 높이의 값들이 둘 다 S이면, 최소 TU에 대응하는 분할 깊이는
Figure pct00007
이고, 여기서
Figure pct00008
는 라운딩 다운을 나타내고, 즉, Dmax의 값은 d보다 작거나 같을 필요가 있다.
(2) 그리드들에 기초하여 LTU에 대해 쿼드트리 분할을 수행하여 동일한 크기의 4개의 TU를 획득하고, TU의 크기는 LCU의 크기의 1/4이고, TU의 깊이는 1이다. 현재 TU 깊이가 최대 분할 깊이 Dmax와 동일한지 결정되고, 현재 TU 깊이가 최대 분할 깊이 Dmax와 동일하면, 분할이 추가로 수행되지 않거나; 또는 현재 TU 깊이가 최대 분할 깊이 Dmax와 동일하지 않으면, 분할 깊이의 각각의 TU에 대해 쿼드트리 분할 프로세스를 수행하여, TU를 더 작은 크기의 TU들로 분할하며, 여기서 분할된 TU의 분할 깊이는 현재 깊이 값+1이다. 이 프로세스는 쿼드트리 분할을 통해 분할 깊이가 Dmax와 동일한 TU가 획득될 때까지 수행된다.
(3) 최적의 TU 분할 방식을 획득하기 위해 RDO 선택이 수행된다. 깊이가 Dmax-1인 TU로부터 시작하여, TU의 위치에서 향상 계층의 잔차 블록에 대해 변환 및 양자화를 수행하여 양자화된 계수를 획득하고, 양자화된 계수를 프리코딩하여 코드 워드 길이 R을 획득한다. 또한, 양자화된 계수에 대해 역양자화 및 역변환 프로세스들을 수행하여 재구성된 잔차 블록을 획득하고, TU에서 재구성된 블록과 잔차 블록 사이의 제곱 차이들의 합계(SSD)를 계산하여 왜곡 값 Dr을 획득하고, R 및 Dr에 기초하여 손실 추정치 C1을 획득할 수 있다. C1은 TU에 대해 쿼드트리 분할이 수행되지 않았을 때 야기되는 손실 추정치를 나타낸다. TU에 대해 쿼드트리 분할을 수행하여, 분할 깊이들이 Dmax인 4개의 TU를 획득하고, 분할 깊이가 Dmax-1인 경우에 사용된 것과 동일한 방식으로 각각의 TU에 대해 계산을 수행하여, 4개의 TU의 손실 추정치들의 합계를 획득하고, 이는 C2로서 표시되고 TU에 대해 쿼드트리 분할이 수행될 때 야기되는 손실 추정치를 나타낸다. C1 및 C2의 값들이 비교되고, 더 작은 손실 추정치 C3=min(C1,C2)가 분할 깊이 Dmax-1의 TU의 최적의 손실 값으로서 선택되고, 더 작은 손실 추정치에 대응하는 분할 방식이 사용된다. 이 프로세스에 따르면, 유추에 의해 분할 깊이가 작은 TU에 대해 계산이 수행되고, TU에 대해 쿼드트리 분할을 수행함으로써 획득되고 TU에 대해 쿼드트리 분할을 수행하지 않음으로써 획득되는 최적의 손실 값들이 개별적으로 계산되고, TU의 최적의 손실로서 비교를 통해 더 작은 손실 값이 획득되고, 더 작은 손실 값에 대응하는 분할 방식으로 분할이 수행된다. LTU에 대해 쿼드트리 분할이 수행될 필요가 있는지를 결정하는 것이 완료될 때까지 LTU의 최적의 TU 분할 방식이 획득될 수 있다.
LTU의 최적의 TU 분할 방식이 획득된 후에, 각각의 TU 블록에서의 LTU의 향상 계층의 잔차 블록에 대해 변환 및 양자화를 분할 방식으로 수행하여 양자화된 계수를 획득하고, LTU의 분할 정보와 함께 양자화된 계수에 대해 엔트로피 인코딩을 수행하여 LTU의 향상 계층 비트스트림을 획득한다. 또한, 양자화된 계수에 대해 역양자화 및 역변환 프로세스들을 수행하여, LTU의 향상 계층의 잔차 블록의 인코딩-왜곡된 재구성된 블록을 획득한다. 픽처는 LTU의 대응하는 위치에서 LCU의 베이스 계층의 재구성된 블록에 중첩되어, LTU에 대응하는 향상 계층의 재구성된 블록을 획득한다.
여기서, LTU의 향상 계층 비트스트림은 기존의 코딩 표준에서 TU의 일부 비트스트림들의 신택스 요소 배열 및 인코딩 모드를 사용함으로써 인코딩될 수 있다.
또한, LTU에 대한 적응형 TU 분할 방식은 RQT 방식으로 제한되지 않을 수 있고, 향상 계층의 잔차 블록에 기초하여 적응형 TU 분할이 수행될 수 있는 다른 방법들이 또한 본 명세서에 적용 가능하고, TU의 분할 정보를 향상 계층 비트스트림으로 인코딩하는데 사용되는 다른 대응하는 인코딩 방법이 존재할 수 있다. LTU 내의 TU 블록들의 크기들은 분할이 수행된 후에 서로 상이할 수 있다.
단계 4: 단계 1 내지 단계 3을 사용하여 전체 소스 픽처의 모든 LCU에 대한 처리를 완료하여, 전체 픽처의 베이스 계층의 재구성된 블록 및 향상 계층의 재구성된 블록과 전체 픽처의 베이스 계층 비트스트림 및 향상 계층 비트스트림을 획득한다. 이러한 재구성된 블록들은 시간 도메인에서 후속 픽처 프레임들의 참조를 위해 참조 프레임 리스트에 배치될 수 있다. 베이스 계층 또는 향상 계층의 재구성된 블록이 획득된 후에, 추가 후처리(예를 들어, 루프 필터링)가 수행될 수 있고, 후처리된 블록이 참조 프레임 리스트에 배치된다. 이것은 본 명세서에서 제한되지 않는다. 후처리가 수행되면, 후처리된 블록이 후처리가 수행된 후에 참조 프레임 리스트에 배치될 것임을 표시하는 정보는 대응하는 비트스트림으로 인코딩될 필요가 있다.
여기서, 향상 계층의 잔차 블록이 더 이상 베이스 계층의 LCU 또는 CU 분할 방식으로 분할되지 않는다는 것을 표시하는 정보는 비트스트림으로 추가로 인코딩될 수 있어, 디코더 측은 디코딩 후에 향상 계층 처리를 수행하게 된다.
단계 5: 전체 픽처 시퀀스의 인코딩이 완료될 때까지 픽처 시퀀스에서의 픽처들의 후속 프레임들을 인코딩하기 위해 단계 1 내지 단계 4를 반복한다.
디코더 측:
단계 1: 베이스 계층 비트스트림을 획득하고, 디코딩을 위해 베이스 계층 비트스트림을 베이스-계층 디코더에 전송하여 베이스 계층의 재구성된 블록을 획득한다.
이 단계에서, 베이스-계층 디코더는 베이스 계층 비트스트림 인코딩 규칙에 대응하고 베이스 계층 비트스트림을 디코딩할 수 있는 디코더이다. 여기서, H.264/H.265 표준에 따르는 디코더가 디코딩을 수행하는데 사용될 수 있거나, 다른 비표준 비디오 디코더가 디코딩을 수행하는데 사용될 수 있다. 이것은 본 명세서에서 제한되지 않는다. 이 실시예에서, 베이스-계층 디코더가 H.265 코딩 표준에 따르는 디코더인 예가 설명을 위해 사용된다.
엔트로피 디코딩은 비트스트림이 디코더에 전송된 후에 수행된다. 이러한 방식으로, LCU의 코드 블록 분할 정보, 변환-블록 분할 정보, 제어 정보, 예측 정보, 및 모션 정보가 획득될 수 있고, 이들 정보에 기초하여 인트라 예측 및 인터 예측이 수행되어 LCU의 예측 블록을 획득한다. 또한, 잔차 정보가 획득될 수 있고, LCU의 잔차 픽처는 디코딩을 통해 획득된 변환-블록 분할 정보에 기초하여 역양자화 및 역변환 프로세스들을 수행함으로써 획득될 수 있다. 예측 블록은 잔차 픽처상에 중첩되어, LCU에 대응하는 베이스 계층의 재구성된 블록을 획득한다. 프로세스는 전체-프레임 픽처의 모든 LCU의 디코딩이 완료될 때까지 반복되어, 전체 픽처의 재구성된 블록을 획득한다.
재구성된 블록에서 후처리(예를 들어, 루프 필터링)를 수행하기 위해 사용될 필요가 있는 정보가 디코딩을 통해 획득되면, 재구성된 블록이 획득된 후에 대응하는 후처리 프로세스가 수행되어, 후처리 프로세스는 인코딩 프로세스에 대응하게 된다.
이 단계가 완료된 후에, 베이스 계층의 재구성된 블록이 획득된다.
단계 2: 향상 계층 비트스트림을 획득하고, 향상 계층 비트스트림을 디코딩을 위해 향상-계층 디코더에 전송하여, 향상 계층의 재구성된 잔차 블록을 획득하고, 향상 계층의 재구성된 블록을 추가로 획득한다.
이 단계에서, 엔트로피 디코딩은 비트스트림이 디코더에 전송된 후에 수행된다. 이러한 방식으로, LTU의 분할 정보 및 LTU의 잔차 정보가 획득되고, LTU 분할에 기초하여 잔차 정보에 대해 역양자화 및 역변환을 수행하여, LTU에 대응하는 재구성된 잔차 블록을 획득한다. 이 프로세스는 풀-프레임 픽처의 LTU들의 디코딩이 완료될 때까지 반복되어, 향상 계층의 재구성된 잔차 블록을 획득한다. 베이스 계층의 재구성된 블록 및 향상 계층의 재구성된 잔차 블록이 가산되어 재구성된 블록이 획득된다.
향상 계층이 더 이상 베이스 계층의 LCU 또는 CU 분할 방식으로 분할되지 않는다는 것을 표시하는 정보가 비트스트림 내에 존재하는 경우, 정보는 먼저 엔트로피 디코딩을 통해 획득될 수 있고, 그 후 단계 2가 수행된다.
이 단계에서, 재구성된 블록에서 후처리(예를 들어, 루프 필터링)를 수행하기 위해 사용될 필요가 있는 정보가 디코딩을 통해 획득되면, 재구성된 블록이 획득된 후에 대응하는 후처리 프로세스가 수행되어, 후처리 프로세스는 인코딩 프로세스에 대응하게 된다.
이 단계가 완료된 후, 획득된 재구성된 블록은 향상 계층의 재구성된 블록이다.
단계 3: 시간 도메인에서 픽처들의 후속 프레임들의 참조를 위해 베이스 계층의 재구성된 블록 및 향상 계층의 재구성된 블록을 참조 프레임 리스트에 배치한다.
후처리(예를 들어, 루프 필터링)가 재구성된 블록에 대해 수행된 후에 후처리된 블록이 참조 프레임 리스트에 배치될 것이라는 것을 표시하는 정보가 비트스트림에 존재하면, 정보는 엔트로피 디코딩을 통해 획득될 수 있고, 후처리는 베이스 계층의 재구성된 블록 및 향상 계층의 재구성된 블록에 대해 수행되고, 그 후 후처리를 통해 획득된 재구성된 블록들은 참조 프레임 리스트에 배치되어, 후처리 프로세스는 인코딩 프로세스에 대응하게 된다.
단계 4: 전체 픽처 시퀀스의 디코딩이 완료될 때까지 단계 1 내지 단계 3을 반복한다.
이 실시예에서, 예측 프로세스는 더 이상 향상 계층에 대해 수행되지 않지만, 적응형 분할 및 변환 코딩은 향상 계층의 잔차 블록에 대해 직접 수행된다. 예측을 요구하는 코딩 모드와 비교하여, 이 실시예는 코딩 속도를 개선하고, 하드웨어의 처리 프로세스를 감소시키고, 하드웨어의 처리 비용을 감소시킬 수 있다. 향상 계층의 잔차 블록의 경우, 베이스 계층에 대한 TU 분할 방식은 더 이상 사용되지 않지만, 더 적합한 TU 분할 방식이 코딩을 위해 적응적으로 선택되어, 잔차 블록의 압축 효율이 보다 효과적으로 개선될 수 있다. 또한, 베이스 계층에 대응하는 LCU가 처리된 후에, LCU의 획득된 잔차 블록은 후속 개별 처리를 위해 향상 계층으로 직접 전송될 수 있고, 베이스 계층의 다음 LCU는 동시에 처리될 수 있다. 따라서, 이러한 방식은 하드웨어를 사용하여 구현되는 처리 프로세스에 보다 편리하고, 처리 프로세스를 보다 효율적으로 만들 수 있다.
선택적으로, 베이스 계층 및 향상 계층은 전술한 실시예들에서 LCU의 크기에 기초하여 처리되는 대신에, 풀-프레임 픽처의 크기에 기초하여 처리될 수 있다.
실시예 2
도 13a 및 도 13b는 본 출원에 따른 향상 계층에 대한 코딩 방법의 예시적인 흐름도이다. 도 13a 및 도 13b에 도시된 바와 같이, 픽처 블록은 이 실시예에서 품질 스케일러빌리티를 사용하여 계층화되어 적어도 2개의 향상 계층을 획득하며, 여기서 픽처 블록은 LCU이다. 이 실시예는 실시예 1의 확장인데, 즉, 하나 초과의 향상 계층이 있을 때의 인코딩 및 디코딩 처리 방법들을 설명한다.
인코더 측:
단계 1은 실시예 1의 인코더 측에 의해 수행되는 단계 1과 동일하다.
단계 2는 실시예 1의 인코더 측에 의해 수행되는 단계 2와 동일하다.
단계 3은 실시예 1의 인코더 측에 의해 수행되는 단계 3과 동일하다.
선택적으로, 단계 4가 수행되기 전에, 인코더는 LCU의 베이스 계층의 재구성된 블록에 대해 후처리(예를 들어, 루프 필터링)를 추가로 수행한 다음, 후처리된 블록을 LCU의 제1 향상 계층의 재구성된 블록으로서 사용할 수 있다. 후처리 프로세스를 수행할지는 본 명세서에서 제한되지 않는다. 후처리 프로세스가 수행되면, 후처리를 표시하는 정보가 제1 향상 계층 비트스트림에 추가될 필요가 있다.
단계 4: LCU에 대응하는 픽처 블록 및 제1 향상 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 LCU의 제2 향상 계층의 잔차 블록을 획득한다.
단계 5: 단계 4에서 획득된 제2 향상 계층의 잔차 블록을 잔차 인코딩을 위해 제2 향상-계층 인코더에 전송한다. 인코딩 단계는 단계 3과 동일하다. 단계 3과의 차이는 제2 향상 계층의 잔차 블록의 인코딩-왜곡된 재구성된 블록이 제1 향상 계층의 재구성된 블록 상에 중첩되어 LCU에 대응하는 제2 향상 계층의 재구성된 블록을 획득한다는 점에 있다.
여기서, 대안적으로, 추가 후처리(예를 들어, 루프 필터링)는 중첩된 픽처에 대해 수행될 수 있고, 후처리된 픽처는 그 후 LCU의 제2 향상 계층의 재구성된 블록으로서 사용된다. 후처리 프로세스를 수행할지는 본 명세서에서 제한되지 않는다. 후처리 프로세스가 수행되면, 후처리를 표시하는 정보가 제2 향상 계층 비트스트림에 추가될 필요가 있다.
단계 6: 단계 4 및 단계 5를 반복하고, LCU에 대응하는 픽처 블록 및 현재 향상 계층의 재구성된 블록에서의 픽셀들 간의 차이를 계산하여 LCU에 대응하는 상위-계층 향상 계층의 잔차 블록을 획득하고, 잔차 블록을 잔차 인코딩을 위해 대응 계층의 향상-계층 인코더에 전송하여 상위 향상 계층의 재구성된 블록 및 상위-계층 향상 계층 비트스트림을 획득한다.
단계 7: 단계 1 내지 단계 6을 반복하고, 전체 소스 픽처의 모든 LCU에 대한 처리를 완료하여, 전체 픽처의 베이스 계층의 재구성된 블록 및 모든 향상 계층의 재구성된 블록들과 전체 픽처의 베이스 계층 비트스트림 및 모든 향상 계층 비트스트림을 획득한다. 이러한 재구성된 블록들은 시간 도메인에서 픽처들의 후속 프레임들의 참조를 위해 참조 프레임 리스트에 배치될 수 있다. 베이스 계층 또는 향상 계층들의 재구성된 블록이 획득된 후에, 추가 후처리(예를 들어, 루프 필터링)가 수행될 수 있고, 후처리된 블록이 참조 프레임 리스트에 배치된다. 이것은 본 명세서에서 제한되지 않는다. 후처리가 수행되면, 후처리된 블록이 후처리가 수행된 후에 참조 프레임 리스트에 배치될 것임을 표시하는 정보는 대응하는 비트스트림으로 인코딩될 필요가 있다.
여기서, 향상 계층들이 베이스 계층의 LCU 또는 CU 분할 방식으로 더 이상 분할되지 않는다는 것을 표시하는 정보가 비트스트림으로 추가로 인코딩될 수 있거나, 상위-계층 향상 계층이 베이스 계층의 LCU 분할 방식 또는 하위-계층 향상 계층의 LTU 분할 방식으로 더 이상 분할되지 않는다는 것을 표시하는 정보가 비트스트림으로 추가로 인코딩될 수 있으며, 따라서 디코더 측은 디코딩 후에 향상 계층 처리를 수행한다.
단계 8: 전체 픽처 시퀀스의 인코딩이 완료될 때까지 픽처 시퀀스에서의 픽처들의 후속 프레임들을 인코딩하기 위해 단계 1 내지 단계 7을 반복한다.
디코더 측:
단계 1: 베이스 계층 비트스트림을 획득하고, 디코딩을 위해 베이스 계층 비트스트림을 베이스-계층 디코더에 전송하여 베이스 계층의 재구성된 블록을 획득한다.
이 단계에서, 베이스-계층 디코더는 베이스 계층 비트스트림 인코딩 규칙에 대응하고 베이스 계층 비트스트림을 디코딩할 수 있는 디코더이다. 여기서, H.264/H.265 표준에 따르는 디코더가 디코딩을 수행하는데 사용될 수 있거나, 다른 비표준 비디오 디코더가 디코딩을 수행하는데 사용될 수 있다. 이것은 본 명세서에서 제한되지 않는다. 이 실시예에서, 베이스-계층 디코더가 H.265 코딩 표준에 따르는 디코더인 예가 설명을 위해 사용된다.
엔트로피 디코딩은 비트스트림이 디코더에 전송된 후에 수행된다. 이러한 방식으로, LCU의 코드 블록 분할 정보, 변환-블록 분할 정보, 제어 정보, 예측 정보, 및 모션 정보가 획득될 수 있고, 이들 정보에 기초하여 인트라 예측 및 인터 예측이 수행되어 LCU의 예측 블록을 획득한다. 또한, 잔차 정보가 획득될 수 있고, LCU의 잔차 픽처는 디코딩을 통해 획득된 변환-블록 분할 정보에 기초하여 역양자화 및 역변환 프로세스들을 수행함으로써 획득될 수 있다. 예측 블록은 잔차 픽처상에 중첩되어, LCU에 대응하는 베이스 계층의 재구성된 블록을 획득한다. 프로세스는 전체-프레임 픽처의 모든 LCU의 디코딩이 완료될 때까지 반복되어, 전체 픽처의 재구성된 블록을 획득한다.
재구성된 블록에서 후처리(예를 들어, 루프 필터링)를 수행하기 위해 사용될 필요가 있는 정보가 디코딩을 통해 획득되면, 재구성된 블록이 획득된 후에 대응하는 후처리 프로세스가 수행되어, 후처리 프로세스는 인코딩 프로세스에 대응하게 된다.
이 단계가 완료된 후에, 베이스 계층의 재구성된 블록이 획득된다.
단계 2: 제1 향상 계층 비트스트림을 획득하고, 제1 향상 계층 비트스트림을 디코딩을 위해 제1 향상-계층 디코더에 전송하여, 제1 향상 계층의 재구성된 잔차 블록을 획득하고 제1 향상 계층의 재구성된 블록을 추가로 획득한다.
이 단계에서, 엔트로피 디코딩은 비트스트림이 디코더에 전송된 후에 수행된다. 이러한 방식으로, LTU의 분할 정보 및 LTU의 잔차 정보가 획득되고, LTU 분할에 기초하여 잔차 정보에 대해 역양자화 및 역변환을 수행하여, LTU에 대응하는 재구성된 잔차 블록을 획득한다. 프로세스는 풀-프레임 픽처의 LTU들의 디코딩이 완료될 때까지 반복되어, 제1 향상 계층의 재구성된 잔차 블록을 획득한다. 베이스 계층의 재구성된 블록 및 제1 향상 계층의 재구성된 잔차 블록이 추가되어 재구성된 블록을 획득한다.
제1 향상 계층이 베이스 계층의 LCU 또는 CU 분할 방식으로 더 이상 분할되지 않는다는 것을 표시하는 정보가 비트스트림에 존재하면, 정보는 먼저 엔트로피 디코딩을 통해 획득될 수 있고, 그 후 단계 2가 수행된다.
이 단계에서, 재구성된 블록에서 후처리(예를 들어, 루프 필터링)를 수행하기 위해 사용될 필요가 있는 정보가 디코딩을 통해 획득되면, 재구성된 블록이 획득된 후에 대응하는 후처리 프로세스가 수행되어, 후처리 프로세스는 인코딩 프로세스에 대응하게 된다.
이 단계가 완료된 후, 획득된 재구성된 블록은 제1 향상 계층의 재구성된 블록이다.
단계 3: 제2 향상 계층 비트스트림을 획득하고, 제2 향상 계층 비트스트림을 디코딩을 위해 향상-계층 디코더에 전송하여, 제2 향상 계층의 재구성된 잔차 블록을 획득하고 제2 향상 계층의 재구성된 블록을 추가로 획득한다.
이 단계는 단계 2와 유사하고, 차이는 제1 향상 계층의 재구성된 블록이 재구성된 블록을 획득하기 위해 제2 향상 계층의 재구성된 잔차 블록에 추가된다는 점에 있다.
향상 계층들이 베이스 계층의 LCU 또는 CU 분할 방식으로 더 이상 분할되지 않는다는 것을 표시하는 정보 또는 상위-계층 향상 계층이 베이스 계층의 LCU 분할 방식으로 또는 하위-계층 향상 계층의 LTU 분할 방식으로 더 이상 분할되지 않는다는 것을 표시하는 정보가 비트스트림 내에 존재하는 경우, 정보는 엔트로피 디코딩을 통해 획득될 수 있고, 그 후 단계 3이 수행된다.
이 단계에서, 재구성된 블록에서 후처리(예를 들어, 루프 필터링)를 수행하기 위해 사용될 필요가 있는 정보가 디코딩을 통해 획득되면, 재구성된 블록이 획득된 후에 표시된 후처리 프로세스가 수행되어, 후처리 프로세스는 인코딩 프로세스에 대응하게 된다.
이 단계가 완료된 후, 획득된 재구성된 블록은 제2 향상 계층의 재구성된 블록이다.
단계 4: 단계 3을 반복하고, 현재 프레임의 모든 향상 계층 비트스트림의 디코딩이 완료될 때까지, 상위-계층 향상 계층 비트스트림을 획득하고, 디코딩을 위해 향상-계층 디코더에 상위-계층 향상 계층 비트스트림을 전송하여, 상위-계층 향상 계층의 재구성된 잔차 블록을 획득하고, 상위-계층 향상 계층의 재구성된 블록을 추가로 획득한다.
단계 5: 시간 도메인에서 픽처들의 후속 프레임들의 참조를 위해 베이스 계층의 재구성된 블록 및 모든 향상 계층의 재구성된 블록들을 참조 프레임 리스트에 배치한다.
후처리(예를 들어, 루프 필터링)가 재구성된 블록에 대해 수행된 후에 후처리된 블록이 참조 프레임 리스트에 배치될 것이라는 것을 표시하는 정보가 비트스트림에 존재하면, 정보는 엔트로피 디코딩을 통해 획득될 수 있고, 후처리는 베이스 계층의 재구성된 블록 및 향상 계층들의 재구성된 블록들에 대해 수행되고, 그 후 후처리를 통해 획득된 재구성된 블록들은 참조 프레임 리스트에 배치되어, 후처리 프로세스는 인코딩 프로세스에 대응하게 된다.
단계 6: 전체 픽처 시퀀스의 디코딩이 완료될 때까지 단계 1 내지 단계 5를 반복한다.
실시예 3
도 14a 및 도 14b는 본 출원에 따른 향상 계층에 대한 코딩 방법의 예시적인 흐름도이다. 도 14a 및 도 14b에 도시된 바와 같이, 픽처 블록은 이 실시예에서 공간 스케일러빌리티를 사용하여 계층화되어 적어도 2개의 향상 계층을 획득하는데, 여기서 픽처 블록은 LCU이다.
인코더 측:
단계 1: 인코더가 해상도 1(픽처의 폭 및 높이는 W1×H1임)을 사용하여 원래의 픽처에 대해 다운샘플링을 수행하여, 다운샘플링된 픽처 1을 생성한다. 여기서, 해상도 1은 원래의 픽처 블록의 해상도보다 낮고, 샘플링 방식은 임의의 방식, 예를 들어, 선형 보간 또는 바이큐빅 보간일 수 있다. 이것은 본 명세서에서 제한되지 않는다.
단계 2: 다운샘플링된 픽처 1을 인코딩을 위해 베이스-계층 인코더에 전송하는데, 여기서 인코딩 단계는 실시예 1의 단계 1과 동일하다.
단계 3: 픽처 해상도 2(픽처의 폭 및 높이는 W2xH2임)를 사용하여 원래의 픽처에 대해 다운샘플링을 수행하여, 다운샘플링된 픽처 2를 생성하는데, 여기서 해상도 2는 해상도 1보다 높다. 다운샘플링된 픽처 1에 대한 다운샘플링된 픽처 2의 스케일링 비율은 폭이 Sw1=W2/W1이고 높이가 Sh1=H2/H1이다.
단계 4: LCU의 베이스 계층의 재구성된 블록에 대해 업샘플링을 수행하여, 제1 향상 계층의 LTU의 것과 크기가 동일한 재구성된 블록을 획득하고, LTU에 대응하는 제1 향상 계층의 잔차 블록을 추가로 획득한다.
제1 향상 계층의 LTU의 크기를 스케일링 비율 Sw1×Sh1이 곱해진 베이스 계층에 대응하는 LCU의 크기로 설정하여 크기 Lw1×Lh1의 LTU를 획득하는데, 여기서 Lw1=L×Sw1이고, Lh1=L×Sh1이다. LCU에 대응하는 베이스 계층의, 단계 2에서 획득된, 재구성된 블록에 대해 업샘플링을 수행하여 크기 Lw1×Lh1을 획득함으로써, 제1 향상 계층의 LTU와 동일한 크기를 갖는 베이스 계층의 재구성된 블록을 획득한다. 또한, 베이스 계층의 재구성된 블록과 동일한 위치에 있는 LTU 소스 픽처가 다운샘플링된 픽처 2로부터 선택된다. 베이스 계층의 소스 픽처와 재구성된 블록 사이의 차이를 계산하여 제1 향상 계층의 LTU에서의 잔차 블록을 획득한다. 여기서, 업샘플링 방법은 단계 1에서의 다운샘플링 방법에 대응할 수 있거나 대응하지 않을 수 있다. 이것은 본 명세서에서 제한되지 않는다.
단계 5: 제1 향상 계층의 LTU에서의 잔차 블록을 잔차 인코딩을 위해 제1 향상-계층 인코더에 전송한다. 인코딩 단계는 실시예 1의 단계 3과 동일하다.
단계 6: 픽처 해상도 3(픽처의 폭 및 높이는 W3xH3임)을 사용하여 원래의 픽처에 대해 다운샘플링을 수행하여, 다운샘플링된 픽처 3을 생성하는데, 여기서 해상도 3은 해상도 2보다 높다. 다운샘플링된 픽처 2에 대한 다운샘플링된 픽처 3의 스케일링 비율은 폭이 Sw2=W3/W2이고 높이가 Sh2=H3/H2이다.
단계 7: 제1 향상 계층의 LTU의 재구성된 블록에 대해 업샘플링을 수행하여, 제2 향상 계층의 LTU와 동일한 크기를 갖는 재구성된 블록을 획득하고, LTU에 대응하는 제2 향상 계층의 잔차 블록을 추가로 획득한다.
이 단계는 단계 4와 유사하다. 제2 향상 계층의 LTU의 크기는 스케일링 비율 Sw2×Sh2이 곱해진 제1 향상 계층에 대응하는 LTU의 크기로 설정된다. 제1 향상 계층의 LTU의 재구성된 블록에 대해 업샘플링을 수행하여 제2 향상 계층의 LTU와 동일한 크기를 갖는 재구성된 블록을 획득한다. 동일한 위치에 있는 LTU 소스 픽처가 다운샘플링된 픽처 3으로부터 선택된다. 소스 픽처와 재구성된 블록 사이의 차이를 계산하여 제2 향상 계층의 LTU에서의 잔차 블록을 획득한다.
단계 8: 제2 향상 계층의 LTU에서의 잔차 블록을 잔차 인코딩을 위해 제2 향상-계층 인코더에 전송한다. 인코딩 단계는 실시예 1의 단계 3과 동일하다.
단계 9: 모든 향상 계층의 LTU들에 대응하는 향상 계층 비트스트림들 및 재구성된 블록들이 획득될 때까지 단계 6 내지 단계 8을 반복한다.
단계 10: 단계 1 내지 단계 9를 반복하고, 모든 계층으로부터 입력된 다운샘플링된 픽처들의 모든 LTU에 대한 처리를 완료하여, 전체 픽처의 베이스 계층의 재구성된 블록 및 모든 향상 계층의 재구성된 블록들과 베이스 계층 비트스트림 및 모든 향상 계층 비트스트림들을 획득한다. 이러한 재구성된 블록들은 시간 도메인에서 픽처들의 후속 프레임들의 참조를 위해 참조 프레임 리스트에 배치될 수 있다. 베이스 계층 또는 향상 계층들의 재구성된 블록이 획득된 후에, 추가 후처리(예를 들어, 루프 필터링)가 수행될 수 있고, 후처리된 블록이 참조 프레임 리스트에 배치된다. 이것은 본 명세서에서 제한되지 않는다. 후처리가 수행되면, 후처리된 블록이 후처리가 수행된 후에 참조 프레임 리스트에 배치될 것임을 표시하는 정보는 대응하는 비트스트림으로 인코딩될 필요가 있다.
여기서, 모든 계층으로부터 입력된 다운샘플링된 픽처들의 해상도 정보는 비트스트림으로 인코딩되어, 디코더는 모든 계층에 대한 처리를 수행하게 된다. 또한, 각각의 계층에 대해 업샘플링을 수행하기 위한 방법에 관한 정보는 비트스트림으로 추가로 인코딩될 수 있다.
단계 11: 전체 픽처 시퀀스의 인코딩이 완료될 때까지 픽처 시퀀스에서의 픽처들의 후속 프레임들을 인코딩하기 위해 단계 1 내지 단계 10을 반복한다.
디코더 측:
단계 1은 실시예 1의 디코더 측에 의해 수행되는 단계 1과 동일하다.
단계 2: 처리되는 픽처 블록의 제1 향상 계층 비트스트림을 획득하고, 제1 향상 계층 비트스트림을 디코딩을 위해 향상-계층 디코더에 전송하여, 제1 향상 계층의 재구성된 잔차 블록을 획득한다. 이 단계는 실시예 1의 단계 2에서 제1 향상 계층의 재구성된 잔차 블록을 획득하는 프로세스와 동일하다.
단계 3: 제1 향상 계층의 잔차 블록의 해상도에 기초하여, 베이스 계층의 재구성된 블록에 대해 업샘플링을 수행하여 베이스 계층의 재구성된 블록의 해상도가 제1 향상 계층의 잔차 블록의 해상도와 동일한 것을 보장한다. 베이스 계층의 재구성된 블록 및 제1 향상 계층의 잔차 블록을 추가하여 제1 향상 계층의 재구성된 블록을 획득한다.
업샘플링 방법에 관한 정보가 비트스트림에 존재하면, 정보는 먼저 엔트로피 디코딩을 통해 획득될 수 있다. 이 단계에서, 업샘플링은 획득된 업샘플링 정보에 기초하여 베이스 계층의 재구성된 블록에 대해 수행된다.
단계 4: 처리되고 있는 픽처 블록의 제2 향상 계층 비트스트림을 획득하고, 제2 향상 계층 비트스트림을 디코딩을 위해 향상-계층 디코더에 전송하여, 제2 향상 계층의 재구성된 잔차 블록을 획득한다. 이 단계는 제1 향상 계층의 잔차 블록을 획득하는 프로세스와 동일하다.
단계 5: 제2 향상 계층의 잔차 블록의 해상도에 기초하여, 제1 향상 계층의 재구성된 블록에 대해 업샘플링을 수행하여 제1 향상 계층의 재구성된 블록의 해상도가 제2 향상 계층의 잔차 블록의 해상도와 동일하도록 보장한다. 제1 향상 계층의 재구성된 블록 및 제2 향상 계층의 잔차 블록을 추가하여 제2 향상 계층의 재구성된 블록을 획득한다.
업샘플링 방법에 관한 정보가 비트스트림에 존재하면, 정보는 먼저 엔트로피 디코딩을 통해 획득될 수 있다. 이 단계에서, 업샘플링은 업샘플링 정보에 기초하여 제1 향상 계층의 재구성된 블록에 대해 수행된다.
단계 6: 단계 4 및 단계 5를 반복하고, 현재 프레임의 모든 향상 계층 비트스트림의 디코딩이 완료될 때까지, 상위-계층 향상 계층 비트스트림을 획득하고, 상위-계층 향상 계층 비트스트림을 디코딩을 위해 향상-계층 디코더에 전송하여 상위-계층 향상 계층의 재구성된 잔차 블록을 획득하고, 상위-계층 향상 계층의 재구성된 잔차 블록을 하위-계층 향상 계층의 재구성된 블록에 대한 업샘플링에 의해 획득된 픽처에 추가하여 상위-계층 향상 계층의 재구성된 블록을 획득한다.
단계 7은 실시예 1의 디코더 측에 의해 수행되는 단계 3과 동일하다.
단계 8: 전체 픽처 시퀀스의 디코딩이 완료될 때까지 단계 1 내지 단계 7을 반복한다.
실시예 4
도 15는 본 출원에 따른 향상 계층에 대한 코딩 방법의 예시적인 흐름도이다. 도 15에 도시된 바와 같이, 픽처 블록은 이 실시예에서 품질 스케일러빌리티를 사용하여 계층화된다. 베이스 계층에서, 풀-프레임 픽처가 처리되고; 향상 계층에서, 부분 영역(예를 들어, 풀-프레임 픽처에서 ROI)이 풀-프레임 픽처로부터 선택되고, 부분 영역이 처리된다. 실시예 1과의 차이는, 이러한 실시예에서, 원래의 픽처 프레임으로부터 부분 영역이 선택되고, 대응하는 부분 영역이 베이스 계층의 재구성된 블록으로부터 선택되고, 2개의 부분 영역에서의 대응하는 픽셀들 사이의 차이를 계산하여 부분 영역의 잔차 블록을 획득하고, 잔차 블록이 향상 계층의 잔차 블록으로서 향상-계층 인코더에 전송된다는 점에 있다.
인코더 측:
단계 1은 실시예 1의 인코더 측에 의해 수행되는 단계 1과 동일하다.
단계 2: 원래의 픽처 프레임의 부분 영역(예를 들어, ROI)과 베이스 계층의 재구성된 블록의 대응하는 부분 영역 사이의 차이 연산을 수행하여 부분 영역의 향상 계층의 잔차 블록을 획득한다.
하나 이상의 부분 영역이 존재할 수 있다는 점에 유의해야 한다. 이것은 본 출원에서 특별히 제한되지 않는다. 복수의 부분 영역이 존재하는 경우, 각각의 부분 영역에 대해 다음 단계들이 개별적으로 수행된다.
단계 3은 실시예 1의 인코더 측에 의해 수행되는 단계 3과 동일하다. 차이는: 역양자화 및 역변환이 양자화된 계수에 대해 수행된 후, 부분 영역의 향상 계층의 재구성된 잔차 블록이 획득되고, 부분 영역의 향상 계층의 재구성된 잔차 블록이 대응하는 부분 영역의 베이스 계층의 재구성된 블록에 중첩되어 부분 영역의 향상 계층의 재구성된 블록을 획득한다는 점에 있다. 부분 영역의 위치 및 크기 정보는 비트스트림으로 인코딩될 수 있다.
단계 4는 실시예 1의 인코더 측에 의해 수행되는 단계 4와 동일하다.
단계 5는 실시예 1의 인코더 측에 의해 수행되는 단계 5와 동일하다.
디코더 측:
단계 1은 실시예 1의 디코더 측에 의해 수행되는 단계 1과 동일하다.
단계 2는 실시예 1의 디코더 측에 의해 수행되는 단계 2와 동일하다. 차이는: 부분 영역의 향상 계층의 재구성된 잔차 블록이 획득된 후, 향상 계층의 재구성된 잔차 블록이 대응하는 부분 영역의 베이스 계층의 재구성된 블록에 중첩되어 부분 영역의 향상 계층의 재구성된 블록을 획득한다는 점에 있다.
부분 영역의 위치 및 크기 정보가 비트스트림에 존재하는 경우, 위치 및 크기 정보는 먼저 디코딩을 통해 획득되고, 부분 영역은 위치 및 크기 정보에 기초하여 베이스 계층의 재구성된 블록에서 발견되고, 그 후 부분 영역의 향상 계층의 재구성된 잔차 블록은 베이스 계층의 재구성된 블록 상에 중첩된다.
단계 3은 실시예 1의 디코더 측에 의해 수행되는 단계 3과 동일하다.
단계 4는 실시예 1의 디코더 측에 의해 수행되는 단계 4와 동일하다.
실시예 5
이 실시예에서, 픽처 블록은 하이브리드 스케일러빌리티, 즉 품질 스케일러빌리티 및 공간 스케일러빌리티를 사용하여 계층화되어 적어도 2개의 향상 계층을 획득하는데, 여기서 픽처 블록은 LCU이다.
실시예 2 및 실시예 3의 계층화 구조들로부터, 품질 스케일러빌리티의 경우에 향상 계층들의 잔차 블록들에 사용되는 향상-계층 인코더들은 공간 스케일러빌리티의 경우에서의 것들과 동일하고, 잔차 블록들은 2개의 계층화 구조에 대한 적응형 TU 분할에 기초하여 인코딩된다는 것을 알 수 있다. 인코딩 프로세스들은 실시예 1 내지 실시예 4에서 상세히 설명되었다.
2개의 계층화 구조 사이의 차이는: 공간 스케일러빌리티에서, 하위-계층 향상 계층의 재구성된 블록에 대해 업샘플링 프로세스를 수행하여 상위-계층 향상 계층의 LTU의 것에 대응하는 크기의 재구성된 블록을 획득할 필요가 있고, 소스 픽처 블록 및 업샘플링을 통해 획득된 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산함으로써 잔차 블록이 획득되고, 잔차 블록은 상위-계층 향상-계층 인코더에 전송된다는 점에 있다. 또한, 업샘플링을 통해 획득되는 재구성된 블록은 상위-계층 향상 계층의 재구성된 잔차 블록에 중첩되어 상위-계층 향상 계층의 재구성된 블록을 획득한다. 따라서, 계층화 프로세스에서, 임의의 계층에 대해 공간 스케일러빌리티 또는 품질 스케일러빌리티가 사용될 수 있으며, 2개의 계층화 방식이 혼합 방식으로 사용될 수 있다. 예를 들어, 제1 향상 계층은 공간 스케일러빌리티를 사용하고, 제2 향상 계층은 품질 스케일러빌리티를 사용하며, 제3 향상 계층도 공간 스케일러빌리티를 사용한다.
이에 대응하여, 전술한 하이브리드 계층화된 비트스트림들에 기초한 디코딩 방법이 획득될 수 있다. 실시예 2 및 실시예 3에 기초하여, 품질 스케일러빌리티의 경우 향상 계층 비트스트림에 대한 디코딩 모드는 공간 스케일러빌리티의 경우에서와 동일하다는 것을 알 수 있다. 디코딩 모드들 양자는 TU 분할 정보 및 잔차 정보가 직접 디코딩되고, 그 후 잔차 정보가 TU 분할 정보에 기초하여 처리되어 향상 계층의 재구성된 잔차 블록이 획득되는 프로세스들이다. 따라서, 하이브리드 계층화된 비트스트림들, 즉 품질 스케일러빌리티 비트스트림 및 공간 스케일러빌리티 비트스트림은 또한 특정 계층들에 대응하는 계층화 방식들로 정확하게 디코딩될 수 있다.
도 16은 본 출원에 따른 인코딩 장치의 구조의 예시적인 개략도이다. 도 16에 도시된 바와 같이, 이 실시예에서의 장치는 비디오 인코더(20)에 대응할 수 있다. 장치는 획득 모듈(1601), 결정 모듈(1602), 및 인코딩 모듈(1603)을 포함할 수 있다.
가능한 구현에서, 획득 모듈(1601)은 인코딩될 픽처 블록의 베이스 계층의 재구성된 블록을 획득하고; 인코딩될 픽처 블록 및 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 인코딩될 픽처 블록의 향상 계층의 잔차 블록을 획득하도록 구성되고- 향상 계층 픽처 블록의 해상도는 베이스 계층 픽처 블록의 해상도보다 낮지 않거나, 향상 계층 픽처 블록의 인코딩 품질은 베이스 계층 픽처 블록의 인코딩 품질보다 낮지 않음 -; 결정 모듈(1602)은 향상 계층의 잔차 블록의 변환-블록 분할 방식을 결정하도록 구성되고- 향상 계층의 잔차 블록의 변환-블록 분할 방식은 베이스 계층의 잔차 블록의 변환-블록 분할 방식과 상이함 -; 인코딩 모듈(1603)은 변환-블록 분할 방식에 기초하여 향상 계층의 잔차 블록에 대해 변환을 수행하여 향상 계층의 잔차 블록의 비트스트림을 획득하도록 구성된다.
가능한 구현에서, 결정 모듈(1602)은 구체적으로: 향상 계층의 잔차 블록의 제1 최대 변환 유닛 LTU에 대해 반복 트리 구조 분할을 수행하여 복수의 분할 깊이의 변환 유닛들 TU들을 획득하고 - 복수의 분할 깊이의 최대 분할 깊이는 Dmax와 동일하고, Dmax는 양의 정수임 -; 제1 TU의 손실 추정치 및 제1 TU에 포함된 복수의 제2 TU의 손실 추정치들의 합계에 기초하여 제1 TU의 분할 방식을 결정하도록 구성되며, 제1 TU의 분할 깊이는 i이고, 제2 TU의 깊이는 i+1이고, 0≤i≤Dmax-1이다.
가능한 구현에서, 결정 모듈(1602)은 구체적으로: TU에 대해 변환 및 양자화를 수행하여 TU의 양자화된 계수를 획득하고- TU는 제1 TU 또는 제2 TU임 -; TU의 양자화된 계수를 프리코딩하여 TU의 코드 워드 길이를 획득하고; TU의 양자화된 계수에 대해 역양자화 및 역변환을 수행하여 TU의 재구성된 블록을 획득하고; TU와 TU의 재구성된 블록의 제곱 차이들의 합계 SSD를 계산하여 TU의 왜곡 값을 획득하고; TU의 코드 워드 길이 및 TU의 왜곡 값에 기초하여 TU의 손실 추정치를 획득하고; 제1 TU의 손실 추정치와 복수의 제2 TU의 손실 추정치들의 합계 중 더 작은 것을 결정하고; 더 작은 것에 대응하는 분할 방식을 제1 TU의 분할 방식으로서 결정하도록 구성된다.
가능한 구현에서, LTU의 크기는 베이스 계층의 재구성된 블록의 크기와 동일하거나, 또는 LTU의 크기는 베이스 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행함으로써 획득된 재구성된 블록의 크기와 동일하다.
가능한 구현에서, 인코딩될 픽처 블록은 풀-프레임 픽처에서 최대 코딩 유닛 LCU이거나, 인코딩될 픽처 블록은 풀-프레임 픽처이거나, 인코딩될 픽처 블록은 풀-프레임 픽처에서 관심 영역 ROI이다.
가능한 구현에서, 베이스 계층 및 향상 계층은 해상도 또는 인코딩 품질 스케일러빌리티에 기초하여 획득된다.
가능한 구현에서, 베이스 계층 및 향상 계층이 해상도 스케일러빌리티에 기초하여 획득될 때, 획득 모듈(1601)은: 원래의 인코딩될 픽처 블록에 대해 다운샘플링을 수행하여 제1 해상도를 갖는 인코딩될 픽처 블록을 획득하고; 베이스 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행하여 제1 해상도를 갖는 베이스 계층의 재구성된 블록을 획득하도록 추가로 구성된다.
가능한 구현에서, 획득 모듈(1601)은 구체적으로: 처리될 픽처 블록 및 처리될 픽처 블록의 예측 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 처리될 픽처 블록의 잔차 블록을 획득하고; 처리될 픽처 블록의 잔차 블록에 대해 변환 및 양자화를 수행하여 처리될 픽처 블록의 양자화된 계수를 획득하고; 처리될 픽처 블록의 양자화된 계수에 대해 역양자화 및 역변환을 수행하여 처리될 픽처 블록의 재구성된 잔차 블록을 획득하고; 처리될 픽처 블록의 예측 블록 및 처리될 픽처 블록의 재구성된 잔차 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 베이스 계층의 재구성된 블록을 획득하도록 구성된다.
가능한 구현에서, 획득 모듈(1601)은: 인코딩될 픽처 블록의 제1 향상 계층의 재구성된 블록을 획득하고; 인코딩될 픽처 블록 및 제1 향상 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 인코딩될 픽처 블록의 제2 향상 계층의 잔차 블록을 획득하고- 제2 향상 계층 픽처 블록의 해상도는 제1 향상 계층 픽처 블록의 해상도보다 낮지 않거나, 제2 향상 계층 픽처 블록의 인코딩 품질은 제1 향상 계층 픽처 블록의 인코딩 품질보다 낮지 않음 -; 결정 모듈(1602)은 제2 향상 계층의 잔차 블록의 변환-블록 분할 방식을 결정하도록 구성되고- 제2 향상 계층의 잔차 블록의 변환-블록 분할 방식은 제1 계층의 잔차 블록의 변환-블록 분할 방식과 상이함 -; 인코딩 모듈(1603)은 변환-블록 분할 방식에 기초하여 제2 향상 계층의 잔차 블록에 대해 변환을 수행하여 제2 향상 계층의 잔차 블록의 비트스트림을 획득하도록 구성된다.
가능한 구현에서, 결정 모듈(1602)은 구체적으로: 제2 향상 계층의 잔차 블록의 제1 최대 변환 유닛 LTU에 대해 반복 트리 구조 분할을 수행하여 복수의 분할 깊이의 변환 유닛들 TU들을 획득하고- 복수의 분할 깊이의 최대 분할 깊이는 Dmax와 동일하고, Dmax는 양의 정수임 -; 제1 TU의 손실 추정치 및 제1 TU에 포함되는 복수의 제2 TU의 손실 추정치들의 합계에 기초하여 제1 TU의 분할 방식을 결정하도록 구성되며, 제1 TU의 분할 깊이는 i이고, 제2 TU의 깊이는 i+1이고, 0≤i≤Dmax-1이다.
가능한 구현에서, 결정 모듈(1602)은 구체적으로: TU에 대해 변환 및 양자화를 수행하여 TU의 양자화된 계수를 획득하고- TU는 제1 TU 또는 제2 TU임 -; TU의 양자화된 계수를 프리코딩하여 TU의 코드 워드 길이를 획득하고; TU의 양자화된 계수에 대해 역양자화 및 역변환을 수행하여 TU의 재구성된 블록을 획득하고; TU와 TU의 재구성된 블록의 제곱 차이들의 합계 SSD를 계산하여 TU의 왜곡 값을 획득하고; TU의 코드 워드 길이 및 TU의 왜곡 값에 기초하여 TU의 손실 추정치를 획득하고; 제1 TU의 손실 추정치와 복수의 제2 TU의 손실 추정치들의 합계 중 더 작은 것을 결정하고; 더 작은 것에 대응하는 분할 방식을 제1 TU의 분할 방식으로서 결정하도록 구성된다.
가능한 구현에서, LTU의 크기는 제1 향상 계층의 재구성된 블록의 크기와 동일하거나, LTU의 크기는 제1 향상 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행함으로써 획득된 재구성된 블록의 크기와 동일하다.
가능한 구현에서, 인코딩될 픽처 블록은 풀-프레임 픽처에서 최대 코딩 유닛 LCU이거나, 인코딩될 픽처 블록은 풀-프레임 픽처이거나, 인코딩될 픽처 블록은 풀-프레임 픽처에서 관심 영역 ROI이다.
가능한 구현에서, 제1 향상 계층 및 제2 향상 계층은 품질 스케일러빌리티 방식 또는 공간 스케일러빌리티 방식으로 계층화를 통해 획득된다.
가능한 구현에서, 제1 향상 계층 및 제2 향상 계층이 공간 스케일러빌리티 방식으로 계층화를 통해 획득될 때, 획득 모듈(1601)은: 원래의 인코딩될 픽처 블록에 대해 다운샘플링을 수행하여 제2 해상도를 갖는 인코딩될 픽처 블록을 획득하고; 제1 향상 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행하여 제2 해상도를 갖는 제1 향상 계층의 재구성된 블록을 획득하도록 추가로 구성된다.
가능한 구현에서, 획득 모듈(1601)은 구체적으로: 처리될 픽처 블록 및 처리될 픽처 블록의 제3 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 제1 향상 계층의 잔차 블록을 획득하고- 제1 향상 계층 픽처 블록의 해상도는 제3-계층 픽처 블록의 해상도보다 낮지 않거나, 제1 향상 계층 픽처 블록의 인코딩 품질은 제3-계층 픽처 블록의 인코딩 품질보다 낮지 않음 -; 제1 향상 계층의 잔차 블록에 대해 변환 및 양자화를 수행하여 제1 향상 계층의 잔차 블록의 양자화된 계수를 획득하고; 제1 향상 계층의 잔차 블록의 양자화된 계수에 대해 역양자화 및 역변환을 수행하여 제1 향상 계층의 재구성된 잔차 블록을 획득하고; 제3 계층의 재구성된 블록 및 제1 향상 계층의 재구성된 잔차 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 제1 향상 계층의 재구성된 블록을 획득하도록 구성된다.
이 실시예에서의 장치는 도 8 또는 도 11에 도시된 방법 실시예에서 인코더에 의해 구현되는 기술적 해결책을 구현하도록 구성될 수 있다. 그 구현 원리 및 기술적 효과들은 방법 실시예들에서의 것들과 유사하다. 세부사항들은 여기에서 다시 설명되지 않는다.
도 17은 본 출원에 따른 디코딩 장치의 구조의 예시적인 개략도이다. 도 17에 도시된 바와 같이, 이 실시예에서의 장치는 비디오 디코더(30)에 대응할 수 있다. 장치는 획득 모듈(1701), 디코딩 모듈(1702), 및 재구성 모듈(1703)을 포함할 수 있다.
가능한 구현에서, 획득 모듈(1701)은 디코딩될 픽처 블록의 향상 계층의 잔차 블록의 비트스트림을 획득하도록 구성되고; 디코딩 모듈(1702)은 향상 계층의 잔차 블록의 비트스트림에 대해 엔트로피 디코딩, 역양자화, 및 역변환을 수행하여 향상 계층의 재구성된 잔차 블록을 획득하도록 구성되고; 재구성 모듈(1703)은 디코딩될 픽처 블록의 베이스 계층의 재구성된 블록을 획득하고- 향상 계층 픽처 블록의 해상도는 베이스 계층 픽처 블록의 해상도보다 낮지 않거나, 또는 향상 계층 픽처 블록의 인코딩 품질은 베이스 계층 픽처 블록의 인코딩 품질보다 낮지 않음 -; 향상 계층의 재구성된 잔차 블록 및 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 향상 계층의 재구성된 블록을 획득하도록 구성된다.
가능한 구현에서, 디코딩될 픽처 블록은 풀-프레임 픽처에서 최대 코딩 유닛 LCU이거나, 디코딩될 픽처 블록은 풀-프레임 픽처이거나, 디코딩될 픽처 블록은 풀-프레임 픽처에서 관심 영역 ROI이다.
가능한 구현에서, 베이스 계층 및 향상 계층은 품질 스케일러빌리티 방식 또는 공간 스케일러빌리티 방식으로 계층화를 통해 획득된다.
가능한 구현에서, 베이스 계층 및 향상 계층이 공간 스케일러빌리티 방식으로 계층화를 통해 획득될 때, 재구성 모듈(1703)은 베이스 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행하여 해상도가 제3 해상도인 베이스 계층의 재구성된 블록을 획득하도록 추가로 구성되며, 제3 해상도는 향상 계층의 재구성된 잔차 블록의 해상도와 동일하다.
가능한 구현에서, 재구성 모듈(1703)은 구체적으로: 베이스 계층의 잔차 블록의 비트스트림을 획득하고; 베이스 계층의 잔차 블록의 비트스트림에 대해 엔트로피 디코딩을 수행하여 베이스 계층의 잔차 블록의 디코딩된 데이터를 획득하고; 베이스 계층의 잔차 블록의 디코딩된 데이터에 대해 역양자화 및 역변환을 수행하여 베이스 계층의 재구성된 잔차 블록을 획득하고; 베이스 계층의 잔차 블록의 디코딩된 데이터에 기초하여 베이스 계층의 예측 블록을 획득하고; 베이스 계층의 재구성된 잔차 블록 및 베이스 계층의 예측 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 베이스 계층의 재구성된 블록을 획득하도록 구성된다.
가능한 구현에서, 획득 모듈(1701)은 디코딩될 픽처 블록의 제2 향상 계층의 잔차 블록의 비트스트림을 획득하도록 구성되고; 디코딩 모듈(1702)은 제2 향상 계층의 잔차 블록의 비트스트림에 대해 엔트로피 디코딩, 역양자화, 및 역변환을 수행하여 제2 향상 계층의 재구성된 잔차 블록을 획득하도록 구성되고; 재구성 모듈(1703)은 디코딩될 픽처 블록의 제1 향상 계층의 재구성된 블록을 획득하고- 제2 향상 계층 픽처 블록의 해상도는 제1 향상 계층 픽처 블록의 해상도보다 낮지 않거나, 제2 향상 계층 픽처 블록의 인코딩 품질은 제1 향상 계층 픽처 블록의 인코딩 품질보다 낮지 않음 -; 제2 향상 계층의 재구성된 잔차 블록 및 제1 향상 계층의 재구성된 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 제2 향상 계층의 재구성된 블록을 획득하도록 구성된다.
가능한 구현에서, 디코딩될 픽처 블록은 풀-프레임 픽처에서 최대 코딩 유닛 LCU이거나, 디코딩될 픽처 블록은 풀-프레임 픽처이거나, 디코딩될 픽처 블록은 풀-프레임 픽처에서 관심 영역 ROI이다.
가능한 구현에서, 제1 향상 계층 및 제2 향상 계층은 품질 스케일러빌리티 방식 또는 공간 스케일러빌리티 방식으로 계층화를 통해 획득된다.
가능한 구현에서, 제1 향상 계층 및 제2 향상 계층이 공간 스케일러빌리티 방식으로 계층화를 통해 획득될 때, 재구성 모듈(1703)은 제1 향상 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행하여 해상도가 제4 해상도인 제1 향상 계층의 재구성된 블록을 획득하도록 추가로 구성되며, 제4 해상도는 제2 향상 계층의 재구성된 잔차 블록의 해상도와 동일하다.
가능한 구현에서, 재구성 모듈(1703)은 구체적으로: 제1 향상 계층의 잔차 블록의 비트스트림을 획득하고; 제1 향상 계층의 잔차 블록의 비트스트림에 대해 엔트로피 디코딩, 역양자화, 및 역변환을 수행하여 제1 향상 계층의 재구성된 잔차 블록을 획득하고; 제1 향상 계층의 재구성된 잔차 블록 및 제3 계층의 재구성된 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 제1 향상 계층의 재구성된 블록을 획득하도록 구성되고, 제1 향상 계층 픽처 블록의 해상도는 제3-계층 픽처 블록의 해상도보다 낮지 않거나, 제1 향상 계층 픽처 블록의 인코딩 품질은 제3-계층 픽처 블록의 인코딩 품질보다 낮지 않다.
이 실시예에서의 장치는 도 8 또는 도 11에 도시된 방법 실시예에서의 디코더에 의해 구현되는 기술적 해결책을 구현하도록 구성될 수 있다. 그 구현 원리 및 기술적 효과들은 방법 실시예들에서의 것들과 유사하다. 세부사항들은 여기에서 다시 설명되지 않는다.
구현 프로세스에서, 전술한 방법 실시예들의 단계들은 프로세서 내의 하드웨어의 집적 로직 회로 또는 소프트웨어 형태의 명령어들을 사용하여 완료될 수 있다. 프로세서는 범용 프로세서, 디지털 신호 프로세서(digital signal processor, DSP), 주문형 집적 회로(application-specific integrated circuit, ASIC), 필드 프로그램가능 게이트 어레이(field programmable gate array, FPGA) 또는 또 다른 프로그램가능 로직 디바이스, 이산 게이트, 트랜지스터 로직 디바이스, 또는 이산 하드웨어 컴포넌트일 수 있다. 범용 프로세서는 마이크로프로세서일 수 있거나, 또는 프로세서는 임의의 종래의 프로세서, 또는 그와 유사한 것일 수 있다. 본 출원의 실시예들에 개시된 방법들의 단계들은 하드웨어 인코딩 프로세서를 사용하여 직접 구현될 수 있거나, 인코딩 프로세서 내의 하드웨어와 소프트웨어 모듈의 조합을 사용하여 구현될 수 있다. 소프트웨어 모듈은 해당 분야에서의 발달된(mature) 저장 매체, 예를 들어, 랜덤 액세스 메모리, 플래시 메모리, 판독 전용 메모리, 프로그램가능 판독 전용 메모리, 소거가능한 프로그램가능 메모리, 또는 레지스터에 있을 수 있다. 저장 매체는 메모리에 위치하고, 프로세서는 메모리로부터 정보를 판독하고 프로세서의 하드웨어와 조합하여 전술한 방법들에서의 단계들을 완료한다.
다양한 실시예들에서 언급된 메모리는 휘발성 메모리 또는 비휘발성 메모리일 수 있거나, 휘발성 메모리 및 비휘발성 메모리 둘 다를 포함할 수 있다. 비휘발성 메모리는 판독 전용 메모리(read-only memory, ROM), 프로그램가능 판독 전용 메모리(프로그램 가능 ROM, PROM), 소거가능한 프로그램가능 판독 전용 메모리(소거가능한 PROM, EPROM), 전기적 소거가능한 프로그램가능 판독 전용 메모리(전기적 EPROM, 줄여서 EEPROM) 또는 플래시 메모리일 수 있다. 휘발성 메모리는 랜덤 액세스 메모리(random access memory, RAM)일 수 있으며 외부 캐시로서 사용된다. 제한적인 설명이 아니라 예로서, 많은 형태의 RAM들, 예를 들어, 정적 랜덤 액세스 메모리(static RAM, SRAM), 동적 랜덤 액세스 메모리(dynamic RAM, DRAM), 동기식 동적 랜덤 액세스 메모리(synchronous DRAM, SDRAM), 더블 데이터 레이트 동기식 동적 랜덤 액세스 메모리(double data rate SDRAM, DDR SDRAM), 증강된 동기식 동적 랜덤 액세스 메모리(enhanced SDRAM, ESDRAM), 싱크링크 동적 랜덤 액세스 메모리(synchlink DRAM, SLDRAM) 및 직접 램버스 동적 랜덤 액세스 메모리(direct rambus RAM, DR RAM) 등이 사용될 수 있다. 본 명세서에서 설명되는 시스템들 및 방법들에서의 메모리는 이러한 메모리들 및 임의의 다른 적절한 타입들의 메모리들을 포함하지만 이에 제한되는 것은 아니라는 점에 유의해야 한다.
본 기술분야의 숙련된 자라면, 본 명세서에 개시된 실시예들에서 설명되는 예들과 결합하여, 전자 하드웨어에 의해 또는 컴퓨터 소프트웨어와 전자 하드웨어의 조합에 의해 유닛들 및 알고리즘 단계들이 구현될 수 있다는 것을 인지할 수 있다. 기능들이 하드웨어 또는 소프트웨어에 의해 수행되는지는 기술적 해결책들의 특정 애플리케이션 및 설계 제약들에 의존하여 달라진다. 본 기술분야의 통상의 기술자는 각각의 특정 애플리케이션을 위한 설명된 기능들을 구현하기 위하여 상이한 방법들을 사용할 수 있지만, 구현은 본 출원의 범위를 초월한다는 것이 고려되지 않아야 한다.
설명된 시스템들, 장치들, 및 유닛들의 상세한 작업 프로세스들에 대해 편리하고 간략한 설명을 위해, 방법 실시예들에서의 대응하는 프로세스들을 참조하는 것이 본 기술분야의 통상의 기술자에 의해 명확하게 이해될 수 있다. 세부사항들은 여기에서 다시 설명되지 않는다.
본 출원에서 제공되는 몇가지 실시예에서, 개시된 시스템, 장치, 및 방법은 다른 방식들로 구현될 수 있다는 것을 이해해야 한다. 예를 들어, 설명되는 장치 실시예들은 단지 예들이다. 예를 들어, 유닛 구분은 단지 논리적 기능 구분일 뿐이고, 실제 구현에서는 다른 구분일 수 있다. 예를 들어, 복수의 유닛 또는 컴포넌트가 조합되거나 다른 시스템에 통합되거나, 일부 특징들이 무시되거나 수행되지 않을 수 있다. 추가로, 디스플레이되거나 논의된 상호 결합들 또는 직접 결합들 또는 통신 접속들은 일부 인터페이스들을 통해 구현될 수 있다. 장치들 또는 유닛들 간의 간접 결합들 또는 통신 접속들은 전기적, 기계적, 또는 다른 형태들로 구현될 수 있다.
별도의 부분들로서 설명된 유닛들은 물리적으로 분리될 수도 있고 그렇지 않을 수도 있고, 유닛들로서 표시된 부분들은 물리적 유닛들일 수도 있고 그렇지 않을 수도 있으며, 한 위치에 위치할 수 있거나 또는 복수의 네트워크 유닛 상에 분산될 수 있다. 이러한 유닛들의 일부 또는 전부는 실시예들의 해결책들의 목적들을 달성하도록 실제 요건에 기초하여 선택될 수 있다.
또한, 본 출원의 실시예들에서의 기능 유닛들은 하나의 처리 유닛에 통합될 수 있거나, 또는 이러한 유닛들 각각이 물리적으로 단독으로 존재할 수 있거나, 또는 적어도 2개의 유닛들이 하나의 유닛으로 통합될 수 있다.
기능들이 소프트웨어 기능 유닛의 형태로 구현되고 독립적인 제품으로서 판매되거나 사용될 때, 기능들은 컴퓨터 판독가능 저장 매체에 저장될 수 있다. 이러한 이해에 기초하여, 본 출원의 기술적 해결책들은 본질적으로, 또는 종래 기술에 기여하는 부분은, 또는 기술적 해결책들의 일부는 소프트웨어 제품의 형태로 구현될 수 있다. 컴퓨터 소프트웨어 제품은 저장 매체에 저장되고, (퍼스널 컴퓨터, 서버, 네트워크 디바이스인) 컴퓨터 디바이스에게 본 출원의 실시예들에서 설명된 방법들의 단계들의 전부 또는 일부를 수행하라고 지시하기 위한 여러 명령어들을 포함한다. 전술한 저장 매체는, USB 플래시 드라이브, 착탈 가능 하드 디스크, 판독 전용 메모리(read-only memory, ROM), 랜덤 액세스 메모리(random access memory, RAM), 자기 디스크, 또는 광 디스크와 같은, 프로그램 코드를 저장할 수 있는 임의의 매체를 포함한다.
전술한 설명들은 단지 본 출원의 구체적인 구현들이지, 본 출원의 보호 범위를 제한하도록 의도는 아니다. 본 출원에 개시된 기술적 범위 내에서 본 기술분야의 통상의 기술자에 의해 용이하게 안출되는 임의의 변화 또는 대체는 본 출원의 보호 범위 내에 속할 것이다. 따라서, 본 출원의 보호 범위는 청구항들의 보호 범위에 좌우될 것이다.

Claims (56)

  1. 향상 계층에 대한 인코딩 방법으로서,
    인코딩될 픽처 블록의 베이스 계층의 재구성된 블록을 획득하는 단계;
    상기 인코딩될 픽처 블록 및 상기 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 상기 인코딩될 픽처 블록의 향상 계층의 잔차 블록을 획득하는 단계- 향상 계층 픽처 블록의 해상도는 베이스 계층 픽처 블록의 해상도보다 낮지 않거나, 향상 계층 픽처 블록의 인코딩 품질은 베이스 계층 픽처 블록의 인코딩 품질보다 낮지 않음 -;
    상기 향상 계층의 잔차 블록의 변환-블록 분할 방식을 결정하는 단계- 상기 향상 계층의 잔차 블록의 변환-블록 분할 방식은 상기 베이스 계층의 잔차 블록의 변환-블록 분할 방식과 상이함 -; 및
    상기 변환-블록 분할 방식에 기초하여 상기 향상 계층의 잔차 블록에 대해 변환을 수행하여 상기 향상 계층의 잔차 블록의 비트스트림을 획득하는 단계를 포함하는 방법.
  2. 제1항에 있어서,
    상기 향상 계층의 잔차 블록의 변환-블록 분할 방식을 결정하는 단계는:
    상기 향상 계층의 잔차 블록의 제1 최대 변환 유닛 LTU에 대해 반복 트리 구조 분할을 수행하여 복수의 분할 깊이의 변환 유닛들 TU들을 획득하는 단계- 상기 복수의 분할 깊이의 최대 분할 깊이는 Dmax와 동일하고, Dmax는 양의 정수임 -; 및
    제1 TU의 손실 추정치 및 상기 제1 TU에 포함되는 복수의 제2 TU의 손실 추정치들의 합계에 기초하여 상기 제1 TU의 분할 방식을 결정하는 단계- 상기 제1 TU의 분할 깊이는 i이고, 상기 제2 TU의 깊이는 i+1이고, 0≤i≤Dmax-1임 -를 포함하는 방법.
  3. 제2항에 있어서,
    제1 TU의 손실 추정치 및 상기 제1 TU에 포함되는 복수의 제2 TU의 손실 추정치들의 합계에 기초하여 상기 제1 TU의 분할 방식을 결정하는 단계는:
    TU에 대해 변환 및 양자화를 수행하여 상기 TU의 양자화된 계수를 획득하는 단계- 상기 TU는 상기 제1 TU 또는 상기 제2 TU임 -;
    상기 TU의 양자화된 계수를 프리코딩하여 상기 TU의 코드 워드 길이를 획득하는 단계;
    상기 TU의 양자화된 계수에 대해 역양자화 및 역변환을 수행하여 상기 TU의 재구성된 블록을 획득하는 단계;
    상기 TU와 상기 TU의 재구성된 블록의 제곱 차이들의 합계 SSD를 계산하여 상기 TU의 왜곡 값을 획득하는 단계;
    상기 TU의 코드 워드 길이 및 상기 TU의 왜곡 값에 기초하여 상기 TU의 손실 추정치를 획득하는 단계;
    상기 제1 TU의 손실 추정치와 상기 복수의 제2 TU의 손실 추정치들의 합계 중 더 작은 것을 결정하는 단계; 및
    상기 더 작은 것에 대응하는 분할 방식을 상기 제1 TU의 분할 방식으로서 결정하는 단계를 포함하는 방법.
  4. 제2항 또는 제3항에 있어서,
    상기 LTU의 크기는 상기 베이스 계층의 재구성된 블록의 크기와 동일하거나, 또는 상기 LTU의 크기는 상기 베이스 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행함으로써 획득된 재구성된 블록의 크기와 동일한 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 인코딩될 픽처 블록은 풀-프레임 픽처에서 최대 코딩 유닛 LCU이거나, 상기 인코딩될 픽처 블록은 풀-프레임 픽처이거나, 또는 상기 인코딩될 픽처 블록은 풀-프레임 픽처에서 관심 영역 ROI인 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 베이스 계층 및 상기 향상 계층은 해상도 또는 인코딩 품질 스케일러빌리티에 기초하여 획득되는 방법.
  7. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 베이스 계층 및 상기 향상 계층이 해상도 스케일러빌리티에 기초하여 획득될 때, 상기 인코딩될 픽처 블록 및 상기 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 상기 인코딩될 픽처 블록의 향상 계층의 잔차 블록을 획득하는 단계 이전에, 상기 방법은:
    원래의 인코딩될 픽처 블록에 대해 다운샘플링을 수행하여 제1 해상도를 갖는 상기 인코딩될 픽처 블록을 획득하는 단계; 및
    상기 베이스 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행하여 상기 제1 해상도를 갖는 상기 베이스 계층의 재구성된 블록을 획득하는 단계를 추가로 포함하는 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    인코딩될 픽처 블록의 베이스 계층의 재구성된 블록을 획득하는 단계는:
    처리될 픽처 블록 및 상기 처리될 픽처 블록의 예측 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 상기 처리될 픽처 블록의 잔차 블록을 획득하는 단계;
    상기 처리될 픽처 블록의 잔차 블록에 대해 변환 및 양자화를 수행하여 상기 처리될 픽처 블록의 양자화된 계수를 획득하는 단계;
    상기 처리될 픽처 블록의 양자화된 계수에 대해 역양자화 및 역변환을 수행하여 상기 처리될 픽처 블록의 재구성된 잔차 블록을 획득하는 단계; 및
    상기 처리될 픽처 블록의 예측 블록 및 상기 처리될 픽처 블록의 재구성된 잔차 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 상기 베이스 계층의 재구성된 블록을 획득하는 단계를 포함하는 방법.
  9. 향상 계층에 대한 인코딩 방법으로서,
    인코딩될 픽처 블록의 제1 향상 계층의 재구성된 블록을 획득하는 단계;
    상기 인코딩될 픽처 블록 및 상기 제1 향상 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 상기 인코딩될 픽처 블록의 제2 향상 계층의 잔차 블록을 획득하는 단계- 제2 향상 계층 픽처 블록의 해상도는 제1 향상 계층 픽처 블록의 해상도보다 낮지 않거나, 제2 향상 계층 픽처 블록의 인코딩 품질은 제1 향상 계층 픽처 블록의 인코딩 품질보다 낮지 않음 -;
    상기 제2 향상 계층의 잔차 블록의 변환-블록 분할 방식을 결정하는 단계- 상기 제2 향상 계층의 잔차 블록의 변환-블록 분할 방식은 제1 계층의 잔차 블록의 변환-블록 분할 방식과 상이함 -; 및
    상기 변환-블록 분할 방식에 기초하여 상기 제2 향상 계층의 잔차 블록에 대해 변환을 수행하여 상기 제2 향상 계층의 잔차 블록의 비트스트림을 획득하는 단계를 포함하는 방법.
  10. 제9항에 있어서,
    상기 제2 향상 계층의 잔차 블록의 변환-블록 분할 방식을 결정하는 단계는:
    상기 제2 향상 계층의 잔차 블록의 제1 최대 변환 유닛 LTU에 대해 반복 트리 구조 분할을 수행하여 복수의 분할 깊이의 변환 유닛들 TU들을 획득하는 단계- 상기 복수의 분할 깊이의 최대 분할 깊이는 Dmax와 동일하고, Dmax는 양의 정수임 -; 및
    제1 TU의 손실 추정치 및 상기 제1 TU에 포함되는 복수의 제2 TU의 손실 추정치들의 합계에 기초하여 상기 제1 TU의 분할 방식을 결정하는 단계- 상기 제1 TU의 분할 깊이는 i이고, 상기 제2 TU의 깊이는 i+1이고, 0≤i≤Dmax-1임 -를 포함하는 방법.
  11. 제10항에 있어서,
    제1 TU의 손실 추정치 및 상기 제1 TU에 포함되는 복수의 제2 TU의 손실 추정치들의 합계에 기초하여 상기 제1 TU의 분할 방식을 결정하는 단계는:
    TU에 대해 변환 및 양자화를 수행하여 상기 TU의 양자화된 계수를 획득하는 단계- 상기 TU는 상기 제1 TU 또는 상기 제2 TU임 -;
    상기 TU의 양자화된 계수를 프리코딩하여 상기 TU의 코드 워드 길이를 획득하는 단계;
    상기 TU의 양자화된 계수에 대해 역양자화 및 역변환을 수행하여 상기 TU의 재구성된 블록을 획득하는 단계;
    상기 TU와 상기 TU의 재구성된 블록의 제곱 차이들의 합계 SSD를 계산하여 상기 TU의 왜곡 값을 획득하는 단계;
    상기 TU의 코드 워드 길이 및 상기 TU의 왜곡 값에 기초하여 상기 TU의 손실 추정치를 획득하는 단계;
    상기 제1 TU의 손실 추정치와 상기 복수의 제2 TU의 손실 추정치들의 합계 중 더 작은 것을 결정하는 단계; 및
    상기 더 작은 것에 대응하는 분할 방식을 상기 제1 TU의 분할 방식으로서 결정하는 단계를 포함하는 방법.
  12. 제10항 또는 제11항에 있어서,
    상기 LTU의 크기는 상기 제1 향상 계층의 재구성된 블록의 크기와 동일하거나, 또는 상기 LTU의 크기는 상기 제1 향상 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행함으로써 획득된 재구성된 블록의 크기와 동일한 방법.
  13. 제9항 내지 제12항 중 어느 한 항에 있어서,
    상기 인코딩될 픽처 블록은 풀-프레임 픽처에서 최대 코딩 유닛 LCU이거나, 상기 인코딩될 픽처 블록은 풀-프레임 픽처이거나, 또는 상기 인코딩될 픽처 블록은 풀-프레임 픽처에서 관심 영역 ROI인 방법.
  14. 제9항 내지 제13항 중 어느 한 항에 있어서,
    상기 제1 향상 계층 및 상기 제2 향상 계층은 품질 스케일러빌리티 방식 또는 공간 스케일러빌리티 방식으로 계층화를 통해 획득되는 방법.
  15. 제9항 내지 제13항 중 어느 한 항에 있어서,
    상기 제1 향상 계층 및 상기 제2 향상 계층이 공간 스케일러빌리티 방식으로 계층화를 통해 획득될 때, 상기 인코딩될 픽처 블록 및 상기 제1 향상 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 상기 인코딩될 픽처 블록의 제2 향상 계층의 잔차 블록을 획득하는 단계 이전에, 상기 방법은:
    원래의 인코딩될 픽처 블록에 대해 다운샘플링을 수행하여 제2 해상도를 갖는 상기 인코딩될 픽처 블록을 획득하는 단계; 및
    상기 제1 향상 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행하여 상기 제2 해상도를 갖는 상기 제1 향상 계층의 재구성된 블록을 획득하는 단계를 추가로 포함하는 방법.
  16. 제9항 내지 제15항 중 어느 한 항에 있어서,
    인코딩될 픽처 블록의 제1 향상 계층의 재구성된 블록을 획득하는 단계는:
    상기 처리될 픽처 블록 및 상기 처리될 픽처 블록의 제3 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 상기 제1 향상 계층의 잔차 블록을 획득하는 단계- 상기 제1 향상 계층 픽처 블록의 해상도는 제3-계층 픽처 블록의 해상도보다 낮지 않거나, 상기 제1 향상 계층 픽처 블록의 인코딩 품질은 제3-계층 픽처 블록의 인코딩 품질보다 낮지 않음 -;
    상기 제1 향상 계층의 잔차 블록에 대해 변환 및 양자화를 수행하여 상기 제1 향상 계층의 잔차 블록의 양자화된 계수를 획득하는 단계;
    상기 제1 향상 계층의 잔차 블록의 양자화된 계수에 대해 역양자화 및 역변환을 수행하여 상기 제1 향상 계층의 재구성된 잔차 블록을 획득하는 단계; 및
    상기 제3 계층의 재구성된 블록 및 상기 제1 향상 계층의 재구성된 잔차 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 상기 제1 향상 계층의 재구성된 블록을 획득하는 단계를 포함하는 방법.
  17. 향상 계층에 대한 디코딩 방법으로서,
    디코딩될 픽처 블록의 향상 계층의 잔차 블록의 비트스트림을 획득하는 단계;
    상기 향상 계층의 잔차 블록의 비트스트림에 대해 엔트로피 디코딩, 역양자화, 및 역변환을 수행하여 상기 향상 계층의 재구성된 잔차 블록을 획득하는 단계;
    상기 디코딩될 픽처 블록의 베이스 계층의 재구성된 블록을 획득하는 단계- 향상 계층 픽처 블록의 해상도는 베이스 계층 픽처 블록의 해상도보다 낮지 않거나, 향상 계층 픽처 블록의 인코딩 품질은 베이스 계층 픽처 블록의 인코딩 품질보다 낮지 않음 -; 및
    상기 향상 계층의 재구성된 잔차 블록 및 상기 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 상기 향상 계층의 재구성된 블록을 획득하는 단계를 포함하는 방법.
  18. 제17항에 있어서,
    상기 디코딩될 픽처 블록은 풀-프레임 픽처에서 최대 코딩 유닛 LCU이거나, 상기 디코딩될 픽처 블록은 풀-프레임 픽처이거나, 또는 상기 디코딩될 픽처 블록은 풀-프레임 픽처에서 관심 영역 ROI인 방법.
  19. 제17항 또는 제18항에 있어서,
    상기 베이스 계층 및 상기 향상 계층은 품질 스케일러빌리티 방식 또는 공간 스케일러빌리티 방식으로 계층화를 통해 획득되는 방법.
  20. 제17항 또는 제18항에 있어서,
    상기 베이스 계층 및 상기 향상 계층이 공간 스케일러빌리티 방식으로 계층화를 통해 획득될 때, 상기 향상 계층의 재구성된 잔차 블록 및 상기 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 상기 향상 계층의 재구성된 블록을 획득하기 이전에, 상기 방법은:
    상기 베이스 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행하여 해상도가 제3 해상도인 상기 베이스 계층의 재구성된 블록을 획득하는 단계- 상기 제3 해상도는 상기 향상 계층의 재구성된 잔차 블록의 해상도와 동일함 -를 추가로 포함하는 방법.
  21. 제17항 내지 제20항 중 어느 한 항에 있어서,
    상기 디코딩될 픽처 블록의 베이스 계층의 재구성된 블록을 획득하는 단계는:
    상기 베이스 계층의 잔차 블록의 비트스트림을 획득하는 단계;
    상기 베이스 계층의 잔차 블록의 비트스트림에 대해 엔트로피 디코딩을 수행하여 상기 베이스 계층의 잔차 블록의 디코딩된 데이터를 획득하는 단계;
    상기 베이스 계층의 잔차 블록의 디코딩된 데이터에 대해 역양자화 및 역변환을 수행하여 상기 베이스 계층의 재구성된 잔차 블록을 획득하는 단계;
    상기 베이스 계층의 잔차 블록의 디코딩된 데이터에 기초하여 상기 베이스 계층의 예측 블록을 획득하는 단계; 및
    상기 베이스 계층의 재구성된 잔차 블록 및 상기 베이스 계층의 예측 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 상기 베이스 계층의 재구성된 블록을 획득하는 단계를 포함하는 방법.
  22. 향상 계층에 대한 디코딩 방법으로서,
    디코딩될 픽처 블록의 제2 향상 계층의 잔차 블록의 비트스트림을 획득하는 단계;
    상기 제2 향상 계층의 잔차 블록의 비트스트림에 대해 엔트로피 디코딩, 역양자화, 및 역변환을 수행하여 상기 제2 향상 계층의 재구성된 잔차 블록을 획득하는 단계;
    상기 디코딩될 픽처 블록의 제1 향상 계층의 재구성된 블록을 획득하는 단계- 제2 향상 계층 픽처 블록의 해상도는 제1 향상 계층 픽처 블록의 해상도보다 낮지 않거나, 제2 향상 계층 픽처 블록의 인코딩 품질은 제1 향상 계층 픽처 블록의 인코딩 품질보다 낮지 않음 -; 및
    상기 제2 향상 계층의 재구성된 잔차 블록 및 상기 제1 향상 계층의 재구성된 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 상기 제2 향상 계층의 재구성된 블록을 획득하는 단계를 포함하는 방법.
  23. 제22항에 있어서,
    상기 디코딩될 픽처 블록은 풀-프레임 픽처에서 최대 코딩 유닛 LCU이거나, 상기 디코딩될 픽처 블록은 풀-프레임 픽처이거나, 또는 상기 디코딩될 픽처 블록은 풀-프레임 픽처에서 관심 영역 ROI인 방법.
  24. 제22항 또는 제23항에 있어서,
    상기 제1 향상 계층 및 상기 제2 향상 계층은 품질 스케일러빌리티 방식 또는 공간 스케일러빌리티 방식으로 계층화를 통해 획득되는 방법.
  25. 제22항 또는 제23항에 있어서,
    상기 제1 향상 계층 및 상기 제2 향상 계층이 공간 스케일러빌리티 방식으로 계층화를 통해 획득될 때, 상기 제2 향상 계층의 재구성된 잔차 블록 및 상기 제1 향상 계층의 재구성된 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 상기 제2 향상 계층의 재구성된 블록을 획득하기 이전에, 상기 방법은:
    상기 제1 향상 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행하여 해상도가 제4 해상도인 상기 제1 향상 계층의 재구성된 블록을 획득하는 단계- 상기 제4 해상도는 상기 제2 향상 계층의 재구성된 잔차 블록의 해상도와 동일함 -를 추가로 포함하는 방법.
  26. 제22항 내지 제25항 중 어느 한 항에 있어서,
    상기 디코딩될 픽처 블록의 제1 향상 계층의 재구성된 블록을 획득하는 단계는:
    상기 제1 향상 계층의 잔차 블록의 비트스트림을 획득하는 단계;
    상기 제1 향상 계층의 잔차 블록의 비트스트림에 대해 엔트로피 디코딩, 역양자화, 및 역변환을 수행하여 상기 제1 향상 계층의 재구성된 잔차 블록을 획득하는 단계; 및
    상기 제1 향상 계층의 재구성된 잔차 블록 및 제3 계층의 재구성된 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 상기 제1 향상 계층의 재구성된 블록을 획득하는 단계- 상기 제1 향상 계층 픽처 블록의 해상도는 제3-계층 픽처 블록의 해상도보다 낮지 않거나, 상기 제1 향상 계층 픽처 블록의 인코딩 품질은 제3-계층 픽처 블록의 인코딩 품질보다 낮지 않음 -를 포함하는 방법.
  27. 인코딩 장치로서,
    인코딩될 픽처 블록의 베이스 계층의 재구성된 블록을 획득하고; 상기 인코딩될 픽처 블록 및 상기 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 상기 인코딩될 픽처 블록의 향상 계층의 잔차 블록을 획득하도록 구성된 획득 모듈- 향상 계층 픽처 블록의 해상도는 베이스 계층 픽처 블록의 해상도보다 낮지 않거나, 향상 계층 픽처 블록의 인코딩 품질은 베이스 계층 픽처 블록의 인코딩 품질보다 낮지 않음 -;
    상기 향상 계층의 잔차 블록의 변환-블록 분할 방식을 결정하도록 구성된 결정 모듈- 상기 향상 계층의 잔차 블록의 변환-블록 분할 방식은 상기 베이스 계층의 잔차 블록의 변환-블록 분할 방식과 상이함 -; 및
    상기 변환-블록 분할 방식에 기초하여 상기 향상 계층의 잔차 블록에 대해 변환을 수행하여 상기 향상 계층의 잔차 블록의 비트스트림을 획득하도록 구성된 인코딩 모듈을 포함하는 인코딩 장치.
  28. 제27항에 있어서,
    상기 결정 모듈은 구체적으로: 상기 향상 계층의 잔차 블록의 제1 최대 변환 유닛 LTU에 대해 반복 트리 구조 분할을 수행하여 복수의 분할 깊이의 변환 유닛들 TU들을 획득하고- 상기 복수의 분할 깊이의 최대 분할 깊이는 Dmax와 동일하고, Dmax는 양의 정수임 -; 제1 TU의 손실 추정치 및 상기 제1 TU에 포함되는 복수의 제2 TU의 손실 추정치들의 합계에 기초하여 상기 제1 TU의 분할 방식을 결정하도록 구성되며, 상기 제1 TU의 분할 깊이는 i이고, 상기 제2 TU의 깊이는 i+1이고, 0≤i≤Dmax-1인 인코딩 장치.
  29. 제28항에 있어서,
    상기 결정 모듈은 구체적으로: TU에 대해 변환 및 양자화를 수행하여 상기 TU의 양자화된 계수를 획득하고- 상기 TU는 상기 제1 TU 또는 상기 제2 TU임 -; 상기 TU의 양자화된 계수를 프리코딩하여 상기 TU의 코드 워드 길이를 획득하고; 상기 TU의 양자화된 계수에 대해 역양자화 및 역변환을 수행하여 상기 TU의 재구성된 블록을 획득하고; 상기 TU와 상기 TU의 재구성된 블록의 제곱 차이들의 합계 SSD를 계산하여 상기 TU의 왜곡 값을 획득하고; 상기 TU의 코드 워드 길이 및 상기 TU의 왜곡 값에 기초하여 상기 TU의 손실 추정치를 획득하고; 상기 제1 TU의 손실 추정치와 상기 복수의 제2 TU의 손실 추정치들의 합계 중 더 작은 것을 결정하고; 상기 더 작은 것에 대응하는 분할 방식을 상기 제1 TU의 분할 방식으로서 결정하도록 구성되는 인코딩 장치.
  30. 제28항 또는 제29항에 있어서,
    상기 LTU의 크기는 상기 베이스 계층의 재구성된 블록의 크기와 동일하거나, 또는 상기 LTU의 크기는 상기 베이스 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행함으로써 획득된 재구성된 블록의 크기와 동일한 인코딩 장치.
  31. 제27항 내지 제30항 중 어느 한 항에 있어서,
    상기 인코딩될 픽처 블록은 풀-프레임 픽처에서 최대 코딩 유닛 LCU이거나, 상기 인코딩될 픽처 블록은 풀-프레임 픽처이거나, 또는 상기 인코딩될 픽처 블록은 풀-프레임 픽처에서 관심 영역 ROI인 인코딩 장치.
  32. 제27항 내지 제31항 중 어느 한 항에 있어서,
    상기 베이스 계층 및 상기 향상 계층은 해상도 또는 인코딩 품질 스케일러빌리티에 기초하여 획득되는 인코딩 장치.
  33. 제27항 내지 제31항 중 어느 한 항에 있어서,
    상기 베이스 계층 및 상기 향상 계층이 해상도 계층화에 기초하여 획득될 때, 상기 획득 모듈은: 원래의 인코딩될 픽처 블록에 대해 다운샘플링을 수행하여 제1 해상도를 갖는 상기 인코딩될 픽처 블록을 획득하고; 상기 베이스 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행하여 상기 제1 해상도를 갖는 상기 베이스 계층의 재구성된 블록을 획득하도록 추가로 구성되는 인코딩 장치.
  34. 제27항 내지 제33항 중 어느 한 항에 있어서,
    상기 획득 모듈은 구체적으로: 처리될 픽처 블록 및 상기 처리될 픽처 블록의 예측 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 상기 처리될 픽처 블록의 잔차 블록을 획득하고; 상기 처리될 픽처 블록의 잔차 블록에 대해 변환 및 양자화를 수행하여 상기 처리될 픽처 블록의 양자화된 계수를 획득하고; 상기 처리될 픽처 블록의 양자화된 계수에 대해 역양자화 및 역변환을 수행하여 상기 처리될 픽처 블록의 재구성된 잔차 블록을 획득하고; 상기 처리될 픽처 블록의 예측 블록 및 상기 처리될 픽처 블록의 재구성된 잔차 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 상기 베이스 계층의 재구성된 블록을 획득하도록 구성되는 인코딩 장치.
  35. 인코딩 장치로서,
    인코딩될 픽처 블록의 제1 향상 계층의 재구성된 블록을 획득하고; 상기 인코딩될 픽처 블록 및 상기 제1 향상 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 상기 인코딩될 픽처 블록의 제2 향상 계층의 잔차 블록을 획득하도록 구성된 획득 모듈- 제2 향상 계층 픽처 블록의 해상도는 제1 향상 계층 픽처 블록의 해상도보다 낮지 않거나, 제2 향상 계층 픽처 블록의 인코딩 품질은 제1 향상 계층 픽처 블록의 인코딩 품질보다 낮지 않음 -;
    상기 제2 향상 계층의 잔차 블록의 변환-블록 분할 방식을 결정하도록 구성된 결정 모듈- 상기 제2 향상 계층의 잔차 블록의 변환-블록 분할 방식은 상기 제1 계층의 잔차 블록의 변환-블록 분할 방식과 상이함 -; 및
    상기 변환-블록 분할 방식에 기초하여 상기 제2 향상 계층의 잔차 블록에 대해 변환을 수행하여 상기 제2 향상 계층의 잔차 블록의 비트스트림을 획득하도록 구성된 인코딩 모듈을 포함하는 인코딩 장치.
  36. 제35에 있어서,
    상기 결정 모듈은 구체적으로: 상기 제2 향상 계층의 잔차 블록의 제1 최대 변환 유닛 LTU에 대해 반복 트리 구조 분할을 수행하여 복수의 분할 깊이의 변환 유닛들 TU들을 획득하고- 상기 복수의 분할 깊이의 최대 분할 깊이는 Dmax와 동일하고, Dmax는 양의 정수임 -; 제1 TU의 손실 추정치 및 상기 제1 TU에 포함되는 복수의 제2 TU의 손실 추정치들의 합계에 기초하여 상기 제1 TU의 분할 방식을 결정하도록 구성되며, 상기 제1 TU의 분할 깊이는 i이고, 상기 제2 TU의 깊이는 i+1이고, 0≤i≤Dmax-1인 인코딩 장치.
  37. 제36항에 있어서,
    상기 결정 모듈은 구체적으로: TU에 대해 변환 및 양자화를 수행하여 상기 TU의 양자화된 계수를 획득하고- 상기 TU는 상기 제1 TU 또는 상기 제2 TU임 -; 상기 TU의 양자화된 계수를 프리코딩하여 상기 TU의 코드 워드 길이를 획득하고; 상기 TU의 양자화된 계수에 대해 역양자화 및 역변환을 수행하여 상기 TU의 재구성된 블록을 획득하고; 상기 TU와 상기 TU의 재구성된 블록의 제곱 차이들의 합계 SSD를 계산하여 상기 TU의 왜곡 값을 획득하고; 상기 TU의 코드 워드 길이 및 상기 TU의 왜곡 값에 기초하여 상기 TU의 손실 추정치를 획득하고; 상기 제1 TU의 손실 추정치와 상기 복수의 제2 TU의 손실 추정치들의 합계 중 더 작은 것을 결정하고; 상기 더 작은 것에 대응하는 분할 방식을 상기 제1 TU의 분할 방식으로서 결정하도록 구성되는 인코딩 장치.
  38. 제36항 또는 제37항에 있어서,
    상기 LTU의 크기는 상기 제1 향상 계층의 재구성된 블록의 크기와 동일하거나, 또는 상기 LTU의 크기는 상기 제1 향상 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행함으로써 획득된 재구성된 블록의 크기와 동일한 인코딩 장치.
  39. 제35항 내지 제38항 중 어느 한 항에 있어서,
    상기 인코딩될 픽처 블록은 풀-프레임 픽처에서 최대 코딩 유닛 LCU이거나, 상기 인코딩될 픽처 블록은 풀-프레임 픽처이거나, 또는 상기 인코딩될 픽처 블록은 풀-프레임 픽처에서 관심 영역 ROI인 인코딩 장치.
  40. 제35항 내지 제39항 중 어느 한 항에 있어서,
    상기 제1 향상 계층 및 상기 제2 향상 계층은 품질 스케일러빌리티 방식 또는 공간 스케일러빌리티 방식으로 계층화를 통해 획득되는 인코딩 장치.
  41. 제35항 내지 제39항 중 어느 한 항에 있어서,
    상기 제1 향상 계층 및 상기 제2 향상 계층이 공간 스케일러빌리티 방식으로 계층화를 통해 획득될 때, 상기 획득 모듈은: 원래의 인코딩될 픽처 블록에 대해 다운샘플링을 수행하여 제2 해상도를 갖는 상기 인코딩될 픽처 블록을 획득하고; 상기 제1 향상 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행하여 상기 제2 해상도를 갖는 상기 제1 향상 계층의 재구성된 블록을 획득하도록 추가로 구성되는 인코딩 장치.
  42. 제35항 내지 제41항 중 어느 한 항에 있어서,
    상기 획득 모듈은 구체적으로: 처리될 픽처 블록 및 상기 처리될 픽처 블록의 제3 계층의 재구성된 블록에서의 대응하는 픽셀들 사이의 차이를 계산하여 상기 제1 향상 계층의 잔차 블록을 획득하고- 상기 제1 향상 계층 픽처 블록의 해상도는 제3-계층 픽처 블록의 해상도보다 낮지 않거나, 상기 제1 향상 계층 픽처 블록의 인코딩 품질은 제3-계층 픽처 블록의 인코딩 품질보다 낮지 않음 -; 상기 제1 향상 계층의 잔차 블록에 대해 변환 및 양자화를 수행하여 상기 제1 향상 계층의 잔차 블록의 양자화된 계수를 획득하고; 상기 제1 향상 계층의 잔차 블록의 양자화된 계수에 대해 역양자화 및 역변환을 수행하여 상기 제1 향상 계층의 재구성된 잔차 블록을 획득하고; 상기 제3 계층의 재구성된 블록 및 상기 제1 향상 계층의 재구성된 잔차 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 상기 제1 향상 계층의 재구성된 블록을 획득하도록 구성되는 인코딩 장치.
  43. 디코딩 장치로서,
    디코딩될 픽처 블록의 향상 계층의 잔차 블록의 비트스트림을 획득하도록 구성된 획득 모듈;
    상기 향상 계층의 잔차 블록의 비트스트림에 대해 엔트로피 디코딩, 역양자화, 및 역변환을 수행하여 상기 향상 계층의 재구성된 잔차 블록을 획득하도록 구성된 디코딩 모듈; 및
    상기 디코딩될 픽처 블록의 베이스 계층의 재구성된 블록을 획득하고- 향상 계층 픽처 블록의 해상도는 베이스 계층 픽처 블록의 해상도보다 낮지 않거나, 향상 계층 픽처 블록의 인코딩 품질은 베이스 계층 픽처 블록의 인코딩 품질보다 낮지 않음 -; 상기 향상 계층의 재구성된 잔차 블록 및 베이스 계층의 재구성된 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 상기 향상 계층의 재구성된 블록을 획득하도록 구성된 재구성 모듈을 포함하는 디코딩 장치.
  44. 제43항에 있어서,
    상기 디코딩될 픽처 블록은 풀-프레임 픽처에서 최대 코딩 유닛 LCU이거나, 상기 디코딩될 픽처 블록은 풀-프레임 픽처이거나, 또는 상기 디코딩될 픽처 블록은 풀-프레임 픽처에서 관심 영역 ROI인 디코딩 장치.
  45. 제43항 또는 제44항에 있어서,
    상기 베이스 계층 및 상기 향상 계층은 품질 스케일러빌리티 방식 또는 공간 스케일러빌리티 방식으로 계층화를 통해 획득되는 디코딩 장치.
  46. 제43항 또는 제44항에 있어서,
    상기 베이스 계층 및 상기 향상 계층이 공간 스케일러빌리티 방식으로 계층화를 통해 획득될 때, 상기 재구성 모듈은 상기 베이스 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행하여 해상도가 제3 해상도인 상기 베이스 계층의 재구성된 블록을 획득하도록 추가로 구성되고, 상기 제3 해상도는 상기 향상 계층의 상기 재구성된 잔차 블록의 해상도와 동일한 디코딩 장치.
  47. 제43항 내지 제46항 중 어느 한 항에 있어서,
    상기 재구성 모듈은 구체적으로: 상기 베이스 계층의 잔차 블록의 비트스트림을 획득하고; 상기 베이스 계층의 잔차 블록의 비트스트림에 대해 엔트로피 디코딩을 수행하여 상기 베이스 계층의 잔차 블록의 디코딩된 데이터를 획득하고; 상기 베이스 계층의 잔차 블록의 디코딩된 데이터에 대해 역양자화 및 역변환을 수행하여 상기 베이스 계층의 재구성된 잔차 블록을 획득하고; 상기 베이스 계층의 잔차 블록의 디코딩된 데이터에 기초하여 상기 베이스 계층의 예측 블록을 획득하고; 상기 베이스 계층의 재구성된 잔차 블록 및 상기 베이스 계층의 예측 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 상기 베이스 계층의 재구성된 블록을 획득하도록 구성되는 디코딩 장치.
  48. 디코딩 장치로서,
    디코딩될 픽처 블록의 제2 향상 계층의 잔차 블록의 비트스트림을 획득하도록 구성된 획득 모듈;
    상기 제2 향상 계층의 잔차 블록의 비트스트림에 대해 엔트로피 디코딩, 역양자화, 및 역변환을 수행하여 상기 제2 향상 계층의 재구성된 잔차 블록을 획득하도록 구성된 디코딩 모듈; 및
    상기 디코딩될 픽처 블록의 제1 향상 계층의 재구성된 블록을 획득하고- 제2 향상 계층 픽처 블록의 해상도는 제1 향상 계층 픽처 블록의 해상도보다 낮지 않거나, 제2 향상 계층 픽처 블록의 인코딩 품질은 제1 향상 계층 픽처 블록의 인코딩 품질보다 낮지 않음 -; 상기 제2 향상 계층의 재구성된 잔차 블록 및 상기 제1 향상 계층의 재구성된 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 상기 제2 향상 계층의 재구성된 블록을 획득하도록 구성된 재구성 모듈을 포함하는 디코딩 장치.
  49. 제48항에 있어서,
    상기 디코딩될 픽처 블록은 풀-프레임 픽처에서 최대 코딩 유닛 LCU이거나, 상기 디코딩될 픽처 블록은 풀-프레임 픽처이거나, 또는 상기 디코딩될 픽처 블록은 풀-프레임 픽처에서 관심 영역 ROI인 디코딩 장치.
  50. 제48항 또는 제49항에 있어서,
    상기 제1 향상 계층 및 상기 제2 향상 계층은 품질 스케일러빌리티 방식 또는 공간 스케일러빌리티 방식으로 계층화를 통해 획득되는 디코딩 장치.
  51. 제48항 또는 제49항에 있어서,
    상기 제1 향상 계층 및 상기 제2 향상 계층이 공간 스케일러빌리티 방식으로 계층화를 통해 획득될 때, 상기 재구성 모듈은 상기 제1 향상 계층의 원래의 재구성된 블록에 대해 업샘플링을 수행하여 해상도가 제4 해상도인 상기 제1 향상 계층의 재구성된 블록을 획득하도록 추가로 구성되고, 상기 제4 해상도는 상기 제2 향상 계층의 재구성된 잔차 블록의 해상도와 동일한 디코딩 장치.
  52. 제48항 내지 제51항 중 어느 한 항에 있어서,
    상기 재구성 모듈은 구체적으로: 상기 제1 향상 계층의 잔차 블록의 비트스트림을 획득하고; 상기 제1 향상 계층의 잔차 블록의 비트스트림에 대해 엔트로피 디코딩, 역양자화, 및 역변환을 수행하여 상기 제1 향상 계층의 재구성된 잔차 블록을 획득하고; 상기 제1 향상 계층의 재구성된 잔차 블록 및 제3 계층의 재구성된 블록에서의 대응하는 픽셀들에 대해 합산을 수행하여 상기 제1 향상 계층의 재구성된 블록을 획득하도록 구성되고, 상기 제1 향상 계층 픽처 블록의 해상도는 제3-계층 픽처 블록의 해상도보다 낮지 않거나, 상기 제1 향상 계층 픽처 블록의 인코딩 품질은 제3-계층 픽처 블록의 인코딩 품질보다 낮지 않은 디코딩 장치.
  53. 인코더로서,
    프로세서와 메모리를 포함하고, 상기 프로세서는 상기 메모리에 결합되고, 상기 메모리는 컴퓨터 판독가능 명령어들을 저장하고;
    상기 프로세서는 상기 컴퓨터 판독가능 명령어들을 판독하도록 구성하여, 상기 인코더가 제1항 내지 제16항 중 어느 한 항에 따른 방법을 수행하게 하는 인코더.
  54. 디코더로서,
    프로세서와 메모리를 포함하고, 상기 프로세서는 상기 메모리에 결합되고, 상기 메모리는 컴퓨터 판독가능 명령어들을 저장하고;
    상기 프로세서는 상기 컴퓨터 판독가능 명령어들을 판독하도록 구성하여, 상기 인코더가 제17항 내지 제26항 중 어느 한 항에 따른 방법을 수행하게 하는 디코더.
  55. 컴퓨터 프로그램 제품으로서,
    프로그램 코드를 포함하고, 상기 컴퓨터 프로그램 제품이 컴퓨터 또는 프로세서 상에서 실행되고 있을 때, 상기 컴퓨터 프로그램 제품은 제1항 내지 제26항 중 어느 한 항에 따른 방법을 수행하는데 사용되는 컴퓨터 프로그램 제품.
  56. 컴퓨터 판독가능 저장 매체로서,
    프로그램 코드를 포함하고, 상기 컴퓨터 판독가능 저장 매체가 컴퓨터 디바이스 상에서 실행되고 있을 때, 상기 컴퓨터 판독가능 저장 매체는 제1항 내지 제26항 중 어느 한 항에 따른 방법을 수행하는데 사용되는 컴퓨터 판독가능 저장 매체.
KR1020237022494A 2020-12-08 2021-12-02 향상 계층에 대한 인코딩 및 디코딩 방법들 및 장치들 KR20230111257A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202011424168.7 2020-12-08
CN202011424168.7A CN114615500A (zh) 2020-12-08 2020-12-08 增强层编解码方法和装置
PCT/CN2021/135075 WO2022121770A1 (zh) 2020-12-08 2021-12-02 增强层编解码方法和装置

Publications (1)

Publication Number Publication Date
KR20230111257A true KR20230111257A (ko) 2023-07-25

Family

ID=81856798

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237022494A KR20230111257A (ko) 2020-12-08 2021-12-02 향상 계층에 대한 인코딩 및 디코딩 방법들 및 장치들

Country Status (5)

Country Link
US (1) US20230319272A1 (ko)
EP (1) EP4250741A4 (ko)
KR (1) KR20230111257A (ko)
CN (1) CN114615500A (ko)
WO (1) WO2022121770A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116760976B (zh) * 2023-08-21 2023-12-08 腾讯科技(深圳)有限公司 仿射预测决策方法、装置、设备及存储介质
CN117459727B (zh) * 2023-12-22 2024-05-03 浙江省北大信息技术高等研究院 一种图像处理方法、装置、系统、电子设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101262604A (zh) * 2008-04-23 2008-09-10 哈尔滨工程大学 一种感兴趣区优先传输的可伸缩视频编码方法
CN102340659B (zh) * 2010-07-23 2013-09-04 联合信源数字音视频技术(北京)有限公司 一种基于avs的并行的模式决策装置和方法
EP3057326A1 (en) * 2011-06-10 2016-08-17 MediaTek, Inc Method and apparatus of scalable video coding
WO2013128010A2 (en) * 2012-03-02 2013-09-06 Canon Kabushiki Kaisha Method and devices for encoding a sequence of images into a scalable video bit-stream, and decoding a corresponding scalable video bit-stream
WO2013145021A1 (ja) * 2012-03-30 2013-10-03 株式会社日立製作所 画像復号方法及び画像復号装置
US20130308698A1 (en) * 2012-05-18 2013-11-21 Industrial Technology Research Institute Rate and distortion estimation methods and apparatus for coarse grain scalability in scalable video coding
GB2504068B (en) * 2012-07-11 2015-03-11 Canon Kk Methods and devices for controlling spatial access granularity in compressed video streams
KR20140092423A (ko) * 2012-12-20 2014-07-24 주식회사 팬택 계층적 영상 부/복호화 모드 결정 방법 및 이러한 방법을 사용하는 장치
US10034008B2 (en) * 2013-03-06 2018-07-24 Samsung Electronics Co., Ltd. Method and apparatus for scalable video encoding using switchable de-noising filtering, and method and apparatus for scalable video decoding using switchable de-noising filtering
US20160286226A1 (en) * 2015-03-24 2016-09-29 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
CN104902276B (zh) * 2015-05-15 2018-07-06 腾讯科技(北京)有限公司 变换单元划分方法及装置
FR3087309B1 (fr) * 2018-10-12 2021-08-06 Ateme Optimisation d'un sous-echantillonnage intervenant avant le codage d'images en compression
CN111669586B (zh) * 2020-06-17 2023-02-17 北京百度网讯科技有限公司 编码方法、装置、设备和计算机存储介质

Also Published As

Publication number Publication date
WO2022121770A1 (zh) 2022-06-16
CN114615500A (zh) 2022-06-10
EP4250741A4 (en) 2024-05-22
EP4250741A1 (en) 2023-09-27
US20230319272A1 (en) 2023-10-05

Similar Documents

Publication Publication Date Title
AU2019342803B2 (en) Apparatus and method for inverse quantization
KR102628895B1 (ko) 조인트 크로마 코딩을 사용하는 블록에 대해 크로마 디블로킹을 수행하기 위한 인코더, 디코더 및 대응 방법
KR102606414B1 (ko) 디블로킹 필터의 경계 강도를 도출하는 인코더, 디코더 및 대응 방법
JP7143512B2 (ja) ビデオ復号方法およびビデオデコーダ
KR102616714B1 (ko) 광학 흐름 정제를 위한 조기 종료
KR20210125088A (ko) 매트릭스 기반 인트라 예측 및 2차 변환 코어 선택을 조화시키는 인코더, 디코더 및 대응 방법
JP7314281B2 (ja) イントラ・サブパーティション・コーディング・ツールによって引き起こされるサブパーティション境界のためのデブロッキングフィルタ
CN112673626A (zh) 各分割约束元素之间的关系
US20230319272A1 (en) Encoding and decoding methods and apparatuses for enhancement layer
KR20240064039A (ko) 인코더, 디코더 및 대응하는 디블록킹 필터 적응의 방법
CA3167088A1 (en) An encoder, a decoder and corresponding methods about signaling high level syntax
EP4029271A2 (en) Removing blocking artifacts inside coding unit predicted by intra block copy
CN113243106B (zh) 一种用于视频图像的预测块的帧内预测的设备和方法
WO2021057629A1 (en) Apparatus and method for performing deblocking
KR20220065880A (ko) 아핀 모션 보상에서 dct 기반 보간 필터 및 향상된 쌍선형 보간 필터의 사용
CA3144809A1 (en) Clipping levels for non-linear adaptive loop filter
CN112640470A (zh) 视频编码器、视频解码器及对应方法
KR20210015963A (ko) 인트라-예측을 위한 디바이스 및 방법
EP4246971A1 (en) Quantization parameter decoding method and device
JP7385004B2 (ja) 動き情報保存のための方法及び装置
JP2024091646A (ja) ビデオ復号方法およびビデオデコーダ
CN118042136A (zh) 编解码方法和装置
CN115134597A (zh) 增强层编解码方法和装置

Legal Events

Date Code Title Description
A201 Request for examination