KR20200112945A - 재구성된 픽처의 정제를 갖는 인코딩 및 디코딩 - Google Patents

재구성된 픽처의 정제를 갖는 인코딩 및 디코딩 Download PDF

Info

Publication number
KR20200112945A
KR20200112945A KR1020207024604A KR20207024604A KR20200112945A KR 20200112945 A KR20200112945 A KR 20200112945A KR 1020207024604 A KR1020207024604 A KR 1020207024604A KR 20207024604 A KR20207024604 A KR 20207024604A KR 20200112945 A KR20200112945 A KR 20200112945A
Authority
KR
South Korea
Prior art keywords
refinement
data
picture part
picture
cost
Prior art date
Application number
KR1020207024604A
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
Priority claimed from EP18305080.6A external-priority patent/EP3518538A1/en
Application filed by 인터디지털 브이씨 홀딩스 인코포레이티드 filed Critical 인터디지털 브이씨 홀딩스 인코포레이티드
Publication of KR20200112945A publication Critical patent/KR20200112945A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/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/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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • 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

Landscapes

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

Abstract

정제 데이터가 비트스트림에서 인코딩된다. 정제 데이터는, 레이트 왜곡 비용이, 코딩 이전에 맵핑이 적용되지 않는지의 여부, 코딩 이전에 맵핑이 적용되고, 정제가 디코딩 루프 밖에 있는지의 여부, 코딩 이전에 맵핑이 적용되고, 정제가 디코딩 루프에 있는지의 여부에 기초하여 계산되는 레이트 왜곡 비용과 비교하여 감소되도록 결정된다.

Description

