KR20230157974A - 필름 그레인 파라미터들을 생성하기 위한 방법 또는 장치, 필름 그레인 패턴을 갖는 픽셀들의 블록을 생성하기 위한 방법 또는 장치 - Google Patents

필름 그레인 파라미터들을 생성하기 위한 방법 또는 장치, 필름 그레인 패턴을 갖는 픽셀들의 블록을 생성하기 위한 방법 또는 장치 Download PDF

Info

Publication number
KR20230157974A
KR20230157974A KR1020237031788A KR20237031788A KR20230157974A KR 20230157974 A KR20230157974 A KR 20230157974A KR 1020237031788 A KR1020237031788 A KR 1020237031788A KR 20237031788 A KR20237031788 A KR 20237031788A KR 20230157974 A KR20230157974 A KR 20230157974A
Authority
KR
South Korea
Prior art keywords
film grain
transform
image block
block
dct
Prior art date
Application number
KR1020237031788A
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 KR20230157974A publication Critical patent/KR20230157974A/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/635Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by filter definition or implementation details
    • 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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Landscapes

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

Abstract

비디오를 인코딩 또는 디코딩하는 동안 필름 그레인을 효율적으로 처리하기 위한 적어도 방법 및 장치가 제시된다. 예를 들어, 방법은, 이미지 블록과 연관된 필름 그레인의 속성을 특정하는 적어도 하나의 파라미터를 포함하는 필름 그레인 정보를 수신하는 단계; 랜덤 값들의 블록에 변환을 적용하는 단계; 변환된 블록을 필터링하는 단계 - 필터링은 수신된 필름 그레인 정보에서의 적어도 하나의 파라미터에 의해 정의됨 -; 및 필터링된 변환된 블록에 각자의 역변환을 적용하여, 이미지 블록에 대한 필름 그레인 패턴을 갖는 픽셀들의 블록을 생성하는 단계를 포함한다. 유리하게는, 변환은 비디오 코딩 표준의 코어 변환, 예를 들어, DCT-II, DCT-VIII, DST-VII 중 하나이다.

Description

