KR20240058982A - 인코더, 디코더 및 대응하는 방법 - Google Patents

인코더, 디코더 및 대응하는 방법 Download PDF

Info

Publication number
KR20240058982A
KR20240058982A KR1020247013536A KR20247013536A KR20240058982A KR 20240058982 A KR20240058982 A KR 20240058982A KR 1020247013536 A KR1020247013536 A KR 1020247013536A KR 20247013536 A KR20247013536 A KR 20247013536A KR 20240058982 A KR20240058982 A KR 20240058982A
Authority
KR
South Korea
Prior art keywords
aps
lmcs
parameters
slice
bitstream
Prior art date
Application number
KR1020247013536A
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 KR20240058982A publication Critical patent/KR20240058982A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/174Methods 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 slice, e.g. a line of blocks or a group of 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/187Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer
    • 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/188Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit
    • 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/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Error Detection And Correction (AREA)

Abstract

비디오 코딩 메커니즘이 개시된다. 상기 메커니즘은 슬라이스 및 LMCS 파라미터를 포함하는 크로마 스케일링을 사용한 루마 매핑(LMCS) 적응 파라미터 세트(APS)를 포함하는 비트스트림을 수신하는 단계를 포함한다. 상기 메커니즘은 상기 LMCS APS가 상기 슬라이스와 관련된 데이터에서 참조되는 것을 결정하는 단계를 더 포함한다. 상기 메커니즘은 상기 LMCS APS에 대한 참조에 기초하여 상기 LMCS APS로부터의 LMCS 파라미터를 사용하여 슬라이스를 디코딩하는 단계를 더 포함한다. 상기 메커니즘은 디코딩된 비디오 시퀀스의 일부로서 표시하기 위해 슬라이스를 포워딩하는 단계를 더 포함한다.

Description