재구성된 픽처의 정제를 갖는 인코딩 및 디코딩
본 실시예들은 일반적으로 픽처 인코딩 및 디코딩을 위한 방법 및 디바이스에 관한 것으로서, 특히, 픽처 부분을 인코딩 및 디코딩하기 위한 방법 및 디바이스에 관한 것이다.
높은 압축 효율을 달성하기 위해, 이미지 및 비디오 코딩 스킴들은 통상적으로 비디오 콘텐츠에서의 공간적 및 시간적 중복성(spatial and temporal redundancy)을 레버리지(leverage)하기 위해 예측(prediction) 및 변환(transform)을 이용한다. 일반적으로, 인트라 또는 인터 프레임 상관(intra or inter frame correlation)을 활용하기 위해 인트라 또는 인터 예측이 이용되어, 때로는 예측 오차들(prediction errors) 또는 예측 잔차들(prediction residuals)로서 표시되는 원래 픽처 블록과 예측된 픽처 블록 사이의 차이들이 변환되고, 양자화되고, 엔트로피 코딩(entropy coding)된다. 비디오를 재구성하기 위해, 압축된 데이터는 예측, 변환, 양자화 및 엔트로피 코딩에 대응하는 역 프로세스들(inverse processes)에 의해 디코딩된다.
왜곡들은, 특히 비디오 신호가, 예를 들어, 비디오 픽처들의 샘플 코드워드 분포(sample codewords distribution)를 더 잘 활용하기 위해 인코딩되기 전에 맵핑되는 경우에, 재구성된 비디오 신호에서 보통 관찰된다.
인코딩 방법으로서,
- 비트스트림에서 픽처 부분을 인코딩 및 픽처 부분을 재구성하는 단계;
- 정제 데이터(refinement data)를 결정하는 단계―정제 데이터를 결정하는 것은,
- 코딩 이전에 맵핑이 적용되지 않는 경우에, 데이터 코딩 비용(data coding cost) 및 픽처 부분의 원래 버전(original version)과 정제 데이터에 의한 정제 이후의 재구성된 픽처 부분 사이의 왜곡의 가중된 합(weighted sum)으로서 계산된 레이트 왜곡 비용(rate distortion cost)이, 데이터 코딩 비용 및 픽처 부분의 원래 버전과 정제가 없는 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되고;
- 코딩 이전에 맵핑이 적용되고, 정제가 디코딩 루프 밖에 있는 경우에, 데이터 코딩 비용 및 픽처 부분의 원래 버전과 역 맵핑(inverse mapping) 및 정제 데이터에 의한 정제 이후의 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 픽처 부분의 원래 버전과 역 맵핑 이후의 정제가 없는 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되고;
- 코딩 이전에 맵핑이 적용되고, 정제가 디코딩 루프에 있는 경우에, 데이터 코딩 비용 및 픽처 부분의 맵핑된 원래 버전과 정제 데이터에 의한 정제 이후의 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 픽처 부분의 맵핑된 원래 버전과 정제가 없는 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되도록 수행됨―; 및
- 비트스트림에서 정제 데이터를 인코딩하는 단계를 포함하는, 인코딩 방법이 개시된다.
인코딩 디바이스로서,
- 비트스트림에서 픽처 부분을 인코딩 및 픽처 부분을 재구성하기 위한 수단;
- 정제 데이터를 결정하기 위한 수단 ―정제 데이터를 결정하는 것은,
- 코딩 이전에 맵핑이 적용되지 않는 경우에, 데이터 코딩 비용 및 픽처 부분의 원래 버전과 정제 데이터에 의한 정제 이후의 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 픽처 부분의 원래 버전과 정제가 없는 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되고;
- 코딩 이전에 맵핑이 적용되고, 정제가 디코딩 루프 밖에 있는 경우에, 데이터 코딩 비용 및 픽처 부분의 원래 버전과 역 맵핑 및 정제 데이터에 의한 정제 이후의 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 픽처 부분의 원래 버전과 역 맵핑 이후의 정제가 없는 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되고;
- 코딩 이전에 맵핑이 적용되고, 정제가 디코딩 루프에 있는 경우에, 데이터 코딩 비용 및 픽처 부분의 맵핑된 원래 버전과 정제 데이터에 의한 정제 이후의 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 픽처 부분의 맵핑된 원래 버전과 정제가 없는 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되도록 수행됨―; 및
- 비트스트림에서 정제 데이터를 인코딩하기 위한 수단을 포함하는, 인코딩 디바이스가 개시된다.
인코딩 디바이스로서, 적어도 하나의 픽처 부분에 액세스하도록 구성된 통신 인터페이스 및 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는,
- 비트스트림에서 액세스된 픽처 부분을 인코딩 및 픽처 부분을 재구성하고;
- 정제 데이터를 결정하고―정제 데이터를 결정하는 것은,
- 코딩 이전에 맵핑이 적용되지 않는 경우에, 데이터 코딩 비용 및 픽처 부분의 원래 버전과 정제 데이터에 의한 정제 이후의 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 픽처 부분의 원래 버전과 정제가 없는 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되고;
- 코딩 이전에 맵핑이 적용되고, 정제가 디코딩 루프 밖에 있는 경우에, 데이터 코딩 비용 및 픽처 부분의 원래 버전과 역 맵핑 및 정제 데이터에 의한 정제 이후의 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 픽처 부분의 원래 버전과 역 맵핑 이후의 정제가 없는 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되고;
- 코딩 이전에 맵핑이 적용되고, 정제가 디코딩 루프에 있는 경우에, 데이터 코딩 비용 및 픽처 부분의 맵핑된 원래 버전과 정제 데이터에 의한 정제 이후의 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 픽처 부분의 맵핑된 원래 버전과 정제가 없는 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되도록 수행됨―;
- 비트스트림에서 정제 데이터를 인코딩하도록 구성되는, 인코딩 디바이스가 개시된다.
머신 실행가능한 명령어들을 저장하는 머신 판독가능한 매체로서, 머신 실행가능한 명령어들은, 실행될 때, 픽처 부분을 인코딩하기 위한 방법을 구현하고, 방법은,
- 비트스트림에서 픽처 부분을 인코딩 및 픽처 부분을 재구성하는 단계;
- 정제 데이터를 결정하는 단계―정제 데이터를 결정하는 것은,
- 코딩 이전에 맵핑이 적용되지 않는 경우에, 픽처 부분의 원래 버전과 정제 데이터에 의한 정제 이후의 재구성된 픽처 부분 사이의 레이트 왜곡 비용이, 픽처 부분의 원래 버전과 정제가 없는 재구성된 픽처 부분 사이의 레이트 왜곡 비용과 비교하여 감소되고;
- 코딩 이전에 맵핑이 적용되고, 정제가 디코딩 루프 밖에 있는 경우에, 픽처 부분의 원래 버전과 역 맵핑 및 정제 데이터에 의한 정제 이후의 재구성된 픽처 부분 사이의 레이트 왜곡 비용이, 픽처 부분의 원래 버전과 역 맵핑 이후의 정제가 없는 재구성된 픽처 부분 사이의 레이트 왜곡 비용과 비교하여 감소되고;
- 코딩 이전에 맵핑이 적용되고, 정제가 디코딩 루프에 있는 경우에, 픽처 부분의 맵핑된 원래 버전과 정제 데이터에 의한 정제 이후의 재구성된 픽처 부분 사이의 레이트 왜곡 비용이, 픽처 부분의 맵핑된 원래 버전과 정제가 없는 재구성된 픽처 부분 사이의 레이트 왜곡 비용과 비교하여 감소되도록 수행됨―; 및
- 비트스트림에서 정제 데이터를 인코딩하는 단계를 포함하는, 머신 판독가능한 매체가 개시된다.
컴퓨터 프로그램 또는 그러한 컴퓨터 프로그램을 저장하는 매체가 개시되며, 여기서 컴퓨터 프로그램은 컴퓨터 프로그램이 프로세서에 의해 실행될 때 인코딩 방법을 수행하기 위한 소프트웨어 코드 명령어들을 포함한다.
픽처 부분을 나타내는 인코딩된 데이터, 및 픽처 부분의 원래 버전과 픽처 부분의 디코딩된 버전 사이의 레이트 왜곡 비용이 감소되도록 결정되는 정제 데이터를 포함하는 스트림이 개시된다.
- 코딩 이전에 맵핑이 적용되지 않는 경우에, 픽처 부분의 원래 버전과 정제 데이터에 의한 정제 이후의 재구성된 픽처 부분 사이의 레이트 왜곡 비용이, 픽처 부분의 원래 버전과 정제가 없는 재구성된 픽처 부분 사이의 레이트 왜곡 비용과 비교하여 감소되고;
- 코딩 이전에 맵핑이 적용되고, 정제가 디코딩 루프 밖에 있는 경우에, 픽처 부분의 원래 버전과 역 맵핑 및 정제 데이터에 의한 정제 이후의 재구성된 픽처 부분 사이의 레이트 왜곡 비용이, 픽처 부분의 원래 버전과 역 맵핑 이후의 정제가 없는 재구성된 픽처 부분 사이의 레이트 왜곡 비용과 비교하여 감소되고;
- 코딩 이전에 맵핑이 적용되고, 정제가 디코딩 루프에 있는 경우에, 픽처 부분의 맵핑된 원래 버전과 정제 데이터에 의한 정제 이후의 재구성된 픽처 부분 사이의 레이트 왜곡 비용이, 픽처 부분의 맵핑된 원래 버전과 정제가 없는 재구성된 픽처 부분 사이의 레이트 왜곡 비용과 비교하여 감소된다.
일 실시예에서, 방법은 정제된 픽처 부분을 참조 픽처 버퍼(reference picture buffer)에 저장하기 전에, 재구성된 픽처 부분을 결정된 정제 데이터로 정제하는 단계를 더 포함한다.
일 실시예에서, 재구성된 픽처 부분을 정제 데이터로 정제하는 단계는 픽처 부분의 임의의 다른 성분과 독립적으로 픽처 부분의 하나의 성분에 대해 수행된다.
일 실시예에서, 픽처 부분의 하나의 성분에 대해 재구성된 픽처 부분을 정제 데이터로 정제하는 단계는 픽처 부분의 다른 성분에 의존한다.
일 실시예에서, 비트스트림에서 정제 데이터를 인코딩하는 단계는 적어도 하나의 성분에 대해 N개의 정제 값들을 인코딩하는 단계를 포함하고, N은 정수이고, N개의 정제 값들은 구간 선형 함수(piecewise linear function)의 피봇 포인트들(pivot points)을 정의한다.
일 실시예에서, 재구성된 픽처 부분은 인루프 필터링(in-loop filtering) 후에 또는 부분적 인루프 필터링 후에 획득되는 재구성된 픽처 부분이다.
디코딩 방법으로서,
비트스트림으로부터 픽처 부분 및 정제 데이터를 디코딩하는 단계―정제 데이터는,
- 코딩 이전에 맵핑이 적용되지 않는 경우에, 데이터 코딩 비용 및 픽처 부분의 원래 버전과 정제 데이터에 의한 정제 이후의 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 픽처 부분의 원래 버전과 정제가 없는 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되고;
- 코딩 이전에 맵핑이 적용되고, 정제가 디코딩 루프 밖에 있는 경우에, 데이터 코딩 비용 및 픽처 부분의 원래 버전과 역 맵핑 및 정제 데이터에 의한 정제 이후의 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 픽처 부분의 원래 버전과 역 맵핑 이후의 정제가 없는 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되고;
- 코딩 이전에 맵핑이 적용되고, 정제가 디코딩 루프에 있는 경우에, 데이터 코딩 비용 및 픽처 부분의 맵핑된 원래 버전과 정제 데이터에 의한 정제 이후의 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 픽처 부분의 맵핑된 원래 버전과 정제가 없는 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되도록 정의됨―; 및
- 디코딩된 픽처 부분을 디코딩된 정제 데이터로 정제하는 단계를 포함하는, 디코딩 방법이 개시된다.
디코딩 디바이스로서,
비트스트림으로부터 픽처 부분 및 정제 데이터를 디코딩하기 위한 수단―정제 데이터는,
- 코딩 이전에 맵핑이 적용되지 않는 경우에, 데이터 코딩 비용 및 픽처 부분의 원래 버전과 정제 데이터에 의한 정제 이후의 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 픽처 부분의 원래 버전과 정제가 없는 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되고;
- 코딩 이전에 맵핑이 적용되고, 정제가 디코딩 루프 밖에 있는 경우에, 데이터 코딩 비용 및 픽처 부분의 원래 버전과 역 맵핑 및 정제 데이터에 의한 정제 이후의 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 픽처 부분의 원래 버전과 역 맵핑 이후의 정제가 없는 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되고;
- 코딩 이전에 맵핑이 적용되고, 정제가 디코딩 루프에 있는 경우에, 데이터 코딩 비용 및 픽처 부분의 맵핑된 원래 버전과 정제 데이터에 의한 정제 이후의 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 픽처 부분의 맵핑된 원래 버전과 정제가 없는 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되도록 정의됨―; 및
- 디코딩된 픽처 부분을 디코딩된 정제 데이터로 정제하기 위한 수단을 포함하는, 디코딩 디바이스가 개시된다.
디코딩 디바이스로서, 적어도 스트림에 액세스하도록 구성된 통신 인터페이스 및 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는,
- 액세스된 비트스트림으로부터 픽처 부분 및 정제 데이터를 디코딩하고―정제 데이터는,
- 코딩 이전에 맵핑이 적용되지 않는 경우에, 데이터 코딩 비용 및 픽처 부분의 원래 버전과 정제 데이터에 의한 정제 이후의 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 픽처 부분의 원래 버전과 정제가 없는 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되고;
- 코딩 이전에 맵핑이 적용되고, 정제가 디코딩 루프 밖에 있는 경우에, 데이터 코딩 비용 및 픽처 부분의 원래 버전과 역 맵핑 및 정제 데이터에 의한 정제 이후의 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 픽처 부분의 원래 버전과 역 맵핑 이후의 정제가 없는 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되고;
- 코딩 이전에 맵핑이 적용되고, 정제가 디코딩 루프에 있는 경우에, 데이터 코딩 비용 및 픽처 부분의 맵핑된 원래 버전과 정제 데이터에 의한 정제 이후의 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 픽처 부분의 맵핑된 원래 버전과 정제가 없는 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되도록 정의됨―;
- 디코딩된 픽처 부분을 디코딩된 정제 데이터로 정제하도록 구성되는, 디코딩 디바이스가 개시된다.
머신 실행가능한 명령어들을 저장하는 머신 판독가능한 매체로서, 머신 실행가능한 명령어들은, 실행될 때, 픽처 부분을 디코딩하기 위한 방법을 구현하고, 방법은,
- 비트스트림으로부터 픽처 부분 및 정제 데이터를 디코딩하는 단계―정제 데이터는,
- 코딩 이전에 맵핑이 적용되지 않는 경우에, 픽처 부분의 원래 버전과 정제 데이터에 의한 정제 이후의 디코딩된 픽처 부분 사이의 레이트 왜곡 비용이, 픽처 부분의 원래 버전과 정제가 없는 디코딩된 픽처 부분 사이의 레이트 왜곡 비용과 비교하여 감소되고;
- 코딩 이전에 맵핑이 적용되고, 정제가 디코딩 루프 밖에 있는 경우에, 픽처 부분의 원래 버전과 역 맵핑 및 정제 데이터에 의한 정제 이후의 디코딩된 픽처 부분 사이의 레이트 왜곡 비용이, 픽처 부분의 원래 버전과 역 맵핑 이후의 정제가 없는 디코딩된 픽처 부분 사이의 레이트 왜곡 비용과 비교하여 감소되고;
- 코딩 이전에 맵핑이 적용되고, 정제가 디코딩 루프에 있는 경우에, 픽처 부분의 맵핑된 원래 버전과 정제 데이터에 의한 정제 이후의 디코딩된 픽처 부분 사이의 레이트 왜곡 비용이, 픽처 부분의 맵핑된 원래 버전과 정제가 없는 디코딩된 픽처 부분 사이의 레이트 왜곡 비용과 비교하여 감소되도록 정의됨―; 및
- 디코딩된 픽처 부분을 디코딩된 정제 데이터로 정제하는 단계를 포함하는, 머신 판독가능한 매체가 개시된다.
컴퓨터 프로그램 또는 그러한 컴퓨터 프로그램을 저장하는 매체가 개시되며, 여기서 컴퓨터 프로그램은 컴퓨터 프로그램이 프로세서에 의해 실행될 때 인코딩 방법을 수행하기 위한 소프트웨어 코드 명령어들을 포함한다.
일 실시예에서, 디코딩 방법은 디코딩된 픽처 부분을 역 맵핑하는 단계를 더 포함하고, 역 맵핑 이후의 디코딩된 픽처 부분에 정제가 적용된다.
일 실시예에서, 디코딩된 픽처 부분을 정제 데이터로 정제하는 단계는 정제된 디코딩된 픽처 부분을 참조 픽처 버퍼에 저장하기 전에 행해진다.
일 실시예에서, 디코딩된 픽처 부분을 정제 데이터로 정제하는 단계는 픽처 부분의 임의의 다른 성분과 독립적으로 픽처 부분의 하나의 성분에 대해 수행된다.
일 실시예에서, 픽처 부분의 하나의 성분에 대해 디코딩된 픽처 부분을 정제 데이터로 정제하는 단계는 픽처 부분의 다른 성분에 의존한다.
일 실시예에서, 비트스트림으로부터 정제 데이터를 디코딩하는 단계는 적어도 하나의 성분에 대해 N개의 정제 값들을 디코딩하는 단계를 포함하고, N은 정수이고, N개의 정제 값들은 구간 선형 함수의 피봇 포인트들을 정의한다.
일 실시예에서, 디코딩된 픽처 부분은 인루프 필터링 후에 또는 부분적 인루프 필터링 후에 획득되는 디코딩된 픽처 부분이다.
도 1은 특정한 비제한적 실시예에 따른, 비트스트림에서 픽처를 인코딩하도록 구성된 송신기(1000)의 예시적인 아키텍처를 도시한다.
도 2는 인코딩 방법을 실행하도록 적응된, 예를 들어, HEVC 타입의 인코더인 예시적인 비디오 인코더를 도시한다.
도 3 및 도 4는 도 2의 비디오 인코더의 변형들을 도시한다.
도 5는 특정한 비제한적 실시예에 따른, 비트스트림에서 픽처 부분을 인코딩하기 위한 방법의 흐름도를 도시한다.
도 6은 도 5의 단계(S130)에 대한 상세 흐름도를 도시한다.
도 7 및 도 8은 PWL 모델의 예들을 도시한다.
도 9는 도 6의 프로세스의 변형을 도시한다.
도 10 및 도 11은 PWL 모델의 예들을 도시한다.
도 12는 특정한 비제한적 실시예에 따른, 비트스트림으로부터 픽처를 디코딩하여 디코딩된 픽처를 획득하도록 구성된 수신기의 예시적인 아키텍처를 도시한다.
도 13은 디코딩 방법을 실행하도록 적응된, 예를 들어, HEVC 타입의 예시적인 비디오 디코더의 블록도를 도시한다.
도 14는 도 13의 비디오 디코더의 변형을 도시한다.
도 15는 도 13의 비디오 디코더의 변형을 도시한다.
도 16은 특정한 비제한적 실시예에 따른, 비트스트림으로부터 픽처를 디코딩하기 위한 방법의 흐름도를 도시한다.
도면들 및 설명들은 전형적인 인코딩 및/또는 디코딩 디바이스들에서 발견되는 많은 다른 요소들을, 명확성을 위해 제거하면서, 실시예들의 명확한 이해와 관련되는 요소들을 도시하도록 간략화되었다는 것을 이해해야 한다.
다양한 방법들이 아래에 설명되며, 방법들 각각은 설명된 방법을 달성하기 위한 하나 이상의 단계 또는 동작을 포함한다. 방법의 적절한 동작을 위해 단계들 또는 동작들의 특정 순서가 요구되지 않는 한, 특정 단계들 및/또는 동작들의 순서 및/또는 이용은 수정되거나 결합될 수 있다.
본 발명의 원리들의 "일 실시예" 또는 "실시예" 뿐만 아니라, 그의 다른 변형들에 대한 참조는, 실시예와 관련하여 설명된 특정한 특징, 구조, 특성 등이 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 명세서 전반에 걸친 다양한 위치들에서 나타나는 문구 "일 실시예에서" 또는 "실시예에서" 또는 "일 구현에서" 또는 "구현에서" 뿐만 아니라, 임의의 다른 변형들 모두가 반드시 동일한 실시예를 언급할 필요는 없다.
비록 다양한 요소들을 설명하기 위해 "제1" 및 "제2"라는 용어들이 본 명세서에서 이용될 수 있지만, 이러한 요소들은 이러한 용어들에 의해 제한되지 않아야 한다는 것을 이해할 것이다. 이들 용어는 단지 하나의 요소를 다른 요소와 구별하기 위해 이용된다.
예를 들어, "A/B", "A 및/또는 B" 및 "A 및 B 중 적어도 하나"의 경우들에서, 이하의 "/", "및/또는", 및 "~ 중 적어도 하나" 및 "A, B 및 C 중 하나 이상" 중 임의의 것의 이용은, 제1 열거된 옵션 (A)만의 선택, 또는 제2 열거된 옵션 (B)만의 선택, 또는 두 옵션들 (A 및 B)의 선택을 포함하려는 의도임을 알 것이다. 추가 예로서, "A, B, 및/또는 C" 및 "A, B, 및 C 중 적어도 하나"의 경우들에서, 그러한 문구는 제1 열거된 옵션 (A)만의 선택, 또는 제2 열거된 옵션 (B)만의 선택, 또는 제3 열거된 옵션 (C)만의 선택, 또는 제1 및 제2 열거된 옵션들 (A 및 B)만의 선택, 또는 제1 및 제3 열거된 옵션들 (A 및 C)만의 선택, 또는 제2 및 제3 열거된 옵션들 (B 및 C)만의 선택, 또는 3개 모든 옵션들 (A 및 B 및 C)의 선택을 포함하는 것으로 의도된다. 이것은 본 기술분야의 통상의 기술자에 의해 쉽게 명백해지는 바와 같이, 열거된 많은 항목들에 대해 확장될 수 있다.
픽처는 단색 포맷(monochrome format)에서의 루마 샘플들(luma samples)의 어레이, 또는 4:2:0, 4:2:2 및 4:4:4 컬러 포맷에서의 루마 샘플들의 어레이 및 크로마 샘플들(chroma samples)의 2개의 대응하는 어레이들(또는 RGB와 같은 3-크로마틱 컬러 샘플들(tri-chromatic color samples)의 3개의 어레이)이다. 일반적으로, "블록(block)"은 샘플 어레이(예를 들어, 루마 Y)에서의 특정 영역을 어드레싱하고, "유닛(unit)"은 모든 컬러 성분들의 함께 배열된 블록(루마 Y 및 가능하게는 크로마 Cb 및 크로마 Cr)을 포함한다. 슬라이스는, HEVC 코딩 트리 유닛들(coding tree units) 또는 H.264 매크로블록 유닛들과 같은 정수개의 기본 코딩 유닛들이다. 슬라이스는 완전한 픽처 뿐만 아니라, 그 일부로 구성될 수 있다. 각각의 슬라이스는 하나 이상의 슬라이스 세그먼트를 포함할 수 있다.
이하에서, "재구성된" 및 "디코딩된"이라는 단어는 상호교환가능하게 이용될 수 있다. 통상적으로, "재구성된"은 인코더 측에서 이용되는 반면, "디코딩된"은 디코더 측에서 이용되는데, 반드시 그러한 것은 아니다. "디코딩된" 또는 "재구성된"이라는 용어는 비트스트림이 부분적으로 "디코딩된" 또는 "재구성된" 것을 의미할 수 있고, 예를 들어, 디블록킹 필터링(deblocking filtering) 이후에, 그러나 SAO 필터링 이전에 획득된 신호들 및 재구성된 샘플들은 디스플레이를 위해 이용되는 최종 디코딩된 출력과 상이할 수 있다는 점에 유의해야 한다. 또한, 용어들 "이미지", "픽처" 및 "프레임"은 상호교환가능하게 이용될 수 있다.
다양한 실시예들이 HEVC 표준에 관하여 설명된다. 그러나, 본 실시예들은 HEVC로 제한되지 않으며, 예를 들어, 포맷 범위(Format Range)(RExt), 스케일러빌리티(Scalability)(SHVC), 멀티 뷰(Multi-View)(MV-HEVC) 확장들 및 장래의 비디오 코딩 표준들, 예를 들어, JVET(Joint Video Experts Team)에 의해 개발된 것들과 같은 HEVC 또는 HEVC 확장들을 포함하는 다른 표준들, 추천들 및 확장들에 적용될 수 있다. 다양한 실시예들은 픽처 부분의 인코딩/디코딩에 관하여 설명된다. 그들은 전체 픽처 또는 픽처들의 전체 시퀀스를 인코딩/디코딩하기 위해 적용될 수 있다.
도 1은 특정한 비제한적 실시예에 따른, 비트스트림에서 픽처를 인코딩하도록 구성된 송신기(1000)의 예시적인 아키텍처를 도시한다.
송신기(1000)는 내부 메모리(1030)(예를 들어, RAM, ROM 및/또는 EPROM)와 함께, 예를 들어, CPU, GPU 및/또는 DSP(Digital Signal Processor의 영문 두문자어)를 포함할 수 있는 하나 이상의 프로세서(들)(1005)를 포함한다. 송신기(1000)는 하나 이상의 통신 인터페이스(들)(1010)(예를 들어, 키보드, 마우스, 터치패드, 웹캠)―이들 각각은 출력 정보를 디스플레이하고/하거나 사용자가 커맨드들 및/또는 데이터를 입력하도록 할 수 있게 적응됨―; 및 송신기(1000)의 외부에 있을 수 있는 전원(1020)을 포함한다. 송신기(1000)는 또한 하나 이상의 네트워크 인터페이스(들)(도시되지 않음)를 포함할 수 있다. 인코더 모듈(1040)은 코딩 기능들을 수행하기 위해 디바이스에 포함될 수 있는 모듈을 나타낸다. 또한, 인코더 모듈(1040)은 송신기(1000)의 분리된 요소로서 구현될 수 있거나, 본 기술분야의 통상의 기술자에게 알려진 바와 같은 하드웨어 및 소프트웨어의 조합으로서 프로세서(들)(1005) 내에 통합될 수 있다.
픽처는 소스로부터 획득될 수 있다. 상이한 실시예들에 따르면, 소스는 다음과 같을 수 있지만, 이들로 제한되지는 않는다:
- 로컬 메모리, 예를 들어, 비디오 메모리, RAM, 플래시 메모리, 하드 디스크;
- 저장 인터페이스, 예를 들어, 대용량 저장소, ROM, 광학 디스크 또는 자성 지지체(magnetic support)를 갖는 인터페이스;
- 통신 인터페이스, 예를 들어, 유선 인터페이스(예를 들어, 버스 인터페이스(bus interface), 광역 네트워크 인터페이스(wide area network interface), 근거리 네트워크 인터페이스(local area network interface)) 또는 (IEEE 802.11 인터페이스 또는 블루투스 인터페이스와 같은) 무선 인터페이스; 및
- 픽처 캡처링 회로(picture capturing circuit)(예를 들어, CCD(Charge-Coupled Device) 또는 CMOS(Complementary Metal-Oxide-Semiconductor)와 같은 센서).
다른 실시예들에 따르면, 비트스트림이 목적지(destination)로 전송될 수 있다. 예로서, 비트스트림은 원격 또는 로컬 메모리, 예를 들어, 비디오 메모리 또는 RAM, 하드 디스크에 저장된다. 변형에서, 비트스트림은 저장 인터페이스, 예를 들어, 대용량 저장소, ROM, 플래시 메모리, 광학 디스크 또는 자성 지지체를 갖는 인터페이스에 전송되고/되거나 통신 인터페이스, 예를 들어, 지점간 링크(point to point link), 통신 버스, 지점 대 다지점 링크(point to multipoint link) 또는 브로드캐스트 네트워크(broadcast network)에 대한 인터페이스를 통해 송신된다.
예시적인 비제한적 실시예에 따르면, 송신기(1000)는 메모리(1030)에 저장된 컴퓨터 프로그램을 더 포함한다. 컴퓨터 프로그램은, 송신기(1000)에 의해, 특히 프로세서(1005)에 의해 실행될 때, 송신기(1000)가 도 5를 참조하여 설명되는 인코딩 방법을 실행할 수 있게 하는 명령어들을 포함한다. 변형에 따르면, 컴퓨터 프로그램은 송신기(1000)의 외부에서 비일시적 디지털 데이터 지지체 상에, 예를 들어, 본 기술분야에서 모두 알려져 있는 HDD, CD-ROM, DVD, 판독 전용 및/또는 DVD 드라이브 및/또는 DVD 판독/기입 드라이브와 같은 외부 저장 매체 상에 저장된다. 따라서, 송신기(1000)는 컴퓨터 프로그램을 판독하기 위한 메커니즘을 포함한다. 또한, 송신기(1000)는 대응하는 USB(Universal Serial Bus) 포트들(도시되지 않음)을 통해 하나 이상의 USB 타입 저장 디바이스들(예를 들어, "메모리 스틱들")에 액세스할 수 있다.
예시적인 비제한적 실시예들에 따르면, 송신기(1000)는 다음과 같을 수 있지만, 이들로 제한되지는 않는다:
- 모바일 디바이스;
- 통신 디바이스;
- 게임 디바이스;
- 태블릿(또는 태블릿 컴퓨터);
- 랩탑;
- 스틸 픽처 카메라(still picture camera)
- 비디오 카메라;
- 인코딩 칩 또는 인코딩 디바이스/장치;
- 스틸 픽처 서버; 및
- 비디오 서버(예를 들어, 브로드캐스트 서버, 주문형 비디오 서버(video-on-demand server) 또는 웹 서버).
도 2는 도 5의 인코딩 방법을 실행하도록 적응된, 예를 들어, HEVC 타입의 인코더인 예시적인 비디오 인코더(100)를 도시한다. 인코더(100)는 송신기(1000) 또는 그러한 송신기(1000)의 일부의 예이다.
코딩을 위해, 픽처는 통상적으로 기본 코딩 유닛들, 예를 들어, HEVC에서의 코딩 트리 유닛들(CTU)로, 또는 H.264에서의 매크로블록 유닛들로 분할된다. 가능하게는 연속적인 기본 코딩 유닛들의 세트는 슬라이스로 그룹화된다. 기본 코딩 유닛은 모든 컬러 성분들의 기본 코딩 블록들을 포함한다. HEVC에서, 최소 코딩 트리 블록(CTB) 크기 16x16은 이전의 비디오 코딩 표준들에서 이용되는 바와 같은 매크로블록 크기에 대응한다. CTU 및 CTB라는 용어들은, 본 명세서에서 인코딩/디코딩 방법들 및 인코딩/디코딩 장치를 설명하기 위해 이용되지만, 이러한 방법들 및 장치는, H.264와 같은 다른 표준들에서 상이하게 (예를 들어, 매크로블록으로) 지칭될 수 있는 이러한 특정 용어들에 의해 제한되지 않아야 한다는 점이 이해될 것이다.
HEVC 코딩에서, 픽처는 구성가능한 크기, 즉, 전형적으로 64x64, 128x128 또는 256x256을 갖는 정사각형 형상의 CTU들로 분할된다. CTU는 동일한 크기, 즉, 폭 및 높이에 있어서 부모 블록(parent block) 크기의 절반인 4개의 정사각형 코딩 유닛들(Coding Units)(CU)로의 쿼드 트리 분할(quad-tree partitioning)의 루트(root)이다. 쿼드 트리는 부모 노드가 4개의 자식 노드들로 분할될 수 있는 트리이고, 자식 노드들 각각은 4개의 자식 노드들로 분할된 다른 것에 대한 부모 노드가 될 수 있다. HEVC에서, 코딩 블록(Coding Block)(CB)은 하나 이상의 예측 블록(Prediction Block)(PB)으로 분할되고, 변환 블록(Transform Block)(TB)들로의 쿼드 트리 분할의 루트를 형성한다. 코딩 블록, 예측 블록 및 변환 블록에 대응하여, 코딩 유닛(CU)은 예측 유닛(Prediction Unit)(PU)들 및 변환 유닛(TU)들의 트리 구조 세트를 포함하고, PU는 모든 컬러 성분들에 대한 예측 정보를 포함하며, TU는 각각의 컬러 성분에 대한 잔차 코딩 신택스 구조(residual coding syntax structure)를 포함한다. 루마 성분의 CB, PB 및 TB의 크기는 대응하는 CU, PU 및 TU에 적용된다.
보다 최근의 인코딩 시스템들에서, CTU는 코딩 유닛(Coding Unit)(CU)들으로의 코딩 트리 분할의 루트이다. 코딩 트리는 (통상적으로 CU에 대응하는) 부모 노드가 자식 노드들(예를 들어, 2개, 3개 또는 4개의 자식 노드들)로 분할될 수 있는 트리이며, 자식 노드들 각각은 자식 노드들로 분할된 다른 것에 대한 부모 노드가 될 수 있다. 쿼드 트리 분할 모드(quad-tree split mode)에 부가하여, 가능한 분할 모드들의 총 수를 증가시키는 새로운 분할 모드들(2진 트리 대칭 분할 모드들(binary tree symmetric split modes), 2진 트리 비대칭 분할 모드들 및 3중 트리 분할 모드들(triple tree split modes))이 또한 정의된다. 코딩 트리는 고유한 루트 노드, 예를 들어, CTU를 갖는다. 코딩 트리의 리프(leaf)는 트리의 종단 노드(terminating node)이다. 코딩 트리의 각각의 노드는, 서브(sub)-CU들 또는 보다 일반적으로 서브-블록들(sub-blocks)이라고도 지칭되는, 더 작은 CU들로 더 분할될 수 있는 CU를 나타낸다. CTU의 CU들로의 분할이 결정되면, 코딩 트리의 리프들에 대응하는 CU들이 인코딩된다. CTU의 CU들로의 분할 및 (코딩 트리의 리프에 대응하는) 각각의 CU를 인코딩하기 위해 이용되는 코딩 파라미터들이 레이트 왜곡 최적화 절차(rate distortion optimization procedure)를 통해 인코더 측에서 결정될 수 있다. CB의 PB들 및 TB들로의 분할이 없으며, 즉, CU는 단일 PU 및 단일 TU로 만들어진다.
이하에서, "블록" 또는 "픽처 블록"이라는 용어는 CTU, CU, PU, TU, CB, PB 및 TB 중 임의의 하나를 지칭하는데 이용될 수 있다. 또한, "블록" 또는 "픽처 블록"은 H.264/AVC 또는 다른 비디오 코딩 표준들에 명시된 바와 같이 매크로블록, 파티션(partition) 및 서브블록을 지칭하기 위해, 그리고 보다 일반적으로는, 다양한 크기들의 샘플들의 어레이를 지칭하기 위해 이용될 수 있다.
도 2로 되돌아가면, 예시적인 인코더(100)에서, 픽처는 아래에서 설명되는 바와 같이 인코더 요소들에 의해 인코딩된다. 인코딩될 픽처는 CU들의 유닛들에서 처리된다. 각각의 CU는 인트라 또는 인터 모드를 이용하여 인코딩된다. CU가 인트라 모드에서 인코딩되는 경우, 그것은 인트라 예측(160)을 수행한다. 인터 모드에서, 움직임 추정(motion estimation)(175) 및 보상(170)이 수행된다. 인코더는, CU를 인코딩하기 위해 인트라 모드 또는 인터 모드 중 어느 것을 이용할지를 결정(105)하고, 예측 모드 플래그에 의해 인트라/인터 결정을 표시한다. 잔차들은, 원래 픽처 블록으로부터 (예측자(predictor)라고도 알려진) 예측된 샘플 블록을 감산(110)함으로써 계산된다.
인트라 모드에서의 CU들은, 예를 들어, 동일한 슬라이스 내의 재구성된 이웃 샘플들로부터 예측된다. 35개의 인트라 예측 모드들의 세트가 DC, 평면 및 33개의 각도 예측 모드들을 포함하는 HEVC에서 이용가능하다. 인터 모드에서의 CU들은 참조 픽처 버퍼(reference picture buffer)(180)에 저장된 참조 픽처의 재구성된 샘플들로부터 예측된다.
잔차들은 변환(125) 및 양자화(130)된다. 양자화된 변환 계수들 뿐만 아니라 움직임 벡터들(motion vectors) 및 다른 신택스 요소들은, 비트스트림을 출력하도록 엔트로피 코딩(145)된다. 인코더는 또한 변환을 스킵하거나, 또는 변환 및 양자화 둘다를 우회할 수 있는데, 즉, 잔차는 변환 또는 양자화 프로세스들의 적용 없이 직접 코딩된다.
엔트로피 코딩은, 예를 들어, CABAC(Context Adaptive Binary Arithmetic Coding), CAVLC(Context Adaptive Variable Length Coding), 허프만(Huffman), 산술(arithmetic), 지수 골롬(exp-Golomb) 등일 수 있다. CABAC는 H.264에서 먼저 도입되고, 또한 HEVC에서 이용되는 엔트로피 코딩의 방법이다. CABAC는 이진화(binarization), 콘텍스트 모델링(context modeling) 및 이진 산술 코딩(binary arithmetic coding)을 포함한다. 이진화는 신택스 요소들을 이진 심볼들(빈들(bins))에 맵핑한다. 콘텍스트 모델링은 일부 특정 콘텍스트에 기초하여 각각의 규칙적으로 코딩된 빈(즉, 논바이패스됨(non-bypassed))의 확률을 결정한다. 마지막으로, 이진 산술 코딩은 결정된 확률에 따라 빈들을 비트들로 압축한다.
인코더는 디코딩 루프를 포함하므로, 추가 예측들을 위한 참조(reference)를 제공하기 위해 인코딩된 블록을 디코딩한다. 잔차들을 디코딩하기 위해, 양자화된 변환 계수들은 역 양자화(140) 및 역 변환(150)된다. 픽처 블록은, 디코딩된 잔차들과 예측된 샘플 블록을 결합(155)함으로써 재구성된다. 선택적으로, 인루프 필터(in-loop filter)(들)(165)가 재구성된 픽처에 적용되어, 예를 들어, 코딩 아티팩트들을 감소시키기 위해 DBF(DeBlocking Filter)/SAO(Sample Adaptive Offset)/ALF(Adaptive Loop Filtering)를 수행한다. 필터링된 픽처는 참조 픽처 버퍼(180)에 저장되고, 다른 픽처들에 대한 참조로서 이용될 수 있다. 본 실시예에서, 필터링된 재구성된 픽처, 즉, 인루프 필터(들)의 출력, 및 그의 원래 버전으로부터 정제 데이터가 결정(190)된다. 제1 변형에서, 정제 데이터가 인루프 필터링 이전의 재구성된 픽처 및 그의 원래 버전으로부터 결정(190)된다. 제2 변형에서, 정제 데이터가, 예를 들어, 디블록킹 필터링 이후에 그러나 SAO 이전에 부분적으로 필터링된 재구성된 픽처 및 그의 원래 버전으로부터 결정(190)된다. 정제 데이터는 컬러 성분(예를 들어, 루마 성분 Y, 또는 크로마 성분들 Cb/Cr, 또는 컬러 성분들 R, G, 또는 B)의 개별 샘플(들)에 적용되는, R()로 표기되는 정정 함수(correcting function)를 나타낸다. 그 후, 정제 데이터는 비트스트림에서 엔트로피 코딩된다. 이러한 실시예에서, 정제 프로세스는 디코딩 루프 밖에 있다. 따라서, 정제 프로세스는 후처리로서 디코더에서만 적용된다.
도 3은 도 2의 비디오 인코더(100)의 변형(101)을 도시한다. 도 2의 모듈들과 동일한 도 3의 모듈들은 동일한 수치 참조들로 표시되며, 더 개시되지는 않는다. 비디오 인코더(101)에 의해 인코딩되기 전에, 픽처가 맵핑(105)될 수 있다. 그러한 맵핑은 픽처들의 샘플 코드워드 값 분포를 더 잘 활용하기 위해 이용될 수 있다. 일반적으로, 맵핑은 도 3에 도시된 바와 같이 코어 인코딩 이전에 원래(입력) 샘플들에 적용된다. 통상적으로, 정적 맵핑 함수들, 즉, 모든 콘텐츠에 대한 동일한 함수들이 복잡성을 제한하기 위해 이용된다. 가능하게는 1D 룩업 테이블(look-up-table) LUTmap[x](x는 소정의 값임)에 의해 모델링되는 맵핑 함수 fmap()은 다음과 같이 입력 신호 x에 직접 적용된다:
y = fmap(x) 또는
y = LUTmap[x]
여기서, x는 (예를 들어, 10비트 신호에 대해 0으로부터 1023까지의) 입력 신호이고, y는 맵핑된 신호이다.
변형에서, 하나의 성분에 대한 맵핑 함수는 다른 성분에 의존한다(교차 성분 맵핑 함수(cross-component mapping function)). 예를 들어, 크로마 성분 c는 픽처에서 동일한 상대적 위치에 위치된 루마 성분 y에 따라 맵핑된다. 크로마 성분 c는 다음과 같이 맵핑된다:
c = offset + fmap(y) * (c - offset) 또는
c = offset + LUTmap[y] * (c-offset)
여기서, offset은 통상적으로 크로마 신호의 중심 값이다(예를 들어, 10비트 크로마 신호에 대한 512). 이 파라미터는 또한 스트림에서 코딩된 동적 파라미터일 수 있으며, 이는 개선된 압축 이득들을 초래할 수 있다.
맵핑 함수들은 디폴트로 정의되거나, 예를 들어, 구간 선형 모델들(piece-wise linear models), 스케일링 테이블들(scaling tables), 또는 델타(delta) QP(dQP) 테이블들을 이용하여 비트스트림에서 시그널링될 수 있다.
필터링된 재구성된 픽처, 즉, 인루프 필터(들)의 출력은 역 맵핑(185)된다. 역 맵핑(185)은 맵핑(105)의 역 프로세스의 구현이다. 역 맵핑 후의 필터링된 재구성된 픽처 및 그의 원래 버전으로부터 정제 데이터가 결정(190)된다. 그 후, 정제 데이터는 비트스트림에서 엔트로피 코딩된다. 이러한 실시예에서, 정제 프로세스는 디코딩 루프 밖에 있다. 따라서, 정제 프로세스는 후처리로서 디코더에서만 적용된다.
도 4는 도 2의 비디오 인코더(100)의 변형(102)을 도시한다. 도 2의 모듈들과 동일한 도 4의 모듈들은 동일한 수치 참조들로 표시되며, 더 개시되지는 않는다. 맵핑 모듈(105)은 선택적이다. 정제 데이터가, 필터링된 재구성된 픽처, 즉, 인루프 필터(들)의 출력, 및 맵핑이 적용되지 않은 경우의 그의 원래 버전으로부터, 또는 맵핑이 적용되는 경우의 그의 맵핑된 원래 버전으로부터 결정(190)된다. 그 후, 정제 데이터는 비트스트림에서 엔트로피 코딩(145)된다. 필터링된 재구성된 픽처는 또한 정제 데이터를 이용하여 정제(182)된다. 정제된 픽처는 필터링된 재구성된 픽처 대신에 참조 픽처 버퍼(180)에 저장된다. 이러한 실시예에서, 정제 프로세스는 인루프 프로세스, 즉, 그것은 디코딩 루프의 일부이다. 따라서, 정제 프로세스는 인코더 및 디코더의 디코딩 루프 둘다에 적용된다. 모듈들(182 및 190)은 다른 위치들에 삽입될 수 있다. 정제의 모듈(182)은 인루프 필터(들) 이전에 또는 적어도 2개의 인루프 필터들인 경우에는 인루프 필터(들) 사이에, 예를 들어, DBF 이후 및 SAO 이전에 삽입될 수 있다. 모듈(190)은 입력으로서 정제 모듈(182)과 동일한 픽처, 즉, 모듈(182)이 인루프 필터들 이전에 있는 경우에는 재구성된 픽처, 모듈(182)이 인루프 필터들 사이에 있는 경우에는 부분적으로 필터링된 재구성된 픽처를 취하도록 배치된다.
도 5는 특정한 비제한적 실시예에 따른, 비트스트림에서 픽처 부분을 인코딩하기 위한 방법의 흐름도를 도시한다.
방법은 단계(S100)에서 시작한다. 단계(S110)에서, 예를 들어, 인코더(100, 101 또는 102)와 같은 송신기(1000)가 픽처 부분에 액세스한다. 인코딩되기 전에, 액세스된 픽처 부분은 선택적으로 도 3 및 도 4에서와 같이 맵핑될 수 있다. 단계(S120)에서, 송신기는 재구성된 픽처 부분을 획득하기 위해, 액세스된 픽처 부분을 인코딩 및 재구성한다. 이러한 목적을 위해, 픽처 부분은 블록들로 분할될 수 있다. 픽처 부분을 인코딩하는 것은 픽처 부분의 블록들을 인코딩하는 것을 포함한다. 블록을 인코딩하는 것은 통상적으로, 잔차들의 블록을 획득하기 위해 블록으로부터 예측자를 감산하는 것, 잔차들의 블록을 변환 계수들의 블록으로 변환하는 것, 변환 계수들의 양자화된 블록을 획득하기 위해 양자화 단계 크기로 계수들의 블록을 양자화하는 것, 및 비트스트림에서 변환 계수들의 양자화된 블록을 엔트로피 코딩하는 것을 포함하지만 반드시 그럴 필요는 없다. 인코더 측에서 블록을 재구성하는 것은 통상적으로 변환 계수들의 양자화된 블록을 역 양자화 및 역 변환하여, 잔차들의 블록을 획득하는 것, 및 예측자를 잔차들의 블록에 가산하여 디코딩된 블록을 획득하는 것을 포함하지만, 반드시 그럴 필요는 없다. 그 후, 재구성된 픽처 부분은 인루프 필터들(들), 예를 들어, 도 2 내지 도 4에서와 같은 디블록킹/SAO/ALF 필터들에 의해 필터링될 수 있고, 또한 도 3에서와 같이 역 맵핑될 수 있다.
단계(S130)에서, 정제 데이터는, 예를 들어, 모듈(190)에 의해, 데이터 코딩 비용(즉, 정제 데이터 및 정제된 픽처 부분의 코딩 비용) 및 가능하게는 도 4에서와 같이 맵핑된 픽처 부분, 즉, 액세스된 이미지 부분의 원래 버전과 가능하게는 도 2 및 도 4에서와 같이 필터링되거나 또는 도 3에서와 같이 역 맵핑되고 정제된 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이 감소되거나 최소화되도록 결정된다. 보다 정확하게는, 정제 데이터는,
- 맵핑이 없는 도 2 및 도 4에서와 같이 코딩 이전에 맵핑이 적용되지 않는 경우에, 데이터 코딩 비용(즉, 정제 데이터 및 정제된 픽처 부분의 코딩 비용) 및 상기의 픽처 부분의 원래 버전과 상기의 정제 데이터에 의한 정제 이후의 상기의 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용(즉, 정제가 없는 픽처 부분의 코딩 비용) 및 상기의 픽처 부분의 상기의 원래 버전과 정제가 없는 상기의 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되고;
- (맵핑을 갖고 루프 정제 밖에 있는) 도 3에서와 같이 코딩 이전에 맵핑이 적용되고, 상기의 정제가 디코딩 루프 밖에 있는 경우에, 데이터 코딩 비용(정제 데이터 및 정제된 픽처 부분의 코딩 비용) 및 상기의 픽처 부분의 원래 버전과 역 맵핑 및 상기의 정제 데이터에 의한 정제 이후의 상기의 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 상기의 픽처 부분의 상기의 원래 버전과 역 맵핑 이후의 정제가 없는 상기의 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되고;
- 맵핑을 갖는 도 4에서와 같이 코딩 이전에 맵핑이 적용되고, 상기의 정제가 디코딩 루프에 있는 경우에, 데이터 코딩 비용 및 상기의 픽처 부분의 맵핑된 원래 버전과 상기의 정제 데이터에 의한 정제 이후의 상기의 재구성된 픽처 부분 사이의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 상기의 픽처 부분의 상기의 맵핑된 원래 버전과 정제가 없는 상기의 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되도록 결정된다.
정제 데이터를 결정하는데 이용된 재구성된 픽처 부분은 재구성된 픽처 부분의 인루프 필터링된 버전 또는 인루프 부분적 필터링된 버전일 수 있다.
특정한 비제한적 실시예에서, R이라고 지칭되는 정제 데이터는 유리하게는 N개의 커플들 (R_idx[k], R_val[k])(여기서, k = 0 내지 N-1)에 의해 정의되는 구간 선형 모델(PWL)에 의해 모델링된다. 각각의 커플은 PWL 모델의 피봇 포인트를 정의한다. 단계(S130)는 도 6 내지 도 11에서 상세히 설명된다. R_idx[k]는 전형적으로, 고려된 신호의 범위, 예를 들어, 10비트 신호에 대해 범위 0 내지 1023에서의 값이다. 유리하게, R_idx[k]는 R_idx[k-1]보다 크다.
단계(S140)에서, 정제 데이터는 비트스트림에서 인코딩된다.
다음의 신택스가 제안된다. 이는 3개의 성분들이 정제되는 것을 고려한다. 변형들에서, 성분들 중 일부만을 위한(예를 들어, 2개의 크로마 성분들만을 위한) 신택스가 코딩 및 적용될 수 있다. 정제 데이터는 정제 테이블의 형태로 인코딩된다.
Figure pct00001
refinement_table_new_flag가 0이거나, refinement_table_flag_luma가 0인 경우, 루마에 대해 정제가 적용되지 않는다.
그렇지 않은 경우, 0으로부터 (refinement_table_luma_size-1)까지의 모든 pt에 대해, 루마 정제 값들(R_idx[pt], R_val[pt])은 다음과 같이 계산된다:
· R_idx[pt]는 (default_idx[pt] + refinement_luma_idx[pt])와 동일하게 설정된다.
· R_val[pt]는 (NeutralVal + refinement_luma_value[pt])와 동일하게 설정된다.
유사한 프로세스가 cb 또는 cr 성분에 대해 적용된다.
예를 들어, NeutralVal = 128이다. 이것은 도 6 및 9에서 상세히 설명된 바와 같이 단계(S130)에서 값들 R_val을 초기화하는데 이용될 수 있다. NeutralVal 및 default_idx[pt]는 인코더 측 및 디코더 측 둘다에 알려진 디폴트 값들일 수 있으며, 이 경우에 이들은 송신될 필요가 없다. 변형에서, NeutralVal 및 default_idx[pt]는 비트스트림에서 인코딩된 값들일 수 있다.
바람직하게, 0으로부터 (refinement_table_luma_size-1)까지의 pt에 대한 default_idx[pt]는 다음과 같이 정의된다:
default_idx[pt] = (MaxVal / (refinement_table_luma_size-1)) * pt
또는
default_idx[pt] = ((MaxVal+ 1) / (refinement_table_luma_size-1)) * pt
이는 0부터 MaxVal 또는 (Max+1)까지의 등거리 인덱스들(equi-distant indexes)에 대응하고, MaxVal은 신호의 최대값이다(예를 들어, 신호가 10비트로 표현될 때 1023).
변형에서, 맵핑이 적용되고, 커플들 (map_idx[k], map_val[k])에 의해 정의된 PWL 맵핑 테이블에 기초하는 경우, R_idx[k](여기서, k = 0 내지 N-1)가 map_idx[k]에 의해 초기화된다. 즉, default_idx[k]는 map_idx[k]와 동일하다. 유사하게, R_val[k](여기서, k = 0 내지 N-1)는 map_val[k](여기서, k = 0 내지 N-1)에 의해 초기화된 다른 변형에 있을 수 있다.
신택스 요소들 refinement_table_luma_size, refinement_table_cb_size, refinement_table_cr_size는 디폴트로 정의될 수 있고, 이 경우 이들은 스트림에서 코딩될 필요가 없다.
루마 PWL 모델의 등거리 포인트들의 경우, refinement_luma_idx[pt]는 코딩될 필요가 없다. refinement_luma_idx[pt]는 0으로 설정되어, 0으로부터 (refinement_table_luma_size-1)까지의 pt에 대해 R_idx[pt] = default_idx[pt]가 된다. 동일한 것이 cb 또는 cr 테이블들에 적용된다.
변형에서, (인트라 성분(모드 1) 및 또는 인터 성분(모드 2) 사이에서) 어느 정제 모드가 이용되는지를 표시하기 위해 테이블마다 신택스 요소가 추가될 수 있다. 신택스 요소는 SPS, PPS, 슬라이스, 타일 또는 CTU 레벨에서 시그널링될 수 있다.
변형에서, 테이블이 승산 연산자(multiplicative operator)로서 또는 가산 연산자(additive operator)로서 적용되는지를 나타내기 위해 테이블마다 신택스 요소가 추가될 수 있다. 신택스 요소는 SPS, PPS, 슬라이스, 타일 또는 CTU 레벨에서 시그널링될 수 있다.
실시예에서, 정제 테이블들은 비트스트림에서 코딩되지 않는다. 대신에, (도 3 및 도 4 상에서의 맵핑(105)에 의해 이용되는 맵핑 테이블들의 역에 대응하는) 디폴트 역 맵핑 테이블들이 정제 테이블들에 의해 수정되고, 수정된 역 맵핑 테이블들이 비트스트림에서 코딩된다.
실시예에서, 정제 테이블들은 낮은 시간 레벨들의 픽처들에 대해서만 코딩된다. 예를 들어, 테이블들은 시간 레벨 0(시간적 코딩 계층구조에서의 최저 레벨)의 픽처들에 대해서만 코딩된다.
실시예에서, 정제 테이블들은 인트라 픽처들과 같은 랜덤 액세스 픽처들에 대해서만 코딩된다.
실시예에서, 정제 테이블들은 주어진 값 아래의 픽처에 대한 평균 QP에 대응하는 고품질의 픽처들에 대해서만 코딩된다.
실시예에서, 정제 테이블은 전체 픽처 코딩 비용에 대한 정제 테이블 코딩 비용이 주어진 값 아래인 경우에만 코딩된다.
실시예에서, 정제 테이블은 정제 테이블을 코딩하지 않는 것과 비교하여 레이트 왜곡 이득이 주어진 값 초과인 경우에만 코딩된다. 예를 들어, 다음의 규칙들이 적용될 수 있다:
· 레이트 왜곡 비용 이득이 (0.01 * 폭 * 높이)보다 큰 경우―여기서, 폭 및 높이는 고려된 성분의 치수들임―, 테이블이 코딩된다.
· 레이트 왜곡 비용 이득이 (0.0025 * initRD)보다 큰 경우―여기서, initRD는 성분의 정제가 적용되지 않을 때의 레이트 왜곡 비용임―, 테이블이 코딩된다. 이것은 레이트 왜곡 비용이 제곱 오차 왜곡(square error distortion)에 기초할 때 0.01dB의 최소 PSNR 이득에 대략적으로 대응한다. 주어진 값이 (0.01 * initRD)로 설정되면, 이것은 레이트 왜곡 비용이 제곱 오차 왜곡에 기초할 때 0.05dB의 최소 PSNR 이득에 대략적으로 대응한다. 제안된 값들은 수정될 수 있다.
도 5로 되돌아가면, 선택적 단계(S150)에서, 정제 데이터는 도 4에서와 같이 가능하게는 필터링된 재구성된 픽처 부분에 적용된다.
이러한 목적을 위해, PWL (R_idx[pt], R_val[pt])(여기서, pt = 0 내지 N-1)의 포인트들의 커플들로부터 룩업 테이블 LutR이 결정된다.
예를 들어, LutR은 다음과 같이, PWL (R_idx[pt], R_val[pt]) 및 (R_idx[pt+1], R_val[pt+1])의 포인트들의 각각의 커플 사이의 선형 보간(linear interpolation)에 의해 결정된다:
Figure pct00002
변형에서, LutR은 다음과 같이 결정된다:
Figure pct00003
2개의 정제 모드가 제안된다:
· 모드 1 - 인트라 성분 정제. 모드 1에서, 정제는 다른 성분들과 독립적으로 수행된다. 신호 Srec(p)는 다음과 같이 정제된다:
Sout(p) = LutR[Srec(p)] / NeutralVal * Srec(p)
여기서, Srec(p)는 픽처 부분에서의 위치 p에서 정제될 재구성된 신호이고, 인루프 필터(들)로부터 오거나 또는 가능하게는 역 맵핑으로부터 오는 신호에 대응하고, Sout(p)는 정제된 신호이다. 여기서, 신호들 Srec 및 Sout은 동일한 비트 심도(bit depth)를 이용하는 것으로 고려된다. 양 신호들에 대한 상이한 비트 심도들(즉, Sout에 대한 Bout 및 Srec에 대한 Brec)을 이용할 때, 비트 심도 차이에 관련된 스케일링 계수(scaling factor)가 적용될 수 있다.
이 연산은 다음과 같도록 1D-LUT LutRF를 이용하여 직접 구현될 수 있다.
Sout(p) = LutRF[Srec(p)] = LutR[Srec(p)] / NeutralVal * Srec(p)
예를 들어, 공식은 Sout의 비트 심도 Bout이 Srec의 비트 심도 Brec보다 더 높을 때 다음과 같이 적응된다:
Sout(p) = 2(Bout-Brec) * LutR[Srec(p)] / NeutralVal * Srec(p)
스케일링 계수는 LutR 값들에 직접 통합될 수 있다.
이 연산은 다음과 같도록 1D-LUT LutRF를 이용하여 직접 구현될 수 있다.
Sout(p)=LutRF[Srec(p)] = 2(Bout-Brec) * LutR[Srec(p)] / NeutralVal * Srec(p)
예를 들어, 공식은 Sout의 비트 심도 Bout이 Srec의 비트 심도 Brec보다 낮을 때 다음과 같이 적응된다:
Sout(p) = LutR[Srec(p)] / NeutralVal * Srec(p) / 2(Brec-Bout)
스케일링 계수는 LutR 값들에 직접 통합될 수 있다.
이 연산은 다음과 같도록 1D-LUT LutRF를 이용하여 직접 구현될 수 있다.
Sout(p)=LutRF[Srec(p)] = LutR[Srec(p)] / NeutralVal * Srec(p) / 2(Brec-Bout)
유리하게, 이 모드는 루마 성분에 대해 이용된다.
· 모드 2 - 인터 성분 정제. 모드 2에서, 정제는 하나의 성분 C0에 대해 수행되고, 다른 성분 C1에 의존한다. 신호 Srec_C0(p)는 다음과 같이 정제된다:
Sout(p) = offset + LutR[Srec_C1(p)] / NeutralVal * (Srec_C0(p) - offset)
여기서, offset은, 예를 들어, (MaxVal/2)로 설정되고, Srec_C0(p)는 정제될 성분 C0의 재구성된 신호이고, p는 픽처 부분에서의 샘플 위치이다. MaxVal은 신호 Srec_C0의 최대값이고 (2B-1)로서 계산되며, 여기서 B는 신호의 비트 심도이다. Srec_C1(p)는 성분 C1의 재구성된 신호이다. Srec_C1(p)는 인루프 필터들로부터, 또는 역 맵핑으로부터 오는 신호일 수 있다. Srec_C1(p)는 또한 인루프 필터(들)에 의해 필터링된 후에, 예를 들어, 저역 통과 필터로 더 필터링될 수 있다. 여기서, 신호들 Srec_C0, Srec_C1 및 Sout은 동일한 비트 심도를 이용하는 것으로 고려된다. 유리하게, 모드 2는 크로마 성분에 적용되고, 루마 성분에 의존한다.
공식은 Sout의 비트 심도 Bout이 Srec_C0 및 Srec_C1의 비트 심도 Brec보다 더 높을 때 다음과 같이 적응된다:
Sout(p) = 2(Bout-Brec) * (offset + LutR[Srec_C1(p)] / NeutralVal * (Srec_C0(p) - offset))
공식은 Sout의 비트 심도 Bout이 Srec_C0 및 Srec_C1의 비트 심도 Brec보다 더 낮을 때 다음과 같이 적응된다:
Sout(p) = (offset + LutR[Srec_C1(p)] / NeutralVal * (Srec_C0(p) - offset)) / 2(Bout-Brec)
최소 및 최대 신호 값들(전형적으로 10비트 신호에 대해 0 및 1023) 사이의 라운딩(rounding) 및 클리핑(clipping)은 최종적으로 정제된 값들 Sout(p)에 적용된다.
상기의 실시예에서, 정제는 승산 연산자로서 적용된다.
변형에서, 정제는 가산 연산자로서 적용된다. 이 경우, 모드 1에서, 신호 Srec(p)는 다음과 같이 정제된다:
o Sout(p) = LutR[Srec(p)] / NeutralVal + Srec(p)
이 경우, 모드 2에서, 신호 Srec_C0(p)는 다음과 같이 정제된다:
o Sout(p) = LutR[Srec_C1(p)] / NeutralVal + Srec_C0(p)
교차 성분 정제 테이블 값들의 예는, 크로마 성분들 Cb 및 Cr에 대해, NeutralVal = 64 및 N= 17에 대해 아래에 도시되어 있다:
Cb
Figure pct00004
Cr
Figure pct00005
도 5로 되돌아가면, 방법은 단계(S160)에서 종료된다.
도 6은 단계(S130)를 상세히 설명하는 흐름도이다. 정제 데이터는 주어진 픽처 영역 A, 예를 들어, 슬라이스, 타일 또는 CTU에 걸쳐, 또는 전체 픽처에 걸쳐 결정될 수 있다.
정제 데이터 R은 유리하게는 N개의 커플들 (R_idx[k], R_val[k])(여기서, k = 0 내지 N-1)에 의해 정의되는 구간 선형 모델(PWL)에 의해 모델링된다. PWL 모델의 예가 도 7에 도시되어 있으며, 여기서 N = 6이다(k ∈ {0, 1, 2, 3, 5}). 각각의 커플은 PWL 모델의 피봇 포인트를 정의한다.
값들 R_idx 및 R_val이 초기화된다(단계(S1300)). 전형적으로, R_idx[k](여기서, k = 0 내지 N-1)는 초기화되고, 따라서 연속적인 인덱스들 사이에 등거리 공간이 있는데, 즉, (R_idx[k+1] - R_idx[k]) = D이고, 여기서 D = Range / (N-1)이고, Range는 정제하기 위한 신호의 범위이다(예를 들어, 10비트들에 대해 표현되는 신호에 대해 1024). 예에서, N = 17 또는 33이다. 값들 R_val은 정제가 신호를 변경하지 않도록 정의되는 값들 NeutralVal, 예를 들어, 128로 초기화된다. 변형에서, 맵핑이 적용되고, 커플들 (map_idx[k], map_val[k])에 의해 정의되는 PWL 맵핑 테이블에 기초하면, (R_idx[k], R_val[k])(여기서, k = 0 내지 N-1)이 (map_idx[k], map_val[k])에 의해 초기화된다.
도 6의 실시예에서 값들 R_val[k]만이 결정된다. 값들 R_idx[k]는 그들의 초기 값들로 고정된다. 초기 레이트 왜곡 비용 initRD는 S1300에서 초기화된 바와 같은 R을 이용하여 계산된다(단계(1301)). 초기 레이트 왜곡 비용 initRD는 다음과 같이 계산된다:
initRD = L * Cost(R) + ∑P in A dist(Sin(P), Sout(p)) (수학식 1)
여기서:
- R은 S1300에서 초기화된 바와 같은 정제 데이터이고,
- A는 정제가 수행되는 픽처 영역이고,
- Sin(p)는 다음과 같이 정의된다:
맵핑이 적용되지 않을 때, Sin(p)는 원래 픽처 영역에서의 픽셀 p의 샘플 값이다;
맵핑이 적용되고 정제가 루프 밖에 있을 때(도 3), Sin(p)는 원래 픽처 영역에서의 픽셀 p의 샘플 값이다;
맵핑이 적용되고 정제가 루프에 있을 때(도 4), Sin(p)는 맵핑된 원래 픽처 영역에서의 픽셀 p의 샘플 값이다;
- Sout(p)는 정제된 픽처 영역에서의 픽셀 p의 샘플 값이다;
- dist(x, y)는 샘플 값 x와 샘플 값 y 사이의 왜곡이고, 예를 들어, 왜곡은 제곱 오차 (x-y)2이고; 다른 가능한 왜곡 함수들은 절대 차이 |x-y|이거나, SSIM(Z. Wang, A. C. Bovik, H. R. Sheikh 및 E. P. Simoncelli에 의한 "Image quality assessment: From error visibility to structural similarity", IEEE Transactions on Image Processing, vol. 13, no. 4, pp. 600-612, April 2004) 또는 SSIM의 변형들과 같은 주관적 지향 메트릭들(subjective-oriented metrics)에 기초한 왜곡이 또한 이용될 수 있다;
- Cost(R)은 정제 데이터 R 및 정제된 픽처 영역을 코딩하기 위한 코딩 비용이다;
- L은 픽처 영역 A와 연관된 값이다. 그것은 유리하게는 2(QP/6)에 선형적으로 의존하고, 여기서 QP는 단일 양자화 파라미터 값이 픽처 영역 A 내부에서 이용될 때의 양자화 파라미터이거나, QP는 상이한 양자화 파라미터 값들이 픽처 영역 A 내부에서 이용될 때 픽처 영역 A에 적용되는 양자화 파라미터들을 나타낸다. 예를 들어, QP는 영역 A의 블록들 내부에서 이용되는 QP들의 평균이다.
값들 R_val이 값들 NeutralVal로 초기화되는 경우에, 초기 레이트 왜곡 비용 initRD는 정제 데이터의 코딩 비용 없이 픽처 영역의 코딩 비용으로 계산될 수 있다.
단계(S1302)에서, 파라미터 bestRD가 initRD로 초기화된다. 그 다음, 정제 데이터 R이 단계(S1303)에서 결정된다. PWL 모델 R의 연속적인 피봇 포인트들의 인덱스 pt에 대한 루프가 단계(S1304)에서 수행된다. 단계(S1305)에서, 파라미터들 bestVal 및 initVal은 R_val[pt]로 초기화된다. R_val[pt]의 다양한 값들에 대한 루프, 즉, 값(initVal-Val0)으로부터 값(initVal+ Val1)으로의 루프가 단계(S1306)에서 수행되고, 여기서 Val0 및 Val1은 미리 정의된 파라미터들이다. 전형적인 값들 Val0 = Val1 = NeutralVal/4이다. 레이트 왜곡 비용 curRD는 단계(S1307)에서 현재 R을 갖는(현재 R_val[pt]를 갖는) 수학식 1을 이용하여 계산된다. curRD 및 bestRD는 단계(S1308)에서 비교된다. curRD가 bestRD보다 낮다면, bestRD는 curRD로 설정되고, bestValue는 R_val[pt]로 설정된다. 그렇지 않은 경우, 방법은 단계(S1310)에서 계속된다. 단계(S1310)에서, R_val[pt]의 값들에 대한 루프가 종료되는지가 체크된다. 루프가 종료되는 경우에, R_val[pt]는 단계(S1311)에서 bestValue로 설정된다. 단계(S1312)에서, pt의 값들에 대한 루프가 종료되는지가 체크된다. 루프가 종료되는 경우, 현재 R은 출력 정제 데이터이다.
단계(S1303)는 n회 반복될 수 있고, n은 고정된 값을 갖는 정수이고, 예를 들어, n = 3이다. 도 8은 R_val의 결정을 도시한다. 파선은 R_val을 업데이트한 후의 PWL을 나타낸다.
도 9는 도 6의 프로세스의 변형을 도시한다. 도 9의 실시예에서 값들 R_idx[k]만이 결정된다. 값들 R_val[k]는 그들의 초기 값들로 고정된다.
프로세스는 입력으로서 (예를 들어, 도 6의 방법으로부터 오는) 초기 R_idx 및 R_val 데이터를 이용한다. 초기 레이트 왜곡 비용 initRD는 단계(S1401)에서 (수학식 1)을 이용하여 계산된다. 단계(S1402)에서, 파라미터 bestRD가 initRD로 초기화된다. 그 다음, 정제 데이터 R이 단계(S1403)에서 결정된다. PWL 모델 R의 연속적인 피봇 포인트들의 인덱스 pt에 대한 루프가 단계(S1404)에서 수행된다. 단계(S1405)에서, 파라미터들 bestIdx 및 initIdx는 R_idx[pt]로 초기화된다. R_idx[pt]의 (initIdx-idxVal0으로부터 initIdx+idxVal1로의) 다양한 값들에 대한 루프가 단계(S1406)에서 수행되고, 여기서 idxVal0 및 idxVal1은 정의된 값들, 예를 들어, idxVal0 = idxVal1 = D/4이고, 여기서 D = Range / (N-1)이고, Range는 정제하기 위한 신호의 범위이다(예를 들어, 10비트들에 대해 표현된 신호에 대해 1024). 레이트 왜곡 비용 curRD는 단계(S1407)에서 현재 R을 갖는(현재 R_idx[pt]를 갖는) 수학식 1을 이용하여 계산된다. curRD 및 bestRD는 단계(S1408)에서 비교된다. curRD가 bestRD보다 낮다면, bestRD는 curRD로 설정되고, bestIdx는 R_idx[pt]로 설정된다. 그렇지 않은 경우 방법은 단계(S1310)에서 계속된다. 단계(S1410)에서, R_idx[pt]의 값들에 대한 루프가 종료되는지가 체크된다. 루프가 종료되는 경우, R_idx[pt]는 단계(S1411)에서 bestIdx로 설정된다. 단계(S1412)에서, pt의 값들에 대한 루프가 종료되는지가 체크된다. 루프가 종료되는 경우, 현재 R이 출력 정제 데이터이다. 단계(S1403)는 n회 반복될 수 있고, n은 고정된 값을 갖는 정수이고, 예를 들어, n= 3이다.
도 10은 R_idx의 결정을 도시한다. 파선은 R_idx를 업데이트한 후의 PWL을 나타낸다. 도 11은 R_idx 및 R_val 둘다의 결정을 도시한다. 파선은 R_val 및 R_idx의 업데이트 후의 PWL을 나타낸다.
픽처에 걸친 왜곡을 계산하기 위한 빠른 구현들이, 왜곡이 원래 샘플 값과 정제된 샘플 값 사이의 제곱 오차에 대응할 때 단계들(1301, 1307, 1401 및 1407)에서 이용될 수 있다. 이들 구현들은 전체 픽처 스캐닝을 피한다.
예를 들어, 직접 맵핑이 루마에 대해 이용되는 경우, SSE로 언급된 픽처 어레이 I에 대한 왜곡은 다음과 같이 계산된다:
Figure pct00006
여기서, Yorig(p)는 위치 p에서의 원래 픽처 루마 샘플이고, Yout(p)는, PWL 모델로부터 구축된 정제 LUT LutRF를 이용하여 도출될 수 있는 정제된 루마 샘플이다:
Yout(p) = LutRF[Yrec(p)]
디코딩된 샘플 Yrec(p)가 Y와 동일하도록 픽셀들 p의 세트 SY에 대해(수학적으로, {Yrec(p) = Y이도록 I에서의 p}로서 표기됨), 누적 오차 SSEY는 다음과 같다.
Figure pct00007
여기서, NY는 루마 샘플 값 Y의 디코딩된 픽처에서의 발생 횟수이다(즉, SY의 요소들의 수).
총 왜곡 SSE는 다음과 같이 계산될 수 있다:
Figure pct00008
루마 정제 PWL 테이블의 피봇 포인트를 변경할 때, 피봇 포인트의 수정에 의해 영향을 받는 Y 값들에 대한 새로운 맵핑 값들 LutRF[Y]를 재계산하고, 그 후 이 새로운 맵핑 값들에 대한 SSE를 업데이트하는 것만이 요구된다.
다른 예에서, 교차 성분 맵핑이 크로마 U에 대해 이용되는 경우(V에 대해 동일한 것이 적용됨), 픽처에 대한 왜곡은 다음과 같이 계산된다:
Figure pct00009
여기서 Uorig(p)는 위치 p에서의 원래 픽처 크로마 U 샘플이고, Uout(p)는 PWL 모델로부터 구축된 정제 LUT LutR를 이용하여 도출될 수 있다:
Uout(p) = offset + LutR[Yrec(p)] * (Urec(p) - offset)
(클리핑을 무시함으로써, 그리고 여기서 NeutralVal = 1이고, Bout = Brec인 표기 단순화들을 고려함한 것임).
Figure pct00010
세트 SY = {Ydec(p) = Y이도록 I에서의 p}에 대해, 누적 오차는 다음과 같다.
Figure pct00011
그리고 총 왜곡 SSE는 다음으로서 계산될 수 있다:
Figure pct00012
U(또는 V) 정제 PWL 테이블의 피봇 포인트를 변경할 때, 피봇 포인트의 수정에 의해 영향을 받는 Y 값들에 대한 새로운 맵핑 값들 LutR[Y]를 재계산하고, 그 후 이 새로운 맵핑 값들에 대한 SSE를 업데이트하는 것만이 요구된다.
도 12는 특정한 비제한적 실시예에 따른, 비트스트림으로부터 픽처를 디코딩하여 디코딩된 픽처를 획득하도록 구성된 수신기(2000)의 예시적인 아키텍처를 도시한다.
수신기(2000)는, 내부 메모리(2030)(예를 들어, RAM, ROM 및/또는 EPROM)와 함께, 예를 들어, CPU, GPU 및/또는 DSP(Digital Signal Processor의 영문 두문자어)를 포함할 수 있는 하나 이상의 프로세서(들)(2005)를 포함한다. 수신기(2000)는 하나 이상의 통신 인터페이스(들)(2010)(예를 들어, 키보드, 마우스, 터치패드, 웹캠)―이들 각각은 출력 정보를 디스플레이하고/하거나 사용자가 커맨드들 및/또는 데이터(예를 들어, 디코딩된 픽처)를 입력하도록 할 수 있게 적응됨―, 및 수신기(2000)의 외부에 있을 수 있는 전원(2020)을 포함한다. 수신기(2000)는 또한 하나 이상의 네트워크 인터페이스(들)(도시되지 않음)를 포함할 수 있다. 디코더 모듈(2040)은 디코딩 기능들을 수행하기 위해 디바이스에 포함될 수 있는 모듈을 나타낸다. 또한, 디코더 모듈(2040)은 수신기(2000)의 분리된 요소로서 구현될 수 있거나, 본 기술분야의 통상의 기술자에게 알려진 바와 같은 하드웨어 및 소프트웨어의 조합으로서 프로세서(들)(2005) 내에 통합될 수 있다.
비트스트림은 소스로부터 획득될 수 있다. 상이한 실시예들에 따르면, 소스는 다음과 같을 수 있지만, 이들로 제한되지는 않는다:
- 로컬 메모리, 예를 들어, 비디오 메모리, RAM, 플래시 메모리, 하드 디스크;
- 저장 인터페이스, 예를 들어, 대용량 저장소, ROM, 광학 디스크 또는 자성 지지체를 갖는 인터페이스;
- 통신 인터페이스, 예를 들어, 유선 인터페이스(예를 들어, 버스 인터페이스, 광역 네트워크 인터페이스, 근거리 네트워크 인터페이스) 또는 (IEEE 802.11 인터페이스 또는 블루투스 인터페이스와 같은) 무선 인터페이스; 및
- 이미지 캡처링 회로(예를 들어, CCD(Charge-Coupled Device) 또는 CMOS(Complementary Metal-Oxide-Semiconductor)와 같은 센서).
다른 실시예들에 따르면, 디코딩된 픽처는 목적지, 예를 들어, 디스플레이 디바이스에 전송될 수 있다. 예로서, 디코딩된 픽처는 원격 또는 로컬 메모리, 예를 들어, 비디오 메모리 또는 RAM, 하드 디스크에 저장된다. 변형에서, 디코딩된 픽처는 저장 인터페이스, 예를 들어, 대용량 저장소, ROM, 플래시 메모리, 광학 디스크 또는 자성 지지체를 갖는 인터페이스에 전송되고/되거나 통신 인터페이스, 예를 들어, 지점간 링크, 통신 버스, 지점 대 다지점 링크 또는 브로드캐스트 네트워크에 대한 인터페이스를 통해 송신된다.
특정한 비제한적 실시예에 따르면, 수신기(2000)는 메모리(2030)에 저장된 컴퓨터 프로그램을 더 포함한다. 컴퓨터 프로그램은, 수신기(2000)에 의해, 특히 프로세서(2005)에 의해 실행될 때, 수신기가 도 16을 참조하여 설명되는 디코딩 방법을 실행할 수 있게 하는 명령어들을 포함한다. 변형에 따르면, 컴퓨터 프로그램은 수신기(2000)의 외부에서 비일시적 디지털 데이터 지지체 상에, 예를 들어, 본 기술분야에서 모두 알려져 있는 HDD, CD-ROM, DVD, 판독 전용 및/또는 DVD 드라이브 및/또는 DVD 판독/기입 드라이브와 같은 외부 저장 매체 상에 저장된다. 따라서, 수신기(2000)는 컴퓨터 프로그램을 판독하기 위한 메커니즘을 포함한다. 또한, 수신기(2000)는 대응하는 USB 포트들(도시되지 않음)을 통해 하나 이상의 USB 타입의 저장 디바이스들(예를 들어, "메모리 스틱들")에 액세스할 수 있다.
예시적인 비제한적 실시예들에 따르면, 수신기(2000)는 다음과 같을 수 있지만, 이들로 제한되지는 않는다:
- 모바일 디바이스;
- 통신 디바이스;
- 게임 디바이스;
- 셋톱 박스;
- TV 세트;
- 태블릿(또는 태블릿 컴퓨터);
- 랩탑;
- 비디오 플레이어, 예를 들어, 블루레이 플레이어, DVD 플레이어;
- 디스플레이; 및
- 디코딩 칩 또는 디코딩 디바이스/장치.
도 13은 도 16의 디코딩 방법을 실행하도록 적응된, 예를 들어, HEVC 타입의 예시적인 비디오 디코더(200)의 블록도를 도시한다. 비디오 디코더(200)는 수신기(2000) 또는 그러한 수신기(2000)의 일부의 예이다. 예시적인 디코더(200)에서, 비트스트림은 아래에서 설명되는 바와 같이 디코더 요소들에 의해 디코딩된다. 비디오 디코더(200)는 일반적으로 도 2에 설명된 바와 같은 인코딩 패스(pass)에 대해 역인 디코딩 패스를 수행하며, 이는 인코딩 비디오 데이터의 일부로서 비디오 디코딩을 수행한다.
특히, 디코더의 입력은 비디오 인코더(100)에 의해 생성될 수 있는 비디오 비트스트림을 포함한다. 비트스트림은, 변환 계수들, 움직임 벡터들 및 다른 코딩된 정보, 예를 들어, 정제 데이터를 획득하기 위해 먼저 엔트로피 디코딩(230)된다. 잔차들을 디코딩하기 위해, 변환 계수들은 역 양자화(240) 및 역 변환(250)된다. 그 다음, 디코딩된 잔차들은, (예측자라고도 알려진) 예측된 블록과 결합(255)되어, 디코딩된/재구성된 픽처 블록이 획득된다. 예측된 블록은 인트라 예측(260) 또는 움직임 보상된 예측(즉, 인터 예측)(275)으로부터 획득될 수 있다(270). 앞서 설명된 바와 같이, AMVP 및 병합 모드(merge mode) 기술들이 움직임 보상 동안 이용될 수 있고, 이는 참조 블록의 서브 정수 샘플들(sub-integer samples)에 대한 보간된 값들을 계산하기 위해 보간 필터들을 이용할 수 있다. 재구성된 픽처에는 인루프 필터(265)가 적용된다. 인루프 필터는 디블록킹 필터 및 SAO 필터를 포함할 수 있다. 필터링된 픽처는 참조 픽처 버퍼(280)에 저장된다. 가능하게는 필터링된 재구성된 픽처는 정제(290)된다. 정제는 디코딩 루프 밖에 있고, 후처리 프로세스로서 적용된다.
도 14는 도 13의 비디오 디코더(200)의 변형(201)을 도시한다. 도 13의 모듈들과 동일한 도 14의 모듈들은 동일한 수치 참조들로 표시되며, 더 개시되지는 않는다.
필터링된 재구성된 픽처, 즉, 인루프 필터(들)의 출력은 역 맵핑(285)된다. 역 맵핑(285)은 인코더 측에서 적용된 맵핑(105)의 역 프로세스이다. 역 맵핑은 비트스트림 또는 디폴트 역 맵핑 테이블들로부터 디코딩된 역 맵핑 테이블들을 이용할 수 있다. 역 맵핑된 픽처는 비트스트림으로부터 디코딩(230)된 정제 데이터를 이용하여 정제(290)된다.
변형에서, 역 맵핑 및 정제는 비트스트림으로부터 디코딩된 역 맵핑 테이블들을 이용하여 역 맵핑을 적용하는 단일 모듈에서 병합되며, 역 맵핑 테이블들은 정제 데이터를 고려하기 위해 인코더에서 수정된다. 변형에서, 처리되고 있는 주어진 성분에 대해, 역 맵핑 및 정제 프로세스들을 수행하기 위해 룩업 테이블 LutComb가 적용되고, 이러한 룩업 테이블은 맵핑 테이블로부터 도출된 룩업 테이블 LutInvMap과 정제 테이블 LutR로부터 도출된 룩업 테이블의 연결로서 구축된다:
LutComb[x] = LutR[LutInvMap[x]] (여기서, x = 0 내지 MaxVal)
이러한 실시예에서, 정제 프로세스는 디코딩 루프 밖에 있다. 따라서, 정제 프로세스는 후처리로서 디코더에서만 적용된다.
도 15는 도 13의 비디오 디코더(200)의 변형(202)을 도시한다. 도 13의 모듈들과 동일한 도 15의 모듈들은 동일한 수치 참조들로 표시되며, 더 개시되지는 않는다.
정제 데이터는 비트스트림으로부터 디코딩(230)된다. 필터링된 재구성된 픽처는 디코딩된 정제 데이터를 이용하여 정제(290)된다. 정제된 픽처는 필터링된 재구성된 픽처 대신에 참조 픽처 버퍼(280)에 저장된다. 모듈(290)은 상이한 위치들에 삽입될 수 있다. 정제의 모듈(290)은 인루프 필터(들) 이전에 또는 적어도 2개의 인루프 필터들인 경우에는, 인루프 필터(들) 사이에, 예를 들어, DBF 이후 및 SAO 이전에 삽입될 수 있다. 정제된 픽처는 선택적으로 역 맵핑(285)될 수 있다.
이러한 실시예에서, 정제 프로세스는 디코딩 루프에 있다.
도 16은 특정한 비제한적 실시예에 따른, 비트스트림으로부터 픽처를 디코딩하기 위한 방법의 흐름도를 도시한다.
방법은 단계(S200)에서 시작한다. 단계(S210)에서, 디코더(200)와 같은 수신기(2000)가 비트스트림에 액세스한다. 단계(S220)에서, 수신기는 디코딩된 픽처 부분을 획득하기 위해 비트스트림으로부터 픽처 부분을 디코딩한다. 이러한 목적을 위해, 픽처 부분의 블록들이 디코딩된다. 블록을 디코딩하는 것은, 반드시 그러한 것은 아니지만, 통상적으로 변환 계수들의 블록을 획득하기 위해 블록을 나타내는 비트스트림의 일부를 엔트로피 디코딩하는 것, 잔차들의 블록을 획득하기 위해 변환 계수들의 블록을 역 양자화 및 역 변환하는 것, 및 디코딩된 블록을 획득하기 위해 잔차들의 블록에 예측자를 추가하는 것을 포함한다. 그 후, 디코딩된 픽처 부분은 도 13 내지 도 15에서와 같이 인루프 필터(들)에 의해 필터링되고, 또한 도 14에서와 같이 역 맵핑될 수 있다.
단계(S230)에서, 정제 데이터가 비트스트림으로부터 디코딩된다. 이 단계는 인코딩 단계(S140)의 역이다. 단계(S140)와 관련하여 개시된 모든 변형들 및 실시예들이 단계(S230)에 적용된다.
단계(S240)에서, 디코딩된 픽처가 정제된다. 이 단계는 인코더 측의 정제 단계(S150)와 동일하다.
다른 실시예에서, 동적 범위 적응(Dynamic Range Adaptation)(DRA) 프로세스는 코딩 효율을 개선하려는 목적으로, 인코더 측에서의 전처리로서 적용되는 신호 적응이다. 디코더 측에서, 역 프로세스가 적용된다.
DRA 및 역 DRA는 정적 테이블들에 기초할 수 있다. HLG 콘텐츠의 경우, DRA가 이용되지 않는다. PQ 콘텐츠의 경우, 스케일링 테이블(후처리)은 콘텐츠와는 독립적이고, 이용되는 dQP 테이블에 기초한다. 다음의 스케일링 계수들은 2dQP/6에 대응한다.
Figure pct00013
후디코딩(post-decoding) 정제 프로세스는 슬라이스마다 적용될 수 있다. 이것은 압축으로부터 초래되고, 역 동적 범위 적응(DRA) 프로세스에 영향을 주는 왜곡을 정정하는 것을 목표로 한다. 역 맵핑된 신호(Y, U, V)는 다음과 같이 정제된다:
· 루마 성분의 경우, 인트라 성분 스케일링이 적용되며, 다음에 대응한다:
o Yrefine = Min(2Blum-1, LUTrefineY[Y] * Y)
o 주의: 이것은 직접 LUT를 이용하여 달성될 수 있다.
· 크로마 성분들의 경우, 루마-의존적 스케일링이 적용되며, 다음에 대응한다:
Figure pct00014
Figure pct00015
o 여기서 Ycoloc는 공동 위치된 역 맵핑된 루마 샘플이다.
룩업 테이블들 LUTrefineY, LUTrefineU, LUTrefineV는 슬라이스마다 시그널링될 수 있는 구간 선형(PWL) 테이블들로부터 구축될 수 있다. PWL 테이블들의 피봇 포인트들은 등거리일 수 있고, 테이블 크기는, 예를 들어, 2S+1과 동일하고, S는 슬라이스 헤더에서 시그널링된 파라미터이다. 실제로, 17의 크기가 이용될 수 있다. 성분에 대해 테이블이 시그널링되지 않을 때, 이전에 디코딩된 테이블이 이용된다. 실시예에서, 테이블들은 시간 레벨 0의 슬라이스들에 대해서만 전송될 수 있다.
본 명세서에 설명된 구현들은, 예를 들어, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림 또는 신호로 구현될 수 있다. (예를 들어, 방법 또는 장치로서만 설명된) 단일 형태의 구현의 맥락에서만 설명되었지만, 설명되는 특징들의 구현은 다른 형태들(예를 들어, 프로그램)로도 구현될 수 있다. 장치는, 예를 들어, 적절한 하드웨어, 소프트웨어 및 펌웨어로 구현될 수 있다. 예를 들어, 방법들은, 예를 들어, 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그래밍가능 논리 디바이스를 포함하는 처리 디바이스들을 일반적으로 지칭하는, 예를 들어, 프로세서와 같은 장치로 구현될 수 있다. 프로세서들은 또한, 예를 들어, 컴퓨터들, 셀 폰들(cell phones), PDA(portable/personal digital assistant)들, 및 최종 사용자들 간의 정보의 통신을 용이하게 하는 다른 디바이스들과 같은, 통신 디바이스들을 포함한다.
본 명세서에서 설명되는 다양한 프로세스들 및 특징들의 구현예들은 여러 가지의 상이한 장비 또는 응용들, 특히, 예를 들어, 장비 또는 응용들에서 구현될 수 있다. 그러한 장비의 예들은 인코더, 디코더, 디코더로부터의 출력을 처리하는 후처리기(post-processor), 인코더에의 입력을 제공하는 전처리기(pre-processor), 비디오 코더, 비디오 디코더, 비디오 코덱, 웹 서버, 셋톱 박스, 랩탑, 개인용 컴퓨터, 셀 폰, PDA, 및 다른 통신 디바이스들을 포함한다. 명백한 바와 같이, 장비는 모바일일 수 있고, 심지어 모바일 차량에 설치될 수 있다.
추가적으로, 방법들은 프로세서 의해 수행되는 명령어들에 의해 구현될 수 있고, 그러한 명령어들(및/또는 구현에 의해 생성되는 데이터 값들)은, 예를 들어, 집적 회로, 소프트웨어 캐리어, 또는 예컨대 하드 디스크, CD(compact diskette), (예를 들어, 보통, 디지털 다기능 디스크(digital versatile disc) 또는 디지털 비디오 디스크라고 언급되는 DVD와 같은) 광학 디스크, RAM(random access memory), 또는 ROM(read-only memory)과 같은 다른 저장 디바이스와 같은 프로세서 판독가능한 매체 상에 저장될 수 있다. 명령어들은 프로세서 판독가능한 매체 상에 유형적으로 구현되는 애플리케이션 프로그램을 형성할 수 있다. 명령어들은, 예를 들어, 하드웨어, 펌웨어, 소프트웨어 또는 조합일 수 있다. 명령어들은, 예를 들어, 운영 체제, 개별 애플리케이션 또는 이들의 조합에서 발견될 수 있다. 따라서, 프로세서는, 예를 들어, 프로세스를 수행하도록 구성되는 디바이스, 및 프로세스를 수행하기 위한 명령어들을 갖는 (저장 디바이스와 같은) 프로세서 판독가능한 매체를 포함하는 디바이스 둘다로서 특징화될 수 있다. 또한, 프로세서 판독 가능한 매체는, 명령어들에 더하여 또는 그 대신에, 구현에 의해 생성된 데이터 값들을 저장할 수 있다.
본 기술분야의 통상의 기술자에게 명백한 바와 같이, 구현들은, 예를 들어, 저장되거나 또는 송신될 수 있는 정보를 운반하도록 포맷팅된 다양한 신호들을 생성할 수 있다. 정보는, 예를 들어, 방법을 수행하기 위한 명령어들, 또는 설명된 구현들 중 하나에 의해 생성되는 데이터를 포함할 수 있다. 예를 들어, 신호는 설명된 실시예의 신택스를 작성 또는 판독하는 것에 대한 규칙들을 데이터로서 운반하도록, 또는 설명된 실시예에 의해 작성된 실제 신택스 값들을 데이터로서 운반하도록 포맷팅될 수 있다. 그러한 신호는, 예를 들어, (예를 들어, 스펙트럼의 무선 주파수 부분을 이용한) 전자기파로서 또는 기저대역 신호로서 포맷팅될 수 있다. 포맷팅은, 예를 들어, 데이터 스트림을 인코딩하고, 인코딩된 데이터 스트림으로 캐리어를 변조하는 것을 포함할 수 있다. 신호가 운반하는 정보는, 예를 들어, 아날로그 또는 디지털 정보일 수 있다. 신호는 알려진 바와 같은 여러 가지의 상이한 유선 또는 무선 링크들을 통해 송신될 수 있다. 신호는 프로세서 판독가능한 매체 상에 저장될 수 있다.
다양한 구현들이 설명되었다. 그럼에도 불구하고, 다양한 수정들이 이루어질 수 있다는 것을 이해할 것이다. 예를 들어, 상이한 구현들의 요소들은 다른 구현들을 생성하도록 조합되고, 보충되고, 수정되고, 또는 제거될 수 있다. 추가적으로, 통상의 기술자는 다른 구조들 및 프로세스들이 개시된 것들을 대체할 수 있으며, 결과적인 구현들이 적어도 실질적으로 동일한 기능(들)을, 적어도 실질적으로 동일한 방식(들)로 실행하여, 개시된 구현들과 적어도 실질적으로 동일한 결과(들)를 달성할 것이라는 점을 이해할 것이다. 따라서, 이들 및 다른 구현들이 본 출원에 의해 고려된다.