필름 그레인 파라미터들을 생성하기 위한 방법 또는 장치, 필름 그레인 패턴을 갖는 픽셀들의 블록을 생성하기 위한 방법 또는 장치
본 실시예 중 적어도 하나는 대체적으로 비디오 코딩, 비디오 분배 및 비디오 렌더링에서의 필름 그레인(film grain) 추정 및 필름 그레인 합성을 위한 방법 또는 장치에 관한 것이고, 더 구체적으로는 이미지 블록을 위한 필름 그레인 패턴을 갖는 픽셀들의 블록을 생성하기 위한 방법 또는 장치에 관한 것이다.
필름 그레인은 종종, 자연스러운 외관(natural appearance)을 생성하고 창의적 의도의 표현에 기여하는, 비디오 제작에서 바람직한 특징이다. 그러나, 필름 그레인은 ITU-T H.266 및 ISO/IEC 23090-3으로도 알려진, 다목적 비디오 코딩(Versatile Video Coding, VVC)과 같은 현대의 비디오 압축 표준들로는 잘 압축되지 않는다. 실제로, 다양한 필터링 및 손실 있는 압축(lossy compression) 단계들 내에서, 필름 그레인은 그것을 재구성할 가능성 없이 억제된다. 그러나, 필름 그레인에 대한 정보는, 예를 들어, 다목적 보충 강화 정보(Versatile Supplemental Enhancement Information, VSEI, ITU-T Recommendation H.274 및 ISO/IEC 23002-7로도 알려짐)에 의해 특정된 SEI 메시지를 통해 메타데이터로서 통신될 수 있다. 따라서, 필름 그레인은 종종 압축 이전에 모델링 및 제거되고, 그것은 적절한 메타데이터의 도움으로 디코더 측에서 재합성된다. 추가로, 필름 그레인은 또한, 압축으로 인해 생성되는 코딩 아티팩트들을 마스킹하기 위한 도구로서 사용될 수 있다. 필름 그레인 모델링에 대해 상이한 접근법들이 연구되어 왔다. VVC의 맥락에서, 필름 그레인을 파라미터화하고 재합성하기 위해 주파수 필터링 솔루션이 사용될 수 있다.
필름 그레인 모델링을 위한 기존의 방법들은 필름 그레인 모델링의 설계 복잡성에서 일부 제한들을 보여준다. 따라서, 최신 기술을 개선할 필요가 있다.
종래 기술의 결점들 및 단점들은 본 명세서에 기술된 일반적인 태양들에 의해 해결되고 다루어진다.
제1 태양에 따르면, 방법이 제공된다. 본 방법은, 이미지 블록과 연관된 필름 그레인의 속성을 특정하는 적어도 하나의 파라미터를 포함하는 필름 그레인 정보를 수신하는 단계; 랜덤 값들의 블록에 변환을 적용하는 단계; 변환된 랜덤 값들의 블록을 필터링하는 단계 - 필터링은 수신된 필름 그레인 정보에서의 적어도 하나의 파라미터에 의해 정의됨 -; 및 필터링된 변환된 블록에 각자의 역변환을 적용하여, 이미지 블록들에 대한 필름 그레인 패턴을 갖는 픽셀들의 블록을 생성하는 단계를 포함한다. 유리하게는, 변환은 표준화된 변환, 예를 들어, VVC 코어 변환인 DCT-II, DCT-VIII, DST-VII 중 하나이다.
다른 태양에 따르면, 제2 방법이 제공된다. 본 방법은, 이미지 블록에서 필름 그레인 추정치를 나타내는 필름 그레인 블록을 수신하는 단계; 필름 그레인 블록에 변환을 적용하는 단계; 및 변환된 필름 그레인 블록으로부터 이미지 블록과 연관된 필름 그레인의 속성을 특정하는 적어도 하나의 파라미터를 생성하는 단계를 포함한다. 유리하게는, 변환은 표준화된 변환, 예를 들어, VVC 코어 변환인 DCT-II, DCT-VIII, DST-VII 중 하나이다.
다른 태양에 따르면, 장치가 제공된다. 본 장치는 하나 이상의 프로세서들을 포함하고, 하나 이상의 프로세서들은 그의 변형들 중 임의의 것에 따른 필름 그레인 패턴을 갖는 픽셀들의 블록을 생성하기 위한 방법을 구현하도록 구성된다. 다른 태양에 따르면, 이미지 블록에 대한 필름 그레인 패턴을 갖는 픽셀들의 블록을 생성하기 위한 장치는, 이미지 블록과 연관된 필름 그레인의 속성을 특정하는 적어도 하나의 파라미터를 포함하는 필름 그레인 정보를 수신하기 위한 수단; 랜덤 값들의 블록에 변환을 적용하기 위한 수단; 변환된 랜덤 값들의 블록을 필터링하기 위한 수단 - 필터링은 수신된 필름 그레인 정보에서의 적어도 하나의 파라미터에 의해 정의됨 -; 및 필터링된 변환된 블록에 각자의 역변환을 적용하여, 이미지 블록에 대한 필름 그레인 패턴을 갖는 픽셀들의 블록을 생성하기 위한 수단을 포함한다. 유리하게는, 변환을 적용하기 위한 수단은 표준화된 변환, 예를 들어, VVC 코어 변환인 DCT-II, DCT-VIII, DST-VII 중 하나를 구현한다.
다른 태양에 따르면, 다른 장치가 제공된다. 본 장치는 하나 이상의 프로세서들을 포함하고, 하나 이상의 프로세서들은 그의 변형들 중 임의의 것에 따른 이미지 블록과 연관된 필름 그레인의 속성을 특정하는 적어도 하나의 파라미터를 생성하기 위한 방법을 구현하도록 구성된다. 다른 태양에 따르면, 필름 그레인 파라미터를 생성하기 위한 장치는 이미지 블록에서의 필름 그레인 추정치를 나타내는 필름 그레인 블록을 수신하기 위한 수단; 필름 그레인 블록에 변환을 적용하기 위한 수단; 및 변환된 필름 그레인 블록으로부터 이미지 블록과 연관된 필름 그레인의 속성을 특정하는 적어도 하나의 파라미터를 생성하기 위한 수단을 포함한다. 유리하게는, 변환을 적용하기 위한 수단은 표준화된 변환, 예를 들어, VVC 코어 변환인 DCT-II, DCT-VIII, DST-VII 중 하나를 구현한다.
적어도 하나의 실시예의 다른 일반적인 태양에 따르면, 디코딩 실시예들 중 임의의 것에 따른 장치; 및 (i) 신호를 수신하도록 구성된 안테나 - 신호는 비디오 블록을 포함함 -, (ii) 수신된 신호를 비디오 블록을 포함하는 주파수들의 대역으로 제한하도록 구성된 대역 제한기, 또는 (iii) 비디오 블록을 나타내는 출력을 디스플레이하도록 구성된 디스플레이 중 적어도 하나를 포함하는 디바이스가 제공된다.
적어도 하나의 실시예의 다른 일반적인 태양에 따르면, 기술된 인코딩 실시예들 또는 변형예들 중 임의의 것에 따라 생성된 데이터 콘텐츠를 포함하는 비일시적 컴퓨터 판독가능 매체가 제공된다.
적어도 하나의 실시예의 다른 일반적인 태양에 따르면, 기술된 인코딩 실시예들 또는 변형예들 중 임의의 것에 따라 생성된 비디오 데이터를 포함하는 신호가 제공된다.
적어도 하나의 실시예의 다른 일반적인 태양에 따르면, 기술된 인코딩 실시예들 또는 변형예들 중 임의의 것에 따라 생성된 데이터 콘텐츠를 포함하도록 비트스트림이 포맷화된다.
적어도 하나의 실시예의 다른 일반적인 태양에 따르면, 프로그램이 컴퓨터에 의해 실행될 때, 컴퓨터로 하여금, 기술된 인코딩/디코딩 실시예들 또는 변형예들 중 임의의 것을 수행하게 하는 명령어들을 포함하는 컴퓨터 프로그램 제품이 제공된다.
일반적인 태양들의 이들 및 다른 태양들, 특징들 및 이점들은 첨부된 도면들과 관련하여 읽힐 예시적인 실시예들의 다음의 상세한 설명으로부터 명백해질 것이다.
도면들에서, 여러 실시예들의 예들이 예시되어 있다.
도 1은 비디오 코딩/디코딩 프레임워크에서의 필름 그레인 사용의 단순화된 블록도를 예시한다.
도 2는 적어도 하나의 실시예의 일반적인 태양에 따른 필름 그레인 패턴의 블록들을 생성하기 위한 방법의 단순화된 블록도를 예시한다.
도 3은 적어도 하나의 실시예의 일반적인 태양에 따른 비디오 코딩/디코딩 프레임워크에서의 필름 그레인 사용의 수정된 블록도를 예시한다.
도 4a는 적어도 하나의 실시예의 일반적인 태양에 따른 필름 그레인 패턴의 블록들을 생성하기 위한 방법의 수정된 블록도를 예시한다.
도 4b는 적어도 하나의 실시예의 일반적인 태양에 따른 필름 그레인 파라미터들을 생성하기 위한 방법의 수정된 블록도를 예시한다.
도 5는 디코더 측에서 필름 그레인 파라미터들의 조정이 있는 필름 그레인의 수정된 블록도를 예시한다.
도 6은 실시예들의 다양한 태양들이 구현될 수 있는 비디오 인코더의 일 실시예의 블록도를 예시한다.
도 7은 실시예들의 다양한 태양들이 구현될 수 있는 비디오 디코더의 일 실시예의 블록도를 예시한다.
도 8은 실시예들의 다양한 태양들이 구현될 수 있는 예시적인 장치의 블록도를 예시한다.
도면 및 설명은, 명확성을 위해, 전형적인 인코딩 및/또는 디코딩 디바이스들에서 발견되는 많은 다른 요소들을 제거하면서, 본 발명의 원리의 명확한 이해를 위해 관련된 요소들을 예시하기 위해 단순화되었다는 것이 이해되어야 한다. 다양한 요소들을 기술하기 위해 용어들 "제1", "제2"가 본 명세서에서 사용될 수 있지만, 이들 요소들은 이들 용어들에 의해 제한되어서는 안 된다는 것이 이해될 것이다. 이러한 용어들은 하나의 요소를 다른 요소와 구별하는 데에만 사용된다.
다양한 실시예들이 이미지의 인코딩/디코딩과 관련하여 설명된다. 그들은 이미지의 부분, 예컨대 이미지들의 슬라이스 또는 타일, 타일 그룹 또는 전체 시퀀스를 인코딩/디코딩하기 위해 적용될 수 있다.
다양한 방법들이 상기에 기술되어 있고, 각각의 방법은 기술된 방법을 달성하기 위한 하나 이상의 단계들 또는 액션(action)들을 포함한다. 방법의 적절한 동작을 위해 단계들 또는 액션들의 특정 순서가 요구되지 않는 한, 특정 단계들 및/또는 액션들의 순서 및/또는 사용은 수정되거나 조합될 수 있다.
적어도 일부 실시예들은 필름 그레인을 갖는 픽셀들의 블록을 생성하기 위한 방법에 관한 것이고, 여기서 생성하는 데 사용되는 변환은 DCT-II, DCT-VIII, DST-VII 중 하나이다. 필름 그레인을 갖는 픽셀들의 블록을 생성하기 위한 방법은, 예를 들어, 비디오 디코딩 스킴으로 구현된다. 적어도 일부 실시예들은 추가로, 필름 그레인 파라미터들을 추정 및 생성하기 위한 방법에 관한 것이고, 여기서 생성하는 데 사용되는 변환은 DCT-II, DCT-VIII, DST-VII 중 하나이다. 필름 그레인 파라미터들을 생성하기 위한 방법은, 예를 들어, 비디오 인코딩 스킴으로 구현된다.
도 1은 비디오 코딩/디코딩 프레임워크에서의 필름 그레인 사용의 단순화된 블록도를 예시한다. 필름 그레인은 비디오 콘텐츠의 자연스러운 외관을 향상시키는 쾌적한 잡음(pleasant noise)이다. 그것은, 사진 필름의 노출 및 현상(development)의 물리적 프로세스 동안 생성된다. 그러나, 디지털 센서들은 그러한 프로세스들을 겪지 않고, 따라서 필름 그레인이 없다. 이것은 잡음 없는 디지털 비디오를 생성하며, 그의 완벽함, 명확하고 확연한 에지들 및 단조로운 영역들이 관찰자의 주관적인 경험을 악화시킬 수 있다. 따라서, 비디오를 다시 잡음처리하는(re-noising) 것은 시각적 경험을 개선시킬 수 있고, 콘텐츠 제작자들은 종종 콘텐츠를 분배하기 전에 그것을 사용한다. 이것은, 특히 영화 산업에 의해 수용되는데, 여기서 많은 제작자들은 비디오 콘텐츠에 필름 그레인을 추가하여 그들의 비디오에 텍스처 및 따뜻함을 추가하거나, 또는 때때로 (예컨대, 내러티브(narrative)가 그것을 필요로 하는 경우, 이전 시대를 설명하기 위해) 향수의 감정을 생성하는 기술에 의지한다. 추가로, 필름 그레인은, 그것이 소스 비디오에 제시되지 않더라도 압축 아티팩트들을 마스킹하는 데 사용될 수 있다.
압축은 최종 사용자들에게 새로운 콘텐츠의 분배에 대한 증가하는 요구들을 지원하는 데 있어서 불가피한 단계이며, 재생된 이미지의 해상도 및 품질을 증가시키기 위한 그의 요구들은 거대한 양들의 데이터가 전달되게 하는 결과를 가져온다. 그것은 오늘날의 네트워크들에 대한 엄청난 부담이다. 따라서, 전달 이전에, 비디오는 대개 다양한 사전 처리 단계들의 대상이 되며, 여기서 불가피한 비디오 압축이 제시된다는 것에 유의해야 한다. 그러나, 다양한 필터링 및 손실 있는 압축의 단계들 내에서, 필름 그레인은 그것을 재구성할 가능성 없이 억제된다. 이러한 문제를 완화시키는 하나의 방식은, 필름 그레인과 같은 미세 상세사항들을 더 잘 보존하기 위해 더 낮은 양자화 파라미터(Qp)를 사용하는 것이다. 그러나, 이것은 비트레이트를 크게 증가시킬 수 있다. 다른 솔루션은 압축 전에 필름 그레인을 모델링하는 것이며, 이는 나중에 디코더 측에서 재합성될 수 있다.
따라서, 필름 그레인이 바람직한 잡음으로 간주되기 때문에, 그것은 코딩 동안 보존되어야 한다. 이것은 쉬운 작업이 아닌데, 그 이유는 필름 그레인이 대개 양자화 프로세스에 의해 억제되는 높은 주파수들에서(예를 들어, DCT 도메인에서) 높은 레벨들을 갖는 것으로 알려져 있기 때문이다. 필름 그레인의 모양(look)을 보존하기 위해, 그리고 동시에 코딩 효율을 개선시키기 위해, 파라미터화된 모델들이 필름 그레인을 재합성하는 데 사용된다. 추가로, 필름 그레인은 사전 처리 단계 동안 필터링함으로써 제거되고, 또는/그리고 압축에 의해 억제된다. 따라서, 파라미터화된 필름 그레인 모델을 사용하고, 그의 파라미터들을 사전 정의하거나 또는 즉시 추정하고, 다양한 사전 처리 단계들에 의해 그리고/또는 압축 동안 그것을 제거하고, 압축해제 후에 그것을 다시 비디오 콘텐츠로 합성하는 것이 더 효율적이다. 이러한 방식으로, 필름 그레인 파라미터들은 적절한 메타데이터를 통해, 예컨대 SEI 메시지를 통해 사용자 측(디코더)으로 송신된다.
필름 그레인을 모델링하는 최종 이점들은 다음과 같다:
1) 압축 후에 필름 그레인을 엄격하기 보존할 필요가 없기 때문에, 최종 비트레이트가 더 낮을 수 있음
2) 필름 그레인은, 그것이 시간적으로 상관되지 않기 때문에 압축 전에 필터링되는 경우 최종 비트레이트가 개선될 수 있어서, 예측이 개선될 수 있음
3) 재구성된 데이터는, 그것이 원래의 콘텐츠에 있었던 것처럼 필름 그레인을 모델링할 수 있기 때문에 그의 시각적 품질이 더 높음(압축 동안 훨씬 낮은 Qp 값들이 필름 그레인을 억제할 것임)
4) 그것이 원래의 콘텐츠에 존재하지 않았더라도, 필름 그레인은 시각적 품질을 개선시킬 수 있고 그것은 압축 아티팩트들을 마스킹할 수 있음
대체적으로, 비디오 코딩을 위한 필름 그레인 모델링 및 합성은 2개의 부분들로 이루어지며, 하나는 인코더 측에 배치되고 다른 하나는 디코더 측에 배치된다. 이들 2개의 부분들은 인코더에서의 잡음 제거 및 파라미터화; 및 수신된 메타데이터에 따른 디코더 측에서의 잡음 합성이다. 필름 그레인 파라미터화 및 합성에 대한 가능한 모델들 중 하나는, SMPTE-RDD5로도 알려져 있는, Joan Llach에 의한 "Film Grain Technology―Specifications for H. 264| MPEG-4 AVC Bitstreams "에 제시되어 있다. 그것은 디코딩된 프레임들에 필름 그레인을 추가하기 위한 비트 정확 필름 그레인(bit-accurate film grain) 모델을 설명한다는 것(따라서 필름 그레인 합성 방법론을 정의함)에 유의해야 한다. 그럼에도 불구하고, 인코더/파라미터 추정 측면에 관한 결론들이 암시적으로 도출될 수 있다. 전체 프로세스의 단순화된 블록도가 도 1에 도시되어 있다. 사전 처리 단계(100)가 먼저, 입력 비디오에 적용된다. 이어서, 필터링된 비디오가 특정 내부 변환 구현을 사용하는 필름 그레인 추정(101)을 거친다. 이러한 단계는 필름 그레인(film grain, FG) 파라미터들을 생성한다. 단계(102)에서 비디오가 인코딩되고, FG 파라미터들은 FG SEI 메시지들에 삽입된다. 단계(103)에서 디코더는 비트스트림뿐만 아니라 FG SEI 메시지들을 디코딩한다. 그것은 디코딩된 비디오를 생성하며, 이는 FG 합성 프로세스에 의해 단계(104)에서 추가로 향상될 수 있다. FG 추정 및 합성 프로세스에서 사용되는 변환들은 대체적으로 특정적이고, 인코딩 및 디코딩 프로세스들에서 사용되는 코어 변환들과는 상이하다. 단계들(100, 101)은 필요한 경우 스킵되고, 수동으로 튜닝된 파라미터들의 고정 세트에 의해 대체될 수 있다는 것에 유의한다.
본 개시내용은 표준화된 코어 변환을 사용함으로써 그의 계산 효율을 개선시키면서 제시된 모델을 준수한다. 여러 개의 변환들은 현대 비디오 코딩 표준들 - 이산 코사인 변환(Discrete Cosine Transform, DCT) 및 이산 사인 변환(Discrete Sine Transform, DST)의 변형들 - 의 일부이고, 따라서 임의의 것이 제안된 솔루션에 사용될 수 있다. 그러한 목적을 위해 표준화된 변환들을 사용하는 것이 유익한데, 이는 그들이 설계상 효율적이기 때문이다. 또한, 그들이 널리 사용되는 비디오 압축 표준의 일부이기 때문에, 많은 효율적인 소프트웨어 및 하드웨어 구현들이 제시되고, 전형적으로 표준 소비자 장비에서 구현된다. 또한, SMPTE-RDD5가 필름 그레인에 대한 주파수 필터링 접근법의 가능한 구현들 중 하나일 뿐임을 나타낸다는 것에 유의해야 한다. 그러나, 그들 중 어느 것도 특정 DCT 구현에 초점을 맞추지는 않는다.
따라서, 모델은 주파수/변환 도메인에서의 필터링에 기초한다. 이러한 모델에 의해, 필름 그레인 패턴들은 저역 통과 필터를 정의하는 컷오프 주파수(cut-off frequency)들을 설정하거나 또는 즉시 추정함으로써 주파수 도메인에서 모델링된다. 일부 변형들은 대역통과 필터링을 지원하지만, 그러한 접근법은 현재 SEI 설계에 의해 지원되지 않는다. VVC의 SEI 사양은 모델의 파라미터들을 송신할 신택스만을 제공하지만, 그들을 추정하는 방법들 또는 필름 그레인을 합성하는 방법을 제공하지 않는다는 것에 유의하는 것이 중요하다. SMPTE-RDD5에서의 작업은 합성 부분에 더 가까운 모양을 제공한다. 그것은 H.264 표준에 대해 정의되지만, VVC 또는 HEVC에 대해 어떠한 수정들도 필요하지 않은데, 이는 둘 모두가 동일한 메타데이터를 지원하기 때문이다. 적은 수정들만이 8 비트 초과의 비트 깊이들을 지원하는 데 필요하다.
따라서, 원하는 필름 그레인 패턴을 시뮬레이션하기 위해, 2개의 파라미터들이 설정되거나 또는 추정되며, 예컨대 적절한 SEI 메시지를 통해 합성 부분으로 통신된다. 그들 파라미터들은 수평의 높은 컷오프 주파수(Horizontal_Cutoff로 표기됨) 및 수직의 높은 컷오프 주파수(Vertical_Cutoff로 표기됨)를 나타내며, 이는 이어서 필름 그레인 패턴을 정의한다. 따라서, 각각의 필름 그레인 패턴은 주파수 필터링 모델에 따라 상이한 쌍의 컷오프 주파수들을 사용하여 합성된다. SEI 메시지를 통해 어떠한 파라미터들도 송신되지 않는 경우, 디코딩된 프레임에 대해 합성 부분이 인에이블되면, 디폴트 파라미터들에 동의할 수 있다.
도 2는 적어도 하나의 실시예의 일반적인 태양에 따른 필름 그레인 패턴들의 블록을 생성하기 위한 방법의 단순화된 블록도를 예시한다. 그것은, 단계(200)에서 가우시안 분포를 따르는 의사 난수(pseudo-random number)들의 N×M 블록을 정의함으로써 시작된다. 의사 난수들의 블록을 획득하기 위해, 문헌에 이미 확립된 임의의 가우시안 난수 생성기를 활용할 수 있다. 의사 난수들의 블록은 즉시 획득될 수 있거나, 또는 그것은, 예컨대 초기화 단계 동안 미리 정의되고 추가 사용을 위해 저장될 수 있다. 이어서, 필름 그레인 패턴이 하기와 같이 시뮬레이션된다.
정규화된 가우시안 분포 N(0,1)으로 생성되었던, N×M 의사 랜덤 값들의 블록 b는 하기에 의해 주파수 도메인에서 수행되는 저역 통과 필터링을 겪는다:
1. 변형: B=DCT(b) (단계 201)
2. 주파수 필터링 ― 저역 통과: (단계 202)
3. 역변환: b'=Inverse_DCT(B) (단계 203)
이것에 의해, b'는 필름 그레인 이미지(또는 블록)를 나타낸다. N 및 M은 임의의 값을 취할 수 있지만, 실제로 N=M이고 64×64의 크기가 통상적으로 채용되는 것으로 나타낸 것에 유의한다. 이전 예는 DCT에 기초한 특정 변환 구현을 이용하여 설명되지만, 다른 변환, 예컨대 고속 푸리에 변환(Fast Fourier Transform)이 사용될 수 있다. 그 후, 각각의 블록 b'은 디코딩된 프레임에 그레인을 추가하는 데 사용되는 N×M 필름 그레인 이미지를 나타낸다. (상이한 컷오프 쌍들에 대한) 상이한 필름 그레인 패턴들이 사전 계산되어 이용가능한 필름 그레인 패턴들의 데이터베이스를 생성할 수 있거나, 또는 각각의 디코딩된 프레임이 처리될 준비가 될 때 즉시 계산될 수 있다. 예를 들어, SMPTE-RDD5는 상이한 필름 그레인 패턴들의 데이터베이스를 생성하는 데 사용되는 64×64 정수 역변환을 특정한다. 그들은, 초기화 단계 동안 사전 계산되고 추가 사용을 위해 저장되는 변환된 가우시안 의사 난수들의 LUT를 사용할 것을 제안한다. 종료 시에, N×M 필름 그레인 이미지를 획득한 후에, SMPTE-RDD5에 기술된 바와 같은 스케일링, 디블록킹과 같은 추가적인 동작들이 적용될 수 있다. 모든 색상 성분들에 대해 동일하게 적용된다.
인코더 측에서, 컷오프 주파수들은 실제 데이터로부터 즉시 추정될 수 있다(블록들(100, 101)을 포함함). 이것이 필수적인 단계는 아니지만, 원래의 필름 그레인 모양을 얻기를 원하는 경우, 선험적으로 정의되는 디폴트 파라미터들을 사용하는 것보다 그의 파라미터들을 정확하게 추정하는 것이 오히려 바람직하다. 그러한 경우에, 잡음제거(denoising)가 먼저 수행되고, 그레인 파라미터들은 원래의 프레임과 잡음 없는(필터링된) 프레임의 차이에 기초하여 프레임의 평평한 영역 상에서 엄격히 추정된다. 잡음제거/필터링은 처리된 프레임들에서 잡음을 감소시킬 수 있는 임의의 알고리즘을 활용할 수 있다. 필터링을 수행하는 대신에, 재구성된 이미지를 활용할 수 있다. 그러나, 그러한 경우에, 압축으로부터 생성된 추가적인 아티팩트들은 추정 프로세스를 방해할 수 있다. 어쨌든, 그러한 방식으로 필름 그레인 패턴들이 획득된다. 예를 들어, 그러한 경우에 필름 그레인 패턴은 원래의 그리고 필터링된 프레임을 감산하여 획득된 N×M 잔차 블록이고, 이는, 에지들 및 복잡한 텍스처들이 잘못된 추정으로 이어질 수 있기 때문에 평평한 이미지 영역에서 취해진다. 이어서, 변환 계수들의 세트를 수신하기 위해, 필름 그레인 패턴들이 변환 프로세스, 예컨대 DCT에 입력된다. 획득된 변환 계수들의 세트를 분석함으로써, 필름 그레인의 패턴을 충분히 설명하는 컷오프 주파수들을 추정할 수 있다. 그들 컷오프 주파수들은 SEI 메시지들을 통해 비트스트림에 임베딩되고, 그들은, 전술된 바와 같이, 예를 들어, SMPTE-RDD5에서와 같이, 필름 그레인을 시뮬레이션하기 위해 디코더 측에서 사용된다. 컷오프 주파수들을 추정하기 위해, 잡음 이미지(필터링된 프레임과 원래의 프레임 사이의 차이)를 나타내는 각각의 블록이 변환의 대상이 되어야 한다는 것에 유의한다. DCT의 맞춤 정수 근사화(custom integer approximation)를 사용하는 변환 프로세스는 사전 처리 단계 동안 인코더 측에서 추가적인 계산들을 도입하고, 인코더에 대한 추가적인 계산 부담을 나타낸다. 따라서, 가능할 때마다, 계산 절약을 도입하는 것이 매우 중요하다. 이러한 문제는, 디코더들의 구현들 및 하드웨어 설계들을 고려할 때 심지어 중요하다.
이것은, 필름 그레인 패턴을 갖는 픽셀들의 블록을 생성하기 위한 방법 및 디바이스들 - 여기서, 생성하는 데 사용되는 변환은 또한 VVC 코어 변환들로서 사용되는 DCT-II, DCT-VIII, DST-VII 중 하나임 - 에 관한 것인 본 명세서에 기술된 일반적인 태양들에 의해 해결되고 다루어진다. 필름 그레인을 추정하고, 인코딩 시에 필름 그레인 파라미터들을 생성하기 위한 대응하는 방법이 또한 개시되며, 여기서 추정에 사용되는 변환은 DCT-II, DCT-VIII, DST-VII, 즉 VVC 코어 변환들 중 하나이다.
유리하게는, VVC 코어 변환들로서 사용되는 여러 유형들의 DCT뿐만 아니라 DST 중 임의의 것이 이러한 알고리즘에 대해 적합하다는 것에 유의한다. 이것에 의해, 상이한 컷오프 주파수들에 대해 효율적인 방식으로 필름 그레인 패턴들을 획득할 수 있을 뿐만 아니라 추정할 수 있다. 효율적인 구현에 관련하여, VVC의 코어 변환들을 위한 구현들 및 하드웨어 설계들이 이미 많이 제안되어 있다. 필름 그레인에 대한 표준화된 변환을 사용함으로써, 정확히 동일한 구현예가 많은 호환 디바이스들(또는 판매자들)에 의해 사용될 것이고, 정밀한 필름 그레인 추정 및 합성이 상이한 방식으로 무언가를 행할 염려 없이 수행될 수 있다는 것을 알고 있다. 상이한 디바이스들 사이의 상호동작성은 이러한 방식으로 확보되며, 이는, 필름 그레인이 비디오 코딩 표준들에서 필수적인 부분이 되는 경우에 특히 중요할 수 있다.
인코더/디코더에서 이미 구현되는 코어 변환들을 사용하는 것 외에도, 추가로 다른 변환(DCT)을 구현하는 것을 절약한다. 또한, 그들 3개의 코어 변환들이 최적화된다. 그의 설계는 효율적이다. 그들은 이미 구현될 예정이고(인코더/디코더의 일부로서의 소프트웨어 및/또는 하드웨어), 다른 것(이는, 그들 3개와 같이 잘 설계되지 않음)을 구현하는 것은 단지 추가적인 복잡성일 뿐이다. 특히, 그것이 하드웨어에서 설계될 필요가 있는 경우, 이는 추가적인 비용을 부과한다.
도 3은 적어도 하나의 실시예의 일반적인 태양에 따른 비디오 코딩/디코딩 프레임워크에서의 필름 그레인 사용의 수정된 블록도를 예시한다.
본 발명의 원리들은 양 측들(필름 그레인 추정 및 합성)에서 표준화된 변환들을 사용하는 것을 개시한다. 일 실시예에 따르면, 표준화된 변환은 (있다면, 소스 비디오에 존재하는) 필름 그레인에 대한 정보를 생성하기 위해 인코더 측에서 사용될 수 있고, 즉시 파라미터 추정이 요구되는 경우 사용될 수 있다. 다른 실시예에 따르면, 수동으로 튜닝된 파라미터들의 고정된 세트가 사용되며, 이러한 경우에 변환은 인코더 측에서 필름 그레인에 대해 활용되지 않는다. 도 3의 인코딩 단계(102)는, 인코더의 모듈들, 또는 예를 들어, 도 6의 예시적인 인코더에서 구현되는 인코딩 방법을 부분적으로 나타낸다. 블록에 나타나는 필름 그레인의 속성을 특정하는 적어도 하나의 파라미터를 포함하는 필름 그레인 정보는, 이어서 비트스트림에 메타데이터로서 임베딩된다. 디코더 측에서, 비트스트림 및 필름 그레인 정보는 디코딩되고, 필름 그레인은 수신된 메타데이터에 따라 시뮬레이션된다. 도 3의 디코딩 단계(103)는, 디코더의 모듈들, 또는 예를 들어, 도 7의 예시적인 디코더에서 구현되는 디코딩 방법을 부분적으로 나타낸다. 인코더 및 디코더가 이미 표준화된 변환들을 활용하기 때문에, 필름 그레인의 맥락에서 그들의 구현은 간단하다. 따라서, 임의의 호환 코덱에서 비트 정확 변환 계수들이 획득된다. 그 후, 변환된 계수들은 단계(301)에서 필름 그레인 파라미터들을 획득하기 위해 분석되거나, 또는 단계(304)에서 필름 그레인 이미지/패턴을 획득하기 위해 필터링을 겪는다. 필름 그레인 추정(301) 및 필름 그레인 합성(304)의 단계들은 각각 단계들(101, 103)의 수정된 버전들이며, 이때, 코어 변환들에 의한 내부 변환의 교체는 비디오 코덱에서 특정된다.
도 4a는 적어도 하나의 실시예의 일반적인 태양에 따른 필름 그레인 패턴의 블록들을 생성하기 위한 방법의 수정된 블록도를 예시한다. 도 4a에 나타내지 않은 예비 단계에서, 필름 그레인 정보가 수신되며, 여기서 필름 그레인 정보는 블록에 나타나는 필름 그레인의 속성을 특정하는 적어도 하나의 파라미터를 포함한다. 디코더에서, 필름 그레인 정보는, 적어도 하나의 파라미터를 포함하는 보충 강화 정보 메시지를 수신 및 디코딩하는 것을 포함한다. 이어서, DCT-II, DCT-VII, 또는 DST-VII 중 하나인 변환은 랜덤 값들의 블록에 적용되며, 이는 랜덤 값들의 변환된 블록으로 또한 지칭되는 주파수 도메인에서의 변환 계수들의 세트를 생성한다. 비제한적인 변형에 따르면, 단계(200)에서, 가우시안 난수(Gaussian random number)들의 목록으로부터 선택된 랜덤 값들의 블록이 생성된다. 비제한적인 변형들에 따르면, 픽셀들의 블록의 크기는 N×M이고, 여기서 N은 범위 [2 내지 64] 내의 정수이고, M은 범위 [2 내지 64] 내의 정수이다. 비제한적인 변형에 따르면, N 또는 M은 64보다 큰 정수이고, 블록 크기는 코어 변환 크기에 적응되도록 스케일링된다. 이전과 같이, 의사 난수들의 블록을 획득하기 위해, 문헌에 이미 확립된 임의의 가우시안 난수 생성기를 활용할 수 있다. 의사 난수들의 블록은 즉시 획득될 수 있거나, 또는 그것은, 예컨대 초기화 단계 동안 미리 정의되고 추가 사용을 위해 저장될 수 있다. 이어서, 단계(401)에서, 코어 변환이 랜덤 값들의 블록에 적용되며, 여기서 코어 변환은 DCT-II, DCT-VIII, DST-VII 중 하나이다. 변환은 주파수 도메인에서 변환 계수들의 세트를 생성한다. 단계(200)에 관해서는, 변환 계수들의 세트는 즉시 획득될 수 있거나, 또는 그것은 미리 정의되고 추가 사용을 위해 저장될 수 있다. 이어서, 변환된 블록의 계수들은 저역 통과 필터로 202에서 필터링된다. 이전과 같이, 필터링은, 각각 수직 및 수평 에지들에 대해, 컷오프 주파수들을 나타내는, 수신된 필름 그레인 정보에서의 적어도 하나의 파라미터에 의해 정의된다. 단계(403)에서, 블록에 대한 필터링된 계수들의 세트에 역 코어 변환이 적용되어, 필름 그레인 패턴을 갖는 픽셀들의 블록을 생성한다. 역 코어 변환은 단계(401)에서 사용되는 변환, 즉 DCT-II, DCT-VIII, DST-VII 중 하나, 즉 표준화된 코어 변환에 대응하는 역변환이다.
지원되는 변환 구현들에 관련하여, VVC는 가변 크기들을 갖는 여러 유형들의 변환들을 구현한다. 그것은, VVC에서 처음으로 도입된 다중 변환 선택(Multiple Transform Selection, MTS) 도구로 알려져 있다. 그것은 다음을 지원한다:
Figure pct00002
DCT-II, 블록 크기 2×2 내지 64×64, 정사각형 및 비-정사각형
DCT-VIII, 블록 크기 4×4 내지 32×32, 정사각형 및 비-정사각형
DST-VII, 블록 크기 4×4 내지 32×32, 정사각형 및 비-정사각형
상기 언급된 변환들은 원래의 부동 소수점 변환들의 정수 근사치들이고, 하드웨어 및 소프트웨어에서의 효율적인 구현을 지원하는 방식으로 설계된다는 것에 유의해야 한다.
따라서, 필름 그레인 모델링의 목적을 위해 변환된 계수들의 세트를 확립하는 프로세스는 상이한 방식들로 발생할 수 있다. 상기 언급된 변환들 및 블록 크기들(비-정사각형을 포함함)의 임의의 조합이 가능하다. 이용가능한 변환들 및 이용가능한 변환 크기들 중 하나(또는 더 많은 그들의 조합)의 사용에 또한 기초하는 다른 실시예들이 존재할 수 있다는 표시와 함께, 일부 가능한 실시예들이 하기에 기술되어 있다.
도 4b는 적어도 하나의 실시예의 일반적인 태양에 따라 필름 그레인 파라미터들을 추정하고 디코더에 사용될 이미지 블록과 연관된 필름 그레인의 속성을 특정하는 적어도 하나의 파라미터를 생성하기 위한 방법의 수정된 블록도를 예시한다. 예비 단계(404)에서, 필름 그레인 블록이 수신된다. 인코더에서, 필름 그레인 블록을 수신하는 것은 사전 처리 단계의 결과이다. 전술된 바와 같이, 필름 그레인 블록을 획득하기 위해, 사전 처리 단계는 원래의 프레임을 필터링하는 것 및 마스크 도출을 포함한다. 마스크는 프레임의 평평한 영역을 나타내는 데 사용된다. 마스크를 도출하기 위해, 복잡한 텍스처들 및 에지들을 검출할 수 있는 종래 기술에 알려진 임의의 방법을 사용할 수 있다. 마스크는, 필름 그레인 파라미터들이 도출될 블록을 선택할 때 그들 평평하지 않은 영역들을 배제한다. 이어서, 필름 그레인 블록은 마스크에 의해 표시된 프레임의 평평한 영역으로부터 취해진 N×M 잔차 신호로서 표현되고, 원래의/입력된 블록과 필터링된 블록의 차이로서 계산된다. 그러한 블록은 필름 그레인 추정치를 나타내며, 이는 코어 변환(401)의 대상이다. 이어서, 변형된 블록이 분석되고(405), 그 후에 적어도 하나의 필름 그레인 파라미터가 계산되고 디코더 측으로 통신된다.
일반적인 필름 그레인 패턴 생성 및 추정 방법의 다양한 실시예들이 하기에 설명된다.
필름 그레인의 경우, 제시된 표준화된 DCT 변환들 또는 표준화된 DST 변환 중 하나를 활용할 수 있다. VVC에서, 변환들은 64×64까지 가는 DCT-II 및 32×32까지 가는 DCT-VIII 및 DST-VII이다. 상이한 변환 크기들을 활용할 수 있지만, 정사각형 N×M 변환(여기서, N=M임)이 최상의 성능을 제공한다는 것이 확립되었으며, 그렇지만, 이것은 반드시 그렇게 되도록 요구되지는 않는다(비-정사각형 변환이 VVC에서 또한 지원되고, 필름 그레인 모델링에 대한 정사각형 변환 대신에 사용될 수 있음). N(및 M)은 상기 언급된 지원된 크기들 중 임의의 것일 수 있지만, N,M=64 및 N,M=32는 복잡도와 성능 사이의 양호한 트레이드오프를 제공한다.
특정 실시예에 따르면, 동일한 변환 유형 및 동일한 변환 크기가 루마 및 크로마 성분들에 대해 사용된다.
변형 실시예에서, 루마 및 크로마에 대한 FG 패턴들을 추정/생성하기 위한 블록 크기는 64×64로 설정되고, VVC 사양에 특정된 DCT-II가 사용된다.
추가적인 변형 실시예에서, 루마 및 크로마에 대한 FG 패턴들을 추정/생성하기 위한 블록 크기는 32×32로 설정되고, VVC 사양에 특정된 DCT-II가 사용된다.
추가적인 변형 실시예에서, VVC 사양에 특정된 DCT-II가 루마 및 크로마 성분들에 대해 사용되고, 변환 크기는 32×32 미만이다.
추가적인 변형 실시예에서, DCT-II 대신에, VVC 사양에 특정된 DCT-VIII 또는 DST-VII가, 임의의 지원되는 블록 크기를 사용함으로써 루마 및 크로마 성분들에 대한 FG 패턴들을 추정/생성하기 위해 사용될 수 있다. 예를 들어, 32×32의 크기를 갖는 DCT-VIII 또는 DST-VII을 사용한다.
추가적인 변형 실시예에서, 루마 및 크로마 성분들에 대한 FG 패턴들을 추정/생성하기 위해 32×32 미만의 크기들이 사용되며, 이러한 경우의 실시예에서는 DCT-II, DCT-VIII, 또는 DST-VII을 사용할 수 있다.
모든 이전의 변형 실시예들에서, 변환 유형 및 변환 크기는 미리 알려져 있고, 추가적인 시그널링에 대한 어떠한 필요성도 부과되지 않는다. 동일한 변환 유형 및 변환 크기가 루마 및 크로마 성분들 둘 모두에 대해 사용된다.
다른 특정 실시예에 따르면, 동일한 변환 유형이지만 상이한 변환 크기들이 루마 및 크로마 성분들에 대해 사용된다.
추가적인 변형 실시예에서, 예를 들어, 크로마 포맷이 4:2:0(그러나 그것으로 엄격히 제한되지 않음)일 때, 루마에 대한 FG 패턴들을 생성하기 위한 블록 크기는 64×64로 설정되고 크로마에 대해서는 32×32로 설정되고, VVC 사양에 특정된 DCT-II가 사용된다. 따라서, 상이한 변환 크기들이 루마 성분에 대해 그리고 크로마 성분에 대해 사용된다. 예를 들어, 동일한 방식으로, 루마에 대해 DST-VII 및 블록 크기 32×32를 사용하고, 크로마에 대해서는 16×16을 사용한다. 여기에서, 이전 실시예들에서와 같이, 변환 유형은 루마 및 크로마에 대해 동일하지만, 크기는 상이하다. 그러나, 블록 크기는 미리 설정되고, 시그널링에 대한 어떠한 필요성도 요구되지 않는다. 따라서, DCT-II 및 루마 및 크로마 성분에 대한 상이한 변환 크기들의 임의의 조합을 사용할 수 있다. 다른 변환 유형, 예컨대 DCT-VIII 또는 DST-VII에 대해서도 마찬가지일 수 있으며, 여기서, 예를 들어, 루마에 대해서는 32×32 블록 크기를 그리고 크로마에 대해서는 16×16을, 또는 루마 및 크로마에 대해서는 크기들의 임의의 다른 조합을 사용한다.
특정 실시예에 따르면, 루마 및 크로마 성분들에 대해 상이한 변환 유형들이지만 동일한 변환 크기.
변형 실시예에서, FG 패턴들을 생성하기 위한 블록 크기는 32×32이다. 이러한 경우에, VVC에 정의된 바와 같은, DCT-II, DCT-VIII 또는 DST-VII이 사용될 수 있다. 이러한 변형에서, 변환의 유형은 루마 및 크로마에 대해 상이하다. 또한, 다른 변형에서, 크기는 32×32보다 작다. 이러한 경우에, 이전에서와 같이, 크기 및 변환들이 미리 설정되고 추가 시그널링에 대한 어떠한 필요성도 요구되지 않는다. 이번에만, 변환 유형은 루마 및 크로마 성분들에 대해 상이하다. 예를 들어, FG 루마 블록들에 대해 DCT-II가 사용되는 한편, FG 크로마 블록들에 대해서는 DCT-VIII이 사용된다. 상이한 변환들을 사용하기 위한 근거는, 루마 및 크로마 잡음 신호들이 크게 상이한 통계치들을 제시할 수 있다는 것이다.
특정 실시예에 따르면, 상이한 변환 유형들 및 상이한 변환 크기들이 루마 및 크로마 성분들에 대해 사용된다.
변형 실시예에서, 변환 크기 및 변환 유형 둘 모두는 루마 성분에 대해 그리고 크로마 성분에 대해 상이하다. 그러나, 크기 및 유형이 미리 설정되고 어떠한 시그널링도 요구되지 않는다.
특정 실시예에 따르면, 변환의 유형 및 크기는, 선험적으로 정의된 유형들 및 크기들 대신에 시그널링되거나 추론된다.
이전의 실시예들의 확장에서, 사용된 변환을 미리 특정할 필요가 없다. 대신에, 필름 그레인 추정에 사용되는 변환이 상이한 변환들 중에서 (수동 제어에 의해, 또는 콘텐츠 분석으로부터) 선택되고, 합성을 위해 시그널링된다. 다른 변형에서, 필름 그레인을 생성 및 추정하는 데 사용되는 변환 크기가 시그널링된다. 다른 변형에서, 변환 크기 및 변환 유형 둘 모두가 시그널링된다. 시그널링은 루마 성분에 대해 그리고 크로마 성분에 대해 동일하거나, 또는 루마 성분에 대해 그리고 크로마 성분에 대해 상이하다(별개임). 예시적인 실시예에 따르면, 필름 그레인 파라미터들은 모든 색상 성분들에 대해 정확히 동일하며, 따라서 한 번만 시그널링된다. 그러한 경우에, 추가적인 메타데이터는 제안된 설계, 예를 들어, 파라미터들의 하나의 세트가 모든 색상 성분들에 대해 적용된다고 말하는 플래그를 나타낸다.
다른 변형에서, 변환 크기 및/또는 변환 유형은 루마 성분에 대해서만 시그널링되고, 크로마에 대한 변환 유형 및 크기는 암시적으로 도출된다. 예를 들어, 루마 성분에 대해 시그널링된 파라미터들의 하나의 세트에 기초하여, 크로마 성분에 대한 파라미터들의 세트가 결정된다. 예를 들어, 루마에 대한 것과 동일한 변환이 크로마에 대해 사용되며, 이는 루마 성분에 대해서만 시그널링된 파라미터들에 기초하여 도출될 수 있고, 컷오프 주파수들은 루마의 컷오프 주파수들의 다운 샘플링된 버전들이다.
상기에서 논의된 상이한 실시예들을 구현하는, 신택스 예가 하기의 표에 제공된다.
추가적인 실시예에서, 변환 유형 및 크기가 루마 및 크로마에 대해 추론된다. 예를 들어, 현재 프레임을 인코딩/디코딩하는 데 사용되는 가장 빈번한 변환이 필름 그레인 목적에 추가로 사용된다. 루마 변환 유형이 추론되었는지 또는 그렇지 않은지를 나타내기 위해, 신택스 요소 "transform_type_luma_inferred_flag"가 또한 삽입된다. 그것이 추론되지 않을 때, 루마 변환 유형이 시그널링된다.
시그널링의 많은 상이한 변형들, 명시적으로 또는 암시적으로 도출된 파라미터들이 존재할 수 있다는 것에 유의해야 한다. 그들은 모두 본 개시내용에 나열될 수 없지만, 당업자는 이러한 토픽에 대한 다른 다양한 변형들을 알 수 있다.
따라서, 일 변형에서, FG 패턴들을 추정 및/또는 생성하는 데 사용되는 변환의 유형은 신택스 요소에 의해 표시된다. 동일한 개념이 변환 크기에 대해, 또는 심지어 비-정사각형 블록 패턴들에 대해 적용될 수 있다. 시그널링은 시퀀스 레벨에서, I-기간에, GOP에서, 프레임당, CTU당 또는 CU당 행해질 수 있으며, 이는 특정 요건들 및 특정 구현에 의존한다. 신택스 요소들은 SEI 메시지에 삽입될 수 있지만, 또한 적응 파라미터 세트(adaptation parameter set, APS), 시퀀스 파라미터 세트(sequence parameter set, SPS), 및/또는 픽처 파라미터 세트(picture parameter set, PPS)에도 삽입될 수 있다.
당업자는 더 큰 변환 크기들 및 다른 유형들이 미래에 가능하다고 결론내릴 수 있다. 비디오 코딩 표준들이 지속적으로 진화함에 따라, 미래의 표준들은 상이한(더 큰) 변환 크기들 및 더 다양한 변환 유형들을 지원할 수 있다. 그러한 경우에, 필름 그레인을 추정/생성하기 위해 본 개시내용에서 기술된 바와 동일한 방식으로 새로운/추가적인 크기들 및 유형들이 적용될 수 있다.
특정 실시예에 따르면, 수평 및 수직 변환 유형 및 크기가 적응된다.
또한, VVC는 상이한 수평 및 수직 변환 유형들, 및 직사각형 변환 블록들을 사용하는 것을 가능하게 한다. 일 실시예에서, 상이한 수평 및 수직 변환들을 사용하여 FG 블록 패턴들이 생성된다. 다른 실시예에서, 상이한 수평 및 수직 치수들(변환 크기들)을 사용하여 FG 블록 패턴들이 생성된다. 일 실시예에서, 수평 및 수직 변환 유형들이 시그널링된다. 유사하게, FG 패턴 블록들의 추천된 수평 및 수직 크기들이 시그널링된다.
VVC 사양에 의해 정의되는, 32보다 큰 크기의 크로마 성분들 및 루마 블록들에 대해 DCT-II만이 고려되더라도, 그것은, 필름 그레인을 추정 및 합성할 목적을 위해 다른 유형들 및 크기들의 사용을 막지는 않는다. 필름 그레인은 사전/사후 처리 단계에서 행해질 수 있고, 아이디어는 이용가능한 변환 구현(하드웨어 또는 소프트웨어)을 재사용하는 것이고, 그러한 경우에 상이한 색상 성분들에 대한 이용가능한 유형들 및 블록 크기들의 측면에서 비디오 코딩 표준의 한계들은 필름 그레인에 적용되지 않는다.
또한, 제안된 방법은 호환가능하고, 임의의 크로마 서브샘플링 포맷과 함께 사용될 수 있다.
특정 실시예에 따르면, FG 파라미터들은 블록 크기로 스케일링된다. 다른 실시예들에 따르면, 필름 그레인 파라미터들, 예컨대 컷오프 주파수들의 추가적인 스케일링이 수행된다. 예를 들어, 파라미터들이 64×64 블록 상에서 사용되도록, 예컨대 64×64 블록 상에서 추정되도록 의도되는 경우, 하지만 그들이 32×32 필름 그레인 패턴을 생성하는 데(32×32 필름 그레인 블록을 사용하여 합성됨) 사용될 경우, 파라미터들은 블록 요건들과 매칭되도록 다운스케일링된다. 예를 들어, 파라미터들은 인코더 측에서 64×64 블록에 대해 추정되지만, 복잡성 또는 구현 근거들을 위해 디코더 측에서 32×32 필름 그레인 패턴을 생성하는 데 사용될 필요가 있다. 유사하게, 파라미터들의 업스케일링은, 그들이 32×32 블록들 상에서 사용되도록 설정/추정되는 경우 수행되지만, 디코더 측은 64×64 블록 상에서 그것을 사용한다.
도 5는 디코더 측에서 필름 그레인 파라미터들의 조정이 있는 필름 그레인의 수정된 블록도를 예시한다. FG 파라미터들 조정의 새로운 단계가 FG 합성 전에 삽입된다(단계 305).
특정 실시예에 따르면, FG 파라미터들은 변환 유형에 적응되었다. 또한, 필요한 경우, 일 실시예에서, FG는 인코더 측에서 하나의 변환 유형을 사용함으로써 추정되고, 상이한 유형의 변환을 사용함으로써 디코더 측에서 합성될 수 있다. 예를 들어, 그것은 DCT-II를 사용함으로써 추정될 수 있고 FG 패턴 합성은 DCT-VIII 변환 유형을 사용하여 행해질 수 있다. 특정 실시예에서, 그러한 접근법을 지원하기 위해 일부 추가적인 조정들이 행해질 수 있다. 하나의 예는, 변환이 변경되기 때문에, 역변환 전에 FG 패턴을 생성할 때 변환된 계수들을 재샘플링하는 것일 수 있다. 다른 하나는, 예를 들어, 상이한 변환 유형들을 보상하기 위해 시그널링된 컷오프 주파수들에 (양의 또는 음의) 오프셋을 추가하는 것일 수 있다.
특정 실시예에 따르면, 다른 비디오 코딩 표준들로부터의 코어 변환들이 사용된다. 추가로, VVC 변환 대신에, 일 실시예에서, HEVC 또는 H.264/AVC 표준화된 변환이 사용된다. 그러한 경우에, 변환 크기 또는 변환 유형들의 관점에서 일부 다른 제한이 표준 사양에 따라 부과될 수 있다.
특정 실시예에 따르면, 저역 통과와는 상이한 필터링의 유형이 사용된다.
본 개시내용이 필름 그레인 패턴을 모델링하기 위해 저역 통과 필터링을 사용함으로써 설명되더라도, 당업자는, 일부 실시예들에서 상이한 필터링이 사용될 수 있다고 결론내릴 수 있다. 예를 들어, 전술한 바와 같이 2개의 컷오프 주파수들에 의해 표현되는 저역 통과 필터링 대신에, 대역 통과 필터링을 사용할 수 있다. 그러한 경우에, 4개의 상이한 주파수들(수직의 높은 컷오프, 수직의 낮은 컷오프, 수평의 높은 컷오프, 및 수평의 낮은 컷오프 주파수)이 필름 그레인 패턴을 한정하는 데 사용된다. 다른 필터링이 주파수 도메인에서 필름 그레인 패턴을 생성하기 위해 사용될 수 있다고 결론내릴 수 있다.
추가적인 실시예들 및 정보
본 출원은 도구들, 특징부들, 실시예들, 모델들, 접근법들 등을 포함한 다양한 태양들을 기술한다. 이들 태양들 중 많은 것은 특이성을 갖고서 기술되며, 적어도, 개별 특성들을 보여주기 위해, 종종, 제한사항으로 들릴 수 있는 방식으로 기술된다. 그러나, 이는 설명의 명확성을 위한 것이며, 그들 태양들의 응용 또는 범주를 제한하지 않는다. 실제로, 상이한 모든 태양들이 조합되고 상호교환되어 추가의 태양들을 제공할 수 있다. 또한, 태양들이 조합될 수 있고, 마찬가지로 이전의 출원에 기술된 태양들과 상호교환될 수 있다.
본 출원에서 기술되고 고려되는 태양들은 많은 상이한 형태들로 구현될 수 있다. 하기의 도 6, 도 7, 및 도 8은 일부 실시예들을 제공하지만, 다른 실시예들이 고려되고, 도 6, 도 7, 및 도 8의 논의는 구현예들의 외연(breadth)을 제한하지 않는다. 태양들 중 적어도 하나는 대체적으로 비디오 인코딩 및 디코딩에 관한 것이고, 적어도 하나의 다른 태양은 대체적으로 생성되거나 인코딩된 비트스트림을 송신하는 것에 관한 것이다. 이들 및 다른 태양들은 기술된 방법들 중 임의의 방법에 따라 비디오 데이터를 인코딩 또는 디코딩하기 위한 명령어들이 저장된 방법, 장치, 컴퓨터 판독가능 저장 매체, 및/또는 기술된 방법들 중 임의의 방법에 따라 생성된 비트스트림이 저장된 컴퓨터 판독가능 저장 매체로서 구현될 수 있다.
본 출원에서, "재구성된"및 "디코딩된"이라는 용어들은 상호교환가능하게 사용될 수 있으며, "픽셀" 및 "샘플"이라는 용어들은 상호교환가능하게 사용될 수 있고, "이미지", "픽처" 및 "프레임"이라는 용어들은 상호교환가능하게 사용될 수 있다.
다양한 방법들이 본 명세서에 기술되고, 각각의 방법은 기술된 방법을 달성하기 위한 하나 이상의 단계들 또는 액션들을 포함한다. 방법의 적절한 동작을 위해 단계들 또는 액션들의 특정 순서가 요구되지 않는 한, 특정 단계들 및/또는 액션들의 순서 및/또는 사용은 수정되거나 조합될 수 있다. 추가적으로, "제1", "제2" 등과 같은 용어들은, 예를 들어, "제1 디코딩" 및 "제2 디코딩"과 같은 요소, 컴포넌트, 단계, 동작 등을 수정하기 위해 다양한 실시예들에서 사용될 수 있다. 그러한 용어들의 사용은, 구체적으로 요구되지 않는 한 수정된 동작들에 대한 순서화를 의미하지 않는다. 따라서, 이러한 예에서, 제1 디코딩은 제2 디코딩 전에 수행될 필요가 없고, 예를 들어, 제2 디코딩 전에, 그 동안, 또는 그와 중첩되는 기간에 발생할 수 있다.
본 출원에 기술된 다양한 방법들 및 다른 태양들은, 도 6 및 도 7에 도시된 바와 같은 비디오 인코더(600) 및 디코더(700)의 모듈들, 예를 들어, 사전 인코딩 처리 모듈 또는 사후 처리 디코딩 모듈(601, 785)을 수정하는 데 사용될 수 있다. 또한, 본 태양들은 VVC 또는 HEVC로 제한되지 않으며, 예를 들어, 기존에 존재하든 향후 개발되든, 다른 표준들 및 권고들, 및 임의의 그러한 표준들 및 권고들(VVC 및 HEVC를 포함함)의 확장들에 적용될 수 있다. 달리 나타내지 않거나, 또는 기술적으로 배제되지 않는 한, 본 출원에 기술되는 태양들은 개별적으로 또는 조합하여 사용될 수 있다.
다양한 수치 값들, 예를 들어, 변환들의 수, 변환 레벨의 수, 변환들의 인덱스들이 본 출원에서 사용된다. 특정 값들은 예시적인 목적들을 위한 것이며, 기술된 태양들은 이들 특정 값들로 제한되지 않는다.
도 6은 인코더(600)를 예시한다. 이러한 인코더(600)의 변형들이 고려되지만, 인코더(600)는 모든 예상된 변형들을 기술하지 않고서 명료성의 목적들을 위해 후술된다.
인코딩되기 전에, 비디오 시퀀스는, 예를 들어, 입력 색상 픽처에 색상 변환을 적용하거나(예컨대, RGB 4:4:4로부터 YCbCr 4:2:0으로의 변환), 또는 (예를 들어, 색상 성분들 중 하나의 성분의 히스토그램 등화를 사용하여) 압축에 더 탄력적인 신호 분포를 얻기 위해 입력 픽처 성분들의 재맵핑(remapping)을 수행하는, 사전 인코딩 처리(601)를 거칠 수 있다. 메타데이터는 사전 처리와 연관될 수 있고, 비트스트림에 부착될 수 있다.
인코더(600)에서, 픽처는 후술되는 바와 같이 인코더 요소들에 의해 인코딩된다. 인코딩될 픽처는, 예를 들어, CU들의 단위들로 파티셔닝(602) 및 처리된다. 각각의 유닛은, 예를 들어 인트라 또는 인터 모드를 사용하여 인코딩된다. 유닛이 인트라 모드에서 인코딩될 때, 그것은 인트라 예측을 수행한다(660). 인터 모드에서는, 모션 추정(675) 및 보상(670)이 수행된다. 인코더는 유닛을 인코딩하기 위해 인트라 모드 또는 인터 모드 중 어느 것을 사용할지를 결정하고(605), 예를 들어, 예측 모드 플래그에 의해 인트라/인터 결정을 나타낸다. 예측 잔차들은, 예를 들어, 오리지널 이미지 블록에서 예측된 블록을 감산함으로써(610) 계산된다.
이어서, 예측 잔차들은 변환되고(625) 양자화된다(630). 양자화된 변환 계수들뿐만 아니라 모션 벡터들 및 다른 신택스 요소들은 엔트로피 코딩되어(645) 비트스트림을 출력한다. 인코더는 변환을 스킵할 수 있고, 변환되지 않은 잔차 신호에 직접 양자화를 적용할 수 있다. 인코더는 변환 및 양자화 모두를 스킵할 수 있으며, 즉, 잔차는 변환 또는 양자화 프로세스들의 적용 없이 직접 코딩된다.
인코더는 인코딩된 블록을 디코딩하여 추가 예측들을 위한 기준을 제공한다. 양자화된 변환 계수들은 예측 잔차들을 디코딩하기 위해 역양자화되고(640) 역변환된다(650). 디코딩된 예측 잔차들 및 예측된 블록을 조합하여(655), 이미지 블록이 재구성된다. 인-루프 필터들(665)이 재구성된 픽처에 적용되어, 예를 들어, 인코딩 아티팩트들을 감소시키기 위한 디블록킹/SAO(Sample Adaptive Offset) 필터링을 수행한다. 필터링된 이미지는 기준 픽처 버퍼(680)에 저장된다.
도 7은 비디오 디코더(700)의 블록도를 예시한다. 디코더(700)에서, 비트스트림은 후술되는 바와 같이 디코더 요소들에 의해 디코딩된다. 비디오 디코더(700)는 대체적으로, 도 6에 기술된 바와 같이, 인코딩 패스에 상반되는 디코딩 패스를 수행한다. 인코더(600)는 또한 대체적으로, 비디오 데이터를 인코딩하는 것의 일부로서 비디오 디코딩을 수행한다.
특히, 디코더의 입력은 비디오 인코더(600)에 의해 생성될 수 있는 비디오 비트스트림을 포함한다. 비트스트림은 먼저, 변환 계수들, 모션 벡터들, 및 다른 코딩된 정보를 획득하기 위해 엔트로피 디코딩된다(730). 픽처 파티션 정보는 픽처가 어떻게 파티셔닝되는지를 나타낸다. 따라서, 디코더는 디코딩된 픽처 파티셔닝 정보에 따라 픽처를 분할할 수 있다(735). 변환 계수들은 예측 잔차들을 디코딩하기 위해 역양자화되고(740) 역변환된다(750). 디코딩된 예측 잔차들 및 예측된 블록을 조합하여(755), 이미지 블록이 재구성된다. 예측된 블록은 인트라 예측(760) 또는 모션 보상된 예측(즉, 인터 예측)(775)으로부터 획득될 수 있다(770). 재구성된 이미지에 인-루프 필터들(765)이 적용된다. 필터링된 이미지는 기준 픽처 버퍼(780)에 저장된다.
디코딩된 픽처는 사후 디코딩 처리(785), 예를 들어, 역 색상 변환(예컨대, YCbCr 4:2:0으로부터 RGB 4:4:4로의 변환) 또는 사전 인코딩 처리(601)에서 수행된 재맵핑 프로세스의 역을 수행하는 역 재맵핑을 추가로 거칠 수 있다. 사후 디코딩 처리는 사전 인코딩 처리에서 도출되고 비트스트림에서 시그널링된 메타데이터를 사용할 수 있다.
도 8은 다양한 태양들 및 실시예들이 구현되는 시스템의 일례의 블록도를 도시한다. 시스템(800)은 후술되는 다양한 컴포넌트들을 포함하는 디바이스로서 구현될 수 있으며, 본 문헌에 기술된 태양들 중 하나 이상을 수행하도록 구성된다. 그러한 디바이스들의 예들은, 다양한 전자 디바이스들, 예컨대 개인용 컴퓨터, 랩톱 컴퓨터, 스마트폰, 태블릿 컴퓨터, 디지털 멀티미디어 셋톱 박스, 디지털 텔레비전 수신기, 개인용 비디오 녹화 시스템, 커넥티드 가전, 및 서버를 포함하지만, 이들로 제한되지 않는다. 시스템(800)의 요소들은, 단독으로 또는 조합하여, 단일 집적 회로(IC), 다수의 IC들, 및/또는 별개의 컴포넌트들에서 구현될 수 있다. 예를 들어, 적어도 하나의 실시예에서, 시스템(800)의 처리 및 인코더/디코더 요소들은 다수의 IC들 및/또는 별개의 컴포넌트들에 걸쳐 분산된다. 다양한 실시예들에서, 시스템(800)은, 예를 들어, 통신 버스를 통해 또는 전용 입력 및/또는 출력 포트들을 통해 하나 이상의 다른 시스템들, 또는 다른 전자 디바이스들에 통신가능하게 커플링된다. 다양한 실시예들에서, 시스템(800)은 본 문헌에 기술된 태양들 중 하나 이상을 구현하도록 구성된다.
시스템(800)은, 예를 들어, 본 문헌에 기술된 다양한 태양들을 구현하기 위해 그 내부에 로딩된 명령어들을 실행하도록 구성된 적어도 하나의 프로세서(810)를 포함한다. 프로세서(810)는 내장된 메모리, 입력 출력 인터페이스, 및 당업계에 알려진 바와 같은 다양한 다른 회로부들을 포함할 수 있다. 시스템(800)은 적어도 하나의 메모리(820)(예컨대, 휘발성 메모리 디바이스, 및/또는 비휘발성 메모리 디바이스)를 포함한다. 시스템(800)은, 전기적으로 소거가능한 프로그래밍가능 판독 전용 메모리(Electrically Erasable Programmable Read-Only Memory, EEPROM), 판독 전용 메모리(Read-Only Memory, ROM), 프로그래밍가능 판독 전용 메모리(Programmable Read-Only Memory, PROM), 랜덤 액세스 메모리(Random Access Memory, RAM), 동적 랜덤 액세스 메모리(Dynamic Random-Access Memory, DRAM), 정적 랜덤 액세스 메모리(Static Random-Access Memory, SRAM), 플래시, 자기 디스크 드라이브, 및/또는 광학 디스크 드라이브를 포함하지만 이에 제한되지 않는 비휘발성 메모리 및/또는 휘발성 메모리를 포함할 수 있는 저장 디바이스(840)를 포함한다. 저장 디바이스(840)는 비제한적인 예들로서, 내부 저장 디바이스, 부착된 저장 디바이스(분리가능한 저장 디바이스 및 분리가능하지 않은 저장 디바이스를 포함함), 및/또는 네트워크 액세스가능한 저장 디바이스를 포함할 수 있다.
시스템(800)은, 예를 들어, 인코딩된 비디오 또는 디코딩된 비디오를 제공하기 위해 데이터를 처리하도록 구성된 인코더/디코더 모듈(830)을 포함하고, 인코더/디코더 모듈(830)은 그 자체 프로세서 및 메모리를 포함할 수 있다. 인코더/디코더 모듈(830)은 인코딩 및/또는 디코딩 기능들을 수행하기 위해 디바이스에 포함될 수 있는 모듈(들)을 나타낸다. 알려진 바와 같이, 디바이스는 인코딩 및 디코딩 모듈들 중 하나 또는 둘 모두를 포함할 수 있다. 추가적으로, 인코더/디코더 모듈(830)은 시스템(800)의 별개의 요소로서 구현될 수 있거나, 또는 당업자에게 알려진 바와 같은 하드웨어와 소프트웨어의 조합으로서 프로세서(810) 내에 통합될 수 있다.
본 문헌에서 기술된 다양한 태양들을 수행하기 위해 프로세서(810) 또는 인코더/디코더(830)에 로딩될 프로그램 코드는 저장 디바이스(840)에 저장될 수 있고, 후속적으로 프로세서(810)에 의한 실행을 위해 메모리(820)에 로딩될 수 있다. 다양한 실시예들에 따르면, 프로세서(810), 메모리(820), 저장 디바이스(840), 및 인코더/디코더 모듈(830) 중 하나 이상은 본 문헌에 기술된 프로세스들의 수행 동안 다양한 항목들 중 하나 이상을 저장할 수 있다. 이러한 저장된 항목들은 입력 비디오, 디코딩된 비디오 또는 디코딩된 비디오의 일부들, 비트스트림, 행렬들, 변수들, 및 식들, 공식들, 연산들 및 연산 로직의 처리로부터의 중간 또는 최종 결과들을 포함할 수 있지만, 이들로 제한되지 않는다.
일부 실시예들에서, 프로세서(810) 및/또는 인코더/디코더 모듈(830) 내부의 메모리는 명령어들을 저장하고, 인코딩 또는 디코딩 동안 필요한 처리를 위한 작업 메모리를 제공하는 데 사용된다. 그러나, 다른 실시예들에서, 처리 디바이스(예를 들어, 처리 디바이스는 프로세서(810) 또는 인코더/디코더 모듈(830) 중 어느 하나일 수 있음) 외부의 메모리가 이들 기능들 중 하나 이상에 사용된다. 외부 메모리는 메모리(820) 및/또는 저장 디바이스(840), 예를 들어, 동적 휘발성 메모리 및/또는 비휘발성 플래시 메모리일 수 있다. 일부 실시예들에서, 외부 비휘발성 플래시 메모리는 예를 들어, 텔레비전의 운영 체제를 저장하는 데 사용된다. 적어도 하나의 실시예에서, RAM과 같은 고속 외부 동적 휘발성 메모리는, MPEG-2(MPEG는 Moving Picture Experts Group을 지칭하고, MPEG-2는 또한 ISO/IEC 13818로도 지칭되고, 13818-1은 또한 H.222로도 알려져 있고, 13818-2는 또한 H.262로도 알려져 있음), HEVC(HEVC는 High Efficiency Video Coding을 지칭하고, H.265 및 MPEG-H Part 2로도 알려져 있음), 또는 VVC(Versatile Video Coding, JVET(Joint Video Experts Team)에서 개발 중인 새로운 표준)에 대한 것과 같은, 비디오 코딩 및 디코딩 동작들을 위한 작업 메모리로서 사용된다.
시스템(800)의 요소들에 대한 입력은 블록(805)에 표시된 바와 같은 다양한 입력 디바이스들을 통해 제공될 수 있다. 그러한 입력 디바이스들은 (i) 예를 들어 브로드캐스터(broadcaster)에 의해 무선으로(over the air) 송신된 무선 주파수(RF) 신호를 수신하는 무선 주파수(RF) 부분, (ii) 컴포넌트(COMP) 입력 단자(또는 COMP 입력 단자들의 세트), (iii) 범용 직렬 버스(USB) 입력 단자 및/또는 (iv) 고화질 멀티미디어 인터페이스(HDMI) 입력 단자를 포함하지만, 이들로 제한되지 않는다. 도 6에 도시되지 않은 다른 예들은 복합 비디오(composite video)를 포함한다.
다양한 실시예들에서, 블록(805)의 입력 디바이스들은 당업계에 알려진 바와 같은 연관된 각자의 입력 처리 요소들을 갖는다. 예를 들어, RF 부분은, (i) 원하는 주파수를 선택하는 것(신호를 선택하는 것, 또는 신호를 주파수들의 대역으로 대역 제한하는 것으로도 지칭됨), (ii) 선택된 신호를 하향변환(downconvert)하는 것, (iii) (예를 들어) 소정 실시예들에서 채널로 지칭될 수 있는 신호 주파수 대역을 선택하기 위해 주파수들의 더 좁은 대역으로 다시 대역-제한하는 것, (iv) 하향변환되고 대역-제한된 신호를 복조하는 것, (v) 오류 정정을 수행하는 것, 및 (vi) 데이터 패킷들의 원하는 스트림을 선택하기 위해 역다중화하는 것에 적합한 요소들과 연관될 수 있다. 다양한 실시예들의 RF 부분은 이러한 기능들을 수행하기 위한 하나 이상의 요소들, 예를 들어 주파수 선택기들, 신호 선택기들, 대역-제한기들, 채널 선택기들, 필터들, 하향변환기들, 복조기들, 오류 보정기들, 및 역다중화기들을 포함한다. RF 부분은, 예를 들어, 수신된 신호를 더 낮은 주파수(예를 들어, 중간 주파수 또는 근거리 기저대역 주파수)로 또는 기저대역으로 하향변환하는 것을 포함하여 이러한 다양한 기능들을 수행하는 튜너를 포함할 수 있다. 하나의 셋톱 박스 실시예에서, RF 부분 및 그의 연관된 입력 처리 요소는 유선(예를 들어, 케이블) 매체를 통해 송신된 RF 신호를 수신하고, 필터링하고, 하향변환하고 다시 원하는 주파수 대역으로 필터링함으로써 주파수 선택을 수행한다. 다양한 실시예들은 전술한(및 다른) 요소들의 순서를 재배열하고, 이들 요소들 중 일부를 제거하고/하거나 유사하거나 상이한 기능들을 수행하는 다른 요소들을 추가한다. 요소들을 추가하는 것은, 예를 들어, 증폭기들 및 아날로그-디지털 변환기를 삽입하는 것과 같이, 기존 요소들 사이에 요소들을 삽입하는 것을 포함할 수 있다. 다양한 실시예들에서, RF 부분은 안테나를 포함한다.
또한, USB 및/또는 HDMI 단자들은 시스템(800)을 USB 및/또는 HDMI 접속부들을 통해 다른 전자 디바이스들에 접속하기 위한 각자의 인터페이스 프로세서들을 포함할 수 있다. 입력 처리의 다양한 태양들, 예를 들어, 리드 솔로몬(Reed-Solomon) 오류 정정은 필요에 따라, 예를 들어, 별개의 입력 처리 IC 내에서 또는 프로세서(810) 내에서 구현될 수 있다는 것이 이해되어야 한다. 유사하게, USB 또는 HDMI 인터페이스 처리의 태양들은 필요에 따라, 별개의 인터페이스 IC들 내에서 또는 프로세서(810) 내에서 구현될 수 있다. 복조, 오류 정정, 및 역다중화된 스트림은, 예를 들어, 출력 디바이스 상에서의 프리젠테이션을 위해 필요에 따라 데이터 스트림을 처리하도록 메모리 및 저장 요소들과 조합하여 동작하는 프로세서(810), 및 인코더/디코더(830)를 포함한 다양한 처리 요소들에 제공된다.
시스템(800)의 다양한 요소들이 통합된 하우징 내에 제공될 수 있으며, 통합된 하우징 내에서, 다양한 요소들은 적합한 접속 배열(815), 예를 들어, 인터-IC(I2C) 버스, 배선, 및 인쇄 회로 기판을 포함하는, 당업계에 알려진 바와 같은 내부 버스를 사용하여 상호접속되고 그들 사이에서 데이터를 송신할 수 있다.
시스템(800)은 통신 채널(890)을 통해 다른 디바이스들과의 통신을 가능하게 하는 통신 인터페이스(850)를 포함한다. 통신 인터페이스(850)는 통신 채널(890)을 통해 데이터를 송신하도록 그리고 수신하도록 구성된 송수신기를 포함할 수 있지만, 이에 제한되지 않는다. 통신 인터페이스(850)는 모뎀 또는 네트워크 카드를 포함할 수 있지만 이에 제한되지 않으며, 통신 채널(890)은, 예를 들어, 유선 및/또는 무선 매체 내에서 구현될 수 있다.
데이터는, 다양한 실시예들에서, Wi-Fi 네트워크, 예를 들어, IEEE 802.11(IEEE는 전기 전자 기술자 협회(Institute of Electrical and Electronics Engineers)를 지칭함)과 같은 무선 네트워크를 사용하여, 시스템(800)에 스트리밍되거나 또는 달리 제공된다. 이들 실시예들의 Wi-Fi 신호는 Wi-Fi 통신들에 대해 적응되는 통신 채널(890) 및 통신 인터페이스(850)를 통해 수신된다. 이들 실시예들의 통신 채널(890)은 전형적으로, 스트리밍 응용들 및 다른 오버더톱(over-the-top) 통신을 허용하기 위한 인터넷을 포함하는 외부 네트워크들에 대한 액세스를 제공하는 액세스 포인트 또는 라우터에 접속된다. 다른 실시예들은 입력 블록(805)의 HDMI 접속을 통해 데이터를 전달하는 셋톱 박스를 사용하여 스트리밍된 데이터를 시스템(800)에 제공한다. 또 다른 실시예들은 입력 블록(805)의 RF 접속을 사용하여 스트리밍된 데이터를 시스템(800)에 제공한다. 전술한 바와 같이, 다양한 실시예들은 비-스트리밍 방식으로 데이터를 제공한다. 또한, 다양한 실시예들은 Wi-Fi 이외의 무선 네트워크들, 예를 들어 셀룰러 네트워크 또는 블루투스 네트워크를 사용한다.
시스템(800)은 디스플레이(865), 스피커들(875), 및 다른 주변 디바이스들(885)을 포함하는 다양한 출력 디바이스들에 출력 신호를 제공할 수 있다. 다양한 실시예들의 디스플레이(865)는, 예를 들어, 터치스크린 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 커브드(curved) 디스플레이, 및/또는 폴더블(foldable) 디스플레이 중 하나 이상을 포함한다. 디스플레이(865)는 텔레비전, 태블릿, 랩톱, 휴대폰(모바일 폰), 또는 다른 디바이스를 위한 것일 수 있다. 디스플레이(865)는 또한 (예를 들어, 스마트폰에서와 같이) 다른 컴포넌트들과 통합될 수 있거나, 또는 별개일 수 있다(예를 들어, 랩톱을 위한 외부 모니터). 실시예들의 다양한 예들에서, 다른 주변 디바이스들(885)은 독립형 디지털 비디오 디스크(또는 디지털 다기능 디스크)(두 용어들 모두에 대해, DVR), 디스크 플레이어, 스테레오 시스템 및/또는 조명 시스템 중 하나 이상을 포함한다. 다양한 실시예들은 시스템(800)의 출력에 기초하여 기능을 제공하는 하나 이상의 주변 디바이스들(885)을 사용한다. 예를 들어, 디스크 플레이어는 시스템(800)의 출력을 재생하는 기능을 수행한다.
다양한 실시예들에서, 제어 신호들은, 시그널링, 예컨대, AV.Link, CEC(Consumer Electronics Control), 또는 사용자 개입이 있거나 또는 개입 없이 디바이스 대 디바이스 제어를 가능하게 하는 다른 통신 프로토콜들을 사용하여 시스템(800)과 디스플레이(865), 스피커들(875), 또는 다른 주변 디바이스들(885) 사이에서 통신된다. 출력 디바이스들은 각자의 인터페이스들(865, 875, 885)을 통해 전용 접속들을 거쳐 시스템(800)에 통신가능하게 커플링될 수 있다. 대안적으로, 출력 디바이스들은 통신 인터페이스(850)를 통해 통신 채널(890)을 사용하여 시스템(800)에 접속될 수 있다. 디스플레이(865) 및 스피커들(875)은, 예를 들어, 텔레비전과 같은 전자 디바이스에서 시스템(800)의 다른 컴포넌트들과 단일 유닛으로 통합될 수 있다. 다양한 실시예들에서, 디스플레이 인터페이스(865)는, 예를 들어, 타이밍 제어기(T Con) 칩과 같은 디스플레이 드라이버를 포함한다.
디스플레이(865) 및 스피커(875)는 대안적으로, 예를 들어, 입력(805)의 RF 부분이 별개의 셋톱 박스의 일부인 경우, 다른 컴포넌트들 중 하나 이상과 별개일 수 있다. 디스플레이(865) 및 스피커들(875)이 외부 컴포넌트들인 다양한 실시예들에서, 출력 신호는, 예를 들어, HDMI 포트들, USB 포트들, 또는 COMP 출력들을 포함하는 전용 출력 접속들을 통해 제공될 수 있다.
실시예들은 프로세서(810)에 의해 구현되는 컴퓨터 소프트웨어에 의해 또는 하드웨어에 의해, 또는 하드웨어와 소프트웨어의 조합에 의해 수행될 수 있다. 비제한적인 예로서, 실시예들은 하나 이상의 집적 회로들에 의해 구현될 수 있다. 메모리(820)는 기술적 환경에 적절한 임의의 유형의 것일 수 있고, 비제한적인 예들로서, 광학 메모리 디바이스, 자기 메모리 디바이스, 반도체 기반 메모리 디바이스, 고정 메모리, 및 착탈식 메모리와 같은 임의의 적절한 데이터 저장 기술을 사용하여 구현될 수 있다. 프로세서(810)는 기술적 환경에 적절한 임의의 유형의 것일 수 있고, 비제한적인 예들로서, 마이크로프로세서들, 범용 컴퓨터들, 특수 목적 컴퓨터들, 및 멀티 코어 아키텍처에 기반한 프로세서들 중 하나 이상을 포괄할 수 있다.
다양한 구현예들이 디코딩을 수반한다. 본 출원에서 사용되는 바와 같이, "디코딩"은 예를 들어, 수신된 인코딩된 시퀀스에 대해 수행되어 디스플레이에 적합한 최종 출력을 생성하는 프로세스들의 전부 또는 일부를 포함할 수 있다. 다양한 실시예들에서, 그러한 프로세스들은 디코더에 의해 전형적으로 수행되는 프로세스들 중 하나 이상의 프로세스들, 예를 들어, 엔트로피 디코딩, 역양자화, 역변환, 및 차동 디코딩을 포함한다. 다양한 실시예들에서, 그러한 프로세스들은 또한, 또는 대안적으로, 본 출원에 기술된 다양한 구현예들의 디코더에 의해 수행되는 프로세스들을 포함하며, 이는, 예를 들어, 역변환을 포함한다.
추가 예들로서, 하나의 실시예에서, "디코딩"은 엔트로피 디코딩만을 지칭하고, 다른 실시예에서, "디코딩"은 차동 디코딩만을 지칭하고, 또 다른 실시예에서, "디코딩"은 엔트로피 디코딩과 차동 디코딩의 조합을 지칭한다. 어구 "디코딩 프로세스"가 동작들의 서브세트를 구체적으로 나타내기 위한 것인지, 또는 대체적으로 보다 광의의 디코딩 프로세스를 나타내기 위한 것인지 여부는 특정 설명들의 맥락에 기초하여 명확할 것이며, 당업자에 의해 잘 이해될 것으로 여겨진다.
다양한 구현예들이 인코딩을 수반한다. "디코딩"에 대한 상기 논의와 유사한 방식으로, 본 출원에서 사용되는 바와 같은 "인코딩"은, 예를 들어 입력 비디오 시퀀스에 대해 수행되어 인코딩된 비트스트림을 생성하는 프로세스들의 전부 또는 일부를 포함할 수 있다. 다양한 실시예들에서, 이러한 프로세스들은 전형적으로 인코더에 의해 수행되는 프로세스들, 예를 들어, 파티셔닝, 차동 인코딩, 변환, 양자화, 및 엔트로피 인코딩 중 하나 이상을 포함한다. 다양한 실시예들에서, 그러한 프로세스들은 또한, 또는 대안적으로, 예를 들어, 이미지 블록을 주파수 도메인으로 변환하는, 본 출원에서 설명된 다양한 구현들의 인코더에 의해 수행되는 프로세스들을 포함한다.
추가 예들에서, 하나의 실시예에서, "인코딩"은 단지 엔트로피 인코딩을 지칭하며, 다른 실시예에서 "인코딩"은 단지 차동 인코딩을 지칭하고, 다른 실시예에서 "인코딩"은 차동 인코딩과 엔트로피 인코딩의 조합을 지칭한다. 어구 "인코딩 프로세스"가 동작들의 서브세트를 구체적으로 나타내기 위한 것인지, 또는 대체적으로 보다 광의의 인코딩 프로세스를 나타내기 위한 것인지 여부는 특정 설명들의 맥락에 기초하여 명확할 것이며, 당업자에 의해 잘 이해될 것으로 여겨진다.
본 명세서에 사용된 바와 같은 신택스 요소들은 설명적 용어들임에 유의한다. 이와 같이, 이들은 다른 신택스 요소 명칭들의 사용을 배제하지 않는다.
도면이 흐름도로서 제시될 때, 그것은 또한 대응하는 장치의 블록도를 제공한다는 것을 이해해야 한다. 유사하게, 도면이 블록도로서 제시될 때, 그것은 또한 대응하는 방법/프로세스의 흐름도를 제공한다는 것을 이해해야 한다.
다양한 실시예들은 레이트 왜곡 최적화를 지칭한다. 특히, 인코딩 프로세스 동안, 계산 복잡성의 제약들이 종종 주어지면, 레이트와 왜곡 사이의 균형 또는 트레이드오프가 보통 고려된다. 레이트 왜곡 최적화는 일반적으로 레이트와 왜곡의 가중 합인 레이트 왜곡 함수를 최소화하는 것으로 공식화된다. 레이트 왜곡 최적화 문제를 해결하기 위한 상이한 접근법들이 있다. 예를 들어, 접근법들은, 코딩 및 디코딩 후 재구성된 신호의 코딩 비용 및 관련된 왜곡의 완전한 평가를 이용한, 모든 고려된 모드들 또는 코딩 파라미터들 값들을 포함하는 모든 인코딩 옵션들의 광범위한 테스트에 기초할 수 있다. 특히 재구성된 것이 아니라 예측 또는 예측 잔차 신호에 기초한 근사화된 왜곡의 계산과 함께 인코딩 복잡성을 덜기 위해, 더 빠른 접근법들이 또한 사용될 수 있다. 이들 2개의 접근법들의 혼합은 또한, 예컨대, 가능한 인코딩 옵션들 중 일부만에 대한 근사화된 왜곡 및 다른 인코딩 옵션들에 대한 완전한 왜곡을 사용함으로써 사용될 수 있다. 다른 접근법들은 가능한 인코딩 옵션들의 서브세트만을 평가한다. 보다 일반적으로, 많은 접근법들은 최적화를 수행하기 위해 다양한 기술들 중 임의의 기술을 채용하지만, 최적화가 반드시 코딩 비용과 관련된 왜곡 둘 모두에 대한 완전한 평가이지는 않다.
본 명세서에 기술된 구현예들 및 태양들은, 예를 들어, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림, 또는 신호에서 구현될 수 있다. 구현예의 단일 형태의 맥락에서 논의된다 하더라도(예를 들어, 방법으로서만 논의됨), 논의된 특징들의 구현예는 다른 형태들(예를 들어, 장치 또는 프로그램)에서 구현될 수 있다. 장치는, 예를 들어, 적절한 하드웨어, 소프트웨어, 및 펌웨어로 구현될 수 있다. 방법들은, 예를 들어, 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그래밍가능 로직 디바이스를 포함하는, 대체적으로 처리 디바이스들로 지칭되는, 예를 들어, 프로세서에서 구현될 수 있다. 프로세서들은 또한, 예를 들어, 컴퓨터들, 휴대폰들, 휴대용/개인 디지털 어시스턴트들("PDA들"), 및 최종 사용자들 사이의 정보의 통신을 용이하게 하는 다른 디바이스들과 같은 통신 디바이스들을 포함한다.
"하나의 실시예" 또는 "일 실시예" 또는 "하나의 구현예" 또는 "일 구현예"뿐만 아니라 그의 다른 변형들에 대한 언급은, 실시예와 관련하여 기술된 특정 특징부, 구조, 특성 등이 적어도 하나의 실시예에 포함됨을 의미한다. 따라서, 본 출원 전반에 걸친 다양한 곳에서 나타나는 어구 "하나의 실시예에서" 또는 "일 실시예에서" 또는 "하나의 구현예에서" 또는 "일 구현예에서"뿐만 아니라 임의의 다른 변형들의 출현들이 반드시 모두 동일한 실시예를 언급하는 것은 아니다.
또한, 본 출원은 다양한 피스들의 정보들을 "결정하는 것"을 언급할 수 있다. 정보를 결정하는 것은, 예를 들어 정보를 추정하는 것, 정보를 계산하는 것, 정보를 예측하는 것, 또는 메모리로부터 정보를 검색하는 것 중 하나 이상을 포함할 수 있다.
또한, 본 출원은 다양한 피스들의 정보에 "액세스하는 것"을 언급할 수 있다. 정보에 액세스하는 것은, 예를 들어 정보를 수신하는 것, (예를 들어, 메모리로부터) 정보를 검색하는 것, 정보를 저장하는 것, 정보를 이동하는 것, 정보를 복사하는 것, 정보를 계산하는 것, 정보를 결정하는 것, 정보를 예측하는 것, 또는 정보를 추정하는 것 중 하나 이상을 포함할 수 있다.
또한, 본 출원은 다양한 피스들의 정보를 "수신하는 것"을 언급할 수 있다. 수신하는 것은 "액세스하는 것"과 마찬가지로 광의의 용어인 것으로 의도된다. 정보를 수신하는 것은, 예를 들어, 정보에 액세스하는 것, 또는 (예를 들어, 메모리로부터) 정보를 검색하는 것 중 하나 이상을 포함할 수 있다. 또한, "수신하는 것"은 전형적으로, 예를 들어 정보를 저장하는 동작, 정보를 처리하는 동작, 정보를 전송하는 동작, 정보를 이동하는 동작, 정보를 복사하는 동작, 정보를 소거하는 동작, 정보를 계산하는 동작, 정보를 결정하는 동작, 정보를 예측하는 동작, 또는 정보를 추정하는 동작과 같은 동작들 동안 어떤 방식으로든 수반된다.
예를 들어 다음의 "A/B", "A 및/또는 B" 및 "A 및 B 중 적어도 하나"의 경우들에서 "/", "및/또는", 및 "적어도 하나" 중 임의의 것의 사용은 제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)의 선택을 포함하도록 의도된다. 이는, 본 명세서에 기술된 바와 같은 많은 항목들에 대해, 본 명세서 및 관련 분야의 당업자에게 명백한 바와 같이 확장될 수 있다.
또한, 본 명세서에 사용된 바와 같이, 용어 "신호"는 특히 대응하는 디코더에게 무언가를 나타내는 것을 지칭한다. 예를 들어, 소정 실시예들에서, 인코더는 변환을 위한 복수의 파라미터들 중 특정 파라미터를 시그널링한다. 이러한 방식으로, 일 실시예에서, 동일한 파라미터가 인코더 측 및 디코더 측 둘 모두에서 사용된다. 따라서, 예를 들어, 인코더는 디코더가 동일한 특정 파라미터를 사용할 수 있도록 디코더에 특정 파라미터를 송신할 수 있다(명시적 시그널링). 반대로, 디코더가 이미 특정 파라미터뿐만 아니라 다른 것들을 갖고 있다면, 단순히 디코더가 특정 파라미터를 알고 선택할 수 있게 하기 위해 송신 없이 시그널링이 사용될 수 있다(암시적 시그널링). 임의의 실제 기능들의 송신을 회피함으로써, 다양한 실시예들에서 비트 절약이 실현된다. 시그널링은 다양한 방식들로 달성될 수 있다는 것이 이해되어야 한다. 예를 들어, 하나 이상의 신택스 요소들, 플래그들 등이 다양한 실시예들에서 대응하는 디코더에 정보를 시그널링하는 데 사용된다. 전술된 표현이 단어 "신호"의 동사 형태와 관련되지만, 단어 "신호"는 또한 명사로서 본 명세서에서 사용될 수 있다.
이러한 개시내용은, 예를 들어, 송신 또는 저장될 수 있는, 예를 들어, 신택스와 같은 다양한 정보들을 설명하였다. 이러한 정보는, 예를 들어 정보를 SPS, PPS, NAL 유닛, 헤더(예를 들어, NAL 유닛 헤더, 또는 슬라이스 헤더), 또는 SEI 메시지에 넣는 것과 같은 비디오 표준들에서 보편적인 방식들을 포함하는, 다양한 방식들로 패키징되거나 배열될 수 있다. 예를 들어, 정보를 다음에 넣는 것과 같은 시스템 레벨 또는 애플리케이션 레벨 표준들에 대해 보편적인 방식들을 포함하는, 다른 방식들이 또한 이용가능하다:
SDP(session description protocol), 예를 들어, RFC들에 설명되고 RTP(Real-time Transport Protocol) 송신과 함께 사용되는 바와 같은, 세션 공지 및 세션 초대의 목적을 위한 멀티미디어 통신 세션들을 설명하기 위한 포맷.
예를 들어, DASH에서 사용되고 HTTP를 통해 송신되는 것과 같은, DASH MPD(Media Presentation Description) 디스크립터들, 디스크립터는 콘텐츠 표현에 추가적인 특성을 제공하기 위한 표현 또는 표현들의 모음에 연관됨.
예를 들어, RTP 스트리밍 동안 사용되는 바와 같은, RTP 헤더 확장들, 및/또는
예를 들어, OMAF에서 사용되는 것과 같은 그리고 일부 사양들에서 '아톰(atom)들'로서도 알려진 고유 유형 식별자 및 길이에 의해 정의되는 객체 지향 구축 블록들인 박스들을 사용하는, ISO 기반 미디어 파일 포맷.
당업자에게 명백한 바와 같이, 구현예들은, 예를 들어 저장되거나 송신될 수 있는 정보를 반송하도록 포맷화된 다양한 신호들을 생성할 수 있다. 예를 들어, 정보는 방법을 수행하기 위한 명령어들, 또는 기술된 구현예들 중 하나에 의해 생성된 데이터를 포함할 수 있다. 예를 들어, 신호는 기술된 실시예의 비트스트림을 전달하도록 포맷화될 수 있다. 그러한 신호는, 예를 들어, 전자기파로서(예를 들어, 스펙트럼의 무선 주파수 부분을 사용함) 또는 기저대역 신호로서 포맷화될 수 있다. 포맷화는, 예를 들어, 데이터 스트림을 인코딩하는 것, 및 인코딩된 데이터 스트림으로 캐리어를 변조하는 것을 포함할 수 있다. 신호가 반송하는 정보는, 예를 들어, 아날로그 또는 디지털 정보일 수 있다. 신호는, 알려진 바와 같이, 다양한 상이한 유선 또는 무선 링크들을 통해 송신될 수 있다. 신호는 프로세서 판독가능 매체 상에 저장될 수 있다.
다수의 실시예들을 설명한다. 이들 실시예들의 특징부들은 다양한 청구항 카테고리들 및 유형들에 걸쳐 단독으로 또는 임의의 조합으로 제공될 수 있다. 또한, 실시예들은 다양한 청구 범위들 및 유형들에 걸쳐 단독으로 또는 임의의 조합으로 다음의 특징부들, 디바이스들, 또는 태양들 중 하나 이상을 포함할 수 있다:
디코더 및/또는 인코더에서 필름 그레인 프로세스를 적응시키는 것.
디코더에서의 필름 그레인 시뮬레이션 프로세스에서 그리고/또는 인코더에서의 필름 그레인 추정 프로세스에서 적용할 코어 변환들 중 일정 변환을 선택하는 것.
디코더에서 적용할 필름 그레인 프로세스에 대한 정보를 시그널링하는 것.
필름 그레인 정보로부터 적용할 필름 그레인 프로세스에 대한 정보를 도출하는 것 - 도출하는 것은 디코더 및/또는 인코더에서 적용됨.
변환 유형들, 변환 크기들...과 같은, 디코더가 사용할 필름 그레인 프로세스를 식별할 수 있게 하는 시그널링 신택스 요소들에 삽입하는 것.
이들 신택스 요소들에 기초하여, 디코더에서 적용할 적어도 하나의 변환 유형 및 변환 크기 프로세스를 선택하는 것.
기술된 신택스 요소들, 또는 이들의 변형들 중 하나 이상을 포함하는 비트스트림 또는 신호.
기술된 실시예들 중 임의의 것에 따라 생성된 신택스 이송 정보를 포함하는 비트스트림 또는 신호.
디코더가 인코더에 의해 사용된 것에 대응하는 방식으로 필름 그레인을 처리할 수 있게 하는 시그널링 신택스 요소들에 삽입하는 것.
기술된 신택스 요소들, 또는 이들의 변형들 중 하나 이상을 포함하는 비트스트림 또는 신호를 생성하고/하거나 송신하고/하거나 수신하고/하거나 디코딩하는 것.
기술된 실시예들 중 임의의 것에 따라 생성하고/하거나 송신하고/하거나 수신하고/하거나 디코딩하는 것.
기술된 실시예들 중 임의의 것에 따른 방법, 프로세스, 장치, 명령어들을 저장하는 매체, 데이터를 저장하는 매체, 또는 신호.
기술된 실시예들 중 임의의 것에 따라 코어 변환들에 적응된 필름 그레인 프로세스를 수행하는 TV, 셋톱 박스, 휴대폰, 태블릿, 또는 다른 전자 디바이스.
기술된 실시예들 중 임의의 것에 따라 코어 변환들에 적응된 필름 그레인 프로세스를 수행하고, (예컨대, 모니터, 스크린, 또는 다른 유형의 디스플레이를 사용하여) 생성된 이미지를 디스플레이하는 TV, 셋톱 박스, 휴대폰, 태블릿, 또는 다른 전자 디바이스.
기술된 실시예들 중 임의의 것에 따라 인코딩된 이미지를 포함하는 신호를 수신하기 위한 채널을 (예컨대, 동조기를 사용하여) 선택하고, 코어 변환들에 적응된 필름 그레인 프로세스를 수행하는 TV, 셋톱박스, 휴대폰, 태블릿, 또는 다른 전자 디바이스.
기술된 실시예들 중 임의의 것에 따라 인코딩된 이미지를 포함하는 신호를 무선으로 (예컨대, 안테나를 사용하여) 수신하고, 코어 변환들에 적응된 필름 그레인 프로세스를 수행하는 TV, 셋톱박스, 휴대폰, 태블릿, 또는 다른 전자 디바이스.