인코더, 디코더 및 대응하는 방법{AN ENCODER, A DECODER AND CORRESPONDING METHODS}
본 개시는 일반적으로 비디오 코딩에 관한 것이고, 특히 비디오 코딩에서 비디오 데이터를 압축하는 데 사용되는 코딩 도구 파라미터(coding tool parameter)의 효율적인 시그널링에 관한 것이다.
비교적 짧은 비디오라도 묘사하는 데 필요한 비디오 데이터의 양은 상당할 수 있으며, 이는 데이터가 스트리밍되거나 한정된 대역폭 용량을 가진 통신 네트워크를 통해 통신될 때 어려움을 초래할 수 있다. 따라서 비디오 데이터는 일반적으로 현대의 통신 네트워크를 통해 통신되기 전에 압축된다. 메모리 자원이 한정될 수 있기 때문에 비디오가 저장 기기에 저장될 때 비디오의 크기도 문제가 될 수 있다. 비디오 압축 기기는 송신 또는 저장 전에 비디오 데이터를 코딩하기 위해 근원지(source)에서 소프트웨어 및/또는 하드웨어를 사용하여, 디지털 비디오 이미지를 나타내는 데 필요한 데이터의 수량을 줄이는 경우가 많다. 그런 다음 압축된 데이터는 비디오 데이터를 디코딩하는 비디오 압축해제 기기에 의해 목적지(destination)에서 수신된다. 한정된 네트워크 자원과, 더 높은 비디오 품질에 대한 수요가 계속 증가함에 따라, 이미지 품질을 거의 또는 전혀 희생하지 않으면서 압축률을 향상시키는 향상된 압축 및 압축해제 기술이 바람직하다.
일 실시예에서, 본 개시는 디코더에서 구현되는 방법을 포함하며, 상기 방법은, 상기 디코더의 수신기가, 코딩된 슬라이스(coded slice)와 연관된 크로마 스케일링을 사용한 루마 매핑(luma mapping with chroma scaling, LMCS) 파라미터를 포함하는 LMCS 적응 파라미터 세트(adaptation parameter set, APS)를 포함하는 비트스트림을 수신하는 단계; 상기 프로세서가, 상기 LMCS APS가 상기 코딩된 슬라이스와 관련된 데이터에서 참조되는 것으로 결정하는 단계; 상기 프로세서가, 상기 LMCS APS로부터의 LMCS 파라미터를 사용하여 상기 코딩된 슬라이스를 디코딩하는 단계; 및 상기 프로세서가, 디코딩된 비디오 시퀀스의 일부로서 표시하기 위해 디코딩 결과를 포워딩하는 단계를 포함한다. APS는 다수의 픽처(picture)에 걸쳐 다수의 슬라이스(slice)와 관련된 데이터를 유지 관리하는 데 사용된다. 본 개시는 다양한 APS 관련 개선을 설명한다. 본 예에서, LMCS 파라미터는 LMCS APS에 포함된다. LMCS/reshaper 파라미터는 약 1초에 한 번 변경될 수 있다. 비디오 시퀀스는 초당 30에서 60장의 픽처를 표시할 수 있다. 이와 같이, LMCS 파라미터는 30 내지 60 프레임 동안 변경되지 않을 수 있다. 픽처 레벨 파라미터 세트 대신에 LMCS APS에 LMCS 파라미터를 포함하는 것은 LMCS 파라미터의 중복 코딩(redundant coding)을 상당히 감소시킨다(예: 30 내지 60배만큼). 슬라이스 헤더 및/또는 슬라이스와 연관된 픽처 헤더는 관련 LMCS APS를 참조할 수 있다. 이러한 방식으로, LMCS 파라미터는 슬라이스에 대한 LMCS 파라미터가 변경될 때만 인코딩된다. 따라서, LMCS 파라미터를 인코딩하기 위해 LMCS APS를 채용하는 것은 코딩 효율을 증대시키고, 따라서 인코더 및 디코더에서 네트워크 자원, 메모리 자원, 및/또는 처리 자원의 사용을 감소시킨다.
선택적으로, 선행하는 측면 중 임의의 측면에서, 상기 측면의 다른 구현예는, 상기 비트스트림이 슬라이스 헤더를 더 포함하고, 상기 코딩된 슬라이스는 상기 슬라이스 헤더를 참조하고, 상기 슬라이스 헤더는 상기 코딩된 슬라이스와 관련된 데이터를 포함하고 상기 LMCS APS를 참조한다.
선택적으로, 선행하는 측면 중 임의의 측면에서, 상기 측면의 다른 구현예는, 상기 비트스트림이 적응형 루프 필터(adaptive loop filter, ALF) 파라미터를 포함하는 ALF APS 및 APS 파라미터를 포함하는 스케일링 목록 APS를 더 포함한다.
선택적으로, 선행하는 측면 중 임의의 측면에서, 상기 측면의 다른 구현예는, 각각의 APS가 각각의 APS에 포함된 파라미터들의 유형을 지시하는 미리 정의된 값에 대한 APS 파라미터 유형(aps_params_type) 코드 세트를 포함한다.
선택적으로, 선행하는 측면 중 임의의 측면에서, 상기 측면의 다른 구현예는, 각각의 APS가 미리 정의된 범위에서 선택된 APS 식별자(identifier, ID)를 포함하고, 상기 미리 정의된 범위는 각각의 APS의 파라미터 유형에 기초하여 결정된다.
선택적으로, 선행하는 측면 중 임의의 측면에서, 상기 측면의 다른 구현예는, 각각의 APS가 파라미터 유형과 APS ID의 조합에 의해 식별된다.
선택적으로, 선행하는 측면 중 임의의 측면에서, 상기 측면의 다른 구현예는, 상기 비트스트림이 상기 코딩된 슬라이스를 포함하는 인코딩된 비디오 시퀀스에 대해 LMCS가 인에이블됨을 지시하도록 설정된 플래그를 포함하는 시퀀스 파라미터 세트(sequence parameter, SPS)를 더 포함하고, 상기 LMCS APS로부터의 LMCS 파라미터는 상기 플래그에 기초하여 획득된다.
일 실시예에서, 본 개시는 인코더에서 구현되는 방법을 포함하며, 상기 방법은, 상기 인코더의 프로세서가, 슬라이스에 적용하기 위한 LMCS 파라미터를 결정하는 단계; 상기 프로세서가, 상기 슬라이스를 코딩된 슬라이스로서 비트스트림으로 인코딩하는 단계; 상기 프로세서가, 상기 LMCS 파라미터를 LMCS 적응 파라미터 세트(APS) 내의 비트스트림으로 인코딩하는 단계; 상기 프로세서가, 상기 LMCS APS를 참조하는 상기 코딩된 슬라이스와 관련된 데이터를 상기 비트스트림으로 인코딩하는 단계; 및 상기 프로세서에 연결된 메모리가, 디코더로의 통신을 위해 상기 비트스트림을 저장하는 단계를 포함한다. APS는 다수의 픽처(picture)에 걸쳐 다수의 슬라이스(slice)와 관련된 데이터를 유지 관리하는 데 사용된다. 본 개시는 다양한 APS 관련 개선을 설명한다. 본 예에서, LMCS 파라미터는 LMCS APS에 포함된다. LMCS/reshaper 파라미터는 약 1초에 한 번 변경될 수 있다. 비디오 시퀀스는 초당 30에서 60장의 픽처를 표시할 수 있다. 이와 같이, LMCS 파라미터는 30 내지 60 프레임 동안 변경되지 않을 수 있다. 픽처 레벨 파라미터 세트 대신에 LMCS APS에 LMCS 파라미터를 포함하는 것은 LMCS 파라미터의 중복 코딩(redundant coding)을 상당히 감소시킨다(예: 30 내지 60배만큼). 슬라이스 헤더 및/또는 슬라이스와 연관된 픽처 헤더는 관련 LMCS APS를 참조할 수 있다. 이러한 방식으로, LMCS 파라미터는 슬라이스에 대한 LMCS 파라미터가 변경될 때만 인코딩된다. 따라서, LMCS 파라미터를 인코딩하기 위해 LMCS APS를 채용하는 것은 코딩 효율을 증대시키고, 따라서 인코더 및 디코더에서 네트워크 자원, 메모리 자원, 및/또는 처리 자원의 사용을 감소시킨다.
선택적으로, 선행하는 측면 중 임의의 측면에서, 상기 측면의 다른 구현예는, 상기 프로세서가, 슬라이스 헤더를 상기 비트스트림으로 인코딩하는 단계를 더 포함하고, 상기 코딩된 슬라이스는 상기 슬라이스 헤더를 참조하고, 상기 슬라이스 헤더는 상기 코딩된 슬라이스와 관련된 데이터를 포함하고 상기 슬라이스 헤더는 상기 LMCS APS를 참조한다.
선택적으로, 선행하는 측면 중 임의의 측면에서, 상기 측면의 다른 구현예는, 상기 프로세서가, ALF 파라미터를 포함하는 ALF APS 및 APS 파라미터를 포함하는 스케일링 목록 APS를 상기 비트스트림으로 인코딩하는 단계를 더 포함한다.
선택적으로, 선행하는 측면 중 임의의 측면에서, 상기 측면의 다른 구현예는, 각각의 APS가 각각의 APS에 포함된 파라미터들의 유형을 지시하는 미리 정의된 값에 대한 aps_params_type 코드 세트를 포함한다.
선택적으로, 선행하는 측면 중 임의의 측면에서, 상기 측면의 다른 구현예는, 각각의 APS가 미리 정의된 범위에서 선택된 APS ID를 포함하고, 상기 미리 정의된 범위는 각각의 APS의 파라미터 유형에 기초하여 결정된다.
선택적으로, 선행하는 측면 중 임의의 측면에서, 상기 측면의 다른 구현예는, 각각의 APS가 파라미터 유형과 APS ID의 조합에 의해 식별된다.
선택적으로, 선행하는 측면 중 임의의 측면에서, 상기 측면의 다른 구현예는, 상기 프로세서가, SPS를 상기 비트스트림으로 인코딩하는 단계를 더 포함하고, 상기 SPS는 상기 코딩된 슬라이스를 포함하는 인코딩된 비디오 시퀀스에 대해 LMCS가 인에이블됨을 지시하도록 설정된 플래그를 포함한다.
일 실시예에서, 본 개시는 비디오 코딩 기기를 포함하며, 상기 비디오 코딩 기기는 프로세서, 상기 프로세서에 결합된 수신기, 상기 프로세서에 결합된 메모리, 및 상기 프로세서에 결합된 송신기를 포함하고, 상기 프로세서, 상기 수신기, 상기 메모리, 및 상기 송신기는 선행하는 측면 중 임의의 측면의 방법을 수행하도록 구성된다.
일 실시예에서, 본 개시는 비디오 코딩 기기에 의해 사용하기 위한 컴퓨터 프로그램 제품을 포함하는, 컴퓨터로 판독 가능한 비일시적인 매체를 포함하며, 상기 컴퓨터 프로그램 제품은 프로세서에 의해 실행될 때 상기 비디오 코딩 기기로 하여금 선행하는 측면 중 어느 측면의 방법을 수행하도록 하는, 상기 컴퓨터로 판독 가능한 비일시적인 매체에 저장된, 컴퓨터로 실행 가능한 명령어를 포함한다.
일 실시예에서, 본 개시는 디코더를 포함하며, 상기 디코더는, 코딩된 슬라이스와 연관된 LMCS 파라미터를 포함하는 LMCS 적응 파라미터 세트(APS)를 포함하는 비트스트림을 수신하기 위한 수신 수단; 상기 LMCS APS가 상기 코딩된 슬라이스와 관련된 데이터에서 참조된다는 것을 결정하기 위한 결정 수단; 상기 MCS APS로부터의 LMCS 파라미터를 사용하여 상기 코딩된 슬라이스를 디코딩하기 위한 디코딩 수단; 및 디코딩 비디오 시퀀스의 일부로서 표시하기 위해 디코딩 결과를 포워딩하기 위한 포워딩 수단을 포함한다.
선택적으로, 선행하는 측면 중 임의의 측면에서, 상기 측면의 다른 구현예는, 상기 디코더가 추가로, 선행하는 측면 중 임의의 측면의 방법을 수행하도록 구성된다.
일 실시예에서, 본 개시는 인코더를 포함하며, 상기 인코더는, 슬라이스에 적용하기 위한 LMCS 파라미터를 결정하기 위한 결정 수단; 상기 슬라이스를 코딩된 슬라이스로서 비트스트림으로 인코딩하고, 상기 LMCS 파라미터를 LMCS 적응 파라미터 세트(APS)에서의 비트스트림으로 인코딩하고, 상기 LMCS APS를 참조하는 상기 코딩된 슬라이스와 관련된 비트스트림 데이터로 인코딩하기 위한 인코딩 수단; 및 디코더로의 통신을 위해 상기 비트스트림을 저장하기 위한 저장 수단을 포함한다.
선택적으로, 선행하는 측면 중 임의의 측면에서, 상기 측면의 다른 구현예는, 상기 인코더가 추가로, 선행 측면 중 어느 측면의 방법을 수행하도록 구성된다.
명료함을 위해, 전술한 실시예 중 어느 하나는 본 개시의 범위 내에서 새로운 실시예를 만들기 위해 다른 전술한 실시예 중 어느 하나 이상과 조합될 수 있다.
이들 및 다른 특징은 첨부 도면 및 청구범위와 관련하여 취해진 이하에서의 상세한 설명으로부터 더 명확하게 이해될 것이다.
본 개시의 더욱 완전한 이해를 위해, 이제 첨부 도면 및 상세한 설명과 관련하여 취해진 다음의 간략한 설명을 참조하며, 여기서 유사한 참조 번호가 유사한 부분을 나타낸다.
도 1은 비디오 신호를 코딩하는 예시적인 방법의 흐름도이다.
도 2는 비디오 코딩을 위한 예시적인 코딩 및 디코딩(코덱) 시스템의 개략도이다.
도 3은 예시적인 비디오 인코더를 나타낸 개략도이다.
도 4는 예시적인 비디오 디코더를 나타낸 개략도이다.
도 5는 상이한 유형의 코딩 툴 파라미터를 포함하는 여러 유형의 적응 파라미터 세트(APS)를 포함하는 예시적인 비트스트림을 나타낸 개략도이다.
도 6은 상이한 값 공간에 걸쳐 상이한 APS 유형에 APS 식별자(ID)를 할당하기 위한 예시적인 메커니즘을 나타낸 개략도이다.
도 7은 예시적인 비디오 코딩 기기의 개략도이다.
도 8은 복수의 APS 유형을 채용하여 비디오 시퀀스를 비트스트림으로 인코딩하는 예시적인 방법의 흐름도이다.
도 9는 복수의 APS 유형을 채용하여 비트스트림으로부터 비디오 시퀀스를 디코딩하는 예시적인 방법의 흐름도이다.
도 10은 복수의 APS 유형을 채용하여 비트스트림에 이미지의 비디오 시퀀스를 코딩하기 위한 예시적인 시스템의 개략도이다.
하나 이상의 실시예의 예시적인 구현이 아래에 제공되지만, 개시된 시스템 및/또는 방법은 현재 알려져 있거나 존재하는 임의의 수의 기술을 사용하여 구현될 수 있음이 처음부터 이해되어야 한다. 본 개시는 여기에 예시되고 기술된 예시적인 설계 및 구현을 포함한, 아래에 나타낸 예시적인 구현, 도면 및 기술에 결코 한정되어서는 안 되며, 등가물의 전체 범위와 함께 첨부된 청구범위의 범위 내에서 수정될 수 있다.
여기서는 다음의 두문자어(acronym)를 사용한다: 적응형 루프 필터(Adaptive Loop Filter, ALF), 적응 파라미터 세트(Adaptation Parameter Set, APS), 코딩 트리 ㅂ블록(Coding Tree Block, CTB), 코딩 트리 유닛(Coding Tree Unit, CTU), 코딩 유닛(Coding Unit, CU), 코딩된 비디오 시퀀스(Coded Video Sequence, CVS), 하이퍼텍스트 송신 프로토콜을 통한 동적 적응형 스트리밍(Dynamic Adaptive Streaming over Hypertext transfer protocol, DASH), 인트라 랜덤 액세스 포인트(Intra-Random Access Point, IRAP), 공동 비디오 전문가 팀(Joint Video Experts Team, JVET), 움직임이 제약된 타일 세트(Motion-Constrained Tile Set, MCTS), 최대 전송 유닛(Maximum Transfer Unit, MTU), 네트워크 추상화 계층(Network Abstraction Layer, NAL), 픽처 순서 카운트(Picture Order Count, POC), 원시 바이트 시퀀스 페이로드(Raw Byte Sequence Payload, RBSP), 샘플 적응형 오프셋(Sample Adaptive Offset, SAO), 시퀀스 파라미터 세트(Sequence Parameter Set, SPS), 다목적 비디오 코딩(Verstatile Video Coding, VVC), 및 작업 초안(Working Draft, WD).
데이터 손실을 최소화하면서 비디오 파일의 크기를 줄이기 위해 많은 비디오 압축 기술이 채용될 수 있다. 예를 들어, 비디오 압축 기술은 비디오 시퀀스에서 데이터 중복(data redundancy)을 감소 또는 제거하기 위해 공간(예: 인트라 픽처) 예측 및/또는 시간(예: 인터 픽처) 예측을 수행하는 것을 포함할 수 있다. 블록 기반(block based) 비디오 코딩의 경우, 비디오 슬라이스(예: 비디오 픽처 또는 비디오 픽처의 일부)는 비디오 블록으로 파티셔닝될 수 있으며, 이는 트리블록, 코딩 트리 블록(CTB), 코딩 트리 유닛(CTU), 코딩 유닛(CU), 및/또는 코딩 노드으로도 지칭될 수 있다. 픽처의 인트라 코딩된(intra-coded)(I) 슬라이스의 비디오 블록은 동일한 픽처의 이웃 블록에서의 참조 샘플에 대한 공간 예측을 사용하여 코딩된다. 픽처의 인터 코딩된(inter-coded) 단방향 예측(P) 또는 양방향 예측(B) 슬라이스의 비디오 블록은 동일한 픽처의 이웃 블록에서의 참조 샘플에 대한 공간 예측 또는 다른 참조 픽처에서의 참조 샘플에 대한 시간 예측을 채용하여 코딩될 수 있다. 픽처는 프레임 및/또는 이미지로 지칭될 수 있고, 참조 픽처는 참조 프레임 및/또는 참조 이미지로 지칭될 수 있다. 공간 또는 시간 예측은 결과로서 이미지 블록을 나타내는 예측 블록을 생성한다. 잔차 데이터(residual data)는 원본(original) 이미지 블록과 예측 블록 사이의 화소 차이를 나타낸다. 따라서, 인터 코딩된 블록은 예측 블록을 형성하는 참조 샘플의 블록을 가리키는 움직임 벡터 및 코딩된 블록과 예측 블록 사이의 차이를 나타내는 잔차 데이터에 따라 인코딩된다. 인트라 코딩된 블록은 인트라 코딩 모드 및 잔차 데이터에 따라 인코딩된다. 추가 압축을 위해, 잔차 데이터는 화소 영역에서 변환 영역으로 변환될 수 있다. 이는 결과로서 양자화될 수 있는 잔차 변환 계수를 생성한다. 양자화된 변환 계수는 초기에 2차원 배열로 배열될 수 있다. 양자화된 변환 계수는 변환 계수의 1차원 벡터를 생성하기 위해 스캔될 수 있다. 더욱 압축을 실현하기 위해, 엔트로피 코딩이 적용될 수 있다. 이러한 비디오 압축 기술은 아래에 더 상세히 설명한다.
인코딩된 비디오가 정확하게 디코딩될 수 있도록 보장하기 위해, 비디오는 대응하는 비디오 코딩 표준에 따라 인코딩 및 디코딩된다. 비디오 코딩 표준으로는 ITU-T(International Telecommunication Union(ITU) Standardization Sector) H.261, ISO/IEC(International Organization for Standardization/International Electrotechnical Commission) MPEG(Motion Picture Experts Group)-1 Part 2, ITU-T H.262 또는 ISO/IEC MPEG-2 Part 2, ITU-T H.263, ISO/IEC MPEG-4 Part 2, ITU-T H.264 또는 ISO/IEC MPEG-4 Part 10으로도 알려진 AVC(Advanced Video Coding), 및 ITU-T H.265 또는 MPEG-H Part 2로도 알려진 HEVC(High Efficiency Video Coding)를 포함한다. AVC는 SVC(Scalable Video Coding), MVC(Multiview Video Coding) 및 MVC+D(Multiview Video Coding plus Depth), 및 3차원(3D) AVC(3D-AVC)와 같은 확장을 포함한다. HEVC는 SHVC(Scalable HEVC, MV-HEVC(Multiview HEVC), 및 3D HEVC(3D-HEVC)과 같은 확장을 포함한다. ITU-T와 ISO/IEC의 공동 비디오 전문가 팀(JVET)은 VVC(Versatile Video Coding)라고 하는 비디오 코딩 표준을 개발하기 시작했다. VVC는 VVC는 알고리즘 설명, VVC WD의 인코더 측 설명 및 참조 소프트웨어를 제공하는 JVET-M1001-v5 및 JVET-M1002-v1을 포함하는 작업 초안(WD)에 포함되어 있다.
비디오 시퀀스는 다양한 코딩 도구(coding tool)를 사용하여 코딩된다. 인코더는 비디오 시퀀스가 디코딩될 때 품질 손실을 최소화하면서 압축률을 높이는 것을 목적으로 코딩 도구에 대한 파라미터를 선택한다. 코딩 도구는 다양한 범위에서 비디오의 다른 부분과 관련될 수 있다. 예를 들어, 일부 코딩 도구는 비디오 시퀀스 레벨과 관련이 있고, 일부 코딩 도구는 픽처 레벨과 관련이 있으며, 일부 코딩 도구는 슬라이스 레벨과 관련이 있고, 등등이다. APS는 상이한 픽처들에 걸쳐 다수의 픽처 및/또는 다수의 슬라이스에 의해 공유될 수 있는 정보의 시그널링에 채용될 수 있다. 특히, APS는 적응형 루프 필터(ALF) 파라미터를 실어 전달할 수 있다. ALF 정보는 여러 가지 이유로 SPS(Sequence Parameter Set)의 시퀀스 레벨, PPS(Picture Parameter Set) 또는 픽처 헤더의 픽처 레벨, 또는 타일(tile) 그룹/슬라이스 헤더의 슬라이스 ㄹ레벨의 시그널링에 적합하지 않을 수 있다.
SPS에서 ALF 정보가 시그널링되면, 인코더는 ALF 정보가 변경될 때마다 새로운 SPS와 새로운 IRAP 픽처를 생성해야 한다. IRAP 픽처는 코딩 효율을 상당히 감소시킨다. 그래서 SPS에 ALF 정보를 배치하는 것은 빈번한 IRAP 픽처를 채용하지 않 저지연 애플리케이션 환경에서 특히 문제가 된다. SPS에 ALF 정보를 포함하면 SPS의 대역 외(out-of-band) 송신도 디스에이블할 수 있다. 대역 외 송신은 비디오 비트스트림과 다른 전송 데이터 흐름(예: 미디어 파일의 샘플 설명 또는 샘플 엔트리, SDP(Session Description Protocol) 파일 등)으로 대응하는 데이터를 전송하는 것을 가리킨다. PPS의 ALF 정보를 시그널링하는 것도 비슷한 이유로 문제가 될 수 있다. 구체적으로, PPS에 ALF 정보를 포함하는 것은 PPS의 대역 외 송신을 디스에이블할 수 있다. 픽처 헤더에서 ALF 정보를 시그널링하는 것도 문제가 될 수 있다. 경우에 따라서는 픽처 헤더가 채용되지 않을 수 있다. 또한, 일부 ALF 정보는 다수의 픽처에 적용될 수 있다. 따라서 픽처 헤더에서 ALF 정보를 시그널링하는 것은 정보 송신의 중복을 야기하여, 대역폭이 낭비된다. ALF 정보가 다수의 픽처에 적용될 수 있고 따라서 다수의 슬라이스/타일 그룹에 적용될 수 있기 때문에, 타일 그룹/슬라이스 헤더에서 ALF 정보를 시그널링하는 것도 역시 문제가 된다. 따라서, 슬라이스/타일 그룹 헤더에서 ALF 정보를 시그널링하는 것은 정보 송신의 중복을 야기하여, 대역폭을 낭비한다.
전술한 것에 기초하여, APS는 ALF 파라미터를 시그널링하기 위해 채용될 수 있다. 그러나 비디오 코딩 시스템은 ALF 파라미터를 시그널링하기 위해 배타적으로 APS를 채용할 수 있다. APS 신택스 및 시맨틱스의 예는 다음과 같다:
Aaptation_parameter_set_id는 다른 신택스 요소에 의한 참조를 위해 APS에 대한 식별자를 제공한다. APS는 픽처 전체에서 공유될 수 있으며 픽처 내의 다른 타일 그룹에서 다를 수 있다. aps_extension_flag는 APS RBSP 신택스 구조에 aps_extension_data_flag 신택스 요소가 존재하지 않음을 지정하기 위해 0과 동일하게 설정된다. aps_extension_flag는 APS RBSP 신택스 구조에 존재하는 aps_extension_data_flag 신택스 요소가 존재함을 지정하기 위해 1과 동일하게 설정된다. aps_extension_data_flag는 임의의 값을 가질 수 있다. aps_extension_data_flag의 존재와 값은 VVC에 지정된 프로파일에 대한 디코더 적합성(decoder conform)에 영향을 미치지 않을 수 있다. VVC를 준수하는 디코더는 모든 aps_extension_data_flag 구문 요소를 무시할 수 있다.
ALF 파라미터와 관련된 예시적인 타일 그룹 헤더 신택스는 다음과 같다:
tile_group_alf_enabled_flag는 적응형 루프 필터가 인에이블되고 타일 그룹의 루마(Y), 청색 크로마(Cb) 또는 적색 크로마(Cr) 색상 성분에 적용될 수 있음을 지정하기 위해 1과 동일하게 설정된다. tile_group_alf_enabled_flag는 적응형 루프 필터가 타일 그룹의 모든 색상 성분에 대해 디스에이블됨을 지정하기 위해 0과 동일하게 설정된다. tile_group_aps_id는 타일 그룹에 의해 참조되는 APS의 adaption_parameter_set_id를 지정한다. tile_group_aps_id와 동일한 adapt_parameter_set_id를 갖는 APS NAL 유닛의 TemporalId는 코딩된 타일 그룹 NAL 유닛의 TemporalId보다 작거나 같아야 한다. 동일한 값의 Adaptation_parameter_set_id를 갖는 다수의 APS가 동일한 픽처의 둘 이상의 타일 그룹에 의해 참조되는 경우, 동일한 값의 적응_parameter_set_id를 갖는 다수의 APS는 동일한 내용을 포함할 수 있다.
리셰이퍼(reshaper) 파라미터는 적응형 인루프 리셰이퍼 비디오 코딩 도구에 채용되는 파라미터이며, 이는 크로마 스케일링을 사용한 루마 매핑(LMCS)로도 알려져 있다. SPS 리셰이퍼 신택스 및 시맨틱스의 예는 다음과 같다:
sps_reshaper_enabled_flag는 1과 동일하게 설정되어 리셰이퍼가 코딩된 비디오 시퀀스(CVS)에서 사용되는 것을 지정한다. sps_reshaper_enabled_flag는 0으로 설정되어 CVS에서 리셰이퍼가 사용되지 않음을 지정한다.
타일 그룹 헤더/슬라이스 헤더 리셰이퍼 신택스 및 시맨틱스의 예는 다음과 같다:
tile_group_reshaper_model_present_flag는 1과 동일하게 설정되어 tile_group_reshaper_model()이 타일 그룹 헤더에 존재한다는 것을 지정한다. tile_group_reshaper_model_present_flag는 0과 동일하게 설정되어 tile_group_reshaper_model()이 타일 그룹 헤더에 존재하지 않음을 지정한다. tile_group_reshaper_model_present_flag가 없는 경우, 플래그는 0과 동일한 것으로 추론된다. tile_group_reshaper_enabled_flag는 1과 동일하게 설정되어 현재 타일 그룹에 대해 리셰이퍼가 인에이블됨을 지정한다. tile_group_reshaper_enabled_flag는 0으로 설정되어 현재 타일 그룹에 대해 리셰이퍼가 인에블되지 않음을 지정한다. tile_group_reshaper_enable_flag가 없는 경우, 플래그는 0과 동일한 것으로 추론된다. tile_group_reshaper_chroma_residual_scale_flag는 1과 동일하게 설정되어 크로마 잔차 스케일링이 현재 타일 그룹에 대해 인에이블됨을 지정한다. tile_group_ reshaper_chroma_residual_scale_flag는 0과 동일하게 설정되어 크로마 잔차 스케일링이 현재 타일 그룹에 대해 인에이블되지 않음을 지정한다. tile_group_reshaper _chroma_residual_scale_flag가 존재하지 않을 때, 플래그는 0과 같은 것으로 추론된다.
타일 그룹 헤더/슬라이스 헤더 리셰이퍼 모델 신택스 및 시맨틱스의 예는 다음과 같다:
reshape_model_min_bin_idx는 리셰이퍼 구성 프로세스에서 사용될 최소 빈(bin)(또는 피스(piece)) 색인을 지정한다. reshape_model_min_bin_idx의 값은 0부터 MaxBinIdx(포함)까지의 범위에 있을 수 있다. MaxBinIdx의 값은 15와 같을 수 있다. reshape_model_delta_max_bin_idx는 최대 허용 빈(또는 피스) 색인 MaxBinIdx에서 리셰이퍼 구성 프로세스에 사용될 최대 빈 색인을 뺀 것을 지정한다. reshape_model_max_bin_idx의 값은 MaxBinIdx에서 reshape_model _delta_max_bin_idx를 뺀 것과 동일하게 설정된다. reshaper_model_bin_delta_abs_cw_prec_minus1 더하기 1은 신택스 reshape_model_bin_delta_abs_CW[i]의 표현에 사용되는 비트 수를 지정한다. reshape_model_bin_delta_abs_CW[i]는 i번째 빈에 대한 절대 델타 코드워드 값을 지정한다.
reshaper_model_bin_delta_sign_CW_flag[i]는 다음과 같이 reshape_model_bin_delta_abs_CW[i]의 부호를 지정한다. reshape_model_bin_delta_sign_CW_flag[i]가 0이면, 대응하는 변수 RspDeltaCW[i]는 양수 값이다. 그렇지 않으면(예: reshape_model_bin_delta_sign_CW_flag[i]가 0과 동일하지 않음) 대응하는 변수 RspDeltaCW[i]는 음수 값이다. reshape_model_bin_delta _sign_CW_flag[i]가 없는 경우, 플래그는 0과 동일한 것으로 추론된다. 변수 RspDeltaCW[i]는 (1 - 2*reshape_model_bin_delta_sign_CW[i])*reshape_model_bin_delta_abs_CW[i]와 동일하게 설정된다.
변수 RspCW[i]는 다음과 같이 도출된다. 변수 OrgCW는 (1 << BitDepthY) / (MaxBinIdx + 1)과 동일하게 설정된다. reshaper_model_min_bin_idx < = i <= reshaper_model_max_bin_idx이면, RspCW[i] = OrgCW + RspDeltaCW[i]이다. 그렇지 않으면 RspCW[i] = 0. RspCW [i]의 값은 BitDepthY의 값이 10과 같으면, 32에서 2*OrgCW - 1까지의 범위에 있어야 한다. 0에서 MaxBinIdx + 1(포함)까지의 범위에 있는 i를 갖는 변수 InputPivot[i]는 다음과 같이 도출된다. InputPivot[i] = i * OrgCW. i가 0에서 MaxBinIdx+1(포함)까지의 범위에 있는 변수 ReshapePivot[i], i가 0에서 MaxBinIdx(포함)까지의 범위에 있는 변수 ScaleCoef[i] 및 InvScaleCoeff[i]는 다음과 같이 도출된다.
i가 0에서 MaxBinIdx(포함)까지의 범위에 있는 변수 ChromaScaleCoef[i]는 다음과 같이 도출된다:
리셰이퍼 파라미터의 특성은 다음과 같이 특징지어질 수 있다. tile_group_reshaper_model() 신택스 구조에 포함된 리셰이퍼 파라미터 세트의 크기는 일반적으로 약 60 내지100비트이다. 리셰이퍼 모델은 일반적으로 초당 약 한 번 인코더에 의해 업데이트되는데, 이는 많은 프레임을 포함한다. 또한 업데이트된 리셰이퍼 모델의 파라미터는 리셰이퍼 모델의 이전 인스턴스의 파라미터와 정확히 동일하지 않을 수 있다.
전술한 비디오 코딩 시스템은 특정 문제를 포함한다. 첫째, 이러한 시스템은 APS에서 ALF 파라미터를 실어 전달하도록만 구성된다. 또한, 리셰이퍼/LMCS 파라미터는 여러 픽처에 의해 공유될 수 있으며 많은 변형을 포함할 수 있다.
증대된 코딩 효율을 지원하기 위해 APS를 수정하는 다양한 메커니즘이 여기에 개시된다. 첫 번째 예에서, 다수의 유형의 APS가 개시된다. 특히, ALF APS라고 하는, ALF 유형의 APS는 ALF 파라미터를 포함할 수 있다. 또한, 스케일링 목록 APS라고 하는 스케일링 목록 유형의 APS는 스케일링 목록 파라미터를 포함할 수 있다. 또, LMCS APS라고 하는 LMCS 유형의 APS는 LMCS/리셰이퍼 파라미터를 포함할 수 있다. ALF APS, 스케일링 목록 APS 및 LMCS APS는 각각 개별 NAL 유형으로서 코딩될 수 있으며, 따라서 상이한 NAL 유닛에 포함될 수 있다. 이러한 방식으로, 한 유형의 APS(예: ALF 파라미터)에서 데이터의 변경이 변경되지 않는 다른 유형의 데이터(예: LMCS 파라미터)의 중복 코딩이 초래하지 않는다. 따라서, 다수의 유형의 APS를 제공하는 것은 코딩 효율을 증대시키고 따라서 인코더 및 디코더에서 네트워크 자원, 메모리 자원, 및/또는 처리 자원의 사용을 감소시킨다.
두 번째 예에서, 각각의 APS는 APS 식별자(ID)를 포함한다. 또한, 각각의 APS 유형은 대응하는 APS ID에 대한 개별 값 공간을 포함한다. 이러한 값 공간은 중첩될 수 있다. 따라서, 제1 유형의 APS(예: ALF APS)는 제2 유형의 APS(예: LMCS APS)와 동일한 APS ID를 포함할 수 있다. 이는 APS 파라미터 유형과 APS ID의 조합으로 각각의 APS를 식별함으로써 실현된다. 각각의 APS 유형이 다른 값 공간을 포함하도록 허용함으로써, 코덱은 ID 충돌에 대해 전 APS 유형을 확인할 필요가 없다. 또한, 값 공간이 겹칠 수 있도록 함으로써, 코덱은 더 큰 ID 값을 채용하는 것을 피할 수 있어, 약간의 비용이 절약된다. 이와 같이, 상이한 유형의 APS에 대해 별개의 중첩하는 값 공간을 사용하는 것은 코딩 효율을 증대시키고 따라서 인코더 및 디코더에서 네트워크 자원, 메모리 자원 및/또는 처리 자원의 사용을 감소시킨다.
세 번째 예에서, LMCS 파라미터는 LMCS APS에 포함된다. 위에서 언급한 바와 같이, LMCS/리셰이퍼 파라미터는 약 1초에 한 번 변경될 수 있다. 비디오 시퀀스는 초당 30 내지 60장의 픽처를 표시할 수 있다. 이와 같이, LMCS 파라미터는 30 내지 60 프레임 동안 변경되지 않을 수 있다. LMCS APS에 LMCS 파라미터를 포함하는 것은 LMCS 파라미터의 중복 코딩을 상당히 감소시킨다. 슬라이스 헤더 및/또는 슬라이스와 연관된 픽처 헤더는 관련 LMCS APS를 참조할 수 있다. 이러한 방식으로, LMCS 파라미터는 슬라이스에 대한 LMCS 파라미터가 변경될 때만 인코딩된다. 따라서, LMCS 파라미터를 인코딩하기 위해 LMCS APS를 채용하는 것은 코딩 효율을 증대시키고 따라서 인코더 및 디코더에서 네트워크 자원, 메모리 자원, 및/또는 처리 자원의 사용을 감소시킨다.
도 1은 비디오 신호를 코딩하는 예시적인 작업 방법(operating method)(100)의 흐름도이다. 구체적으로, 비디오 신호는 인코더에서 인코딩된다. 인코딩 프로세스는 비디오 파일 크기를 줄이기 위해 다양한 메커니즘을 채용하여 비디오 신호를 압축한다. 파일 크기가 작을수록 연관된 대역폭 오버헤드를 줄이면서 압축된 비디오 파일이 사용자에게 송신될 수 있게 해준다. 그러면 디코더는 압축된 비디오 파일을 디코딩하여 최종 사용자에게 표시하기 위해 원본 비디오 신호를 재구축한다. 디코딩 프로세스는 일반적으로 디코더가 비디오 신호를 일관되게 재구축할 수 있도록 인코딩 프로세스를 미러링(mirroring)한다.
단계 101에서, 비디오 신호가 인코더에 입력된다. 예를 들어, 비디오 신호는 메모리에 저장된 압축되지 않은(비압축) 비디오 파일일 수 있다. 다른 예로서, 비디오 파일은 비디오 카메라와 같은, 비디오 캡처 기기에 의해 캡처되고, 비디오의 라이브 스트리밍(live streaming)을 지원하도록 인코딩될 수 있다. 비디오 파일은 오디오 성분과 비디오 성분을 모두 포함할 수 있다. 비디오 성분은 시퀀스로 볼 때 움직임에 대한 시각적 인상을 주는 일련의 이미지 프레임을 포함한다. 프레임은, 여기에서 루마 성분(또는 루마 샘플)이라고 하는 빛과, 크로마(croma) 성분(또는 색상(color) 샘플)이라고 하는 색상으로 표현되는 화소를 포함한다. 일부 예에서, 프레임은 또한 3차원 보기를 지원하는 깊이 값(depth value)을 포함할 수 있다.
단계 103에서, 비디오는 블록으로 파티셔닝된다(partitioning). 파티셔닝은 압축을 위해 각각의 프레임의 화소를 정사각형 및/또는 직사각형 블록으로 세분화(subdividing)하는 것을 포함한다. 예를 들어, 고효율 비디오 코딩(HEVC)(H.265 및 MPEG-H Part 2로도 알려짐)에서 프레임은 먼저 미리 정의된 크기(예: 64개 화소×64개 화소)의 블록인 코딩 트리 유닛(CTU)으로 나뉠 수 있다. CTU는 루마 및 크로마 샘플을 모두 포함한다. CTU를 블록으로 나눈 다음 추가 인코딩을 지원하는 구성이 달성될 때까지 블록을 재귀적으로 세분화하기 위해 코딩 트리가 채용될 수 있다. 예를 들어, 프레임의 루마 성분은 개별 블록이 비교적 균일한 명암 값(lighting value)을 포함할 때까지 세분화될 수 있다. 또한, 프레임의 크로마 성분은 개별 블록이 비교적 균일한 색상 값을 포함할 때까지 세분화될 수 있다. 따라서 파티셔닝 메커니즘은 비디오 프레임의 내용에 따라 달라진다.
단계 105에서, 단계 103에서 파티셔닝된 이미지 블록을 압축하기 위해 다양한 압축 메커니즘이 채용된다. 예를 들어, 인터 예측(inter-prediction) 및/또는 인트라 예측(intra-prediction)이 사용될 수 있다. 인터 예측은 공통 장면(common scene)의 객체가 연속 프레임에 나타나는 경향이 있다는 사실을 이용하도록 설계되어 있다. 따라서, 참조 프레임에서 객체를 나타내는 블록은 인접 프레임에서 반복적으로 기술될 필요가 없다. 구체적으로, 테이블과 같은 객체는 다수의 프레임에 걸쳐 일정한 위치에 남아 있을 수 있다. 따라서 테이블은 한 번 기술되고 인접 프레임들은 참조 프레임을 다시 참조할 수 있다. 다수의 프레임에 걸쳐 객체들을 매칭시키기 위해 패턴 매칭 메커니즘이 채용될 수 있다. 또한, 움직이는 객체는, 예를 들어 객체의 움직임이나 카메라의 움직임으로 인해 다수의 프레임에 걸쳐 표현될 수 있다. 구체적인 예로서, 비디오는 다수의 프레임에 걸쳐 화면을 가로질러 움직이는 자동차를 보여줄 수 있다. 움직임 벡터가 이러한 움직임을 설명하는 데 채용될 수 있다. 움직임 벡터는 프레임에서의 객체 좌표에서 참조 프레임에서의 객체 좌표까지 오프셋을 제공하는 2차원 벡터이다. 이와 같이, 인터 예측은 현재 프레임의 이미지 블록을 참조 프레임의 대응하는 블록으로부터의 오프셋을 지시하는 움직임 벡터의 세트로서 인코딩할 수 있다.
인트라 예측은 공통 프레임 내의 블록을 인코딩한다. 인트라 예측은 루마 성분과 크로마 성분이 한 프레임에 모여 있는(cluster) 경향이 있다는 사실을 이용한다. 예를 들어, 나무의 일부에 있는 녹색의 패치는 유사한 녹색의 패치에 인접하게 배치되는 경향이 있다. 인트라 예측은 다중 방향 예측 모드(multiple directional prediction mode)(예: HEVC에서 33개), 평면 모드 및 직류(direct current, DC) 모드를 사용한다. 방향 모드(directional mode)는 현재 블록이 대응하는 방향에서 이웃 블록의 샘플과 유사/동일함을 지시한다. 평면 모드는 행/열(예: 평면)을 따라 일련의 블록이 행 가장자리에 있는 이웃 블록에 기초하여 보간될 수 있음을 지시한다. 실제로 평면 모드는 값을 변경할 때 비교적으로 일정한 기울기를 사용하여 행/열에 걸쳐 빛/색상의 매끄러운 이행(smooth transition)을 지시한다. DC 모드는 경계 평활화를 위해 채용되며 방향 예측 모드의 각도 방향과 연관된 모든 이웃 블록의 샘플과 연관된 평균값과 유사/동일한 블록을 지시한다. 따라서 인트라 예측 블록은 실제 값 대신 다양한 관계형(relational) 예측 모드 값으로 픽처 블록을 표현할 수 있다. 또한, 인터 예측 블록은 이미지 블록을 실제 값 대신 움직임 벡터 값으로 나타낼 수 있다. 어느 경우든, 예측 블록은 경우에 따라서는 이미지 블록을 정확하게 나타내지 못할 수 있다. 모든 차이는 잔차 블록에 저장된다. 파일을 추가로 압축하기 위해 잔차 블록에 변환이 적용될 수 있다.
단계 107에서, 다양한 필터링 기술이 적용될 수 있다. HEVC에서, 필터는 인루프(in-loop) 필터링 방식에 따라 적용된다. 위에서 논의된 블록 기반 예측은 디코더에서 블록 이미지를 생성하는 결과를 낳을 수 있다. 또한, 블록 기반 예측 방식은 블록을 인코딩한 다음 나중에 참조 블록으로 사용하기 위해 인코딩된 블록을 재구축할 수 있다. 인루프 필터링 방식은 잡음 억제(noise suppression) 필터, 디블로킹(de-blocking) 필터, 적응형 루프(adaptive loop) 필터, 샘플 적응형 오프셋(sample adaptive offset, SAO) 필터를 블록/프레임에 반복적으로 적용한다. 이러한 필터는 인코딩된 파일이 정확하게 재구축될 수 있도록 이러한 블로킹 아티팩트(blocking artifact)를 완화한다. 또한, 이러한 필터는 재구축된 참조 블록에서의 아티팩트를 완화하여, 재구축된 참조 블록에 기초하여 인코딩되는 후속 블록에서 아티팩트가 추가 아티팩트를 만들어 낼 가능성이 작도록 한다.
비디오 신호가 파티셔닝, 압축, 및 필터링되었으면, 그 결과 데이터는 단계 109에서 비트스트림으로 인코딩된다. 비트스트림은 위에서 논의된 데이터뿐 아니라 디코더에서의 적절한 비디오 신호의 재구축을 지원하기 위해 원하는 시그널링 데이터도 포함한다. 예를 들어, 그러한 데이터로는 파티션(partition) 데이터, 예측 데이터, 잔차 블록, 및 디코더에 코딩 명령을 제공하는 다양한 플래그를 포함할 수 있다. 비트스트림은 요청 시에 디코더를 향한 송신을 위해 메모리에 저장될 수 있다. 비트스트림은 또한 복수의 디코더를 향해 브로드캐스팅 및/또는 멀티캐스팅될 수 있다. 비트스트림의 생성은 반복적인 프로세스이다. 따라서, 단계 101, 103, 105, 107, 및 109는 많은 프레임 및 블록에 걸쳐 계속하여 및/또는 동시에 발생할 수 있다. 도 1에 도시된 순서는 논의의 명확성 및 편의를 위해 제시되며, 비디오 코딩 프로세스를 특정 순서로 한정하기 위한 것이 아니다.
디코더는 비트스트림을 수신하고 단계 111에서 디코딩 프로세스를 시작한다. 구체적으로, 디코더는 엔트로피 디코딩 방식을 채용하여 비트스트림을 대응하는 신택스 및 비디오 데이터로 변환한다. 디코더는 비트스트림으로부터의 신택스 데이터를 채용하여 단계 111에서 프레임에 대한 파티션을 결정한다. 파티셔닝은 단계 103의 블록 파티셔닝의 결과와 매칭되어야 한다. 이제 단계 111에서 채용된 엔트로피 인코딩/디코딩을 설명한다. 인코더는 입력 이미지(들)에서의 값의 공간적 위치에 기초한 여러 가능한 선택 중에서 블록 파티셔닝 방식을 선택하는 것과 같은, 압축 프로세스 동안 많은 선택을 한다. 정확한 선택을 시그널링하는 것은 많은 수의 빈을 채용할 수 있다. 여기에서 사용되는 바와 같이, 빈은 변수로 취급되는 이진 값(예: 컨텍스트에 따라 변할 수 있는 비트 값)이다. 엔트로피 코딩은 인코더가 특정 경우에 명확히 실행 가능하지 않은 옵션을 버리고, 허용 가능한 옵션의 세트를 남길 수 있도록 해준다. 그런 다음 각각의 허용 가능한 옵션에 코드워드가 할당된다. 코드 워드의 길이는 허용 가능한 옵션의 수에 기초한다(예: 두 개의 옵션에 대해 하나의 빈, 3∼4개의 옵션에 대해 두 개의 빈 등). 그러면 인코더는 선택한 옵션에 대한 코드 워드를 인코딩한다. 이 방식은, 코드 워드가 가능한 모든 옵션의 잠재적으로 큰 세트에서의 선택을 유일하게 지시하는 것과는 대조적으로 허용 가능한 옵션의 작은 서브 세트에서의 선택을 유일하게 지시하기 위해 원하는 만큼 크므로, 코드 워드의 크기를 줄인다. 그러면 디코더는 인코더와 유사한 방식으로 허용 가능한 옵션의 세트를 결정함으로써 선택을 디코딩한다. 허용 가능한 옵션 세트를 결정함으로써, 디코더는 코드 워드를 읽고 인코더에 의해 이루어진 선택을 결정할 수 있다.
단계 113에서, 디코더는 블록 디코딩을 수행한다. 구체적으로, 디코더는 역변환을 채용하여 잔차 블록을 생성한다. 그런 다음 디코더는 잔차 블록 및 대응하는 예측 블록을 채용하여 파티셔닝에 따른 이미지 블록을 재구축한다. 예측 블록은 단계 105에서 인코더에서 생성된 바와 같이 인트라 예측 블록 및 인터 예측 블록 모두를 포함할 수 있다. 그런 다음 재구축된 이미지 블록이 단계 111에서 결정된 파티셔닝 데이터에 따라 재구축된 비디오 신호의 프레임에 위치된다. 단계 113의 신택스는 또한 위에서 논의된 바와 같이 엔트로피 코딩을 통해 비트스트림으로 시그널링될 수 있다.
단계 115에서, 인코더에서 단계 107과 유사한 방식으로 재구축된 비디오 신호의 프레임에 대해 필터링이 수행된다. 예를 들어, 노이즈 억제 필터, 디블로킹 필터, 적응형 루프 필터 및 SAO 필터를 프레임에 적용하여, 블로킹 아티팩트를 제거할 수 있다. 프레임이 필터링되면, 비디오 신호는 최종 사용자에 의한 보기를 위해 단계 117에서 디스플레이에 출력될 수 있다.
도 2는 비디오 코딩을 위한 예시적인 코딩 및 디코딩(코덱) 시스템(200)의 개략도이다. 구체적으로, 코덱 시스템(200)은 작업 방법(100)의 구현을 지원하기 위한 기능을 제공한다. 코덱 시스템(200)은 인코더와 디코더 모두에 채용되는 구성요소를 나타내도록 일반화된다. 코덱 시스템(200)은 작업 방법(100)의 단계 101 및 103과 관련하여 논의된 바와 같이 비디오 신호를 수신하고 파티셔닝하며, 그 결과 파티셔닝된 비디오 신호(201)를 생성한다. 코덱 시스템(200)은 그 후 작업 방법(100)의 단계 105, 107 및 109와 관련하여 논의된 인코더의 역할을 할 때, 파티셔닝된 비디오 신호(201)를 코딩된 비트스트림으로 압축한다. 코덱 시스템(200)은 디코더의 역할을 할 때, 작업 방법(100)의 단계 111, 113, 115, 및 117과 관련하여 논의된 바와 같이 비트스트림으로부터 출력 비디오 신호를 생성한다. 코덱 시스템(200)은 일반 코더 제어 구성요소(211), 변환 스케일링 및 양자화 구성요소(213), 인터 픽처 추정 구성요소(215), 인터 픽처 예측 구성요소(217), 움직임 보상 구성요소(219), 움직임 추정 구성요소(221), 스케일링 및 역변환 구성요소(229), 필터 제어 분석 구성요소(227), 인루프 필터 구성요소(225), 디코딩된 픽처 버퍼 구성요소(223), 및 헤더 포맷팅 및 컨텍스트 적응형 이진 산술 코딩(context adaptive binary arithmetic coding, CABAC) 구성요소(231)를 포함한다. 이러한 구성요소는 도시된 바와 같이 결합된다. 도 2에서, 검은색 선은 인코딩/디코딩될 데이터의 이동을 지시하는 한편 파선은 다른 구성요소의 동작0을 제어하는 제어 데이터의 이동을 지시한다. 코덱 시스템(200)의 구성요소는 모두 인코더에 존재할 수 있다. 디코더는 코덱 시스템(200)의 구성요소의 서브세트를 포함할 수 있다. 예를 들어, 디코더는 인트라 픽처 예측 구성요소(217), 움직임 보상 구성요소(219), 스케일링 및 역변환 구성요소(229), 인루프 필터 구성요소(225) 및 디코딩된 픽처 버퍼 구성요소(223)를 포함할 수 있다. 이제 이들 구성요소를 설명한다.
파티셔닝된 비디오 신호(201)는 코딩 트리에 의해 화소 블록으로 이미 파티셔닝된, 캡처된 비디오 시퀀스이다. 코딩 트리는 화소 블록을 더 작은 화소 블록으로 세분화하기 위해 다양한 스플릿 모드(split mode)를 사용한다. 그러면 이러한 블록을 더 작은 블록으로 세분화할 수 있다. 블록은 코딩 트리 상의 노드로 지칭될 수 있다. 더 큰 부모 노드는 더 작은 자식 노드로 나뉜다. 노드가 세분화되는 횟수를 노드/코딩 트리의 깊이라고 한다. 나뉜 블록은 경우에 따라서는 CU(Coding Unit)에 포함될 수 있다. 예를 들어, CU는 CU에 대한 대응하는 신택스 명령과 함께 루마 블록, 적색 차이(red difference) 크로마(Cr) 블록(들) 및 청색 차이(blue difference) 크로마(Cb) 블록(들)을 포함하는 CTU의 서브 부분(sub-portion)일 수 있다. 스플릿 모드는 채용된 스플릿 모드에 따라 다양한 모양의 노드를 각각 2, 3 또는 4개의 자식 노드로 파티셔닝하는 데 채용되는 이진 트리(binary tree, BT), 트리플 트리(triple tree, TT) 및 쿼드 트리(quad tree, QT)를 포함할 수 있다. 파티셔닝된 비디오 신호(201)는 압축을 위해 일반 코더 제어 구성요소(211), 변환 스케일링 및 양자화 구성요소(213), 인트라 픽처 추정 구성요소(215), 필터 제어 분석 구성요소(227) 및 움직임 추정 구성요소(221)에 포워딩된다.
일반 코더 제어 구성요소(211)는 애플리케이션 제약에 따라 비디오 시퀀스의 이미지를 비트스트림으로 코딩하는 것과 관련된 결정을 내리도록 구성된다. 예를 들어, 일반 코더 제어 구성요소(211)는 비트레이트/비트스트림 크기 대(vs) 재구축 품질의 최적화를 관리한다. 이러한 결정은 저장 공간/대역폭 가용성 및 이미지 해상도 요청에 기초하여 내릴 수 있다. 일반 코더 제어 구성요소(211)는 또한 버퍼 언더런(underrun) 및 오버런(overrun) 문제를 완화하기 위해 전송 레이트에 비추어 버퍼 활용을 관리한다. 이러한 문제를 관리하기 위해, 일반 코더 제어 구성요소(211)는 다른 구성요소에 의한 파티셔닝, 예측 및 필터링을 관리한다. 예를 들어, 일반 코더 제어 구성요소(211)는 동적으로 해상도를 증가시키고 대역폭 사용을 증가시키기 위해 압축 복잡도를 증가시키거나 해상도 및 대역폭 사용을 감소시키기 위해 압축 복잡도를 감소시킬 수 있다. 따라서, 일반 코더 제어 구성요소(211)는 코덱 시스템(200)의 다른 구성요소를 제어하여 비디오 신호 재구축 품질과 비트 레이트 문제의 균형을 맞춘다. 일반 코더 제어 구성요소(211)는 다른 구성요소의 작동을 제어하는 제어 데이터를 생성한다. 제어 데이터는 또한 디코더에서의 디코딩을 위해 비트스트림에서 신호 파라미터로 인코딩되도록 헤더 포맷팅 및 CABAC 구성요소(231)에 포워딩된다.
파티셔닝된 비디오 신호(201)는 또한 인터 예측을 위해 움직임 추정 구성요소(221) 및 움직임 보상 구성요소(219)에 전송된다. 파티셔닝된 비디오 신호(201)의 프레임 또는 슬라이스는 다수의 비디오 블록으로 나뉠 수 있다. 움직임 추정 구성요소(221) 및 움직임 보상 구성요소(219)는 시간 예측을 제공하기 위해 하나 이상의 참조 프레임에서 하나 이상의 블록에 대해 수신된 비디오 블록의 인터 예측 코딩(inter-predictive coding)을 수행한다. 코덱 시스템(200)은, 예컨대, 비디오 데이터의 각각의 블록에 대해 적절한 코딩 모드를 선택하기 위해, 다수의 코딩 패스(coding pass)를 수행할 수 있다.
움직임 추정 구성요소(221) 및 움직임 보상 구성요소(219)는 고도로 통합될 수 있지만, 개념적 목적을 위해 개별적으로 나타낸다. 움직임 추정 구성요소(221)에 의해 수행되는 움직임 추정은 비디오 블록에 대한 움직임을 추정하는 움직임 벡터를 생성하는 프로세스이다. 예를 들어, 움직임 벡터는 예측 블록에 대한 코딩된 객체의 변위를 지시할 수 있다. 예측 블록은 화소 차이 측면에서, 코딩될 블록과 밀접하게 매칭되는 것으로 발견된 블록이다. 예측 블록은 참조 블록이라고도 할 수 있다. 그러한 화소 차이는 절대 차 합(sum of absolute difference, SAD), 제곱 차의 합(sum of square difference, SSD), 또는 기타 차의 메트릭에 의해 결정될 수 있다. HEVC는 CTU, 코딩 트리 블록(CTB) 및 CU를 포함한 여러 코딩된 객체를 채용한다. 예를 들어, CTU는 CTB로 나뉠 수 있으며, 이는 그 후 CU에 포함하기 위해 CB로 나뉠 수 있다. CU는 예측 데이터를 포함하는 예측 유닛(PU) 및/또는 CU에 대한 변환된 잔차 데이터를 포함하는 변환 유닛(TU)으로서 인코딩될 수 있다. 움직임 추정 구성요소(221)는 레이트 왜곡 최적화 프로세스의 일부로서 레이트 왜곡 분석을 사용함으로써 움직임 벡터, PU, 및 TU를 생성한다. 예를 들어, 움직임 추정 구성요소(221)는 현재 블록/프레임에 대한 다수의 참조 블록, 다수의 움직임 벡터 등을 결정할 수 있고, 최상의 레이트 왜곡 특성을 갖는 참조 블록, 움직임 벡터 등을 선택할 수 있다. 최상의 레이트 왜곡 특성은 비디오 재구축의 품질(예: 압축에 의한 데이터 손실의 양)과 코딩 효율(예: 최종 인코딩의 크기)의 균형을 유지한다.
일부 예에서, 코덱 시스템(200)은 디코딩된 픽처 버퍼 구성요소(223)에 저장된 참조 픽처의 정수 이하 화소 위치(sub-integer pixel position)에 대한 값을 계산할 수 있다. 예를 들어, 비디오 코덱 시스템(200)은 참조 픽처의 1/4 화소 위치, 1/8 화소 위치, 또는 기타 분수 화소 위치의 값을 보간할 수 있다. 따라서, 움직임 추정 구성요소(221)는 전체 화소 위치 및 분수 화소 위치에 대한 움직임 검색을 수행하고 분수 화소 정밀도를 갖는 움직임 벡터를 출력할 수 있다. 움직임 추정 구성요소(221)는 PU의 위치를 참조 픽처의 예측 블록의 위치와 비교함으로써 인터 코딩된 슬라이스에서 비디오 블록의 PU에 대한 움직임 벡터를 계산한다. 움직임 추정 구성요소(221)는 계산된 움직임 벡터를 움직임 데이터로서 인코딩을 위해 헤더 포맷팅 및 CABAC 구성요소(231)에, 그리고 움직임 보상을 위해 움직임 보상 구성요소(219)에 출력한다.
움직임 보상 구성요소(219)에 의해 수행되는 움직임 보상은 움직임 추정 구성요소(221)에 의해 결정된 움직임 벡터에 기초하여 예측 블록을 가져오거나(fetch) 또는 생성하는 것을 수반할 수 있다. 다시, 움직임 추정 구성요소(221) 및 움직임 보상 구성요소(219)는 일부 예에서, 기능적으로 통합될 수 있다. 현재 비디오 블록의 PU에 대한 움직임 벡터를 수신하면, 움직임 보상 구성요소(219)는 움직임 벡터가 가리키는 예측 블록을 찾을 수 있다. 그런 다음, 코딩되는 현재 비디오 블록의 화소 값에서 예측 블록의 화소 값을 빼서 화소 차이 값을 형성함으로써 잔차 비디오 블록이 형성된다. 일반적으로, 움직임 추정 구성요소(221)는 루마 성분에 대한 움직임 추정을 수행하고, 움직임 보상 구성요소(219)는 루마 성분에 기초하여 크로마 성분과 루마 성분 모두에 대해 계산된 움직임 벡터를 사용한다. 예측 블록 및 잔차 블록은 변환 스케일링 및 양자화 구성요소(213)에 포워딩된다.
파티셔닝된 비디오 신호(201)는 또한 인트라 픽처 추정 구성요소(215) 및 인트라 픽처 예측 구성요소(217)에 전송된다. 움직임 추정 구성요소(221) 및 움직임 보상 구성요소(219)와 마찬가지로, 인트라 픽처 추정 구성요소(215) 및 인트라 픽처 예측 구성요소(217)는 고도로 통합될 수 있지만, 개념적 목적을 위해 개별적으로 나타낸다. 인트라 픽처 추정 구성요소(215)와 인트라 픽처 예측 구성요소(217)는 위에서 설명한 바와 같이, 움직임 추정 구성요소(221)와 움직임 보상 구성요소(219)에 의해 프레임 간에 수행되는 인터 예측에 대한 대안으로서 현재 프레임 내의 블록들에 대해 현재 블록을 인트라 예측한다. 특히, 인트라 픽처 추정 구성요소(215)는 현재 블록을 인코딩하는 데 사용할 인트라 예측 모드를 결정한다. 일부 예에서, 인트라 픽처 추정 구성요소(215)는 다수의 테스트된 인트라 예측 모드 중에서 현재 블록을 인코딩하기 위해 적절한 인트라 예측 모드를 선택한다. 선택된 인트라 예측 모드는 인코딩을 위해 헤더 포맷팅 및 CABAC 구성요소(231)에 포워딩된다.
예를 들어, 인트라 픽처 추정 구성요소(215)는 다양한 테스트된 인트라 예측 모드에 대한 레이트 왜곡 분석을 사용하여 레이트 왜곡 값을 계산하고, 테스트된 모드 중에서 최상의 레이트 왜곡 특성을 갖는 인트라 예측 모드를 선택한다. 레이트 왜곡 분석은 일반적으로 인코딩된 블록과 인코딩된 블록을 생성하기 위해 인코딩되었던 인코딩되지 않은 원본 블록 사이의 왜곡(또는 오차)의 양뿐 아니라 인코딩된 블록을 생성하는 데 사용된 비트 레이트(예: 비트 수)도 결정한다. 인트라 픽처 추정 구성요소(215)는 블록에 대한 최상의 레이트 왜곡 값을 보이는 인트라 예측 모드를 결정하기 위해 다양한 인코딩된 블록에 대한 왜곡 및 레이트로부터 비율을 계산한다. 또한, 인트라 픽처 추정 구성요소(215)는 레이트 왜곡 최적화(rate-distortion optimization, RDO)에 기초한 깊이 모델링 모드(depth modeling mode, DMM)를 사용하여 깊이 맵의 깊이 블록을 코딩하도록 구성될 수 있다.
인트라 픽처 예측 구성요소(217)는 인코더에서 구현될 때 인트라 픽처 추정 구성요소(215)에 의해 결정되는 선택된 인트라 예측 모드에 기초하여 예측 블록으로부터 잔차 블록을 생성하거나, 디코더에서 구현될 때 비트스트림으로부터 잔차 블록을 읽을 수 있다. 잔차 블록은 행렬로 표현된, 예측 블록과 원본 블록 간의 값의 차이를 포함한다. 그 후, 잔차 블록은 변환 스케일링 및 양자화 구성요소(213)에 포워딩된다. 인트라 픽처 추정 구성요소(215) 및 인트라 픽처 예측 구성요소(217)는 루마 및 크로마 성분 모두에 대해 작동할 수 있다.
변환 스케일링 및 양자화 구성요소(213)는 잔차 블록을 추가로 압축하도록 구성된다. 변환 스케일링 및 양자화 구성요소(213)는 이산 코사인 변환(discrete cosine transform, DCT), 이산 사인 변환(discrete sine transform, DST) 또는 개념적으로 유사한 변환과 같은, 변환을 잔차 블록에 적용하여 잔차 변환 계수 값을 포함하는 비디오 블록을 생성한다. 웨이블릿 변환, 정수 변환, 서브 대역 변환 또는 기타 유형의 변환도 사용될 수 있다. 변환은 잔차 정보를 화소 값 영역에서 주파수 영역과 같은, 변환 영역으로 변환할 수 있다. 변환 스케일링 및 양자화 구성요소(213)는 또한, 예를 들어 주파수에 기초하여, 변환된 잔차 정보를 스케일링하도록 구성된다. 그러한 스케일링은 스케일 인자를 잔차 정보에 적용하여 상이한 주파수 정보가 상이한 그래뉼래러티(granularity)로 양자화되도록 하는 것을 포함하며, 이는 재구축된 비디오의 최종 시각적 품질에 영향을 미칠 수 있다. 변환 스케일링 및 양자화 구성요소(213)는 또한 비트 레이트를 추가로 감소시키기 위해 변환 계수를 양자화하도록 구성된다. 양자화 프로세스는 계수의 일부 또는 전부와 연관된 비트 깊이를 감소시킬 수 있다. 양자화의 정도는 양자화 파라미터를 조정함으로써 수정될 수 있다. 일부 예에서, 변환 스케일링 및 양자화 구성요소(213)는 그 후 양자화된 변환 계수들을 포함하는 행렬의 스캔을 수행할 수 있다. 양자화된 변환 계수는 헤더 포맷팅 및 CABAC 구성요소(231)에 포워딩되어 비트스트림에 인코딩된다.
스케일링 및 역변환 구성요소(229)는 움직임 추정을 지원하기 위해 변환 스케일링 및 양자화 구성요소(213)의 역작업(reverse operation)을 적용한다. 스케일링 및 역변환 구성요소(229)는 예컨대, 다른 현재 블록에 대한 예측 블록이 될 수 있는 참조 블록으로서 나중에 사용하기 위해, 화소 영역에서 잔차 블록을 재구축하기 위해 역 스케일링, 변환, 및/또는 양자화를 적용한다. 움직임 추정 구성요소(221) 및/또는 움직임 보상 구성요소(219)는 나중에 블록/프레임의 움직임 추정에 사용하기 위해 대응하는 예측 블록에 잔차 블록을 다시 추가함으로써 참조 블록을 계산할 수도 있다. 스케일링, 양자화 및 변환 중에 생성된 아티팩트를 완화하기 위해 재구축된 참조 블록에 필터가 적용된다. 그렇지 않으면 그러한 아티팩트는 후속 블록이 예측될 때 부정확한 예측을 야기(하고 추가 아티팩트를 생성)할 수 있다.
필터 제어 분석 구성요소(227) 및 인루프 필터 구성요소(225)는 필터를 잔차 블록 및/또는 재구축된 이미지 블록에 적용한다. 예를 들어, 스케일링 및 역변환 구성요소(229)로부터의 변환된 잔차 블록은 인트라 픽처 예측 구성요소(217) 및/또는 움직임 보상 구성요소(219)로부터의 대응하는 예측 블록과 결합되어 원래의 이미지 블록을 재구축할 수 있다. 그런 다음 필터가 재구축된 이미지 블록에 적용될 수 있다. 일부 예에서, 필터는 대신에 잔차 블록에 적용될 수 있다. 도 2의 다른 구성요소와 마찬가지로, 필터 제어 분석 구성요소(227) 및 인루프 필터 구성요소(225)는 고도로 통합되어 함께 구현될 수 있지만, 개념적 목적을 위해 개별적으로 나타낸다. 재구축된 참조 블록에 적용된 필터는 특정 공간 영역에 적용되며 이러한 필터가 적용되는 방식을 조정하기 위해 다수의 파라미터를 포함한다. 필터 제어 분석 구성요소(227)는 재구축된 참조 블록을 분석하여 그러한 필터가 적용되어야 하는 곳을 결정하고 대응하는 파라미터를 설정한다. 이러한 데이터는 인코딩을 위한 필터 제어 데이터로서 헤더 포맷팅 및 CABAC 구성요소(231)에 포워딩된다. 인루프 필터 구성요소(225)는 필터 제어 데이터에 기초하여 이러한 필터를 적용한다. 필터로는 디블로킹 필터, 잡음 억제 필터, SAO 필터 및 적응형 루프 필터를 포함할 수 있다. 그러한 필터는 예에 따라, 공간/화소 영역(예: 재구축된 화소 블록) 또는 주파수 영역에 적용될 수 있다.
인코더로서 동작할 때, 필터링된 재구축된 이미지 블록, 잔차 블록, 및/또는 예측 블록은 위에서 논의된 바와 같이 움직임 추정에서 나중에 사용하기 위해 디코딩된 픽처 버퍼 구성요소(223)에 저장된다. 디코더로서 동작할 때, 디코딩된 픽처 버퍼 구성요소(223)는 재구축되고 필터링된 블록을 저장하고 출력 비디오 신호의 일부로서 디스플레이를 향해 포워딩한다. 디코딩된 픽처 버퍼 구성요소(223)는 예측 블록, 잔차 블록, 및/또는 재구축된 이미지 블록을 저장할 수 있는 임의의 메모리 기기일 수 있다.
헤더 포맷팅 및 CABAC 구성요소(231)는 코덱 시스템(200)의 다양한 구성요소로부터 데이터를 수신하고 이러한 데이터를 디코더로의 전송을 위해 코딩된 비트스트림으로 인코딩한다. 구체적으로, 헤더 포맷팅 및 CABAC 구성요소(231)는 일반 제어 데이터 및 필터 제어 데이터와 같은 제어 데이터를 인코딩하기 위한 다양한 헤더를 생성한다. 또한, 인트라 예측 및 움직임 데이터를 포함한, 예측 데이터뿐 아니라 양자화된 변환 계수 데이터 형태의 잔차 데이터도 모두 비트스트림에 인코딩된다. 최종 비트스트림은 원래의 파티셔닝된 비디오 신호(201)를 재구축하기 위해 디코더가 원하는 모든 정보를 포함한다. 이러한 정보는 또한 인트라 예측 모드 색인표(코드워드 매핑표라고도 함), 다양한 블록에 대한 인코딩 컨텍스트의 정의, 가장 가능성 있는 인트라 예측 모드, 분할 정보의 지시 등을 포함할 수 있다. 이러한 데이터는 엔트로피 코딩을 채용하여 인코딩될 수 있다. 예를 들어, 정보는 컨텍스트 적응형 가변 길이 코딩(context adaptive variable length coding, CAVLC), CABAC, 신택스 기반 컨텍스트 적응형 이진 산술 코딩(syntax-based context-adaptive binary arithmetic coding, SBAC), 확률 구간 분할 엔트로피(probability interval partitioning entropy, PIPE) 코딩 또는 기타 엔트로피 코딩 기술을 적용하여 인코딩될 수 있다. 엔트로피 코딩에 이어, 코딩된 비트스트림은 다른 기기(예: 비디오 디코더)로 송신되거나 나중의 송신 또는 검색을 위해 보관될 수 있다.
도 3은 예시적인 비디오 인코더(300)를 나타낸 블록도이다. 비디오 인코더(300)는 코덱 시스템(200)의 인코딩 기능을 구현하고/하거나 작업 방법(100)의 단계 101, 103, 105, 107, 및/또는 109를 구현하기 위해 채용될 수 있다. 인코더(300)는 입력 비디오 신호를 파티셔닝하여, 결과로서 파티셔닝된 비디오 신호(301)를 생성하며, 이는 파티셔닝된 비디오 신호(201)와 실질적으로 유사하다. 파티셔닝된 비디오 신호(301)는 그 후 인코더(300)의 구성요소에 의해 압축되고 비트스트림으로 인코딩된다.
구체적으로, 파티셔닝된 비디오 신호(301)는 인트라 예측을 위해 인트라 픽처 예측 구성요소(317)로 포워딩된다. 인트라 픽처 예측 구성요소(317)는 인트라 픽처 추정 구성요소(215) 및 인트라 픽처 예측 구성요소(217)와 실질적으로 유사할 수 있다. 파티셔닝된 비디오 신호(301)는 또한 디코딩된 픽처 버퍼 구성요소(323) 내의 참조 블록에 기초한 인터 예측을 위해 움직임 보상 구성요소(321)에도 포워딩된다. 움직임 보상 구성요소(321)는 움직임 추정 구성요소(221) 및 움직임 보상 구성요소(219)와 실질적으로 유사할 수 있다. 인터 픽처 에측 구성요소(317) 및 움직임 보상 구성요소(321)로부터의 예측 블록 및 잔차 블록은 잔차 블록의 변환 및 양자화를 위해 변환 및 양자화 구성요소(313)에 포워딩된다. 변환 및 양자화 구성요소(313)는 변환 스케일링 및 양자화 구성요소(213)와 실질적으로 유사할 수 있다. 변환 및 양자화된 잔차 블록 및 대응하는 예측 블록(연관된 제어 데이터와 함께)은 비트스트림으로 코딩하기 위해 엔트로피 코딩 구성요소(331)에 포워딩된다. 엔트로피 코딩 구성요소(331)는 헤더 포맷팅 및 CABAC 구성요소(231)와 실질적으로 유사할 수 있다.
변환 및 양자화된 잔차 블록 및/또는 대응하는 예측 블록은 또한 움직임 보상 구성요소(321)에 의해 사용하기 위한 참조 블록으로의 재구축을 위해 변환 및 양자화 구성요소(313)로부터 역변환 및 양자화 구성요소(329)로 포워딩된다. 역변환 및 양자화 구성요소(329)는 스케일링 및 역변환 구성요소(229)와 실질적으로 유사할 수 있다. 인루프 필터 구성요소(325) 내의 인루프 필터는 또한 예에 따라, 잔차 블록 및/또는 재구축된 참조 블록에도 적용된다. 인루프 필터 구성요소(325)는 필터 제어 분석 구성요소(227) 및 인루프 필터 구성요소(225)와 실질적으로 유사할 수 있다. 인루프 필터 구성요소(325)는 인루프 필터 구성요소(225)와 관련하여 논의된 바와 같이 다수의 필터를 포함할 수 있다. 필터링된 블록은 그 후 움직임 보상 구성요소(321)에 의해 참조 블록으로서 사용하기 위해 디코딩된 픽처 버퍼 구성요소(323)에 저장된다. 디코딩된 픽처 버퍼 구성요소(323)는 디코딩된 픽처 버퍼 구성요소(223)와 실질적으로 유사할 수 있다.
도 4는 예시적인 비디오 디코더(400)를 나타낸 블록도이다. 비디오 디코더(400)는 코덱 시스템(200)의 디코딩 기능을 구현하고 및/또는 작업 방법(100)의 단계 111, 113, 115, 및/또는 117을 구현하기 위해 채용될 수 있다. 디코더(400)는, 예를 들어 인코더(300)로부터, 비트스트림을 수신하고, 최종 사용자에게 표시하기 위해 비트스트림에 기초하여 재구축된 출력 비디오 신호를 생성한다.
비트스트림은 엔트로피 디코딩 구성요소(433)에 의해 수신된다. 엔트로피 디코딩 구성요소(433)는 CAVLC, CABAC, SBAC, PIPE 코딩, 또는 기타 엔트로피 코딩 기술과 같은, 엔트로피 디코딩 방식을 구현하도록 구성된다. 예를 들어, 엔트로피 디코딩 구성요소(433)는 헤더 정보를 채용하여 비트스트림에서 코드워드로서 인코딩된 추가 데이터를 해석하기 위한 컨텍스트를 제공할 수 있다. 디코딩된 정보는 일반 제어 데이터, 필터 제어 데이터, 파티션 정보, 움직임 데이터, 예측 데이터 및 잔차 블록으로부터의 양자화된 변환 계수와 같은, 비디오 신호를 디코딩하기 위한 임의의 원하는 정보를 포함한다. 양자화된 변환 계수는 잔차 블록으로의 재구축을 위해 역변환 및 양자화 구성요소(429)에 포워딩된다. 역변환 및 양자화 구성요소(429)는 역변환 및 양자화 구성요소(329)와 유사할 수 있다.
재구축된 잔차 블록 및/또는 예측 블록은 인트라 예측 작업에 기초한 이미지 블록으로의 재구축을 위해 인트라 픽처 예측 구성요소(417)에 포워딩된다. 인트라 픽처 예측 구성요소(417)는 인트라 픽처 추정 구성요소(215) 및 인트라 픽처 예측 구성요소(217)와 유사할 수 있다. 구체적으로, 인트라 픽처 예측 구성요소(417)는 예측 모드를 채용하여 프레임 내의 참조 블록의 위치를 찾아내고 그 결과에 잔차 블록을 적용하여 인트라 예측된 이미지 블록을 재구축한다. 재구축된 인트라 예측된 이미지 블록 및/또는 잔차 블록 및 대응하는 인터 예측 데이터는 인루프 필터 구성요소(425)를 통해, 디코딩된 픽처 버퍼 구성요소(223) 및 인루프 필터 구성요소(225)와 각각 실질적으로 유사할 수 있는 디코딩된 픽처 버퍼 구성요소(423)로 포워딩된다. 인루프 필터 구성요소(425)는 재구축된 이미지 블록, 잔차 블록 및/또는 예측 블록을 필터링하고, 그러한 정보는 디코딩된 픽처 버퍼 구성요소(423)에 저장된다. 디코딩된 픽처 버퍼 구성요소(423)로부터의 재구축된 이미지 블록은 인터 예측을 위해 움직임 보상 구성요소(421)에 포워딩된다. 움직임 보상 구성요소(421)는 움직임 추정 구성요소(221) 및/또는 움직임 보상 구성요소(219)와 실질적으로 유사할 수 있다. 구체적으로, 움직임 보상 구성요소(421)는 예측 블록을 생성하기 위해 참조 블록으로부터의 움직임 벡터를 채용하고 그 결과에 잔차 블록을 적용하여 이미지 블록을 재구축한다. 결과인 재구축된 블록은 또한 인루프 필터 구성요소(425)를 통해 디코딩된 픽처 버퍼 구성요소(423)에 포워딩될 수 있다. 디코딩된 픽처 버퍼 구성요소(423)는 파티션 정보를 통해 프레임으로 재구축될 수 있는 추가의 재구축된 이미지 블록을 계속해서 저장한다. 이러한 프레임은 시퀀스에도 배치될 수 있다. 이 시퀀스는 재구축된 출력 비디오 신호로서 디스플레이에 출력된다.
도 5는 상이한 유형의 코딩 도구 파라미터를 포함하는 다수의 유형의 APS를 포함하는 예시적인 비트스트림(500)을 나타낸 개략도이다. 예를 들어, 비트스트림(500)은 코덱 시스템(200) 및/또는 디코더(400)에 의한 디코딩을 위해 코덱 시스템(200) 및/또는 인코더(300)에 의해 생성될 수 있다. 다른 예로서, 비트스트림(500)은 단계 111에서 디코더에 의해 사용하기 위해 방법(100)의 단계 109에서 인코더에 의해 생성될 수 있다.
비트스트림(500)은 시퀀스 파라미터 세트(SPS)(510), 복수의 픽처 파라미터 세트(PPS)(511), 복수의 ALF APS(512), 복수의 스케일링 목록 APS(513), 복수의 LMCS APS(514), 복수의 슬라이스 헤더(515), 및 이미지 데이터(520)를 포함한다. SPS(510)는 비트스트림(500)에 포함된 비디오 시퀀스의 모든 픽처에 공통인 시퀀스 데이터를 포함한다. 이러한 데이터는 픽처 크기 조정(sizing), 비트 깊이, 코딩 도구 파라미터, 비트 레이트 제한, 등을 포함할 수 있다. PPS(511)는 전체 픽처에 적용되는 파라미터를 포함한다. 따라서, 비디오 시퀀스의 각각 픽처는 PPS(511)를 참조할 수 있다. 각각의 픽처가 PPS(511)를 참조하는 반면, 단일 PPS(511)는 일부 예들에서 다수의 픽처에 대한 데이터를 포함할 수 있다는 점에 유의해야 한다. 예를 들어, 다수의 유사한 픽처는 유사한 파라미터에 따라 코딩될 수 있다. 이러한 경우, 단일의 PPS(511)는 이러한 유사한 픽처에 대한 데이터를 포함할 수 있다. PPS(511)는 대응하는 픽처의 슬라이스, 양자화 파라미터, 오프셋 등에 사용 가능한 코딩 도구를 지시할 수 있다. 슬라이스 헤더(515)는 픽처의 슬라이스 각각에 특정한 파라미터를 포함한다. 따라서, 비디오 시퀀스의 슬라이스당 하나의 슬라이스 헤더(515)가 있을 수 있다. 슬라이스 헤더(515)는 슬라이스 유형 정보, 픽처 순서 카운트(POC), 참조 픽처 목록, 예측 가중치, 타일 진입점(tile entry point), 디블로킹 파라미터 등을 포함할 수 있다. 슬라이스 헤더(515)는 일부 컨텍스트에서 타일 그룹 헤더로도 지칭될 수 있음에 유의해야 한다.
APS는 하나 이상의 픽처(521) 및/또는 슬라이스(523)에 적용되는 신택스 요소를 포함하는 신택스 구조이다. 도시된 예에서, APS는 다중 유형으로 분리될 수 있다. ALF APS(512)는 ALF 파라미터를 포함하는 ALF 유형의 APS이다. ALF는 가변 파라미터에 의해 제어되는 전달 함수를 포함하고 전달 함수를 개선하기 위해 피드백 루프로부터의 피드백을 사용하는 적응형 블록 기반 필터이다. 또한, ALF는 블록 기반 코딩의 결과로서 발생하는 코딩 아티팩트(예: 오류)를 수정하는 데 채용된다. 적응형 필터는 인코더에서 작동하는 RDO 프로세스와 같은 최적화 알고리즘에 의해 제어될 수 있는 가변 파라미터에 의한 전달 함수 제어기를 구비한 선형 필터이다. 이와 같이, ALF APS(512)에 포함된 ALF 파라미터는 디코더에서 디코딩하는 동안 필터로 하여금 블록 기반 코딩 아티팩트를 제거하도록 하기 위해 인코더에 의해 선택된 가변 파라미터를 포함할 수 있다.
스케일링 목록 APS(513)는 스케일링 목록 파라미터를 포함하는 유형 스케일링 목록의 APS이다. 위에서 논의된 바와 같이, 현재 블록은 인터 예측 또는 인트라 예측에 따라 코딩되어 잔차를 초래한다. 잔차는 블록의 루마 및/또는 크로마 값과 예측 블록의 대응하는 값 간의 차이이다. 그런 다음 변환이 잔차에 적용되어 잔차를 변환 계수(잔차 값보다 작은)로 변환한다. 고화질 및/또는 초고화질 콘텐츠의 인코딩은 잔차 데이터를 초래할 수 있다. 간단한 변환 프로세스가 그러한 데이터에 적용될 때 상당한 양자화 노이즈를 초래할 수 있다. 이와 같이, 스케일링 목록 APS(513)에 포함된 스케일링 목록 파라미터는 디스플레이 해상도의 변화 및/또는 결과적으로 디코딩된 비디오 이미지에서 양자화 노이즈의 허용 가능한 레벨을 설명하기 위해 변환 행렬의 스케일링에 적용될 수 있는 가중 파라미터를 포함한다.
LMCS APS(514)는, 리셰이퍼 파라미터로도 알려진, LMCS 파라미터를 포함하는 유형 LMCS의 APS이다. 인간의 시각 시스템은 빛의 차이(예: 휘도)보다 색상의 차이(예: 색차)를 구별하는 능력이 떨어진다. 이와 같이, 일부 비디오 시스템은 크로마 서브샘플링 메커니즘을 사용하여 대응하는 루마 값을 조정하지 않고 크로마 값의 해상도를 감소시킴으로써 비디오 데이터를 압축한다. 이러한 메커니즘에 대한 한가지 우려는 연관된 보간이 일부 위치에서 대응하는 루마 값과 호환되지 않는 디코딩 동안에 보간된 크로마 값을 생성할 수 있다는 것이다. 이것은 대응하는 위치에 색상 아티팩트를 만들어내는데, 이는 대응하는 필터로 수정해야 한다. 이것은 루마 매핑 메커니즘으로 인해 복잡하다. 루마 매핑은 입력 루마 신호의 동적 범위에 걸쳐 코딩된 루마 구성요소를 다시 매핑하는 프로세스이다(예: 구간적(peicewise) 선형 함수에 따라). 이것은 루마 성분을 압축한다. LMCS 알고리즘은 루마 매핑에 기초하여 압축된 크로마 값을 스케일링하여 크로마 서브샘플링과 관련된 아티팩트를 제거한다. 이와 같이, LMCS APS(514)에 포함된 LMCS 파라미터는 루마 매핑을 설명하는 데 사용되는 크로마 스케일링을 지시한다. LMCS 파라미터는 인코더에 의해 결정되고 루마 매핑이 채용될 때 크로마 서브샘플링으로 인한 아티팩트를 필터링하기 위해 디코더에 의해 채용될 수 있다.
이미지 데이터(520)는 인터 예측 및/또는 인트라 예측에 따라 인코딩된 비디오 데이터와 대응하는 변환 및 양자화된 잔차 데이터를 포함한다. 예를 들어, 비디오 시퀀스는 이미지 데이터로 코딩된 복수의 픽처(521)를 포함한다. 픽처(521)는 비디오 시퀀스의 단일 프레임이므로 일반적으로 비디오 시퀀스를 표시할 때 단일 유닛으로 표시된다. 그러나 가상 현실, 픽처 인 픽처(picture in picture) 등과 같은 특정 기술을 구현하기 위해 부분 픽처(partial picture)가 표시될 수 있다. 픽처(521)는 각각 PPS(511)를 참조한다. 픽처(521)는 슬라이스(523)로 나뉜다. 슬라이스(523)는 픽처(521)의 수평 섹션으로 정의될 수 있다. 예를 들어, 슬라이스(523)는 픽처(521)의 높이의 일부와 픽처(521)의 전체 너비를 포함할 수 있다. 다른 경우에, 픽처(521)는 열과 행으로 나뉠 수 있고 슬라이스(523)는 이러한 열과 행에 의해 생성된 픽처(521)의 직사각형 부분에 포함될 수 있다. 일부 시스템에서 슬라이스(523)는 타일로 세분된다. 다른 시스템에서, 슬라이스(523)는 타일을 포함하는 타일 그룹으로 지칭된다. 슬라이스(523) 및/또는 타일의 타일 그룹은 슬라이스 헤더(515)를 참조한다. 슬라이스(523)는 코딩 트리 유닛(CTU)으로 더 나뉜다. CTU는 코딩 트리에 기초하여 코딩 블록으로 더 나뉜다. 그런 다음, 코딩 블록은 예측 메커니즘에 따라 인코딩/디코딩될 수 있다.
픽처(521) 및/또는 슬라이스(523)는 관련 파라미터를 포함하는 ALF APS(512), 스케일링 목록 APS(513) 및/또는 LMCS APS(514)를 직접적으로 또는 간접적으로 참조할 수 있다. 예를 들어, 슬라이스(523)는 슬라이스 헤더(515)를 참조할 수 있다. 또한, 픽처(521)는 대응하는 픽처 헤더를 참조할 수 있다. 슬라이스 헤더(515) 및/또는 픽처 헤더는 관련 슬라이스(523) 및/또는 픽처(521)를 코딩하는 데 사용되는 파라미터들을 포함하는 ALF APS(512), 스케일링 목록 APS(513), 및/또는 LMCS APS(514)를 참조할 수 있다. 이러한 방식으로, 디코더는 대응하는 슬라이스(523) 및/또는 픽처(521)와 관련된 헤더 참조에 따라 슬라이스(523) 및/또는 픽처(521)와 관련된 코딩 도구 파라미터를 획득할 수 있다.
비트스트림(500)은 비디오 코딩 계층(VCL) NAL 유닛(535) 및 비(non) VCL NAL 유닛(531)으로 코딩된다. NAL 유닛은 네트워크를 통한 송신을 위한 단일 패킷에 대한 페이로드로서 배치되도록 크기가 조정된 코딩된 데이터 유닛이다. VCL NAL 유닛(535)은 코딩된 비디오 데이터를 포함하는 NAL 유닛이다. 예를 들어, 각각의 VCL NAL 유닛(535)은 하나의 슬라이스(523) 및/또는 데이터의 타일 그룹, CTU, 및/또는 코딩 블록을 포함할 수 있다. 비 VCL NAL 유닛(531)은 지원 신택스를 포함하지만 코딩된 비디오 데이터를 포함하지 않는 NAL 유닛이다. 예를 들어, 비 VCL NAL 유닛(531)은 SPS(510), PPS(511), APS, 슬라이스 헤더(515) 등을 포함할 수 있다. 이와 같이, 디코더는 개별 VCL NAL 유닛(535) 및 비 VCL NAL에서 비트스트림(500)을 수신한다. 액세스 유닛은 단일 픽처(521)를 코딩하기에 충분한 데이터를 포함하는 VCL NAL 유닛(535) 및/또는 비 VCL NAL 유닛(531)의 그룹이다.
일부 예에서, ALF APS(512), 스케일링 목록 APS(513), 및 LMCS APS(514)는 각각 개별의 비 VCL NAL 유닛(531) 유형에 할당된다. 이러한 경우, ALF APS(512), 스케일링 목록 APS(513) 및 LMCS APS(514)는 각각 ALF APS NAL 유닛(532), 스케일링 목록 APS NAL 유닛(533) 및 LMCS APS NAL 유닛(534)에 포함된다. 따라서, ALF APS NAL 유닛(532)은 다른 ALF APS NAL 유닛(532)이 수신될 때까지 남아 있는 ALF 파라미터를 포함한다. 또한, 스케일링 목록 APS NAL 유닛(533)은 다른 스케일링 목록 APS NAL 유닛(533)이 수신될 때까지 남아 있는 스케일링 목록 파라미터를 포함한다. 또한, LMCS APS NAL 유닛(534)은 다른 LMCS APS NAL 유닛(534)이 수신될 때까지 남아 있는 LMCS 파라미터를 포함한다. 이러한 방식으로, APS 파라미터가 변경될 때마다 새로운 APS를 발행할 필요가 없다. 예를 들어, LMCS 파라미터의 변경은 추가 LMCS APS(514)를 초래하지만, 추가 ALF APS(512) 또는 스케일링 목록 APS(513)를 초래하지는 않는다. 따라서, APS를 파라미터 유형에 기초하여 상이한 NAL 유닛 유형으로 분리함으로써, 관련 없는 파라미터의 중복 시그널링이 회피된다. 이와 같이, APS를 상이한 NAL 유닛 유형으로 분리하는 것은 코딩 효율을 증대시키고, 따라서 인코더 및 디코더에서 프로세서, 메모리, 및/또는 네트워크 자원의 사용을 감소시킨다.
또한, 슬라이스(523) 및/또는 픽처(521)는 슬라이스(523) 및/또는 픽처(521)의 코딩에 채용된 코딩 도구 파라미터를 포함하는 ALF APS(512), ALF APS NAL 유닛(532), 스케일링 목록 APS(513), 스케일링 목록 APS NAL 유닛(533), LMCS APS(514), 및/또는 LMCS APS NAL 유닛(534)을 직접적으로 또는 간접적으로 참조할 수 있다. 예를 들어, 각각의 APS는 APS ID(542) 및 파라미터 유형(541)을 포함할 수 있다. APS ID(542)는 대응하는 APS를 식별할 수 있도록 하는 값(예: 숫자)이다. APS ID(542)는 미리 정의된 비트 수를 포함할 수 있다. 따라서, APS ID(542)는 미리 정의된 시퀀스에 따라 증가할 수 있고(예: 1씩 증가) 시퀀스가 미리 정의된 범위의 끝에 도달하면 최솟값(예: 0)으로 재설정될 수 있다. 파라미터 유형(541)은 APS에 포함된 파라미터의 유형(예: ALF, 스케일링 목록, 및/또는 LMCS)을 지시한다. 예를 들어, 파라미터 유형(541)은 각각의 APS에 포함된 파라미터의 유형을 지시하는 미리 정의된 값에 대한 APS 파라미터 유형(aps_params_type) 코드 세트를 포함할 수 있다. 이와 같이, 파라미터 유형(541)은 ALF APS(512), 스케일링 목록 APS(513), 및 LMCS APS(514)를 구별하는 데 사용될 수 있다. 일부 예에서, ALF APS(512), 스케일링 목록 APS(513), 및 LMCS APS(514)은 각각 파라미터 유형(541)과 APS ID(542)의 조합에 의해 유일하게 식별될 수 있다. 예를 들어, 각각의 APS 유형은 대응하는 APS ID(542)에 대한 개별 값 공간을 포함할 수 있다. 따라서 각각의 APS 유형은 동일한 유형의 이전 APS에 기초하여 순차적으로 증가하는 APS ID(542)를 포함할 수 있다. 그러나 제1 APS 유형에 대한 APS ID(542)는 다른 제2 APS 유형의 이전 APS에 대한 APS ID(542)와 관련 없을 수 있다. 이와 같이, 상이한 APS 유형에 대한 APS ID(542)는 중첩되는 값 공간을 포함할 수 있다. 예를 들어, 제1 유형의 APS(예: ALF APS)는 일부 경우에 제2 유형의 APS(예: LMCS APS)와 동일한 APS ID(542)를 포함할 수 있다. 각각의 APS 유형이 상이한 값 공간을 포함할 수 있도록 함으로써, 코덱은 APS ID(542) 충돌에 대해 APS 유형 전체를 확인할 필요가 없다. 또한, 값 공간이 겹칠 수 있도록 함으로써, 코덱은 더 큰 APS ID(542) 값을 사용하는 것을 방지할 수 있으므로, 비트를 절약할 수 있다. 이와 같이, 상이한 APS 유형의 APS ID(542)에 대해 개별 중첩 값 공간을 사용하는 것은 코딩 효율을 증대시키고 따라서 인코더 및 디코더에서 네트워크 자원, 메모리 자원, 및/또는 처리 자원의 사용을 감소시킨다. 위에서 언급한 바와 같이, APS ID(542)는 미리 정의된 범위에 걸쳐 확장될 수 있다. 일부 예에서, APS ID(542)의 미리 정의된 범위는 파라미터 유형(541)에 의해 지시되는 APS 유형에 따라 달라질 수 있다. 이것은 상이한 유형의 파라미터가 일반적으로 얼마나 자주 변경되는지에 따라 상이한 수의 비트가 상이한 APS 유형에 할당되는 것을 허용할 수 있다. 예를 들어, ALF APS(512)의 APS ID(542)는 0 내지 7의 범위를 가질 수 있고, 스케일링 목록 APS(513)의 APS ID(542)는 0 내지 7의 범위를 가질 수 있고, LMCS APS(514)의 APS ID(542)는 0 내지 3의 범위를 가질 수 있다.
다른 예에서, LMCS 파라미터는 LMCS APS(514)에 포함된다. 일부 시스템은 슬라이스 헤더(515)에 LMCS 파라미터를 포함한다. 그러나 LMCS/리셰이퍼 파라미터는 약 1초에 한 번 변경될 수 있다. 비디오 시퀀스는 초당 30 내지 60장의 픽처(521)를 표시할 수 있다. 이와 같이, LMCS 파라미터는 30 내지 60프레임 동안 변경되지 않을 수 있다. LMCS 파라미터를 LMCS APS(514)에 포함하는 것은 LMCS 파라미터의 중복 코딩을 상당히 감소시킨다. 일부 예에서, 슬라이스(523) 및/또는 픽처(521)와 연관된 슬라이스 헤더(515) 및/또는 픽처 헤더는 각각, 관련 LMCS APS(514)를 참조할 수 있다. 그 다음, 슬라이스(523) 및/또는 픽처(521)는 슬라이스 헤더(515) 및/또는 픽처 헤더를 참조한다. 이것은 디코더가 연관된 슬라이스(523) 및/또는 픽처(521)에 대한 LMCS 파라미터를 획득할 수 있도록 해준다. 이러한 방식으로, LMCS 파라미터는 슬라이스(523) 및/또는 픽처(521)에 대한 LMCS 파라미터가 변경될 때만 인코딩된다. 따라서, LMCS 파라미터를 인코딩하기 위해 LMCS APS(514)를 사용하는 것은 코딩 효율을 증대시키고 따라서 인코더 및 디코더에서 네트워크 자원, 메모리 자원, 및/또는 처리 자원의 사용을 감소시킨다. LMCS가 모든 비디오에 대해 채용되지 않기 때문에, SPS(510)는 LMCS 인에이블된 플래그(543)를 포함할 수 있다. LMCS 인에이블된 플래그(543)는 인코딩된 비디오 시퀀스에 대해 LMCS가 인에이블됨을 지시하도록 설정될 수 있다. 이와 같이, 디코더는 LMCS 인에이블된 플래그(543)가 설정된 경우(예: 1로), LMCS 인에이블된 플래그(543)에 기초하여 LMCS APS(514)로부터 LMCS 파라미터를 획득할 수 있다. 또한, 디코더는 LMCS 인에이블된 플래그(543)가 설정되지 않은 경우(예: 0으로) LMCS 파라미터를 획득하려고 시도하지 않을 수 있다.
도 6은 APS ID(642)를 상이한 값 공간에 걸쳐 상이한 APS 유형에 할당하기 위한 예시적인 메커니즘(600)을 나타낸 개략도이다. 예를 들어, 메커니즘(600)은 ALF APS(512), 스케일링 목록 APS(513) 및/또는 LMCS APS(514)에 APS ID(542)를 할당하기 위해 비트스트림(500)에 적용될 수 있다. 또한, 메커니즘(600)은 방법(100)에 따라 비디오를 코딩하는 경우 코덱(200), 인코더(300) 및/또는 디코더(400)에 적용될 수 있다.
메커니즘(600)은 APS ID(642)를 ALF APS(612), 스케일링 목록 APS(613), 및 LMCS APS(614)에 할당하며, 이들은 각각 APS ID(542), ALF APS(512), 스케일링 목록 APS(513) 및 LMCS APS(514)와 실질적으로 유사할 수 있다. 위에서 언급된 바와 같이, APS ID(642)는 각각의 값 공간이 APS 유형에 특정한 복수의 상이한 값 공간에 걸쳐 순차적으로 할당될 수 있다. 또한, 각각의 값 공간은 APS 유형에 특정한 다른 범위에 걸쳐 확장될 수 있다. 도시된 예에서, ALF APS(612)에 대한 APS ID(642)의 값 공간의 범위는 0에서 7(예: 3비트)이다. 또한, 스케일링 목록 APS(613)에 대한 APS ID(642)의 값 공간의 범위는 0 내지 7(예: 3비트)이다. 또한, LMCS APS(611)에 대한 APS ID(642)의 값 공간의 범위는 0 내지 3(예: 2비트)이다. APS ID(642)가 값 공간 범위의 끝에 도달한 경우, 대응하는 유형의 다음 APS의 APS ID(642)는 범위의 시작(예: 0)으로 돌아간다. 새로운 APS가 동일한 유형의 이전 APS와 동일한 APS ID(642)를 수신한 경우, 이전 APS는 더 이상 활성화되지 않으며 더 이상 참조할 수 없다. 이와 같이, 값 공간의 범위는 더 많은 유형의 APS가 능동적으로 참조될 수 있도록 확장될 수 있다. 또한, 값 공간의 범위는 코딩 효율을 증대시키기 위해 감소될 수 있지만, 이러한 감소는 동시에 활성 상태를 유지하고 참조에 사용할 수 있는 대응하는유형의 APS의 수를 감소시킨다.
도시된 예에서, 각각의 ALF APS(612), 스케일링 목록 APS(613), 및 LMCS APS(614)는 APS ID(642) 및 APS 유형의 조합에 의해 참조된다. 예를 들어, ALF APS(612), LMCS APS(614), 및 스케일링 목록 APS(613)는 각각 0의 APS ID(642)를 수신한다. 새로운 ALF APS(612)가 수신되는 경우, APS ID(642)는 이전 ALF APS(612)에 사용된 값에서 증분된다(incremented). 동일한 시퀀스가 스케일링 목록 APS(613) 및 LMCS APS(614)에 적용된다. 따라서 각각의 APS ID(642)는 동일한 유형의 이전 APS에 대한 APS ID(642)와 관련이 있다. 그러나 APS ID(642)는 다른 유형의 이전 APS의 APS ID(642)와 관련이 없다. 이 예에서, ALF APS(612)의 APS ID(642)는 0에서 7까지 증분적으로 증가한 다음 계속 증분하기 전에 0으로 돌아간다. 또한, 스케일링 목록 APS(613)의 APS ID(642)는 0에서 7로 증분적으로 증가한 다음 계속해서 증분하기 전에 0으로 돌아간다. 또한, LMCS APS(611)의 APS ID(642)는 0에서 3으로 증분적으로 증가한 다음 계속해서 증가하기 전에 0으로 돌아간다. 도시된 바와 같이, 상이한 APS 유형의 상이한 APS가 비디오 시퀀스의 동일한 지점에서 동일한 APS ID(642)를 공유할 수 있기 때문에 그러한 값 공간은 중첩된다. 또한 메커니즘(600)은 APS만을 나타낸다는 점에 유의해야 한다. 비트스트림에서, 나타낸 APS는 SPS, PPS, 슬라이스 헤더, 픽처 헤더, 슬라이스 등과 같은, 다른 VCL과 비 VCL NAL 유닛 사이에 산재될 것이다.
이와 같이, 본 개시는 APS의 설계에 대한 개선뿐만 아니라 리셰이퍼/LMCS 파라미터의 시그널링을 위한 일부 개선을 포함한다. APS는 다수 픽처에 의해 공유될 수 있고 다양한 변형을 포함할 수 있는 정보의 시그널링을 위해 설계된다. 리셰이퍼/LMCS 파라미터는 적응형 인루프 리셰이퍼/LMCS 비디오 코딩 도구에 채용된다. 선행 메커니즘은 다음과 같이 구현될 수 있다. 여기에 나열된 문제를 해결하기 위해, 개별적으로 및/또는 조합하여 사용할 수 있는 여러 측면이 여기에 포함된다.
개시된 APS는 다수의 APS가 상이한 유형의 파라미터를 실어 전달하는 데 사용될 수 있도록 수정된다. 각각의 APS NAL 유닛은 한 가지 유형의 파라미터만 실어 전달하는 데 사용된다. 결과적으로, 특정 타일 그룹/슬라이스에 대해 두 가지 유형의 정보가 실려 전달될 때 두 개의 APS NAL 유닛이 인코딩된다(예: 각 정보 유형에 대해 하나씩). APS는 APS 신택스에 APS 파라미터 유형 필드를 포함할 수 있다. APS 파라미터 유형 필드에 의해 지시되는 유형의 파라미터만 APS NAL 유닛에 포함될 수 있다.
일부 예에서, 상이한 유형의 APS 파라미터는 상이한 NAL 유닛 유형에 의해 지시된다. 예를 들어, 두 가지 다른 NAL 유닛 유형이 APS에 사용된다. 두 가지 유형의 APS는 각각 ALF APS 및 리셰이퍼 APS로 지칭될 수 있다. 다른 예에서, APS NAL 유닛에 실려 전달되는 도구 파라미터의 유형은 NAL 유닛 헤더에 지정된다. VVC에서, NAL 유닛 헤더는 예약된 비트(예: 7비트는 nuh_reserved_zero_7bits로 표시됨)를 갖는다. 일부 예에서, 이 비트들 중 일부(예: 7비트 중 3비트)는 APS 파라미터 유형 필드를 지정하기 위해 사용될 수 있다. 일부 예에서, 특정 유형의 APS는 APS ID에 대해 동일한 값 공간을 공유할 수 있다. 한편, 상이한 유형의 APS는 APS ID의 상이한 값 공간을 사용한다. 따라서 두 가지 상이한 유형의 APS가 공존할 수 있으며 동시에 동일한 APS ID 값을 가질 수 있다. 또한, APS를 다른 APS와 식별하기 위해 APS ID와 APS 파라미터 유형의 조합이 사용될 수 있다.
APS ID는 타일 그룹에 대해 대응하는 코딩 도구가 인에이블되는 경우 타일 그룹 헤더 신택스에 포함될 수 있다. 그렇지 않으면 대응하는 유형의 APS ID가 타일 그룹 헤더에 포함되지 않을 수 있다. 예를 들어, 타일 그룹에 대해 ALF가 인에이블되는 경우, ALF APS의 APS ID가 타일 그룹 헤더에 포함된다. 예를 들어, ALF 유형을 지시하도록 APS 파라미터 유형 필드를 설정함으로써 이를 구현할 수 있다. 따라서, 타일 그룹에 대해 ALF가 인에이블되지 않는 경우, ALF APS의 APS ID는 타일 그룹 헤더에 포함되지 않는다. 또한, 타일 그룹에 대해 리셰이퍼 코딩 도구가 인에이블되는 경우, 타일 그룹 헤더에 리셰이퍼 APS의 APS ID가 포함된다. 예를 들어, 리셰이퍼 유형을 지시하도록 APS 파라미터 유형 필드를 설정함으로써 이를 구현할 수 있다. 또한, 타일 그룹에 대해 리셰이퍼 코딩 도구가 인에이블되지 않는 경우, 리셰이퍼r APS의 APS ID는 타일 그룹 헤더에 포함되지 않을 수 있다.
일부 예에서, APS에서 APS 파라미터 유형 정보의 존재는 파라미터와 연관된 코딩 도구의 사용에 의해 조정될 수 있다(conditioned). 비트스트림(예: LMCS, ALF 또는 스케일링 목록)에 대해 하나의 APS 관련 코딩 도구만 인에이블되는 경우, APS 파라미터 유형 정보는 존재하지 않고 대신 추론될 수 있다. 예를 들어, APS가 ALF 및 리셰이퍼 코딩 도구에 대한 파라미터를 포함할 수 있지만 ALF만 인에이블되고(예: SPS의 플래그로 지정된 대로) 리셰이퍼가 인에이블되지 않은 경우(예: SPS의 플래그로 지정된 대로), APS 파라미터 유형은 시그널링되지 않을 수 있으며 ALF 파라미터와 동일한 것으로 추론될 수 있다.
다른 예에서, APS 파라미터 유형 정보는 APS ID 값으로부터 추론될 수 있다. 예를 들어, 미리 정의된 APS ID 값 범위는 해당 APS 파라미터 유형과 연관될 수 있다. 이 측면은 다음과 같이 구현될 수 있다. APS ID를 시그널링하기 위해 X 비트를 할당하고 APS 파라미터 유형을 시그널링하기 위해 Y 비트를 할당하는 대신, APS ID를 시그널링하기 위해 X + Y 비트를 할당할 수 있다. APS ID 값의 상이한 범위는 상이한 유형의 APS 파라미터 유형을 지시하는 데 지정될 수 있다. 예를 들어, APS ID를 시그널링하기 위해 5비트를 사용하고 APS 파라미터 유형을 시그널링하기 위해 3비트를 사용하는 대신, APS ID를 시그널링하기 위해 8비트가 할당될 수 있다(예: 비트 비용 증가 없이). 0에서 63까지의 APS ID 값 범위는 APS가 ALF에 대한 파라미터가 포함함을 지시하고, 64에서 95까지의 ID 값 범위는 APS가 리셰이퍼에 대한 파라미터를 포함함을 지시하고, 96에서 255까지는 스케일링 목록과 같은, 다른 파라미터 유형을 위해 예약될 수 있다. 다른 예에서, 0에서 31까지의 APS ID 값 범위는 APS가 ALF에 대한 파라미터를 포함함을 지시하고, 32에서 47까지의 ID 값 범위는 APS가 리셰이퍼에 대한 파라미터를 포함함을 지시하고, 48에서 255까지는 스케일링 목록과 같은 다른 파라미터 유형을 위해 예약될 수 있다. 이 접근 방식의 장점은 각각의 도구의 파라미터 변경 빈도에 따라 APS ID 범위를 할당할 수 있다는 것이다. 예를 들어, ALF 파라미터는 리셰이퍼 파라미터보다 더 자주 변경될 것으로 예상될 수 있다. 이러한 경우, APS가 ALF 파라미터를 포함하는 APS임을 지시하기 위해 더 큰 APS ID 범위가 채용될 수 있다.
첫 번째 예에서, 선행 측면들 중 하나 이상은 다음과 같이 구현될 수 있다. ALF APS는 ALF_APS와 동일한 aps_params_type을 갖는 APS로 정의될 수 있다.
리셰이퍼 APS(또는 LMCS APS)는 MAP_APS와 동일한 aps_params_type을 갖는 APS로 정의될 수 있다. SPS 신택스 및 시맨틱스의 예는 다음과 같다.
sps_reshaper_enabled_flag는 1과 동일하게 설정되어 코딩된 비디오 시퀀스( CVS)에서 리셰이퍼가 사용됨을 지정한다. sps_reshaper_enabled_flag는 0으로 설정되어 CVS에서 리셰이퍼가 사용되지 않음을 지정한다.
예시적인 APS 신택스 및 시맨틱스는 다음과 같다.
aps_params_type은 다음 표에 지정된 바와 같이 APS에 실려 전달되는 APS 파라미터의 유형을 지정한다.
예시적인 타일 그룹 헤더 신택스 및 시맨틱스는 다음과 같다.
tile_group_alf_aps_id는 타일 그룹이 참조하는 ALF APS의 adaption_parameter_set_id를 지정한다. tile_group_alf_aps_id와 동일한 adapt_parameter_set_id를 갖는 ALF APS NAL 유닛의 TemporalId는 코딩된 타일 그룹 NAL 유닛의 TemporalId보다 작거나 같아야 한다. 동일한 값의 Adaptation_parameter_set_id를 갖는 다수의 ALF APS가 동일한 픽처의 둘 이상의 타일 그룹에 의해 참조되는 경우, 동일한 값의 adaptation_parameter_set_id를 갖는 다수의 ALF APS는 동일한 내용을 가져야 한다.
tile_group_reshaper_enabled_flag는 1과 동일하게 설정되어 리셰이퍼가 현재 타일 그룹에 대해 인에이블됨을 지정한다. tile_group_reshaper_enabled_flag는 0으로 설정되어 현재 타일 그룹에 대해 리셰이퍼가 인에이블되지 않음을 지정한다. tile_group_reshaper_enable_flag가 존재하지 않는 경우, 플래그는 0과 동일한 것으로 추론된다. tile_group_reshaper_aps_id는 타일 그룹이 참조하는 리셰이퍼 APS의 adaption_parameter_set_id를 지정한다. tile_group_reshaper_aps_id와 동일한 adapt_parameter_set_id를 갖는 리셰이퍼 APS NAL 유닛의 TemporalId는 코딩된 타일 그룹 NAL 유닛의 TemporalId보다 작거나 같아야 한다. 동일한 값의 adaptation_parameter_set_id를 갖는 다수의 리셰이퍼 APS가 동일한 픽처의 둘 이상의 타일 그룹에 의해 참조되는 경우, 동일한 값의 적응_parameter_set_id를 갖는 다수의 리셰이퍼 APS는 동일한 내용을 가져야 한다. tile_group_reshaper_chroma_residual_scale_flag는 1과 동일하게 설정되어 크로마 잔차 스케일링이 현재 타일 그룹에 대해 인에이블됨을 지정한다. tile_group_reshaper_chroma_residual_scale_flag는 0가 동일하게 설정되어 크로마 잔차 스케일링이 현재 타일 그룹에 대해 인에이블되지 않음을 지정한다. tile_group_reshaper_chroma_residual_scale_flag가 존재하지 않는 경우, 플래그는 0과 동일한 것으로 추론된다.
예시적인 리셰이퍼 데이터 신택스 및 시맨틱스는 다음과 같다.
reshaper_model_min_bin_idx는 리셰이퍼 구성 프로세스에서 사용될 최소 빈(또는 피스) 색인을 지정한다. reshaper_model_min_bin_idx의 값은 0에서 MaxBinIdx(포함)까지의 범위에 있어야 한다. MaxBinIdx의 값은 15와 같아야 한다. reshaper_model_delta_max_bin_idx는 최대 허용 빈(또는 피스) 색인 MaxBinIdx에서 리셰이퍼 구성 프로세스에 사용될 최대 빈 색인을 뺀 것을 지정한다. reshaper_model_max_bin_idx의 값은 MaxBinIdx - reshaper_model_delta_max_bin_idx와 동일하게 설정된다. reshaper_model_bin_delta_abs_cw_prec_minus1 더하기 1은 신택스 요소 reshaper_model _bin_delta_abs_CW[i]의 표현에 사용되는 비트 수를 지정한다. reshaper_model_bin_delta_abs_CW[i]는 i번째 빈에 대한 절대 델타 코드워드 값을 지정한다. reshaper_model_bin_delta_abs_CW[i] 신택스 요소는 reshaper_model_bin_delta_abs_cw_prec_minus1 + 1 비트로 표현된다. reshaper_model_bin_delta_sign_CW_flag[i]는 reshaper_model_bin _delta_abs_CW[i]의 부호를 지정한다.
두 번째 예에서, 선행 측면들 중 하나 이상은 다음과 같이 구현될 수 있다. 예시적인 SPS 신택스 및 시맨틱스는 다음과 같다.
변수 ALFEnabled 및 ReshaperEnabled는 다음과 같이 설정된다. ALFEnabled = sps_alf_enabled_flag이고 ReshaperEnabled = sps_reshaper_enabled_flag이다.
예시적인 APS 신택스 및 시맨틱스는 다음과 같다.
aps_params_type은 다음 표에 지정된 바와 같이 APS에 실려 전달되는 APS 파라미터의 유형을 지정한다.
존재하지 않을 때, aps_params_type의 값은 다음과 같이 추론된다. ALFEnabled이면, aps_params_type은 0으로 설정된다. 그렇지 않으면, aps_params_type이 1과 동일하게 설정된다.
두 번째 예에서, 선행 측면들 중 하나 이상은 다음과 같이 구현될 수 있다. 예시적인 SPS 신택스 및 시맨틱스는 다음과 같다.
Adaptation_parameter_set_id는 다른 신택스 요소에 의한 참조를 위해 APS에 대한 식별자를 제공한다. APS는 픽처 전체에서 공유될 수 있으며 픽처 내의 상이한 타일 그룹에서 상이할 수 있다. APSParamsType 변수의 값과 설명은 다음 표에 정의되어 있다.
예시적인 타일 그룹 헤더 시맨틱스는 다음과 같다. tile_group_alf_aps_id는 타일 그룹이 참조하는 ALF APS의 adaption_parameter_set_id를 지정한다. tile_group_alf_aps_id와 동일한 adaptation_parameter_set_id를 갖는 ALF APS NAL 유닛의 TemporalId는 코딩된 타일 그룹 NAL 유닛의 TemporalId보다 작거나 같아야 한다. tile_group_alf_aps_id의 값은 0에서 63까지의 범위에 있어야 한다.
동일한 값의 adaptation_parameter_set_id를 갖는 다수의 ALF APS가 동일한 픽처의 둘 이상의 타일 그룹에 의해 참조되는 경우, 동일한 값의 adaptation_parameter_set_id를 갖는 다수의 ALF APS는 동일한 내용을 가져야 한다. tile_group_reshaper_aps_id는 타일 그룹이 참조하는 리셰이퍼 APS의 adaption_parameter_set_id를 지정한다. tile_group_reshaper_aps_id와 동일한 adaptation _parameter_set_id를 갖는 리셰이퍼 APS NAL 유닛의 TemporalId는 코딩된 타일 그룹 NAL 유닛의 TemporalId보다 작거나 같아야 한다. tile_group_reshaper_aps_id의 값은 64에서 95(포함)의 범위에 있어야 한다. 동일한 값의 adaptation_parameter_set_id를 갖는 다수의 리셰이퍼 APS가 동일한 픽처의 둘 이상의 타일 그룹에 의해 참조되는 경우, 동일한 값의 adaptation _parameter_set_id를 갖는 다수의 reshaper APS는 동일한 내용을 가져야 한다.
도 7은 예시적인 비디오 코딩 기기(700)의 개략도이다. 비디오 코딩 기기(700)는 여기에 설명된 바와 같이 개시된 예/실시예를 구현하는 데 적합하다. 비디오 코딩 기기(700)는 네트워크를 통해 데이터 업스트림 및/또는 다운스트림을 통신하기 위한 송신기 및/또는 수신기를 포함하는 다운스트림 포트(720), 업스트림 포트(750), 및/또는 송수신기 유닛(Tx/Rx)(710)을 포함한다. 비디오 코딩 기기(700)는 또한 데이터를 처리하기 위한 논리 유닛 및/또는 중앙 처리 유닛(CPU)과 데이터를 저장하기 위한 메모리(732)를 포함하는 프로세서(730)를 포함한다. 비디오 코딩 기기(700)는 또한 전기, 광, 또는 모선 통신 네트워크를 통한 데이터의 통신을 위해 업스트림 포트(750) 및/또는 다운스트림 포트(720)에 결합된 전기적, 광전(optical-to-electrical, OE) 구성요소, 전광(electrical-to-optical, EO) 구성요소, 및/또는 무선 통신 구성요소를 포함할 수 있다. 비디오 코딩 기기(700)는 또한 사용자와의 데이터 통신을 위한 입력 및/또는 출력(I/O) 기기(760)를 포함할 수 있다. I/O 기기(760)는 비디오 데이터를 표시하기 위한 디스플레이, 오디오 데이터를 출력하기 위한 스피커 등과 같은 출력 기기를 포함할 수 있다. I/O 기기(760)는 또한 키보드, 마우스, 트랙볼 등과 같은 입력 기기, 및/또는 그러한 출력 장치와 상호작용하기 위한 대응하는 인터페이스를 포함할 수 있다.
프로세서(730)는 하드웨어 및 소프트웨어에 의해 구현된다. 프로세서(730)는 하나 이상의 CPU 칩, 코어(예: 멀티코어 프로세서로서), FPGA(Field-Programmable Gate Arrays), ASIC(Application Specific Integrated Circuit), 및 DSP(Digital Signal Processor)로서 구현될 수 있다. 프로세서(730)는 다운스트림 포트(720), Tx/Rx(710), 업스트림 포트(750), 및 메모리(732)와 통신한다. 프로세서(730)는 코딩 모듈(714)을 포함한다. 코딩 모듈(714)은 비트스트림(500) 및/또는 메커니즘(600)을 채용할 수 있는 방법(100, 800 및 900)과 같은, 여기에 설명한 개시된 실시예를 구현한다. 코딩 모듈(714)은 또한 여기에 설명한 임의의 다른 방법/메커니즘을 구현할 수 있다. 또한, 코딩 모듈(714)은 코덱 시스템(200), 인코더(300), 및/또는 디코더(400)를 구현할 수 있다. 예를 들어, 코딩 모듈(714)은 비트스트림에 픽처를 인코딩/디코딩하고 복수의 APS에서 픽처의 슬라이스와 연관된 파라미터를 인코딩/디코딩할 수 있다. 일부 예에서, 상이한 유형의 파라미터는 상이한 유형의 APS로 코딩될 수 있다. 또한, 상이한 유형의 APS는 상이한 NAL 유닛 유형에 포함될 수 있다. 그러한 APS 유형으로는 ALF APS, 스케일링 목록 APS, 및/또는 LMCS APS를 포함할 수 있다. APS는 각각 APS ID를 포함할 수 있다. 상이한 APS 유형의 APS ID는 상이한 값 공간에 걸쳐 순차적으로 증가할 수 있다. 또한, 슬라이스 및/또는 픽처는 대응하는 슬라이스 헤더 및/또는 픽처 헤더를 참조할 수 있다. 그런 다음 이러한 헤더는 관련 코딩 도구를 포함하는 APS를 참조할 수 있다. 이러한 APS는 APS ID 및 APS 유형에 의해 유일하게 참조될 수 있다. 이러한 예는 코딩 도구 파라미터의 중복 시그널링을 감소시키고/시키거나 식별자에 대한 비트 사용을 감소시킨다. 따라서, 코딩 모듈(714)은 비디오 코딩 기기(700)로 하여금 비디오 데이터를 코딩할 때 추가적인 기능 및/또는 코딩 효율성을 제공하게 한다. 이와 같이, 코딩 모듈(714)은 비디오 코딩 기기(700)의 기능을 개선할 뿐만 아니라 비디오 코딩 기술에 특정한 문제를 해결한다. 또한, 코딩 모듈(714)은 비디오 코딩 기기(700)를 다른 상태로 변환시킨다. 대안적으로, 코딩 모듈(714)은 메모리(732)에 저장된 명령어로서 구현될 수 있고 프로세서(730)에 의해 실행될 수 있다(예: 비일시적 매체에 저장된 컴퓨터 프로그램 제품으로서).
메모리(732)는 디스크, 테이프 드라이브, 솔리드 스테이트 드라이브, 판독 전용 메모리(read only memory, ROM), 랜덤 액세스 메모리(random access memory, RAM), 플래시 메모리, TCAM(Ternary Content-Addressable Memory), 정적 랜덤 액세스 메모리(static random-access memory, SRAM) 등과 같은 하나 이상의 메모리 유형을 포함할 수 있다. 메모리(732)는 오버플로우 데이터 저장 기기로 사용될 수 있고, 그러한 프로그램이 실행을 위해 선택될 때 프로그램을 저장하고, 프로그램 실행 중에 판독되는 명령어 및 데이터를 저장하기 위해 사용될 수 있다.
도 8은 ALF APS(512), 스케일링 목록 APS(513), 및/또는 LMCS APS(514)와 같은, 복수의 APS 유형을 채용함으로써 비디오 시퀀스를 비트스트림(500)과 같은, 비트스트림으로 인코딩하는 예시적인 방법(800)의 흐름도이다. 방법(800)은 방법(100)을 수행할 때 코덱 시스템(200), 인코더(300), 및/또는 비디오 코딩 기기(700)와 같은, 인코더에 의해 채용될 수 있다. 방법(800)은 또한 메커니즘(600)에 따라 상이한 값 공간을 채용함으로써 상이한 유형에 APS에 APS ID를 할당할 수 있다.
방법(800)은 인코더가 복수의 픽처를 포함하는 비디오 시퀀스를 수신하고 예를 들어 사용자 입력에 기초하여, 그 비디오 시퀀스를 비트스트림으로 인코딩하기로 결정하는 경우에 시작할 수 있다. 비디오 시퀀스는 인코딩 전에 추가 파티셔닝을 위해 픽처/이미지/프레임으로 파티셔닝된다. 단계 801에서, 인코더는 슬라이스에 적용하기 위해 크로마 스케일링을 사용한 루마 매핑(LMCS)을 결정한다. 이것은 픽처의 슬라이스를 인코딩하기 위해 RDO 작업을 채용하는 것을 포함할 수 있다. 예를 들어, 인코더는 상이한 코딩 옵션/코딩 도구를 사용하여 슬라이스를 여러 번 반복적으로 인코딩하고, 코딩된 슬라이스를 디코딩하고, 디코딩된 슬라이스를 필터링하여 슬라이스의 출력 품질을 증가시킬 수 있다. 그런 다음 인코더는 압축과 출력 품질의 최상의 균형을 이루는 인코딩 옵션을 선택할 수 있다. 인코딩이 선택되면, 인코더는 선택된 인코딩을 필터링하는 데 채용된 LMCS 파라미터(및 기타 필터 파라미터)를 결정할 수 있다. 단계 803에서, 인코더는 선택된 인코딩에 기초하여 슬라이스를 비트스트림으로 인코딩할 수 있다.
단계 805에서, 단계(801)에서 결정된 LMCS 파라미터는 LMCS APS에서 비트스트림으로 인코딩된다. 또한 LMCS APS를 참조하는 슬라이스와 관련된 데이터도 비트스트림으로 인코딩할 수 있다. 예를 들어, 슬라이스와 관련된 데이터는 슬라이스 헤더 및/또는 픽처 헤더일 수 있다. 하나의 예에서, 슬라이스 헤더는 비트스트림으로 인코딩될 수 있다. 슬라이스는 슬라이스 헤더를 참조할 수 있다. 그런 다음 슬라이스 헤더는 슬라이스와 관련된 데이터를 포함하고 LMCS APS를 참조한다. 다른 예에서, 픽처 헤더는 비트스트림으로 인코딩될 수 있다. 슬라이스를 포함하는 픽처는 픽처 헤더를 참조할 수 있다. 그런 다음 픽처 헤더는 슬라이스와 관련된 데이터를 포함하고 LMCS APS를 참조한다. 두 경우 모두, 헤더는 슬라이스에 대한 LMCS 파라미터를 포함하는 적절한 LMCS APS를 결정하기에 충분한 정보를 포함한다.
단계 807에서, 다른 필터링 파라미터가 다른 APS로 인코딩될 수 있다. 예를 들어, ALF 파라미터를 포함하는 ALF APS 및 APS 파라미터를 포함하는 스케일링 목록 APS도 비트스트림으로 인코딩될 수 있다. 그러한 APS는 또한 슬라이스 헤더 및/또는 픽처 헤더에 의해 참조될 수 있다.
위에서 언급한 바와 같이, 각각의 APS는 파라미터 유형과 APS ID의 조합에 의해 유일하게 식별될 수 있다. 그러한 정보는 관련 APS를 참조하기 위해 슬라이스 헤더 또는 픽처 헤더에 의해 채용될 수 있다. 예를 들어, 각각의 APS는 대응하는 APS에 포함된 파라미터의 유형을 지시하는 미리 정의된 값으로 설정된 aps_params_type 코드를 포함할 수 있다. 또한, 각각의 APS는 미리 정의된 범위에서 선택된 APS ID를 포함할 수 있다. 미리 정의된 범위는 대응하는 APS의 파라미터 유형에 기초하여 결정될 수 있다. 예를 들어, LMCS APS는 0 내지 3(2비트)의 범위를 가질 수 있고, ALF APS 및 스케일링 목록 APS는 0 내지 7(3비트)의 범위를 가질 수 있다. 그러한 범위는 메커니즘(600)에 의해 설명된 바와 같이 APS 유형에 특정한 상이한 중첩 값 공간을 기술할 수 있다. 이와 같이, APS 유형 및 APS ID는 모두 단계 805 및 807에서 특정 APS를 참조하는 데 사용될 수 있다.
단계 809에서, 인코더는 SPS를 비트스트림으로 인코딩한다. SPS는 픽처/슬라이스를 포함하는 인코딩된 비디오 시퀀스에 대해 LMCS가 인에이블됨을 지시하도록 설정된 플래그를 포함할 수 있다. 그런 다음 비트스트림은 예를 들어 송신기를 통해 단계 811에서 디코더를 향한 통신을 위해 메모리에 저장될 수 있다. LMCS APS에 대한, 슬라이스 헤더/픽처 파라미터 헤더에 참조를 포함함으로써, 비트스트림은 디코더가 인코딩된 슬라이스를 디코딩하기 위해 LMCS 파라미터를 획득하기에 충분한 정보를 포함한다.
도 9는 ALF APS(512), 스케일링 목록 APS(513), 및/또는 LMCS APS(514)와 같은 복수의 APS 유형을 사용함으로써, 비트스트림(500)과 같은 비트스트림으로부터 비디오 시퀀스를 디코딩하는 예시적인 방법(900)의 흐름도이다. 방법(900)은 방법( 100)을 수행할 때 코덱 시스템(200), 디코더(400), 및/또는 비디오 코딩 기기(700)와 같은, 디코더에 의해 사용될 수 있다. 방법(900)은 또한 상이한 유형의 APS가 상이한 값 공간에 따라 할당된 APS ID를 채용하는 메커니즘(600)에 따라 할당된 APS ID에 기초하여 APS를 참조할 수 있다.
방법(900)은 디코더가 예를 들어 방법(800)의 결과로서, 비디오 시퀀스를 나타내는 코딩된 데이터의 비트스트림을 수신하기 시작할 때 시작할 수 있다. 단계 901에서, 비트스트림이 디코더에서 수신된다. 비트스트림은 슬라이스로 파티셔닝된 픽처와 LMCS 파라미터를 포함하는 LMCS APS를 포함한다. 일부 예에서, 비트스트림은 ALF 파라미터들을 포함하는 ALF APS 및 APS 파라미터들을 포함하는 스케일링 목록 APS를 더 포함할 수도 있다. 비트스트림은 또한 각각 픽처, 및 슬라이스들 중 하나와 연관된 픽처 헤더 및/또는 슬라이스 헤더를 포함할 수도 있다. 비트스트림은 또한 SPS, PPS 등과 같은, 다른 파라미터 세트를 포함할 수 있다.
단계 903에서, 디코더는 LMCS APS, ALF APS, 및/또는 스케일링 목록 APS가 슬라이스와 관련된 데이터에서 참조된다고 결정할 수 있다. 예를 들어, 슬라이스 헤더 또는 픽처 헤더는 슬라이스/픽처와 관련된 데이터를 포함할 수 있고, LMCS APS, ALF APS 및/또는 스케일링 목록 APS를 포함하는 하나 이상의 APS를 참조할 수 있다. 각각의 APS는 파라미터의 유형과 APS ID 조합으로 유일하게 식별될 수 있다. 이와 같이 파라미터 유형 및 APS ID는 픽처 헤더 및/또는 슬라이스 헤더에 포함될 수 있다. 예를 들어, 각각의 APS는 각각의 APS에 포함된 파라미터의 유형을 지시하는 미리 정의된 값에 대한 aps_params_type 코드 세트를 포함할 수 있다. 또한, 각 APS는 미리 정의된 범위에서 선택된 APS ID를 포함할 수 있다. 예를 들어, APS 유형에 대한 APS ID는 미리 정의된 범위에 걸쳐 복수의 상이한 값 공간에 걸쳐 순차적으로 할당될 수 있다. 예를 들어, 미리 정의된 범위는 대응하는 APS의 파라미터 유형에 기초하여 결정될 수 있다. 구체적인 예로서, LMCS APS는 0 내지 3(2비트)의 범위를 가질 수 있고, ALF APS 및 스케일링 목록 APS는 0 내지 7(3비트)의 범위를 가질 수 있다. 이러한 범위는 메커니즘(600)에 의해 설명된 바와 같이 APS 유형에 특정한 상이한 중첩 값 공간을 기술할 수 있다. 이와 같이, APS 유형 및 APS ID는 둘 모두 특정 APS를 참조하기 위해 픽처 헤더 및/또는 슬라이스 헤더에 의해 채용될 수 있다.
단계 905에서, 디코더는 LMCS APS에 대한 참조에 기초하여 LMCS APS로부터의 LMCS 파라미터를 사용하여 슬라이스를 디코딩할 수 있다. 디코더는 또한 픽처 헤더/슬라이스 헤더에서 그러한 APS에 대한 참조에 기초하여 ALF APS 및/또는 스케일링 목록 APS로부터의 ALF 파라미터 및/또는 스케일링 목록 파라미터를 사용하여 슬라이스를 디코딩할 수 있다. 일부 예에서, SPS는 LMCS 코딩 툴이 슬라이스를 포함하는 인코딩된 비디오 시퀀스에 대해 인에이블됨을 지시하도록 설정된 플래그를 포함하는 시퀀스 파라미터 세트(SPS)를 포함한다. 그러한 경우에, LMCS APS로부터의 LMCS 파라미터는 플래그에 기초하여 단계 905에서 디코딩을 지원하기 위해 획득된다. 단계 907에서, 디코더는 디코딩된 비디오 시퀀스의 일부로서 표시하기 위해 슬라이스를 포워딩할 수 있다.
도 10은 ALF APS(512), 스케일링 목록 APS(513) 및/또는 LMCS APS(514)와 같은, 복수의 APS 유형을 채용함으로써, 비트스트림(500)과 같은 비트스트림에 이미지의 비디오 시퀀스를 코딩하기 위한 예시적인 시스템(1000)의 개략도이다. 시스템(1000)은 코덱 시스템(200), 인코더(300), 디코더(400), 및/또는 비디오 코딩 기기(700)와 같은 인코더 및 디코더에 의해 구현될 수 있다. 또한, 시스템(1000)은 방법(100, 800, 900), 및/또는 메커니즘(600)이 구현될 때 채용될 수 있다.
시스템(1000)은 비디오 인코더(1002)를 포함한다. 비디오 인코더(1002)는 슬라이스에 적용하기 위한 LMCS 파라미터들을 결정하기 위한 결정 모듈(1001)을 포함한다. 비디오 인코더(1002)는 슬라이스를 비트스트림으로 인코딩하기 위한 인코딩 모듈(1003)을 더 포함한다. 인코딩 모듈(1003)은 또한 LMCS APS에서 LMCS 파라미터를 비트스트림으로 인코딩하기 위한 것이다. 인코딩 모듈(1003)은 또한 LMCS APS를 참조하는 슬라이스와 관련된 데이터를 비트스트림으로 인코딩하기 위한 것이다. 비디오 인코더(1002)는 디코더로의 통신을 위한 비트스트림을 저장하기 위한 저장 모듈(1005)을 더 포함한다. 비디오 인코더(1002)는 디코더에서 슬라이스의 디코딩을 지원하기 위해 LMCS APS를 포함하는 비트스트림을 송신하기 위한 송신 모듈(1007)을 더 포함한다. 비디오 인코더(1002)는 추가로, 방법(800)의 단계 중 임의의 단계를 수행하도록 구성될 수 있다.
시스템(1000)은 또한 비디오 디코더(1010)를 포함한다. 비디오 디코더(1010)는 슬라이스를 포함하는 비트스트림 및 LMCS 파라미터들을 포함하는 LMCS APS를 수신하기 위한 수신 모듈(1011)을 포함한다. 비디오 디코더(1010)는 LMCS APS가 슬라이스와 관련된 데이터에서 참조된다는 것을 결정하기 위한 결정 모듈(1013)을 더 포함한다. 비디오 디코더(1010)는 LMCS APS에 대한 참조에 기초하여 LMCS APS로부터의 LMCS 파라미터들을 사용하여 슬라이스를 디코딩하기 위한 디코딩 모듈(1015)을 더 포함한다. 비디오 디코더(1010)는 디코딩된 비디오 시퀀스의 일부로서 표시하기 위해 슬라이스를 포워딩하기 위한 포워딩 모듈(1017)을 더 포함한다. 비디오 디코더(1010)는 추가로, 방법(900)의 단계들 중 임의의 단계를 수행하도록 구성될 수도 있다.
제1 구성요소와 제2 구성요소 사이의 라인(line), 트레이스(trace), 또는 다른 매체를 제외하고는 개재하는 구성요소가 없을 때 제1 구성요소는 제2 구성요소에 직접 결합된다. 제1 구성요소와 제2 구성요소 사이에 라인, 트레이스, 또는 다른 매체를 제외한 개재하는 구성요소가 있을 때 제1 구성요소는 제2 구성요소에 간접적으로 결합된다. "결합된다(coupled)"라는 용어와 그 변형에는 직접 결합된 것과 간접적으로 결합된 것이 모두 포함된다. "약(about)"이라는 용어의 사용은 달리 명시되지 않는 한 후속 숫자의 ±10%를 포함하는 범위를 의미한다.
또한, 여기에 설명된 예시적인 방법의 단계는 반드시 설명된 순서대로 수행할 필요가 없다는 것을 이해해야 하며, 이러한 방법의 단계 순서는 단지 예시적인 것으로 이해되어야 한다. 마찬가지로, 이러한 방법에는 추가적인 단계가 포함될 수 있으며, 본 개시의 다양한 실시예에 따른 방법에서 특정 단계는 생략되거나 결합될 수 있다.
몇몇 실시예가 본 개시에서 제공되었지만, 개시된 시스템 및 방법은 본 개시의 사상 또는 범위를 벗어나지 않으면서 많은 다른 구체적인 형태로 구현될 수 있음을 이해할 수 있을 것이다. 본 예는 제한적인 것이 아닌 예시적인 것으로 간주되어야 하며, 그 의도는 여기에 주어진 세부 사항으로 제한되지 않는다. 예를 들어, 다양한 요소 또는 구성요소는 다른 시스템에 결합 또는 통합되거나 특정 기능이 생략되거나 구현되지 않을 수 있다.
또한, 다양한 실시예에서 개별적 또는 분리된 것으로 설명되고 예시된 기술, 시스템, 서브시스템 및 방법은 본 개시의 범위를 벗어나지 않고 다른 시스템, 구성요소, 기술, 또는 방법과 결합되거나 통합될 수 있다. 변경, 대체 및 개조의 다른 예들이 당업자에 의해 확인 가능하며 여기에 개시된 사상 및 범위를 벗어나지 않고 이루어질 수 있다.

Claims (19)

  1. 디코더에서 구현되는 방법으로서,
    코딩된 슬라이스(coded slice)와 연관된 크로마 스케일링을 사용한 루마 매핑(luma mapping with chroma scaling, LMCS) 파라미터를 포함하는 LMCS 적응 파라미터 세트(adaptation parameter set, APS)를 포함하는 비트스트림을 수신하는 단계 - APS는 슬라이스를 위한 정보를 시그널링하기 위해 사용되는 신택스 구조이고, 상기 LMCS 파라미터는 루마 매핑에 기초하여 크로마 값을 스케일링하는 프로세스인 LMCS를 위해 사용되며, LMCS APS는 상기 코딩된 슬라이스와 관련된 데이터에 의해 참조됨 -;
    상기 코딩된 슬라이스와 연관된 LMCS APS로부터 상기 LMCS 파라미터를 획득하는 단계;
    재구축된 이미지 블록을 획득하기 위해, 상기 LMCS APS로부터의 상기 LMCS 파라미터를 사용하여 상기 코딩된 슬라이스를 디코딩하는 단계
    상기 재구축된 이미지 블록에 기초하여 디코딩된 픽처를 획득하는 단계; 및
    상기 디코딩된 픽처를 포함하는 디코딩된 시퀀스를 획득하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 비트스트림은 상기 코딩된 슬라이스와 관련된 헤더를 더 포함하고, 상기 코딩된 슬라이스와 관련된 데이터는 상기 헤더에 ASP 식별자(identifier, ID)를 포함하는, 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 비트스트림은 스케일링 목록 파라미터를 포함하는 스케일링 목록 APS를 더 포함하며, 상기 스케일링 목록 파라미터는 변환 프로세스를 위한 스케일링 목록에 포함되는, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    각각의 APS는 파라미터 유형과 APS ID의 조합에 의해 식별되는, 방법.
  5. 인코더에서 구현되는 방법으로서,
    현재 블록을 포함하는 슬라이스를 위한 크로마 스케일링을 사용한 루마 매핑(LMCS) 파라미터를 결정하는 단계;
    상기 현재 블록과 예측 블록에 기초하여 잔차 블록을 획득하는 단계;
    양자화된 계수를 획득하기 위해 상기 잔차 블록에 변환 및 양자화를 수행하는 단계;
    상기 양자화된 계수를 비트스트림으로 인코딩하는 단계;
    상기 LMCS 파라미터를 상기 비트스트림의 LMCS 적응 파라미터 세트(APS)로 인코딩하는 단계 - APS는 슬라이스를 위한 정보를 시그널링하기 위해 사용되는 신택스 구조이고, 상기 LMCS 파라미터는 루마 매핑에 기초하여 크로마 값을 스케일링하는 프로세스인 LMCS를 위해 사용됨 - ; 및
    상기 LMCS APS를 참조하는 상기 코딩된 슬라이스와 관련된 데이터를 상기 비트스트림으로 인코딩하는 단계
    를 포함하는 방법.
  6. 제5항에 있어서,
    상기 코딩된 슬라이스와 관련된 데이터는 상기 코딩된 슬라이스와 관련된 헤더 내의 ASP 식별자(identifier, ID)를 포함하는, 방법.
  7. 제5항 또는 제6항에 있어서,
    각각의 APS는 각각의 APS에 포함된 파라미터의 유형을 지시하는 미리 정의된 값에 대한 APS 파라미터 유형(aps_params_type)의 코딩된 세트를 포함하는, 방법.
  8. 제5항 내지 제7항 중 어느 한 항에 있어서,
    각각의 APS는 미리 정의된 범위로부터 선택된 APS 식별자(ID)를 포함하고, 상기 미리 정의된 범위는 상기 각각의 APS의 파라미터 유형에 기초하여 결정되는, 방법.
  9. 제5항 내지 제8항 중 어느 한 항에 있어서,
    각각의 APS는 파라미터 유형과 APS ID의 조합에 의해 식별되는, 방법.
  10. 비디오 코딩 기기로서,
    프로세서, 상기 프로세서에 결합된 수신기, 상기 프로세서에 결합된 메모리, 및 상기 프로세서에 결합된 송신기를 포함하고, 상기 프로세서, 상기 수신기, 상기 메모리, 및 상기 송신기는 제1항 또는 제9항의 방법을 수행하도록 구성되는,
    비디오 코딩 기기.
  11. 비디오 코딩 기기에 의해 사용하기 위한 컴퓨터 프로그램 제품을 포함하는, 컴퓨터로 판독 가능한 비일시적인 매체로서,
    상기 컴퓨터 프로그램 제품은 프로세서에 의해 실행될 때 상기 비디오 코딩 기기로 하여금 제1항 또는 제9항의 방법을 수행하도록 하는, 상기 컴퓨터로 판독 가능한 비일시적인 매체에 저장된, 컴퓨터로 실행 가능한 명령어를 포함하는,
    컴퓨터로 판독 가능한 비일시적인 매체.
  12. 디코더로서,
    코딩된 슬라이스와 연관된 크로마 스케일링을 사용한 루마 매핑(LMCS) 파라미터를 포함하는 LMCS 적응 파라미터 세트(APS)를 포함하는 비트스트림을 수신하도록 구성된 수신 유닛 - APS는 슬라이스를 위한 정보를 시그널링하기 위해 사용되는 신택스 구조이고, 상기 LMCS 파라미터는 루마 매핑에 기초하여 크로마 값을 스케일링하는 프로세스인 LMCS를 위해 사용되며, LMCS APS는 상기 코딩된 슬라이스와 관련된 데이터에 의해 참조됨 -;
    상기 코딩된 슬라이스와 연관된 상기 MCS APS로부터의 상기 LMCS 파라미터를 획득하도록 구성된 획득 유닛; 및
    재구축된 이미지 블록을 획득하기 위해 상기 MCS APS로부터의 상기 LMCS 파라미터를 사용하여 상기 코딩된 슬라이스를 디코딩하도록 구성된 디코딩 유닛
    을 포함하고,
    상기 재구축된 이미지 블록에 기초하여 디코딩된 픽처를 획득하는 것; 및
    상기 디코딩된 픽처를 포함하는 디코딩된 시퀀스를 획득하는 것
    를 포함하는, 디코더.
  13. 인코더로서,
    현재 블록을 포함하는 슬라이스를 위한 크로마 스케일링을 사용한 루마 매핑(LMCS) 파라미터를 결정하도록 구성된 결정 유닛; 및
    인코딩 유닛을 포함하고,
    상기 인코딩 유닛은,
    상기 현재 블록과 예측 블록에 기초하여 잔차 블록을 획득하고;
    양자화된 계수를 획득하기 위해 상기 잔차 블록에 변환 및 양자화를 수행하며;
    상기 양자화된 계수를 비트스트림으로 인코딩하고;
    상기 LMCS 파라미터를 상기 비트스트림의 LMCS 적응 파라미터 세트(APS)로 인코딩하며 - APS는 슬라이스를 위한 정보를 시그널링하기 위해 사용되는 신택스 구조이고, 상기 LMCS 파라미터는 루마 매핑에 기초하여 크로마 값을 스케일링하는 프로세스인 LMCS를 위해 사용됨 - ; 및
    상기 LMCS APS를 참조하는 상기 코딩된 슬라이스와 관련된 데이터를 상기 비트스트림으로 인코딩하도록 구성되는, 인코더.
  14. 인코딩된 비트스트림을 포함하는 비일시적인 저장 매체로서,
    상기 비트스트림은 코딩된 슬라이스와 연관된 크로마 스케일링을 사용한 루마 매핑(LMCS) 파라미터를 포함하는 LMCS 적응 파라미터 세트(APS)를 포함하는 루마 매핑을 포함하고, 상기 코딩된 슬라이스와 관련된 데이터는 상기 LMCS APS를 참조하며, APS는 슬라이스를 위한 정보를 시그널링하기 위해 사용되는 신택스 구조이고, 상기 LMCS 파라미터는 루마 매핑에 기초하여 크로마 값을 스케일링하는 프로세스인 LMCS를 위해 사용되는, 비일시적인 저장 매체.
  15. 제1항 내지 제4항 중 어느 한 항에 따른 방법을 수행하기 위한 처리 회로를 포함하는 디코더.
  16. 제5항 내지 제9항 중 어느 한 항에 따른 방법을 수행하기 위한 처리 회로를 포함하는 인코더.
  17. 컴퓨터가 판독 가능한 저장 매체에 저장되어 있는 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은, 컴퓨터 또는 프로세서에서 실행될 때 제1항 또는 제9항에 따른 방법을 수행하는 프로그램 코드를 포함하는, 컴퓨터 프로그램.
  18. 프로그램 코드를 저장하고 있는, 컴퓨터로 판독 가능한 비일시적인 저장 매체로서,
    상기 프로그램 코드는 컴퓨터 기기에 의해 실행될 때, 상기 컴퓨터 기기로 하여금 제1항 또는 제9항의 방법을 수행하게 하는,
    컴퓨터로 판독 가능한 비일시적인 저장 매체.
  19. 인코딩된 비트스트림으로서,
    코딩된 슬라이스(coded slice)와 연관된 크로마 스케일링을 사용한 루마 매핑(luma mapping with chroma scaling, LMCS) 파라미터를 포함하는 LMCS 적응 파라미터 세트(adaptation parameter set, APS)를 포함하고, 상기 코딩된 슬라이스와 관련된 데이터는 상기 LMCS APS를 참조하고, APS는 슬라이스를 위한 정보를 시그널링하기 위해 사용되는 신택스 구조이고, 상기 LMCS 파라미터는 루마 매핑에 기초하여 크로마 값을 스케일링하는 프로세스인 LMCS를 위해 사용되는, 인코딩된 비트스트림.
KR1020247013536A 2019-02-27 2020-02-26 인코더, 디코더 및 대응하는 방법 KR20240058982A (ko)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201962811358P 2019-02-27 2019-02-27
US62/811,358 2019-02-27
US201962816753P 2019-03-11 2019-03-11
US62/816,753 2019-03-11
US201962850973P 2019-05-21 2019-05-21
US62/850,973 2019-05-21
KR1020217030682A KR102661416B1 (ko) 2019-02-27 2020-02-26 인코더, 디코더 및 대응하는 방법
PCT/US2020/019921 WO2020176636A1 (en) 2019-02-27 2020-02-26 Luma mapping with chroma scaling adaptation parameter set in video coding

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020217030682A Division KR102661416B1 (ko) 2019-02-27 2020-02-26 인코더, 디코더 및 대응하는 방법

Publications (1)

Publication Number Publication Date
KR20240058982A true KR20240058982A (ko) 2024-05-03

Family

ID=72238683

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020217030682A KR102661416B1 (ko) 2019-02-27 2020-02-26 인코더, 디코더 및 대응하는 방법
KR1020217030764A KR20210129183A (ko) 2019-02-27 2020-02-26 인코더, 디코더 및 대응하는 방법
KR1020217030828A KR20210129184A (ko) 2019-02-27 2020-02-26 인코더, 디코더 및 대응하는 방법
KR1020247013536A KR20240058982A (ko) 2019-02-27 2020-02-26 인코더, 디코더 및 대응하는 방법

Family Applications Before (3)

Application Number Title Priority Date Filing Date
KR1020217030682A KR102661416B1 (ko) 2019-02-27 2020-02-26 인코더, 디코더 및 대응하는 방법
KR1020217030764A KR20210129183A (ko) 2019-02-27 2020-02-26 인코더, 디코더 및 대응하는 방법
KR1020217030828A KR20210129184A (ko) 2019-02-27 2020-02-26 인코더, 디코더 및 대응하는 방법

Country Status (10)

Country Link
US (3) US11889030B2 (ko)
EP (3) EP3931747A4 (ko)
JP (6) JP7418458B2 (ko)
KR (4) KR102661416B1 (ko)
CN (3) CN113508397A (ko)
AU (1) AU2020227754A1 (ko)
BR (3) BR112021016953A2 (ko)
MX (1) MX2021010337A (ko)
SG (3) SG11202109287PA (ko)
WO (3) WO2020176636A1 (ko)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020177703A1 (en) * 2019-03-04 2020-09-10 Beijing Bytedance Network Technology Co., Ltd. Signaling of filtering information in video processing
KR102479050B1 (ko) * 2019-03-07 2022-12-19 엘지전자 주식회사 루마 맵핑 및 크로마 스케일링 기반 비디오 또는 영상 코딩
WO2020197207A1 (ko) * 2019-03-23 2020-10-01 엘지전자 주식회사 맵핑을 포함하는 필터링 기반 비디오 또는 영상 코딩
US11917143B2 (en) * 2019-04-03 2024-02-27 Lg Electronics Inc. Adaptive loop filter-based video or image coding
WO2020204413A1 (ko) * 2019-04-03 2020-10-08 엘지전자 주식회사 복원 픽처를 수정하는 비디오 또는 영상 코딩
WO2020204418A1 (ko) * 2019-04-03 2020-10-08 엘지전자 주식회사 비디오 또는 영상 코딩 방법 및 그 장치
US11368684B2 (en) * 2019-04-23 2022-06-21 Qualcomm Incorporated Adaptation parameter sets (APS) for adaptive loop filter (ALF) parameters
CN114097228B (zh) 2019-06-04 2023-12-15 北京字节跳动网络技术有限公司 具有几何分割模式编解码的运动候选列表
CN117395397A (zh) 2019-06-04 2024-01-12 北京字节跳动网络技术有限公司 使用临近块信息的运动候选列表构建
US11166033B2 (en) * 2019-06-06 2021-11-02 Qualcomm Incorporated Adaptation parameter set in access unit in video coding
CN114128272B (zh) * 2019-06-20 2024-03-26 Lg电子株式会社 基于亮度样本的映射和色度样本的缩放的视频或图像编码
JP7305810B2 (ja) 2019-06-24 2023-07-10 エルジー エレクトロニクス インコーポレイティド ルーママッピング及びクロマスケーリングに基づくビデオまたは画像コーディング
JP7297950B2 (ja) 2019-06-24 2023-06-26 エルジー エレクトロニクス インコーポレイティド ルママッピング基盤ビデオまたは映像コーディング
CN116600144A (zh) 2019-06-24 2023-08-15 Lg电子株式会社 图像编解码方法、计算机可读存储介质和数据发送方法
CN114270852A (zh) * 2019-07-08 2022-04-01 Lg电子株式会社 基于缩放列表数据的信令的视频或图像编码
CN117478878A (zh) 2019-07-09 2024-01-30 北京字节跳动网络技术有限公司 用于自适应环路滤波的样点确定
JP7291845B2 (ja) 2019-07-11 2023-06-15 北京字節跳動網絡技術有限公司 適応ループフィルタリングにおけるサンプルパディング
CN114175636B (zh) 2019-07-14 2024-01-12 北京字节跳动网络技术有限公司 自适应参数集中的自适应环路滤波的指示
WO2021008546A1 (en) 2019-07-15 2021-01-21 Beijing Bytedance Network Technology Co., Ltd. Accessing samples across video unit boundaries in adaptive loop filtering
WO2021032162A1 (en) 2019-08-20 2021-02-25 Beijing Bytedance Network Technology Co., Ltd. Signaling for transform skip mode
EP4014492A4 (en) 2019-09-14 2023-01-11 ByteDance Inc. QUANTIZATION PARAMETER OFFSET FOR CHROMA UNLOCK FILTERING
BR112022005046A2 (pt) 2019-09-18 2022-07-05 Beijing Bytedance Network Tech Co Ltd Método de processamento de dados de vídeo, aparelho para processar dados de vídeo, meio de armazenamento não transitório legível por computador e meio de gravação não transitório legível por computador
CN114430901A (zh) 2019-09-20 2022-05-03 北京字节跳动网络技术有限公司 带有色度缩放的亮度映射
CN114503594B (zh) 2019-09-22 2024-04-05 北京字节跳动网络技术有限公司 自适应环路滤波中样点填充的选择性应用
WO2021061496A1 (en) * 2019-09-24 2021-04-01 Futurewei Technologies, Inc. Sei message dependency simplification in video coding
EP4022910A4 (en) 2019-09-27 2022-11-16 Beijing Bytedance Network Technology Co., Ltd. ADAPTIVE LOOP FILTERING BETWEEN DIFFERENT VIDEO UNITS
WO2021057996A1 (en) 2019-09-28 2021-04-01 Beijing Bytedance Network Technology Co., Ltd. Geometric partitioning mode in video coding
WO2021072177A1 (en) 2019-10-09 2021-04-15 Bytedance Inc. Cross-component adaptive loop filtering in video coding
WO2021068906A1 (en) 2019-10-10 2021-04-15 Beijing Bytedance Network Technology Co., Ltd. Padding process at unavailable sample locations in adaptive loop filtering
KR20220073746A (ko) 2019-10-14 2022-06-03 바이트댄스 아이엔씨 비디오 처리에서 크로마 양자화 파라미터 사용
CN117528097A (zh) 2019-10-29 2024-02-06 抖音视界(北京)有限公司 跨分量自适应环路滤波器
KR20220106116A (ko) 2019-12-09 2022-07-28 바이트댄스 아이엔씨 비디오 코딩에서 양자화 그룹 사용
MX2022006734A (es) 2019-12-11 2022-06-09 Beijing Bytedance Network Tech Co Ltd Relleno de muestra para filtrado de circuito adaptivo de componente cruzado.
US20230046209A1 (en) * 2019-12-23 2023-02-16 Lg Electronics Inc. Filtering-based image coding device and method
WO2021138293A1 (en) 2019-12-31 2021-07-08 Bytedance Inc. Adaptive color transform in video coding
KR20220119675A (ko) 2020-01-09 2022-08-30 텔레폰악티에볼라겟엘엠에릭슨(펍) 화상 헤더 존재
US11463737B2 (en) * 2020-02-21 2022-10-04 Qualcomm Incorporated Signaling of dynamic range adjustment parameters for decoded picture buffer management and dynamic range
US20230188714A1 (en) * 2020-06-10 2023-06-15 Lg Electronics Inc Image encoding/decoding method and device for signaling aps identifier, and computer-readable recording medium in which bitstream is stored
JP2023531223A (ja) 2020-06-30 2023-07-21 北京字節跳動網絡技術有限公司 適応ループフィルタリングのための境界位置
US11711518B2 (en) 2020-09-17 2023-07-25 Lemon Inc. Decoding capability information storage in video coding
US20230379460A1 (en) * 2020-09-29 2023-11-23 Telefonaktiebolaget Lm Ericsson (Publ) Filter strength control for adaptive loop filtering
US11611752B2 (en) * 2020-10-07 2023-03-21 Lemon Inc. Adaptation parameter set storage in video coding
USD950521S1 (en) * 2021-05-11 2022-05-03 Shenzhen Jing Peng Xing Electronic Technology Co., Ltd. Headphone

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2823902C (en) * 2011-04-21 2018-03-27 Mediatek Inc. Method and apparatus for improved in-loop filtering
US8891630B2 (en) * 2011-10-24 2014-11-18 Blackberry Limited Significance map encoding and decoding using partition set based context assignment
CN103096054B (zh) * 2011-11-04 2015-07-08 华为技术有限公司 一种视频图像滤波处理方法和装置
US20130114694A1 (en) * 2011-11-08 2013-05-09 Qualcomm Incorporated Parameter set groups for coded video data
US9451252B2 (en) * 2012-01-14 2016-09-20 Qualcomm Incorporated Coding parameter sets and NAL unit headers for video coding
WO2013109505A2 (en) * 2012-01-19 2013-07-25 Vid Scale, Inc. Methods, apparatus and systems for signaling video coding adaptation parameters
GB2501535A (en) * 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
EP2853096A4 (en) * 2012-05-21 2016-07-06 Mediatek Singapore Pte Ltd METHOD AND APPARATUS FOR FILTERING BETWEEN LAYERS FOR SCALABLE VIDEO CODING
CN106464893B (zh) * 2014-03-17 2019-12-03 诺基亚技术有限公司 用于视频编码和解码的装置、方法和计算机程序
EP4064701A1 (en) * 2017-06-29 2022-09-28 Dolby Laboratories Licensing Corporation Integrated image reshaping and video decoding
MX2021008911A (es) * 2019-02-01 2021-08-24 Beijing Bytedance Network Tech Co Ltd Se?alizacion de informacion de reformacion en bucle utilizando conjuntos de parametros.
WO2020156528A1 (en) * 2019-02-01 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Filtering processes based on in-loop reshaping
US11683487B2 (en) * 2019-03-26 2023-06-20 Qualcomm Incorporated Block-based adaptive loop filter (ALF) with adaptive parameter set (APS) in video coding

Also Published As

Publication number Publication date
SG11202109325VA (en) 2021-09-29
JP7418458B2 (ja) 2024-01-19
CN113498522A (zh) 2021-10-12
KR20210126772A (ko) 2021-10-20
EP3931747A1 (en) 2022-01-05
JP2024014893A (ja) 2024-02-01
EP3931746A1 (en) 2022-01-05
EP3931745A1 (en) 2022-01-05
WO2020176635A1 (en) 2020-09-03
KR102661416B1 (ko) 2024-04-25
US11889030B2 (en) 2024-01-30
EP3931746A4 (en) 2022-05-11
JP7418459B2 (ja) 2024-01-19
SG11202109285VA (en) 2021-09-29
JP7422159B2 (ja) 2024-01-25
SG11202109287PA (en) 2021-09-29
US20210392323A1 (en) 2021-12-16
BR112021016925A2 (pt) 2021-11-03
CN113508397A (zh) 2021-10-15
KR20210129183A (ko) 2021-10-27
JP2024020293A (ja) 2024-02-14
AU2020227754A1 (en) 2021-09-30
KR20210129184A (ko) 2021-10-27
WO2020176636A1 (en) 2020-09-03
US11895294B2 (en) 2024-02-06
JP2022523218A (ja) 2022-04-21
CN113508396A (zh) 2021-10-15
JP2024014892A (ja) 2024-02-01
US20210392324A1 (en) 2021-12-16
JP2022523219A (ja) 2022-04-21
EP3931747A4 (en) 2022-05-11
BR112021016953A2 (pt) 2021-11-23
US20210392381A1 (en) 2021-12-16
JP2022521793A (ja) 2022-04-12
EP3931745A4 (en) 2022-04-27
MX2021010337A (es) 2021-09-28
WO2020176633A1 (en) 2020-09-03
BR112021016895A2 (pt) 2021-11-03

Similar Documents

Publication Publication Date Title
KR102661416B1 (ko) 인코더, 디코더 및 대응하는 방법
JP7354241B2 (ja) ビデオエンコーダ、ビデオデコーダ、及び対応する方法
JP7454657B2 (ja) ピクチャーレベルでの非ピクチャーレベルの構文要素のシグナリング
KR20210105980A (ko) 비디오 인코더, 비디오 디코더 및 상응하는 방법들
KR20210135621A (ko) 비디오 코딩에서 슬라이스 엔트리 포인트
JP2022513981A (ja) ビデオコーディング方法及び機器
JP7383795B2 (ja) ビデオコーディングにおけるalf aps制約
KR102670878B1 (ko) 비디오 인코더, 비디오 디코더 및 대응 방법

Legal Events

Date Code Title Description
A107 Divisional application of patent