Claims (15)

  1. 인코딩 방법으로서,
    - 비트스트림에서 픽처 부분을 인코딩(S120) 및 상기 픽처 부분을 재구성(S120)하는 단계;
    - 정제 데이터를 결정(S130)하는 단계―상기 정제 데이터를 결정하는 것은,
    - 코딩 이전에 맵핑이 적용되지 않는 경우에, 데이터 코딩 비용 및 상기 픽처 부분의 원래 버전과 상기 정제 데이터에 의한 정제 이후의 상기 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 상기 픽처 부분의 상기 원래 버전과 정제가 없는 상기 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되고;
    - 코딩 이전에 맵핑이 적용되고, 상기 정제가 디코딩 루프 밖에 있는 경우에, 데이터 코딩 비용 및 상기 픽처 부분의 원래 버전과 역 맵핑 및 상기 정제 데이터에 의한 정제 이후의 상기 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 상기 픽처 부분의 상기 원래 버전과 역 맵핑 이후의 정제가 없는 상기 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되고;
    - 코딩 이전에 맵핑이 적용되고, 상기 정제가 상기 디코딩 루프에 있는 경우에, 데이터 코딩 비용 및 상기 픽처 부분의 맵핑된 원래 버전과 상기 정제 데이터에 의한 정제 이후의 상기 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 상기 픽처 부분의 상기 맵핑된 원래 버전과 정제가 없는 상기 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되도록 수행됨―; 및
    - 상기 비트스트림에서 상기 정제 데이터를 인코딩(S140)하는 단계를 포함하는, 인코딩 방법.
  2. 제1항에 있어서,
    상기 정제가 상기 디코딩 루프에 있는 경우에, 상기 정제된 픽처 부분을 참조 픽처 버퍼에 저장하기 전에 상기 재구성된 픽처 부분을 상기 결정된 정제 데이터로 정제하는 단계를 더 포함하는, 인코딩 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 재구성된 픽처 부분을 상기 정제 데이터로 정제하는 단계는 상기 픽처 부분의 임의의 다른 컬러 성분과 독립적으로 상기 픽처 부분의 하나의 컬러 성분에 대해 수행되는, 인코딩 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 픽처 부분의 하나의 컬러 성분에 대해 상기 재구성된 픽처 부분을 상기 정제 데이터로 정제하는 단계는 상기 픽처 부분의 다른 컬러 성분에 의존하는, 인코딩 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 비트스트림에서 상기 정제 데이터를 인코딩하는 단계는 적어도 하나의 컬러 성분에 대해 N개의 정제 값들을 인코딩하는 단계를 포함하고, N은 정수이고, 상기 N개의 정제 값들은 구간 선형 함수의 피봇 포인트들을 정의하는, 인코딩 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 재구성된 픽처 부분은 인루프 필터링 후에 획득된 상기 재구성된 픽처 부분인, 인코딩 방법.
  7. 디코딩 방법으로서,
    비트스트림으로부터 픽처 부분 및 정제 데이터를 디코딩하는 단계(S220, S230)―상기 정제 데이터는,
    - 코딩 이전에 맵핑이 적용되지 않는 경우에, 데이터 코딩 비용 및 상기 픽처 부분의 원래 버전과 상기 정제 데이터에 의한 정제 이후의 상기 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 상기 픽처 부분의 상기 원래 버전과 정제가 없는 상기 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되고;
    - 코딩 이전에 맵핑이 적용되고, 상기 정제가 디코딩 루프 밖에 있는 경우에, 데이터 코딩 비용 및 상기 픽처 부분의 원래 버전과 역 맵핑 및 상기 정제 데이터에 의한 정제 이후의 상기 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 상기 픽처 부분의 상기 원래 버전과 역 맵핑 이후의 정제가 없는 상기 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되고;
    - 코딩 이전에 맵핑이 적용되고, 상기 정제가 상기 디코딩 루프에 있는 경우에, 데이터 코딩 비용 및 상기 픽처 부분의 맵핑된 원래 버전과 상기 정제 데이터에 의한 정제 이후의 상기 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 상기 픽처 부분의 상기 맵핑된 원래 버전과 정제가 없는 상기 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되도록, 인코딩 동안에 도출됨―; 및
    - 상기 디코딩된 픽처 부분을 상기 디코딩된 정제 데이터로 정제하는 단계(S240)를 포함하는, 디코딩 방법.
  8. 제7항에 있어서,
    상기 디코딩된 픽처 부분을 역 맵핑하는 단계를 더 포함하고, 역 맵핑 이후의 상기 디코딩된 픽처 부분에 대해 상기 디코딩된 정제 데이터로 정제하는 단계가 적용되는, 디코딩 방법.
  9. 제7항에 있어서,
    상기 디코딩된 픽처 부분을 상기 디코딩된 정제 데이터로 정제하는 단계는 상기 정제가 상기 디코딩 루프에 있는 경우에 상기 정제된 디코딩된 픽처 부분을 참조 픽처 버퍼에 저장하기 전에 행해지는, 디코딩 방법.
  10. 제7항 내지 제9항 중 어느 한 항에 있어서,
    상기 디코딩된 픽처 부분을 상기 정제 데이터로 정제하는 단계는 상기 픽처 부분의 임의의 다른 컬러 성분과 독립적으로 상기 픽처 부분의 하나의 컬러 성분에 대해 수행되는, 디코딩 방법.
  11. 제7항 내지 제9항 중 어느 한 항에 있어서,
    상기 픽처 부분의 하나의 컬러 성분에 대해 상기 디코딩된 픽처 부분을 상기 정제 데이터로 정제하는 단계는 상기 픽처 부분의 다른 컬러 성분에 의존하는, 디코딩 방법.
  12. 제7항 내지 제11항 중 어느 한 항에 있어서,
    상기 비트스트림으로부터 상기 정제 데이터를 디코딩하는 단계는 적어도 하나의 컬러 성분에 대해 N개의 정제 값들을 디코딩하는 단계를 포함하고, N은 정수이고, 상기 N개의 정제 값들은 구간 선형 함수의 피봇 포인트들을 정의하는, 디코딩 방법.
  13. 제7항 내지 제11항 중 어느 한 항에 있어서,
    상기 디코딩된 픽처 부분은 인루프 필터링 후에 획득된 상기 디코딩된 픽처 부분인, 디코딩 방법.
  14. 인코딩 디바이스로서,
    - 비트스트림에서 픽처 부분을 인코딩 및 상기 픽처 부분을 재구성하기 위한 수단;
    - 정제 데이터를 결정하기 위한 수단―상기 정제 데이터를 결정하는 것은,
    - 코딩 이전에 맵핑이 적용되지 않는 경우에, 데이터 코딩 비용 및 상기 픽처 부분의 원래 버전과 상기 정제 데이터에 의한 정제 이후의 상기 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 상기 픽처 부분의 상기 원래 버전과 정제가 없는 상기 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되고;
    - 코딩 이전에 맵핑이 적용되고, 상기 정제가 디코딩 루프 밖에 있는 경우에, 데이터 코딩 비용 및 상기 픽처 부분의 원래 버전과 역 맵핑 및 상기 정제 데이터에 의한 정제 이후의 상기 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 상기 픽처 부분의 상기 원래 버전과 역 맵핑 이후의 정제가 없는 상기 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되고;
    - 코딩 이전에 맵핑이 적용되고, 상기 정제가 상기 디코딩 루프에 있는 경우에, 데이터 코딩 비용 및 상기 픽처 부분의 맵핑된 원래 버전과 상기 정제 데이터에 의한 정제 이후의 상기 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 상기 픽처 부분의 상기 맵핑된 원래 버전과 정제가 없는 상기 재구성된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되도록 수행됨―; 및
    - 상기 비트스트림에서 상기 정제 데이터를 인코딩하기 위한 수단을 포함하는, 인코딩 디바이스.
  15. 디코딩 디바이스로서,
    비트스트림으로부터 픽처 부분 및 정제 데이터를 디코딩하기 위한 수단―상기 정제 데이터는,
    - 코딩 이전에 맵핑이 적용되지 않는 경우에, 데이터 코딩 비용 및 상기 픽처 부분의 원래 버전과 상기 정제 데이터에 의한 정제 이후의 상기 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 상기 픽처 부분의 상기 원래 버전과 정제가 없는 상기 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되고;
    - 코딩 이전에 맵핑이 적용되고, 상기 정제가 디코딩 루프 밖에 있는 경우에, 데이터 코딩 비용 및 상기 픽처 부분의 원래 버전과 역 맵핑 및 상기 정제 데이터에 의한 정제 이후의 상기 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 상기 픽처 부분의 상기 원래 버전과 역 맵핑 이후의 정제가 없는 상기 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되고;
    - 코딩 이전에 맵핑이 적용되고, 상기 정제가 상기 디코딩 루프에 있는 경우에, 데이터 코딩 비용 및 상기 픽처 부분의 맵핑된 원래 버전과 상기 정제 데이터에 의한 정제 이후의 상기 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용이, 데이터 코딩 비용 및 상기 픽처 부분의 상기 맵핑된 원래 버전과 정제가 없는 상기 디코딩된 픽처 부분 사이의 왜곡의 가중된 합으로서 계산된 레이트 왜곡 비용과 비교하여 감소되도록, 인코딩 동안에 도출됨―; 및
    - 상기 디코딩된 픽처 부분을 상기 디코딩된 정제 데이터로 정제하기 위한 수단을 포함하는, 디코딩 디바이스.