Claims (21)

  1. 방법으로서,
    이미지 블록과 연관된 필름 그레인(film grain)의 속성을 특정하는 적어도 하나의 파라미터를 포함하는 필름 그레인 정보를 수신하는 단계;
    DCT-II, DCT-VII, 또는 DST-VII 중 하나인 변환을 랜덤 값들의 블록에 적용하는 단계;
    상기 변환된 랜덤 값들의 블록을 필터링하는 단계 - 상기 필터링은 상기 수신된 필름 그레인 정보에서의 적어도 하나의 파라미터에 의해 정의됨 -; 및
    상기 필터링된 변환된 랜덤 값들의 블록에 각자의 역변환을 적용하여, 상기 이미지 블록에 대한 필름 그레인 패턴을 갖는 픽셀들의 블록을 생성하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 변환은 DCT-II이고, 상기 픽셀들의 블록의 크기는 N×M이고, 여기서 N은 범위 [2 내지 64] 내의 정수이고, M은 범위 [2 내지 64] 내의 정수인, 방법.
  3. 제1항에 있어서, 상기 변환은 DCT-VIII, DST-VII 중 하나이고, 상기 픽셀들의 블록의 크기는 N×M이고, 여기서 N은 범위 [4 내지 32] 내의 정수이고, M은 범위 [4 내지 32] 내의 정수인, 방법.
  4. 제2항 또는 제3항에 있어서, N 및 M은 동일한, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 변환은 상기 DCT-II, DCT-VIII, DST-VII의 정수 근사치인, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 필름 그레인 정보를 수신하는 단계는, 상기 적어도 하나의 파라미터를 포함하는 보충 강화 정보 메시지를 디코딩하는 단계를 추가로 포함하는, 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 이미지 블록의 루마 및 크로마 성분들에 대해 동일한 변환 유형 및 동일한 변환 크기가 사용되는, 방법.
  8. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 이미지 블록의 루마 및 크로마 성분들에 대해 동일한 변환 유형 및 상이한 변환 크기들이 사용되는, 방법.
  9. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 이미지 블록의 루마 및 크로마 성분들에 대해 상이한 변환 유형들 및 동일한 변환 크기가 사용되는, 방법.
  10. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 이미지 블록의 루마 및 크로마 성분들에 대해 상이한 변환 유형들 및 상이한 변환 크기들이 사용되는, 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서, 상기 수신된 필름 그레인 정보는,
    상기 이미지 블록의 루마 성분에 사용되는 변환 유형의 표시,
    상기 이미지 블록의 루마 성분에 사용되는 변환 크기의 표시,
    상기 이미지 블록의 크로마 성분들에 사용되는 변환 유형의 표시,
    상기 이미지 블록의 크로마 성분들에 사용되는 변환 크기의 표시,
    상기 이미지 블록의 루마 및 크로마 성분들에 사용되는 동일한 변환 유형의 표시,
    상기 이미지 블록의 루마 및 크로마 성분들에 사용되는 동일한 변환 크기의 표시,
    루마 변환 유형이 추론되는지 또는 그렇지 않은지에 대한 표시 중 적어도 하나를 추가로 포함하는, 방법.
  12. 제11항에 있어서, 상기 이미지 블록의 크로마 성분들에 사용되는 변환 유형 및 변환 크기는, 상기 이미지 블록의 루마 성분에 대한 변환 유형의 표시 및 상기 이미지 블록의 루마 성분에 대한 변환 크기의 표시로부터 도출되는, 방법.
  13. 제11항에 있어서, 상기 이미지 블록의 루마 및 크로마 성분들에 대해 수평 변환 유형 및 수직 변환 유형이 사용되고, 상기 수평 변환 유형 및 수평 변환 유형은 상이한, 방법.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서, 상기 이미지 블록의 크기에 따라 상기 이미지 블록과 연관된 상기 필름 그레인의 속성을 특정하는 적어도 하나의 파라미터를 스케일링하는 단계를 추가로 포함하는, 방법.
  15. 제1항 내지 제14항 중 어느 한 항에 있어서, 상기 변환은 표준화된 DCT-II, DCT-VIII, DST-VII 중 하나인, 방법.
  16. 방법으로서,
    이미지 블록에서 필름 그레인 추정치를 나타내는 필름 그레인 블록을 수신하는 단계;
    DCT-II, DCT-VIII, DST-VII 중 하나인 변환을 필름 그레인 블록에 적용하는 단계; 및
    상기 변환된 필름 그레인 블록으로부터 상기 이미지 블록과 연관된 필름 그레인의 속성을 특정하는 적어도 하나의 파라미터를 생성하는 단계를 포함하는, 방법.
  17. 이미지 블록과 연관된 필름 그레인의 속성을 특정하는 적어도 하나의 파라미터를 포함하는 필름 그레인 정보를 포함하는, 비디오 데이터가 인코딩된 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 이미지 블록과 연관된 필름 그레인의 속성을 특정하는 상기 적어도 하나의 파라미터를 생성하는 데 사용되는 변환은 DCT-II, DCT-VIII, DST-VII 중 하나인, 비일시적 컴퓨터 판독가능 저장 매체.
  18. 제17항에 있어서, 필름 그레인 정보는,
    - 상기 이미지 블록의 루마 성분에 사용되는 변환 유형의 표시,
    - 상기 이미지 블록의 루마 성분에 사용되는 변환 크기의 표시,
    - 상기 이미지 블록의 크로마 성분들에 사용되는 변환 유형의 표시,
    - 상기 이미지 블록의 크로마 성분들에 사용되는 변환 크기의 표시,
    - 상기 이미지 블록의 루마 및 크로마 성분들에 사용되는 동일한 변환 유형의 표시,
    - 상기 이미지 블록의 루마 및 크로마 성분들에 사용되는 동일한 변환 크기의 표시,
    - 루마 변환 유형이 추론되는지 또는 그렇지 않은지에 대한 표시 중 적어도 하나를 추가로 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  19. 제17항에 있어서, 필름 그레인 정보는 상기 적어도 하나의 파라미터를 포함하는 보충 강화 정보 메시지로서 인코딩되는, 비일시적 컴퓨터 판독가능 저장 매체.
  20. 메모리 및 하나 이상의 프로세서들을 포함하는 장치로서, 상기 하나 이상의 프로세서들은 제1항 내지 제16항 중 어느 한 항에 따른 방법을 수행하도록 구성되는, 장치.
  21. 제1항 내지 제16항 중 어느 한 항에 따른 방법을 수행하기 위해 컴퓨터에 의해 실행가능한 명령어들의 프로그램을 유형적으로 구현하는, 컴퓨터에 의해 판독가능한, 비일시적 프로그램 저장 디바이스.
KR1020237031788A 2021-03-18 2022-03-15 필름 그레인 파라미터들을 생성하기 위한 방법 또는 장치, 필름 그레인 패턴을 갖는 픽셀들의 블록을 생성하기 위한 방법 또는 장치 KR20230157974A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP21305329.1 2021-03-18
EP21305329 2021-03-18
PCT/EP2022/056699 WO2022194866A1 (en) 2021-03-18 2022-03-15 A method or an apparatus for generating film grain parameters, a method or an apparatus for generating a block of pixels with film grain pattern

Publications (1)

Publication Number Publication Date
KR20230157974A true KR20230157974A (ko) 2023-11-17

Family

ID=75302478

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237031788A KR20230157974A (ko) 2021-03-18 2022-03-15 필름 그레인 파라미터들을 생성하기 위한 방법 또는 장치, 필름 그레인 패턴을 갖는 픽셀들의 블록을 생성하기 위한 방법 또는 장치

Country Status (7)

Country Link
US (1) US20240171781A1 (ko)
EP (1) EP4309368A1 (ko)
JP (1) JP2024509923A (ko)
KR (1) KR20230157974A (ko)
CN (1) CN117099371A (ko)
IL (1) IL305709A (ko)
WO (1) WO2022194866A1 (ko)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2340944C2 (ru) * 2003-10-14 2008-12-10 Томсон Лайсенсинг Способ имитации зерна пленки на битовом уровне