KR1020207024604A 2018-01-29 2019-01-04 재구성된 픽처의 정제를 갖는 인코딩 및 디코딩 KR20200112945A (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
EP18305080.6 2018-01-29
EP18305080.6A EP3518538A1 (en) 2018-01-29 2018-01-29 A method and a device for encoding and decoding a picture part
EP18305315.6 2018-03-22
EP18305315 2018-03-22
EP18305386 2018-03-30
EP18305386.7 2018-03-30
PCT/US2019/012282 WO2019147403A1 (en) 2018-01-29 2019-01-04 Encoding and decoding with refinement of the reconstructed picture

Publications (1)

Publication Number Publication Date
KR20200112945A true KR20200112945A (ko) 2020-10-05

Family

ID=65036878

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207024604A KR20200112945A (ko) 2018-01-29 2019-01-04 재구성된 픽처의 정제를 갖는 인코딩 및 디코딩

Country Status (5)

Country Link
US (1) US11962782B2 (ko)
EP (2) EP3747192A1 (ko)
KR (1) KR20200112945A (ko)
CN (1) CN111837385B (ko)
WO (1) WO2019147403A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3811620A1 (en) 2018-06-21 2021-04-28 InterDigital VC Holdings, Inc. Refinement mode processing in video encoding and decoding
WO2022253320A1 (en) * 2021-06-04 2022-12-08 Beijing Bytedance Network Technology Co., Ltd. Method, device, and medium for video processing

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2182972T3 (es) 1996-04-19 2003-03-16 Nokia Corp Codificador y descodificador de video utilizando procedimientos de segmentacion y fusion de movimiento.
US7567617B2 (en) 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
US8054882B2 (en) 2005-05-13 2011-11-08 Streaming Networks (Pvt.) Ltd. Method and system for providing bi-directionally predicted video coding
US8208564B2 (en) 2005-06-24 2012-06-26 Ntt Docomo, Inc. Method and apparatus for video encoding and decoding using adaptive interpolation
JP4876122B2 (ja) * 2006-03-22 2012-02-15 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ 精度スケーラビリティを可能にする符号化スキーム
JP5039142B2 (ja) * 2006-10-25 2012-10-03 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン 品質スケーラブルな符号化方法
EP2193661A4 (en) 2007-06-27 2011-10-19 Thomson Licensing METHOD AND APPARATUS FOR ENCODING AND / OR DECODING VIDEO DATA USING RESIDUAL PREDICTION OF IMPROVING LAYER FOR SCALABILITY OF BINARY DEPTH
DE602007009730D1 (de) * 2007-06-29 2010-11-18 Fraunhofer Ges Forschung Skalierbare videocodierung, die pixelwert-verfeinerungsskalierbarkeit unterstützt
JP5416271B2 (ja) 2009-04-20 2014-02-12 ドルビー ラボラトリーズ ライセンシング コーポレイション 多層映像配信のための適応補間フィルタ
US9369712B2 (en) 2010-01-14 2016-06-14 Dolby Laboratories Licensing Corporation Buffered adaptive filters
WO2012092841A1 (en) 2011-01-03 2012-07-12 Mediatek Inc. Method of filter-unit based in-loop filtering
US9071851B2 (en) 2011-01-10 2015-06-30 Qualcomm Incorporated Adaptively performing smoothing operations
EP2882190B1 (en) 2011-04-21 2018-11-14 HFI Innovation Inc. Method and apparatus for improved in-loop filtering
US9338476B2 (en) 2011-05-12 2016-05-10 Qualcomm Incorporated Filtering blockiness artifacts for video coding
US20120294353A1 (en) 2011-05-16 2012-11-22 Mediatek Inc. Apparatus and Method of Sample Adaptive Offset for Luma and Chroma Components
CN107529706B (zh) * 2011-06-16 2020-11-17 Ge视频压缩有限责任公司 解码器、编码器、解码和编码视频的方法及存储介质
US9693070B2 (en) * 2011-06-24 2017-06-27 Texas Instruments Incorporated Luma-based chroma intra-prediction for video coding
US9232237B2 (en) 2011-08-05 2016-01-05 Texas Instruments Incorporated Block-based parallel deblocking filter in video coding
GB2493777A (en) 2011-08-19 2013-02-20 Skype Image encoding mode selection based on error propagation distortion map
EP2587803A1 (en) * 2011-10-27 2013-05-01 Thomson Licensing Methods for coding and reconstructing a pixel block and corresponding devices.
US9930329B2 (en) * 2011-11-03 2018-03-27 Thomson Licensing Video encoding and decoding based on image refinement
US9883203B2 (en) 2011-11-18 2018-01-30 Qualcomm Incorporated Adaptive overlapped block motion compensation
CN107566835B (zh) 2011-12-23 2020-02-28 韩国电子通信研究院 图像解码方法、图像编码方法和记录介质
US9756353B2 (en) * 2012-01-09 2017-09-05 Dolby Laboratories Licensing Corporation Hybrid reference picture reconstruction method for single and multiple layered video coding systems
TWI652935B (zh) 2012-09-28 2019-03-01 Vid衡器股份有限公司 視訊編碼方法及裝置
CN102903365B (zh) * 2012-10-30 2014-05-14 山东省计算中心 一种在解码端细化窄带声码器参数的方法
US9294777B2 (en) * 2012-12-30 2016-03-22 Qualcomm Incorporated Progressive refinement with temporal scalability support in video coding
US9794569B2 (en) 2013-01-30 2017-10-17 Intel Corporation Content adaptive partitioning for prediction and coding for next generation video
US20140254661A1 (en) 2013-03-08 2014-09-11 Samsung Electronics Co., Ltd. Method and apparatus for applying secondary transforms on enhancement-layer residuals
WO2014178563A1 (ko) 2013-04-29 2014-11-06 인텔렉추얼 디스커버리 주식회사 인트라 예측 방법 및 장치
EP2816805B1 (en) * 2013-05-29 2020-12-30 BlackBerry Limited Lossy data compression with conditional reconstruction reinfinement
US9143797B2 (en) * 2013-05-29 2015-09-22 Blackberry Limited Lossy data compression with conditional reconstruction refinement
RU2577486C2 (ru) 2014-07-10 2016-03-20 Самсунг Электроникс Ко., Лтд. Способ автоматического извлечения индексов ключевых кадров для расширения видеоданных
US10230980B2 (en) 2015-01-26 2019-03-12 Qualcomm Incorporated Overlapped motion compensation for video coding
US10057574B2 (en) 2015-02-11 2018-08-21 Qualcomm Incorporated Coding tree unit (CTU) level adaptive loop filter (ALF)
EP3284259A1 (en) 2015-04-17 2018-02-21 VID SCALE, Inc. Chroma enhancement filtering for high dynamic range video coding
KR102460912B1 (ko) 2015-07-08 2022-10-28 인터디지털 매디슨 페턴트 홀딩스 에스에이에스 교차 평면 필터링을 이용한 향상된 크로마 코딩
WO2017008263A1 (en) 2015-07-15 2017-01-19 Mediatek Singapore Pte. Ltd. Conditional binary tree block partitioning structure
KR102251828B1 (ko) 2015-09-02 2021-05-13 삼성전자주식회사 율―왜곡 최적화 기반의 양자화 방법 및 그 장치
US10212444B2 (en) 2016-01-15 2019-02-19 Qualcomm Incorporated Multi-type-tree framework for video coding
WO2017130696A1 (ja) 2016-01-29 2017-08-03 シャープ株式会社 予測画像生成装置、動画像復号装置、および動画像符号化装置
US10638152B2 (en) 2016-03-15 2020-04-28 Mediatek Inc. Method and apparatus of video coding with affine motion compensation
MX2021012481A (es) 2016-03-16 2022-05-30 Hfi Innovation Inc Metodo y aparato de procesamiento de datos de video con tama?o restringido de bloque en codificacion de video.
CN105872559A (zh) 2016-03-20 2016-08-17 信阳师范学院 一种基于色度混合匹配的帧率上转换方法
CN109792535B (zh) 2016-05-13 2023-03-28 夏普株式会社 预测图像生成装置、运动图像解码装置以及运动图像编码装置
US10972733B2 (en) 2016-07-15 2021-04-06 Qualcomm Incorporated Look-up table for enhanced multiple transform
US10200698B2 (en) 2016-08-09 2019-02-05 Intel Corporation Determining chroma quantization parameters for video coding
US10462462B2 (en) 2016-09-29 2019-10-29 Qualcomm Incorporated Motion vector difference coding technique for video coding
EP3306927A1 (en) 2016-10-05 2018-04-11 Thomson Licensing Encoding and decoding methods and corresponding devices
US10448010B2 (en) 2016-10-05 2019-10-15 Qualcomm Incorporated Motion vector prediction for affine motion models in video coding
WO2018113658A1 (en) * 2016-12-22 2018-06-28 Mediatek Inc. Method and apparatus of motion refinement for video coding
US10681370B2 (en) 2016-12-29 2020-06-09 Qualcomm Incorporated Motion vector generation for affine motion model for video coding
US10873744B2 (en) 2017-01-03 2020-12-22 Lg Electronics Inc. Method and device for processing video signal by means of affine prediction
DK3649781T3 (da) 2017-07-04 2024-03-11 Huawei Tech Co Ltd Forbedring af tvungen grænseopdeling
WO2019072367A1 (en) 2017-10-09 2019-04-18 Huawei Technologies Co., Ltd. APPARATUS AND METHOD FOR IMAGE ENCODING HAVING LIMIT PARTITION PROCESSING
US10834396B2 (en) 2018-04-12 2020-11-10 Qualcomm Incorporated Bilateral filter for predicted video data
US10999594B2 (en) 2018-12-20 2021-05-04 Qualcomm Incorporated Virtual search area for current picture referencing (CPR) and intra block copy (IBC)
US11558608B2 (en) 2020-10-28 2023-01-17 Lemon Inc. On split prediction

Also Published As

Publication number Publication date
EP4221201A1 (en) 2023-08-02
EP3747192A1 (en) 2020-12-09
CN111837385A (zh) 2020-10-27
US11962782B2 (en) 2024-04-16
US20210037247A1 (en) 2021-02-04
WO2019147403A1 (en) 2019-08-01
CN111837385B (zh) 2024-04-30

Similar Documents

Publication Publication Date Title
CN107211154B (zh) 用于译码视频数据的方法和装置以及计算机可读存储介质
US9357235B2 (en) Sample adaptive offset merged with adaptive loop filter in video coding
US20130083844A1 (en) Coefficient coding for sample adaptive offset and adaptive loop filter
WO2012044886A1 (en) Intra smoothing filter for video coding
US20200382810A1 (en) Encoding and decoding methods and corresponding devices
US20230188734A1 (en) Refinement mode processing in video encoding and decoding
US20220377331A1 (en) Position Dependent Spatial Varying Transform For Video Coding
US11962782B2 (en) Encoding and decoding with refinement of the reconstructed picture
JP2019528607A (ja) 画像ブロックの符号化および復号の方法および装置
KR20230170072A (ko) 교차-컴포넌트 샘플 적응적 오프셋에서의 코딩 강화
KR20230156790A (ko) 교차 컴포넌트 샘플 적응적 오프셋에서의 코딩 향상
CN115086664A (zh) 未匹配像素的解码方法、编码方法、解码器以及编码器
EP3518538A1 (en) A method and a device for encoding and decoding a picture part
WO2019094144A1 (en) Methods and devices for picture encoding and decoding
EP3627837A1 (en) Refinement mode processing in video encoding and decoding
KR20240039168A (ko) 크로스-컴포넌트 샘플 적응적 오프셋에서의 코딩 강화
WO2023141338A1 (en) Methods and devices for geometric partitioning mode with split modes reordering
KR20240049364A (ko) 디코더측 인트라 모드 도출을 위한 방법 및 디바이스
WO2023154574A1 (en) Methods and devices for geometric partitioning mode with adaptive blending
CN112640454A (zh) 用于视频译码的参数化量化噪声感知的双边滤波器
WO2019007759A1 (en) METHOD AND DEVICE FOR IMAGE CODING