Also Published As

Publication number Publication date
IL305709A (en) 2023-11-01
WO2022194866A1 (en) 2022-09-22
US20240171781A1 (en) 2024-05-23
CN117099371A (zh) 2023-11-21
EP4309368A1 (en) 2024-01-24
JP2024509923A (ja) 2024-03-05

Similar Documents

Publication Publication Date Title
CN114009048A (zh) 视频译码中的滤波装置和方法
WO2022221374A9 (en) A method and an apparatus for encoding/decoding images and videos using artificial neural network based tools
WO2020117781A1 (en) Method and apparatus for video encoding and decoding with adjusting the quantization parameter to block size
WO2020263799A1 (en) High level syntax for controlling the transform design
WO2023275222A1 (en) A method or an apparatus for estimating film grain parameters
US20240171781A1 (en) A method or an apparatus for generating film grain parameters, a method or an apparatus for generating a block of pixels with film grain pattern
JP2023516940A (ja) ローカルクロマ量子化パラメータ制御のための高レベルの制約フラグ
EP3957073A1 (en) Method and apparatus for video encoding and decoding with optical flow based on boundary smoothed motion compensation
US20230232003A1 (en) Single-index quantization matrix design for video encoding and decoding
US20220368912A1 (en) Derivation of quantization matrices for joint cb-br coding
US20230262268A1 (en) Chroma format dependent quantization matrices for video encoding and decoding
KR20240072180A (ko) Isp 모드를 사용한 템플릿 기반 인트라 모드 도출(timd)의 확장
CN118077198A (zh) 用于对视频进行编码/解码的方法和装置
JP2023504372A (ja) ジョイントクロマの符号化されたブロックに対するスケーリング処理
WO2023046463A1 (en) Methods and apparatuses for encoding/decoding a video
JP2022540659A (ja) ルマツークロマ量子化パラメータテーブルシグナリング
WO2020260310A1 (en) Quantization matrices selection for separate color plane mode
WO2023186752A1 (en) Methods and apparatuses for encoding/decoding a video
KR20220152299A (ko) 비디오 인코딩 및 디코딩을 위한 방법 및 장치
WO2024002807A1 (en) Signaling corrections for a convolutional cross-component model
KR20220057630A (ko) 코딩 툴들과의 변환 크기 상호작용들
JP2024507791A (ja) ビデオを符号化/復号するための方法及び装置
WO2023046917A1 (en) Methods and apparatus for dmvr with bi-prediction weighting
KR20240018650A (ko) 픽처 리샘플링을 위한 고급 신택스
WO2023099249A1 (en) Downsample phase indication