KR20160035096A - 비디오 비트스트림을 트랜스코딩하기 위한 방법 및 어렌지먼트 - Google Patents

비디오 비트스트림을 트랜스코딩하기 위한 방법 및 어렌지먼트 Download PDF

Info

Publication number
KR20160035096A
KR20160035096A KR1020167006654A KR20167006654A KR20160035096A KR 20160035096 A KR20160035096 A KR 20160035096A KR 1020167006654 A KR1020167006654 A KR 1020167006654A KR 20167006654 A KR20167006654 A KR 20167006654A KR 20160035096 A KR20160035096 A KR 20160035096A
Authority
KR
South Korea
Prior art keywords
video
format
bitstream
bit stream
transcoding
Prior art date
Application number
KR1020167006654A
Other languages
English (en)
Other versions
KR101670208B1 (ko
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 KR20160035096A publication Critical patent/KR20160035096A/ko
Application granted granted Critical
Publication of KR101670208B1 publication Critical patent/KR101670208B1/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/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/18Methods 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 set of transform coefficients
    • 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/182Methods 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 pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/187Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • 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

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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

오리지널 비디오 소스를 입력 포맷에서 출력 포맷으로 나타내는 비트스트림을 트랜스코딩하는 방법 및 트랜스코더 어렌지먼트에 관한 것이다. 상기 방법은 고충실도 포맷인 입력 비디오 포맷을 갖는 비트스트림을 수신하는 단계(S10); 및 상기 비디오 비트스트림과 관련된 부가 정보를 수신하는 단계(S20)를 포함한다. 상기 부가 정보는 적어도: 저충실도 입력 비디오 포맷을 갖는 오리지널 비디오 소스를 나타내는 비디오 비트스트림, 상기 오리지널 비디오 소스의 지식에 기초하여 최적화된 코딩 파라미터, 및 상기 오리지널 비디오 소스와 디코드된 버전의 고충실도 포맷간 잔차를 나타내는 변환 계수를 포함한다. 상기 방법은 트랜스코딩 안내 정보를 생성하기 위해 상기 수신된 부가 정보를 디코딩하는 단계(S40); 수신된 비트스트림 및 생성된 트랜스코딩 안내 정보에 기초하여 저충실도 출력 포맷을 갖는 비트스트림의 표시를 추정하는 단계(S50); 저충실도 출력 포맷을 갖는 비트스트림의 추정된 표시를 향상시키기 위해 저충실도 출력 포맷을 갖는 비트스트림의 추정된 표시로부터 생성된 변환 계수에 부가 정보의 변환 계수를 부가하는 단계(S60); 및 저충실도 출력 포맷을 갖는 비트스트림의 향상된 추정된 표시를 인코딩하는 단계(S70)를 포함한다.

Description

비디오 비트스트림을 트랜스코딩하기 위한 방법 및 어렌지먼트{METHOD AND ARRANGEMENT FOR TRANSCODING A VIDEO BITSTREAM}
통상 본원에 제안된 기술은 오리지널 비디오 소스를 입력 포맷에서 출력 포맷으로 나타내는 비트스트림을 트랜스코딩하기 위한 방법 및 어렌지먼트에 관한 것이다.
비디오 미디어가 고정 또는 무선 통신 시스템에서 전송될 경우, 통상 그러한 비디오 미디어는 소스와 싱크(sink)간 몇몇 중간 노드에서 적응(adapt) 또는 트랜스코딩된다. 상기 소스는 미디어 공급자에 의해 예시되고, 상기 싱크는 모바일 장치와 같은 시각 장치에 의해 예시될 것이다. 상기 적응 동안, 통상 그러한 소스 노드로부터 선택하기 위한 다수의 비트율을 요하는 비디오 미디어는 압축된다. 최적의 비트율은 업링크 및 다운링크 모두를 가장 효율적으로 이용하기 위한 고려사항으로 그러한 네트워크 성능 및 싱크 성능 모두를 취할 것이다. 이에 의해 비디오를 소스에서 인코딩할 경우, 상기 소스 노드는 최종 사용자 능력 및 네트워크 성능을 알지 못하기 때문에, 중간 노드는 원하는 또는 필요한 포맷으로 싱크에 그것을 제공하도록 비디오를 적응시켜야 한다. 이는 다운링크 성능의 사용을 최적화하기 위해 그러한 적응 또는 트랜스코딩 노드에 대해 높은 품질의 소스 및 높은 레벨의 복잡한 계산을 필요로 한다. 상기 소스는 수신측의 성능 또는 다운링크 대역폭에 맞추기 위해 트랜스코더에서 재인코드되어야 하므로 높은 품질을 가져야 한다.
상기한 상황을 감안하여, 업링크 및 다운링크 리소스의 이용을 최적화하기 위해 향상된 방식으로 비디오 미디어의 적응 및 트랜스코딩을 가능하게 하는 향상된 코딩을 위한 수단 및 방법이 필요하다.
본원의 목적은 상기 기술된 단점들의 일부 또는 모두를 없애는 해결책을 제공하는데 있다.
상기 목적 및 다른 목적들은 본 발명의 실시예들에 의해 충족된다.
제1형태에 따르면, 비트스트림을 트랜스코딩하는 트랜스코더 어렌지먼트(transcoder arrangement)를 위한 방법이 제공된다. 상기 비트스트림은 오리지널 비디오 소스를 나타내고 입력 포맷에서 출력 포맷으로 트랜스코드된다. 상기 방법에 있어서, 입력 비디오 포맷을 갖는 상기 비트스트림이 수신되며, 상기 입력 비디오 포맷은 고충실도 포맷이다. 더욱이, 상기 비디오 비트스트림과 관련된 부가 정보가 수신되고, 상기 부가 정보는 적어도 저충실도 입력 비디오 포맷을 갖는 오리지널 비디오 소스를 나타내는 비디오 비트스트림, 상기 오리지널 비디오 소스의 지식에 기초하여 최적화된 코딩 파라미터, 및 상기 오리지널 비디오 소스와 디코드된 버전의 고충실도 포맷간 잔차(residual)를 나타내는 변환 계수를 포함한다. 상기 수신된 부가 정보는 트랜스코딩 안내 정보를 생성하기 위해 디코드되고, 저충실도 출력 포맷을 갖는 상기 비트스트림의 표시는 상기 수신된 비트스트림 및 생성된 트랜스코딩 안내 정보에 기초하여 추정된다. 상기 부가 정보의 변환 계수는 상기 저충실도 출력 포맷을 갖는 상기 비트스트림의 그러한 추정된 표시를 향상시키기 위해 상기 저충실도 출력 포맷을 갖는 상기 비트스트림의 추정된 표시로부터 생성된 변환 계수에 부가된다. 더욱이, 상기 비트스트림의 그러한 향상된 추정된 표시는 상기 저충실도 출력 포맷으로 인코드된다.
제2형태에 따르면, 오리지널 비디오 소스를 입력 포맷에서 출력 포맷으로 나타내는 비트스트림을 트랜스코딩하는 트랜스코더 어렌지먼트가 제공된다. 상기 트랜스코더 어렌지먼트는 입력 비디오 포맷을 갖는 비트스트림을 수신하도록 구성되며, 상기 입력 비디오 포맷은 고충실도 포맷이다. 상기 트랜스코더 어렌지먼트는 상기 비디오 비트스트림과 관련된 부가 정보를 수신하도록 더 구성되며, 상기 부가 정보는 적어도:
저충실도 입력 비디오 포맷을 갖는 오리지널 비디오 소스를 나타내는 비디오 비트스트림,
상기 오리지널 비디오 소스의 지식에 기초하여 최적화된 코딩 파라미터, 및
상기 오리지널 비디오 소스와 디코드된 버전의 고충실도 포맷간 잔차를 나타내는 변환 계수를 포함한다.
상기 트랜스코더 어렌지먼트는 트랜스코딩 안내 정보를 생성하기 위해 상기 수신된 부가 정보를 디코드하고, 수신된 비트스트림 및 생성된 트랜스코딩 안내 정보에 기초하여 저충실도 출력 포맷을 갖는 상기 비트스트림의 표시를 추정하고, 저충실도 출력 포맷을 갖는 상기 비트스트림의 추정된 표시를 향상시키기 위해 저충실도 출력 포맷을 갖는 상기 비트스트림의 추정된 표시로부터 생성된 변환 계수에 부가 정보의 변환 계수를 부가하며, 저충실도 출력 포맷을 갖는 상기 비트스트림의 향상된 추정된 표시를 인코드하도록 더 구성된다.
실시예들의 장점은 이들이 적응 또는 트랜스코딩 프로세스의 계산의 복잡성을 감소시키거나 감소시킬 수 있게 한다는 것이다.
다른 장점들은 상세한 설명을 읽음으로써 알 수 있을 것이다.
상기 실시예들 및 그 실시예들의 다른 목적 및 장점들은, 수반되는 도면들과 함께 다음의 설명을 참조함으로써 가장 잘 이해될 것이다:
도 1은 종래 기술에 따른 기본 적응 스킴(scheme)을 나타내고;
도 2는 종래 기술에 따른 트랜스코딩 스킴을 나타내고;
도 3은 본 발명의 실시예들에 따른 방법을 기술하는 순서도이고;
도 4-8은 본 발명의 실시예들의 다른 형태들을 개략적으로 나타내고;
도 9는 본 발명의 실시예를 개략적으로 나타내고, 도 6은 다른 실시예들을 나타내며;
도 10-11은 본 발명의 실시예들의 형태들을 개략적으로 나타내고;
도 12는 부가 정보의 다중 이용의 예를 나타내고;
도 13은 본 발명의 실시예에 따른 트랜스코딩 어렌지먼트를 개략적으로 나타내고;
도 14는 본 발명의 실시예에 따른 비디오 공급자 어렌지먼트를 개략적으로 나타내고;
도 15는 본 발명에 따른 트랜스코딩 어렌지먼트의 실시의 예를 나타내며;
도 16은 본 발명에 따른 비디오 공급자 어렌지먼트의 실시의 예를 나타낸다.
도면 전체에 걸쳐, 동일한 참조부호가 유사하거나 대응하는 요소들에 사용된다.
본원에 나타낸 바와 같이, 용어 "사용자 장비(UE)"는 예컨대 내장 또는 외장용 모바일 광대역 모뎀이 갖추어진 셀룰러 폰, 비디오 카메라, PDA, 스마트 폰, 랩탑 또는 퍼스널 컴퓨터(PC), 통신 기능이 있는 태블릿 PC, 휴대용 전자 통신 장치, 무선 통신 기능이 갖추어진 센서 장치 등과 같은 소정의 장치와 관련된다. 특히, 상기 용어 "UE"는 비제한의 용어로 해석되어야 하고 비디오 디코더를 갖춘 소정의 장치를 포함한다.
본원에 사용된 바와 같이, 상기 용어 트랜스코더 어렌지먼트는 네트워크 노드에 위치되는 트랜스코딩 또는 적응(adaptation) 장치와 관련된다. 네트워크 노드의 예로는 비디오 미디오(YouTube, Netflix) 및 최종-사용자(모바일 장치, PC, TV)와 연결된 서버가 있다. 통상 트랜스코더는 비디오 디코더 및 비디오 인코더로 이루어진다. 그러한 비디오는 픽셀값으로 디코드된 후 또 다른 포맷/비트율로 재인코드된다.
그러한 제안된 기술은 시스템의 환경으로 잘 이해되며, 비디오 공급자와 같은 소스 노드는 트랜스코딩 또는 적응 노드와 같은 중간 노드로 입력 비디오 신호 및 부가 정보로서 인코드된 비디오 비트 스트림을 제공하고, 이후 출력 비디오 신호로서 인코드된 비디오 비트스트림을 제공한다. 이후 상기 출력 비디오 신호는 사용자 장비 등과 같은 싱크 노드에서 수신되어 디스플레이될 수 있다.
그러한 제안된 기술을 더 잘 이해하기 위해서는, 현재의 적응 및 트랜스코딩 방법 및 그들 이점의 개요를 개시할 필요가 있다.
도 1은 입력 비디오 신호가 전송 장치(인코더)에서 인코드(압축)된 다음, 네트워크를 통해 전송 및/또는 저장(이하 더 설명되는 업링크, 적응, 및 다운링크로 나타낸 바와 같이)된 후, 수신 장치(디코더)에 의해 디코드된다. 다음에 상기 출력 비디오는 예컨대 수신 장치에서 최종 사용자에게 디스플레이될 수 있다.
통상 비디오 코딩에 있어서, 비디오 해상도, 프레임율, 품질, 비트율 등을 이용하기 위해 코딩 알고리즘(예컨대, 이용하기 위한 비디오 코딩 표준 및 프로파일)과 같은 인코딩 파라미터는 인코딩 시에 결정되어야 한다. 최적의 인코딩 파라미터는 수신 장치의 성능(계산 성능 및 메모리) 뿐만 아니라 포함된 네트워크 링크의 용량, 예컨대 이용가능한 대역폭에 따른다. 이들 파라미터는 많은 시나리오에 있어 인코딩 시에, 예컨대 네트워크 특성이 시간에 따라 또는 수신기의 위치에 따라 변할 때, 또는 비디오가 각각 다른 성능 또는 다른 연관된 네트워크 액세스 특성을 갖는 하나 이상의 수신 장치로 전송될 때 알려지지 않을 수 있다. 그와 같은 경우, 콘텐츠를 소비할 때 이용가능한 네트워크 리소스, 장치 성능 및 사용자 경험에 의해 가장 잘 대처하기 위해, 도 1에 "적응"으로 나타낸 바와 같이 네트워크에서 전송 동안 그 압축된 비디오 신호를 적응시켜야 한다.
전송기(인코더)에서 적응 노드까지의 네트워크 링크는 "업링크"로 나타냈다. 상기 적응 노드에서 수신기(디코더)까지의 네트워크 링크는 "다운링크"로 나타냈다. 그러한 업링크 및 다운링크 대역폭은 통상 희소 리소스이다. 그러한 경우, 전송기 및 수신기 모두는 고정 또는 모바일 네트워크에 연결된 최종-사용자 장치(예컨대, 스마트폰 또는 랩탑)이고, 통상 업링크 대역폭이 다운링크 대역폭보다 낮기(예컨대, ADSL 네트워크 또는 셀룰러 네트워크에서) 때문에 상기 업링크는 통상 버틀넥(bottleneck)이다. 그러한 경우, 상기 전송기는 스트리밍 서버, 또는 주문형 비디오 서버(또는 비디오 캐시)이고, 상기 수신기는 최종 사용자(예컨대, 스마트폰, 태블릿 또는 TV)이며, 상기 다운링크 대역폭은 종종 사용자로 전달될 수 있는 비디오 품질을 결정하는 버틀넥이다(예컨대, 최종-사용자가 DSL 또는 셀룰러 액세스를 통해 연결된 경우). 더욱이, 상기 업링크는 또한 고가의 리소스일 수 있는데, 즉 많은 다른 콘텐츠의 경우 전송기(예컨대, 주문형 비디오 서버)에서 최종 사용자로 전송되어야 하며, 이 경우 상기 업링크는 콘텐츠 분배 네트워크(CDN)가 될 것이다.
네트워크 용량 외에, 다른 희소 리소스로는 전송기 및 수신기에 있어, 특히 적응 또는 트랜스코딩 노드에 있어 계산 및 메모리 성능을 포함한다.
해결해야할 문제는 업링크 및 다운링크 비트율을 최소화하면서 동시에 인코더, 적응 노드, 및 디코더에서의 계산/메모리 복잡성을 최소화함으로써 네트워크 이용을 최적화하도록 비디오 인코딩/적응/디코딩을 위한 스킴을 제공하는 것이다.
H.264/AVC 및 H.265/HEVC와 같은 비디오 코딩 방법들은 통상 소위 하이브리드 비디오 코딩 스킴에 기초한다.
그러한 하이브리드 비디오 코딩 스킴에 있어서, 도 1에 예시된 바와 같은 인코더는 통상 블록 기반에 따라 비디오 시퀀스로 모든 픽처에 적용된 이하의 기본 단계들을 수행한다:
1. 앞서 이전에 인코드되고 재구성된 픽셀 데이터에 기초하여 오리지널 비디오 소스 신호(예컨대, 픽셀 데이터)를 예측하는 단계, 및 오리지널 비디오 소스 신호와 그러한 예측간 차이를 추정하는 단계를 포함하는 예측 동작을 수행한다. 상기 차이는 "잔차 데이터(residual data)" 또는 "잔차 신호" 또는 "잔차"라고 부른다. 소정 블록에 대한 그러한 예측 동작은 현재 인코드된 블록과 같은 동일한 픽처의 픽셀들에 기초하여 예측할 수 있는데, 이를 "인트라 예측(intra prediction)"이라 부르고, 또 앞서 이전에 인코드된 픽처의 픽셀들에 기초하여 예측할 수 있는데, 이를 "인터 예측(inter prediction)"이라 부른다. 그러한 예측에 사용된 소스 데이터를 "예측 기준"이라 부른다. 인터 예측 효율성을 향상시키기 위해, 기준 픽처에 대한 현재 인코드된 블록의 변위를 나타내는 동작 벡터에 기초하여 통상 소위 동작 보상 동작이 적용된다.
높은 압축 효율을 달성하기 위해, 상기 인코더는 코딩 모드, 블록 분할, 동작 벡터 등과 같은 각 블록에 대한 많은 다른 인코딩 파라미터를 트라이(try)해야 하며, 그러한 프로세스는 종종 모드/동작 추정 및/또는 레이트-왜곡 최적화(RDO; rate-distortion optimization)라고 부른다. 상기 프로세스는 상기 예측 단계보다 앞서는 다른 단계로 해석될 수 있다.
2. 예측 잔차 신호를 주파수 도메인으로 변환하기 위한 공간 변환 동작을 수행한다.
3. 그러한 결과의 변환 계수들은 예컨대 콘텍스트-적응형 이진 산술 코딩(CABAC; context-adaptive binary arithmetic coding)을 이용하여 양자화되고 엔트로피(entropy)-인코드된다. 블록 분할, 예측 모드(인터/인트라), 동작 벡터 등과 같은 다른 데이터 또한 엔트로피 인코드된다. 그러한 엔트로피 인코딩 스테이지(encoding stage)의 출력은 "비트스트림"이라 부른다.
4. 상기 인코더는 이후의 블록들을 인코딩하는데 사용될 기준 정보를 생성하기 위해 디코딩 프로세스(이하 참조)의 일부를 수행한다.
이하에서, 인코더에서 인터 및 인트라 예측 동작의 적용 및 잔차 데이터의 생성(상기 단계 1)은 "동작-보상 잔차 생성"이라 부를 것이다.
도 1의 디코더는 통상 블록 기반에 따라 비디오 시퀀스로 모든 픽처에 적용된 이하의 기본 단계들을 수행한다:
1. 디코딩/픽셀 재구성 프로세스를 콘트롤하기 위해 양자화 변환 계수 및 다른 데이터를 엔트로피 디코딩.
2. 그러한 재구성된 예측 잔차를 얻기 위해 그 디코드된 양자화 변환 계수의 역변환을 수행.
3. 비트스트림으로 시그널된 예측 모드 및 동작 정보(인터/인트라 모드, 동작 벡터 등)에 따라 예측 동작을 수행하고, 그 예측에 상기 재구성된 예측 잔차를 부가하여, 중간의 재구성된 픽셀 데이터를 획득.
4. 상기 중간의 재구성된 픽셀 데이터에 따라 필터링 동작(예컨대, 디-블록킹(de-blocking), 샘플-적응 오프셋(SAO; sample-adaptive offset))을 수행하여, 최종의 재구성된 픽셀 데이터를 생성.
이하에서, 디코더에서 인터 및 인트라 예측 동작의 적용 및 중간 및 최종의 재구성된 픽셀 데이터의 생성은 "동작-보상 재구성"이라 부를 것이다.
인코딩은 통상 계산의 복잡성과 관련하여 디코딩보다 더 상당히 부담이 된다. 그 이유는 높은 압축 효율을 달성하기 위해 인코더는 코딩 모드, 블록 분할, 동작 벡터 등과 같이 각각의 블록에 대한 많은 다른 인코딩 파라미터들을 트라이해야 한다는 것이다. 상기 인코더는 통상 표준화되어 있지 않기 때문에, 인코더는 몇몇 다른 인코더 파라미터들을 트라이하도록 선택한다. 그러나, 그것은 감소된 압축 효율의 희생이 따를 것이다.
몇몇 비디오 인코딩/분배 개념은 상기 언급한 적응 비디오 분배를 처리하기 위해 존재한다. 이러한 인코딩/분배 개념들은 (1) 시멀캐스트(simulcast) 분배, (2) 스케일러블(scalable) 비디오 코딩, 및 (3) 트랜스코딩으로 카테고리화될 수 있다.
시멀캐스트 분배의 경우, 상기 전송기는 비디오를 몇개의 다른 비디오 표시, 즉 각기 다른 비디오 솔루션들과 같은 각기 다른 파라미터들로 인코드되고, 그러한 결과의 압축된 비트스트림들은 다운링크 특성 및 수신기 특성들을 고려하여 선택된다. 시멀캐스트는 몇몇 비트스트림이 동일한 콘텐츠를 위해 전송되어야 하기 때문에 업링크 이용의 관점에서 비효율적이다. 시멀캐스트는 그러한 적응에 있어 비교적 낮은 복잡성을 제공하는데, 왜냐하면 이는 단지 가장 적절한 비디오 표시의 선택적 포워딩(forwarding)을 포함하기 때문이다. 시멀캐스트는 각 압축된 비디오 비트스트림이 다운링크에 충분히 최적화될 수 있기 때문에, 또는 적어도 스크린 해상도와 같은 수신기 성능을 고려하기 때문에 다운링크 이용의 관점에서 효율적이다. 그러한 적응 노드는 다운링크를 위한 하나의 선택된 비트스트림을 포워드(forward)하고, 이는 제로 오버헤드의 다운링크를 이용한다.
스케일러블 코딩의 경우, 전송기는 시멀캐스트와 유사하게 몇개의 다른 비디오 표시들을 인코드한다. 시멀캐스트에 대한 주요한 차이는 압축 효율을 향상시켜 업링크 상에서의 대역폭 이용을 향상시키기 위해, 그러한 표시들이 종속 형태로 압축된다는 것이다. 스케일러블 코딩의 일 예로는 공간적 스케일러블 코딩이 있다. 그러한 공간적 스케일러블 코딩은 적어도 2개의 계층에서 수행되며, 그러한 계층들 중 통상 기본 계층(base layer)이라 부르는 어느 한 계층은 통상 확장 계층(enhancement layer)이라고 부르는 또 다른 계층보다 낮은 해상도를 갖는다. 상기 기본 계층을 디코딩한 후, 상기 확장 계층 데이터는, 앞선 이전의 확장 계층 픽처로부터 예측되는 것 외에, 업-샘플링/보간을 통해 상기 기본 계층의 픽셀 데이터 또는 다른 데이터(동작 벡터와 같은)로부터 예측될 수 있다. 이러한 종속은 많은 경우 분리적으로 해상도를 코딩하는 것보다 더 양호한 코딩 효율을 달성할 수 있게 한다. 따라서, 스케일러블 코딩은 일반적으로 업링크에서 시멀캐스트보다 더 우수한 대역폭 효율을 갖는다. 그러나, 그러한 종속은 최고 해상도의 단일 계층 코딩과 비교하여 최고 해상도를 위해 코딩 효율의 상당한 손실을 야기하는데, 고해상도 비디오의 가능한 디코딩으로 인해, 디코더는 기본 계층 및 확장 계층 모두를 수신해야 한다.
2013년 7월자 SHVC "고효율 비디오 코딩(HEVC) 스케일러블 확장 드레프트 3" JTVC-1008_v3에서, 기본 계층과 관련된 저해상도의 코딩 계층은 고해상도(확장 계층)의 코딩 효율을 향상시키기 위해 인터-계층 예측의 두 가지 방법에 의해 재사용될 수 있다. 그 한가지 방법은 저해상도로부터 고해상도의 픽셀 데이터의 영역을 업-샘플하는 것이다. 또 다른 한가지 방법은 고해상도 비디오의 일부 영역에 대한 동작 정보의 예측을 위해 저해상도 비디오로부터 동작 정보를 재사용하는 것이다.
상기 SHVC 전개에 고려된 소위 기준 인덱스(refIdx) 접근방식에 있어서, 인터-계층 픽셀 예측은 확장 계층의 기준 픽처 버퍼에 추가의 업-샘플된 기준 픽처를 삽입함으로써 행해진다. 그러한 추가의 기준 픽처는 고해상도 계층의 해상도로 업-샘플된 저해상도 계층으로 이루어진다. 그러한 인코드된 저해상도 계층으로부터 동작 정보의 재사용은 그 저해상도 계층으로부터 동작 벡터를 업-스케일링하고 동영상의 시청각 서비스-코딩의 HEVC ITU-T H.265 (04/2013) SERIES H:AUDIOVISUAL AND MULTIMEDIA SYSTEMS Infrastructure에 특정된 바와 같은 "임시 동작 벡터 예측(TMVP)" 방법을 이용하여 그것들을 사용함으로써 행해진다.
스케일러블 코딩으로 고해상도를 위한 코딩 효율의 상당한 손실을 처리하기 위핸 한가지 접근방식은 고해상도를 인코딩할 때 저해상도가 더 효율적으로 사용되도록 그러한 계층들의 코딩을 연합하여 최적화하는 것이다.
진화된 트랜스코딩 방법들은 인코딩 단계의 속도를 높이기 위해 코딩 모드에 대한 정보와 같은 업링크 비트스트림에 이용가능한 데이터 및 그 업링크 비트스트림에 이용된 동작 벡터를 사용한다. 이는 적응 노드의 예를 나타내는 도 2에 나타나 있다. 도 2는 비디오 해상도 또는 프레임율을 변경하기 위해 필요한 픽셀 리샘플링(resampling) 단계를 나타낸다. 따라서, 모드 및 동작 데이터 역시 리샘플될 것이다. 그러한 모드 및 동작 데이터의 재사용은 트랜스코딩의 복잡성을 감소시킬 수 있으나, 다운링크 용량의 양호한 이용을 달성하기 위해서는 여전히 트랜스코더의 인코딩 단계에서 높은 복잡성을 겪어야 한다.
일반적인 실시예에 있어서, 트랜스코딩 또는 적응은 수신된 비디오 비트스트림 및 수신된 부가 정보 모두에 기초하여 수행된다. 그러한 부가 정보는 트랜스코딩 프로세스의 계산의 복잡성을 감소시키고 다운링크 및 업링크 리소스 모두를 최적화하기 위해 그러한 트랜스코딩 프로세스를 가이드(guide)하는데 사용될 수 있다.
인코딩 장치에서 네트워크 노드(업링크)로 그리고 네트워크 노드에서 최종 사용자 장치(다운링크)로 높은 코딩 효율을 갖는 확장성(scalability)을 제공할 수 있게 하기 위해, SHVC에 새로운 기능을 부가할 것을 제안하고 있다. 저충실도 표시가 고충실도 표시의 재구성된 픽셀값으로부터 유도될 수 있을 것으로 제안되고 있다. 이는 고충실도가 HEVC와 비교해도 어떠한 손실 없이 나타날 수 있으면서 동시에 업링크에서 시멀캐스트와 비교된 그리고 HEVC(다운링크에서 최종 사용자 장치로)와도 견줄만한 이득을 달성할 수 있게 한다. SHVC로부터의 인터-계층 예측은 시멀캐스트를 통해 다른 이득을 제공하도록 재사용될 수 있다. 그러한 저충실도 표시를 재구성할 수 있게 하기 위해서는 역양자화 및 역변환 전에 추가의 디코딩 프로세스를 지정해야 한다. VPS(video parameter set) 하위의 신택스(syntax)로 변경하지 않는다.
이러한 새로운 기능은 계산적으로 부담이 큰 모드 및 동작 추정 없이 그리고 트랜스코더에 의해 달성될 수 있는 것보다 더 우수한 코딩 효율을 갖는 버전 1과 호환가능한 트랜스코드된 저충실도 비트스트림을 얻기 의해 트랜스코더에 의해 사용될 수 있다.
하나의 중요한 사용 케이스는 인코딩 장치에서 네트워크 노드(업링크/UL)로 코딩 효율적인 비트스트림을 제공하고 네트워크 특성에 따라 이용가능한 대역폭에 적절한 코딩 효율적인 HEVC 버전 1 비트스트림을 네트워크 노드에서 종단 장치(다운링크/DL)로 제공하는 IP 기반 비디오 전송이 있다. 세계 최고로 그러한 업링크 및 다운링크 모두는 단일 표시를 위한 인코딩으로서 동일한 코딩 효율을 가질 것이다.
이러한 사용 케이스를 지지하기 위한 하나의 접근방식은 비트스트림을 시멀캐스트하는 것으로, 예컨대 몇개의 충실도를 독립적으로 인코드하고 그것들을 네트워크 노드(UL)로 전송하는 것이다. 다음에 상기 네트워크 노드는 가장 적절한 비트스트림을 종단 장치(DL)로 포워드할 수 있다. HEVC 버전 1 비트스트림을 시멀캐스트하는 우수한 특징은 각각의 비트스트림이 DL에 대해 매우 효율적으로 코딩됨으로써 각 품질에 대해 최소의 크기만이 필요하다는 것이다. 시멀캐스트의 결점은 UL에서 거의 동일한 콘텐츠의 몇몇의 독립 인코딩을 갖는 리던던시(redundancy)이다.
스케일러블 코딩은 계층화된 코딩의 사용에 의해 몇개의 충실도를 나타내기 위한 성능을 갖는다. 보다 높은 충실도는 그것들을 나타내기 위한 오버헤드를 감소시키기 위해 낮은 충실도에 따른다. 따라서 스케일러블 코딩은 시멀캐스트에서와 같이 몇개의 충실도의 독립 코딩의 리던던시를 감소시킬 수 있다. SHVC는 SNR 확장성 공통 조건에 따라 21%의 랜덤 액세스 및 12%의 낮은 지연에 의해 시멀캐스트와 비교해 UL에서 몇개의 충실도를 코딩하기 위한 오버헤드를 감소시킬 수 있다. 저충실도 기본 계층은 코딩이 매우 효율적이고, 이에 따라 DL에서의 사용을 위해 최소의 크기만을 요구하며, HEVC 버전 1 디코더에 의해 디코드될 수 있다. 보다 높은 충실도는 DL에서의 사용을 위해 낮은 충실도에 대한 종속으로 인해 오버헤드를 획득한다. SHVC는 HEVC 버전 1과 비교해 SNR 확장성 공통 조건에 따라 14%의 랜덤 액세스 및 24%의 낮은 지연의 오버헤드를 가지며, HEVC 버전 1 디코더에 의해 디코드될 수 없기 때문에, 상기 사용 케이스에 맞출 수 없다.
SHVC의 보다 높은 계층에 대한 그러한 디코딩 및 인코딩 프로세스는 클립핑 후의 루프 필터(디-블록킹 및 SAO)를 제외하고, 도 4 및 도 5에서 계층 1(layer 1)에 나타나 있다. 도 4에서, SHVC의 종속 계층에 대한 디코딩 프로세스가 기술되며, 여기서 Q는 양자화이고, T는 변환이며, P는 예측이고, D는 지연이며, R은 재구성된 픽셀값들이다. 도 5에서, SHVC의 종속 계층에 대한 인코딩 프로세스가 기술되며, 여기서 RDO는 레이트-왜곡 최적화이고, O는 오리지널 비디오 소스이다.
트랜스코딩은 DL에서 전송하기 전에 수신된 보다 높은 충실도 HEVC 버전 1 비트스트림을 재인코딩함으로써, 몇개의 낮은 충실도를 제공하기 위한 성능을 갖는다. UL에서 고충실도 비트스트림의 코딩 효율은 매우 우수하고, 시멀캐스트와 비교해 오버헤드의 상당한 부분이 감소될 수 있다. 고충실도가 DL에 요구되면 그러한 높은 코딩 효율이 유지되고, HEVC 버전 1 디코더가 사용될 수 있다. 저충실도가 요구되면, 상기 고충실도 비트스트림은 디코드되어야 하고, 이후 낮은 충실도로 재인코드되어야 한다. 상기 낮은 충실도 비트스트림은 HEVC 버전 1 디코더에 의해 디코드될 수 있지만, 그 인코딩을 위해 재구성된 고충실도의 품질에 의존하기 때문에 시멀캐스트 시나리오에서의 저충실도 비트스트림보다 나쁜 코딩 효율을 가질 것이다. 가능한 한 저충실도 비트스트림 정도의 효율적인 표시를 달성하기 위해서는 상당한 양의 계산을 소모해야 한다. 그러한 결과는 여전히 시멀캐스트 시나리오의 저충실도와 비교된 오버해드를 가질 것이다. 트랜스코더는 트랜스코딩의 속도를 높이기 위한 손쉬운 방법, 예컨대 재사용 동작 정보를 취할 수 있으나, 저충실도 비트스트림의 나쁜 코딩 효율을 겪게된다. 그러한 트랜스코더는 상기 사용 케이스를 달성할 잠재성을 갖지만, 막대한 양의 계산을 필요로 하고, 여전히 그러한 사용 케이스에 맞추기 위한 저충실도 비트스트림에 대한 높은 코딩 효율을 갖지 못할 것이다. 충분한 트랜스코딩의 예가 도 6에 나타나 있고, 디코딩으로부터의 픽셀값만이 사용되었다.
DL에서 엔드 포인트에 대해 코딩 효율적인 HEVC 버전 1 비트스트림의 사용 케이스를 지지하기 위해, 발명자들은 기본 계층에 최고의 충실도를 제공할 능력을 갖고 UL에서 효율적인 표시를 얻도록 최고의 충실도에 따라 코드된 낮은 충실도를 갖도록 새로운 기능을 갖는 SHVC를 확대할 것을 제안하고 있다.
즉, 낮은 충실도를 종속적으로 인코드하고, 이에 의해 UL에서 효율적인 표시를 제공하기 위해 보다 높은 충실도와 관련된 정보를 이용할 것을 제안했다. 그에 의해, 다중 계층들의 인코딩은 트랜스코더 또는 트랜스코더 어렌지먼트에서의 계산의 복잡성을 더 감소시키는 종속 형태로 수행된다. 더욱이, 그렇게 인코드된 비트스트림의 디코딩을 가능하게 하는 부가 정보는, 이하 기술한 바와 같은 본 발명의 실시예들에 따라 생성되어 제공된다.
따라서, 그러한 저충실도는 고충실도에 종속이다. 그러한 실시예들은 계층화된 비트스트림의 개념에 따라 수행될 수 있으며, 여기서 그 기본 계층은 고충실도를 갖고, 각각의 추가 계층은 특정 낮은 충실도에 대한 부가 정보를 규정한다. 실시예들은 또한 분리의 고충실도 비트스트림 및 하나 또는 그 이상의 낮은 충실도 부가 정보 비트스트림을 가짐으로써 수행될 수도 있다.
도 7은 디코드된 버전의 고충실도 포맷이 Rlayer0로 표시된 트랜스코더를 나타낸다(가능한 한 다운-샘플링 후, 고충실도 포맷이 저충실도 포맷보다 큰 해상도를 가질 경우). 그러한 부가 정보에서 분석된 예측 파라미터 코딩 파라미터들은 저충실도 포맷과 관련된 예측 에러를 얻기 위해 Rlayer0로부터 뺀 저충실도 포맷에 대한 예측(도면에서 P)을 얻는데 사용된다. 상기 예측 에러는 변환 계수들을 얻기 위해 상기 분석된 변환 파라미터들에 따라 변환(T)되고 양자화(Q)된다. 상기 변환 계수들은 다음에 저충실도 포맷(Rlayer1)의 재구성을 생성하기 위해 상기 예측(P)에 부가되는 코드된 예측 에러를 얻기 위해 역양자화(Q-1)되고 역변환(T-1)된다. 클립핑(Clip)은 픽셀값들이 허용된 범위 내에 있도록 보장하기 위해 수행된다. 이는 트랜스코더의 출력은 아니지만 변환 계수들의 생성에 이용된 인터 픽처 예측을 생성할 수 있게 하는데 필요하다. 그러한 변환 계수들이 생성될 때(점선 박스의 출력), 저충실도 포맷과 관련된 모든 코딩 파라미터들이 이용될 수 있고, 이에 따라 완전한 저충실도 포맷 비트스트림으로 인코드될 수 있다. 따라서, 그러한 변환 및 양자화는 정상적인 디코딩 프로세스 전에 수행된다. 이에 의해, 상기 변환 계수들은 소정의 다음 트랜스코딩 또는 적응 단계에서의 계산의 복잡성을 감소시키기 위해 적어도 2개의 다른 계층들로부터의 정보에 기초하여 재생성된다. 인-루프 필터링(in-loop filtering)이 도 9에 나타나 있지 않으나, 그러한 코딩 루프의 일부라는 것을 알아야 할 것이다.
도 8은 도 7에 대응하는 고충실도 비트스트림 및 저충실도 부가 정보를 생성하는 인코더를 나타낸다. 인-루프 필터링이 도면에서 제외되었으나, 그러한 코딩 루프의 일부이다.
디코드된 버전의 고충실도 포맷은 Rlayer0로 표시했다(가능한 한 다운-샘플링 후, 고충실도 포맷이 저충실도 포맷보다 큰 해상도를 가질 경우). 상기 저충실도 부가 정보는 상기 Rlayer0로부터 뺀 예측을 유도하기 위해 최상의 코딩 파라미터(RDO)에 대해 조사함으로써 생성된다. 그러한 예측 에러는 변환(T)되고 양자화(Q)된다. 상기 변환 계수들은 다음에 저충실도 포맷(Rlayer1)의 재구성을 생성하기 위해 상기 예측(P)에 부가되는 코드된 예측 에러를 얻기 위해 역양자화(Q-1)되고 역변환(T-1)된다. 상기 코딩 파라미터들은 저충실도 포맷(Olayer1)에 대한 오리지널 비디오 소스에 대해 최적화된다. 이는 Rlayer1이 가능한 한 Olayer1와 유사해지도록 그러한 코딩 파라미터들이 선택되는 것을 의미한다. 다음에 상기 코딩 파라미터(변환 및 예측 파라미터)들은 저충실도 포맷에 대한 부가 정보를 나타내도록 코드된다. 그러한 사용된 변환 계수들은 트랜스코더에 의해 재생성되는 변환 계수들에 대응하고 따라서 코드될 필요는 없다. 그러한 전송된 변환 계수들은 트랜스코더로 전송된 저충실도 포맷의 부가 정보에 대응한다. 한가지 접근방식은 가능한 한 작은 오버헤드를 갖는 전송된 변환 계수, 예컨대 1과 같은 하나의 계수 및 0과 같은 나머지의 계수를 인코드하는 것이다.
본 발명의 실시예에 따르면, 그러한 아이디어는 도 9에 나타낸 바와 같은 프로세스의 계수 생성/예측부에 의해 얻어진 계수들에 의해 그 분석/디코드된 계수(예컨대, TransCoeffLevel)들을 리파인(refine)하기 위한 것이다. 도 9는 제안된 추가의 프로세스가 점선 박스 내에 있는 계수 생성/예측에 의해 그 분석된 계수들을 리파인하기 위한 디코딩 프로세스를 나타낸다. 이러한 경우, 클립핑(ClipC)은 그것들이 역양자화 및 변환에 맞추는 것을 보장하기 위해 부가 후에 필요하다(또 다른 클립핑(Clip)은 재생성된 픽셀값들이 비디오의 비트 깊이에 따라 그러한 값들의 허용된 범위 내에 있는 것을 보장하는 것이다).
따라서, 도 9는 저충실도 포맷 부가 정보 및 디코드된 버전의 고충실도 포맷 모두에 기초하여 변환 계수를 생성하는 트랜스코더를 나타낸다. 인-루프 필터링이 도면으로부터 제외되었으나 그러한 코딩 루프의 일부라는 것을 알 수 있을 것이다.
상기 디코드된 버전의 고충실도 포맷은 Rlayer0로 표시했다(가능한 한 다운-샘플링 후, 고충실도 포맷이 저충실도 포맷 비트스트림보다 큰 해상도를 가질 경우). 이러한 경우 그러한 부가 정보에서의 변환 계수들은 Rlayer0와 저충실도 포맷의 예측(점선 박스의 출력)간 차이를 취하여 얻어진 변환 계수들에 부가된다. 클립핑(ClipC)은 계수들이 허용된 범위 내에 있는 것을 보장하도록 수행된다. 다음에 그러한 조합된 변환 계수(점선 박스의 출력)들은 저충실도 포맷 비트스트림을 생성하기 위해 저충실도 포맷 부가 정보의 다른 코딩 파라미터들과 함께 코드된다.
도 3의 순서도로 개략적으로 나타낸 바와 같이, 입력 포맷에서 출력 포맷으로 오리지널 비디오 소스를 나타내는 비트스트림을 트랜스코딩하는 트랜스코더 어렌지먼트를 위한 방법이 제공된다. 상기 트랜스코더 어렌지먼트는 입력 비디오 포맷을 갖는 비트스트림을 수신하며(S10), 여기서 상기 입력 비디오 포맷은 고충실도 포맷이다. 상기 비디오 비트스트림과 관련된 부가 정보를 더 수신한다(S20).
상기 부가 정보는 적어도:
저충실도 입력 비디오 포맷을 갖는 오리지널 비디오 소스를 나타내는 비디오 비트스트림,
오리지널 비디오 소스의 지식에 기초하여 최적화된 코딩 파라미터들, 및
오리지널 비디오 소스와 디코드된 버전의 고충실도 포맷간 잔차를 나타내는 변환 계수들을 포함한다.
상기 트랜스코더 어렌지먼트는 트랜스코딩 안내 정보를 생성하기 위해 상기 수신된 부가 정보를 디코드하고(S40), 상기 수신된 비트스트림 및 생성된 트랜스코딩 안내 정보에 기초하여 저충실도 출력 포맷을 갖는 상기 비트스트림의 표시를 추정한다(S50). 또한 상기 부가 정보의 변환 계수들은 저충실도 출력 포맷을 갖는 상기 비트스트림의 추정된 표시를 향상시키기 위해 저충실도 포맷을 갖는 상기 비트스트림의 추정된 표시로부터 생성된 변환 계수에 부가된다(S60). 저충실도 출력 포맷을 갖는 상기 비트스트림의 표시의 향상된 추정은 인코드되어(S70) 렌더링 장치로 전송된다. 따라서, 상기 부가 정보는 그러한 적응 프로세스가 부가 정보 없이 트랜스코딩보다 낮은 복잡성으로 수행될 수 있게 하면서도 여전히 높은 압축 효율을 제공하도록 상기 적응 프로세스에 이용된다. 따라서 양호한 다운링크 대역폭 이용이 달성될 수 있다. 상기 적응 프로세스의 출력은 상기 적응 프로세스로부터 비트스트림의 디코딩이 복잡성이 낮은 비-스케일러블 디코더에 의해 행해질 수 있다는 것을 암시하는 비-스케일러블 비디오 비트스트림이다.
실시예에 따르면, 다른 단계가 부가되며, 여기서 상기 수신된 비디오 비트 스트림은 상기 수신된 비디오 비트스트림의 상기 표시로서 픽셀 데이터를 제공하기 위해 디코드된다. 우리의 경우, 그러한 트랜스코더는 항상 잔차를 재생성하는데 이용된 픽셀 데이터를 얻기 위해 고충실도 비트스트림을 디코드해야 한다. 몇몇 트랜스코더 어렌지먼트는 단지 코딩 파라미터 도메인에서 동작할 것이다.
다른 실시예에 따르면, 오리지널 비디오 소스와 디코드된 버전의 고충실도 포맷간 잔차는 양자화 및/또는 변환된 잔차이다.
부가 정보는 또한 상기 미리 결정된 입력 비디오 포맷과 관련된 잔차 정보를 포함한다.
몇몇 실시예들에 있어서, 상기 방법은 상기 비디오 비트스트림 내의 상기 부가 정보의 존재에 대한 표시를 확인하는 다른 단계를 포함한다.
또한, 상기 미리 결정된 입력 비디오 포맷 및 상기 미리 결정된 출력 비디오 포맷은 비디오의 각기 다른 표시, 또는 각기 다른 비디오 코덱을 포함한다.
상기 부가 정보는 상기 비디오 비트스트림으로부터 독립적으로 또는 상기 비디오 비트스트림과 함께 전송 및 수신된다. 예컨대, 상기 부가 정보 및 인코드된 비디오 비트스트림은 인터리브(interleave)된 비트스트림으로 함께 전송되거나, 또는 단일 캐리어 내의 분리된 계층들로 전송되거나, 또는 분리된 캐리어 또는 채널들로 전송될 수 있다. 수신 트랜스코딩 노드가 그러한 제공된 부가 정보를 이용할 수 있게 하기 위해, 선택적으로 그러한 부가된 부가 정보의 표시 뿐만 아니라 선택적으로 상기 제공된 부가 정보의 잠재적인 이용의 표시는 트랜스코딩 노드로 전송될 수 있다.
일 예로서, 상기 부가 정보는 하나의 고충실도 계층이 메인 비디오를 포함하고 하나 또는 그 이상의 저충실도 계층이 그 부가 정보를 포함하는 스케일러블 비디오 비트스트림의 한 계층으로서 제공될 수 있다. 이러한 경우, 표시는 하나 또는 몇 개의 계층들이 제1계층과의 트랜스코딩 종속을 가졌거나/갖는 스케일러블 비디오 비트스트림에 제공될 수 있다. 그러한 표시는 비디오 파라미터 세트(VPS)에 그리고/또 비트스트림의 시작 시에 SEI 메시지 또는 분리된 채널에 규정될 수 있다. 또 다른 대안은, 단일 계층 비트스트림, 예컨대 HEVC 외에, 분리된 비디오 비트스트림, 예컨대 HEVC에 부가 정보를 제공하는 것이다. 각각의 비트스트림은 그러한 경우 분리된 채널의 표시에 사용되거나 또는 그 표시를 가질 수 있는 것을 표시하는 비트스트림의 개시 시에 SEI 메시지를 포함할 수 있다. 다른 실시예에 있어서, 상기 부가 정보는 일괄적으로 분리된 채널에 제공된다.
몇몇의 경우, 비디오 공급자 어렌지먼트의 인코딩 프로세스에 대한 정보를 트랜스코더 어렌지먼트에 제공해야 한다. 하나의 그와 같은 특정한 경우는 고해상도를 갖는 입력 비디오 및 저해상도를 갖는 출력 비디오가 될 수 있다. 그러한 경우, 또한 트랜스코더의 소정 다운-샘플링 프로세스에 대한 정보는 부가 정보에 또는 몇몇 미리 결정된 명세서에 제공되어야 한다. 특히, 트랜스코더가 예컨대 고해상도 픽셀 데이터를 저해상도 픽셀 데이터로 적절하게 다운 샘플링 할 수 있게 하는 정보를 제공해야만 한다.
그러한 부가 정보는 메인 비디오와 다른 계층-id를 갖는 스케일러블 계층으로서, 비디오 비트스트림의 보조 픽처로서, 모드/동작 정보를 포함하는 적어도 하나의 SEI 메시지로서 그러한 부가 정보는 다수의 다른 방식으로 전송될 수 있다.
몇몇의 경우, 상기 부가 정보는 완전한 비트스트림 또는 비트스트림의 계층을 포함할 수 있다. 그와 같은 경우, 표시는 비디오 공급자 어렌지먼트에 제공되고, 그러한 표시는 제공된 비트스트림의 일부가 수정되는 트랜스코더 어렌지먼트를 가이드한다.
이들은 단지 트랜스코더 어렌지먼트로 전송된 부가 정보에 제공되거나 생성될 수 있는 안내 정보의 가능한 타입의 일부일 뿐이다.
도 9와 연관되어 기술된 예와 관련하여, 이는 이하 섹션에서 포워드 변환 계수에 대한 포워드 스케일링 프로세스 단계 7로 나타낸 바와 같은 변형으로서 실시될 수 있다. 대안은 SEI 메시지 또는 보조 픽처에 대한 부가 정보로 지정하는 것이다.
이하의 예는 예시의 실시이고, 여기서 TransCoeffLevel는 부가 정보 비트스트림으로 디코드된 변환 계수이다. intLevel는 고품질 비트스트림의 재구성에 기초한 재생성된 변환 계수이다. 상기 언급한 바와 같이, 그러한 실시예의 접근방식은 그러한 부가 정보의 일부인 TransfCoeffLevel에 기초하여 상기 재생성된 변환 계수를 리파인하는 것이다.
포워드 변환 계수에 대한 포워드 스케일링 프로세스
이러한 프로세스에 대한 입력은 다음과 같다:
- 현재 픽처의 상부 좌측 루마 샘플에 대한 현재 루마 변환 블록의 상부-좌측 샘플을 지정하는 루마 위치(xTbY, yTbY),
- 현재 변환 블록의 크기를 지정하는 가변 nTbS,
- 현재 블록의 칼라 성분을 지정하는 가변 cIdx,
- 양자화 파리미터를 지정하는 가변 qP,
- 요소 d[x][y]를 갖는 어레이의 포워드 변환 계수 d.
이러한 프로세스의 출력은 요소 TransCoeffLevel [ xTbY ][ yTbY ][ cIdx ] [ x ][ y ]를 갖는 (nTbS)x(nTbS) 어레이 TransCoeffLevel의 변환 계수이다.
상기 변환 계수는 이하 순서의 단계들에 의해 변경된다:
1. intLevel[x,y]는 d[x,y]와 같이 설정된다.
2. intSign[x,y]는 intLevel[x,y]가 0보다 작으면 -1로 설정되고, 그렇지 않으면 1로 설정된다.
3. fwdScaleFactor = fwdLevelScale [ Qp % 6]이고 , 여기서 fwdLevelScale = {26214, 23302, 20560, 18396, 16384, 14564}
4. int64Level[x,y]는 abs( intLevel [ x,y ]) * fwdScaleFactor와 와 같이 설정된다.
5. intLevel[x,y]는 ( int64Level [ x,y ]+ intAdd ) ≫ intQBits와 같이 설정된다.
여기서 intQBits는 29+Qp/6-bitDepth-log2(nTbS)와 같고,
bitDepth는 cIdx가 0이면 bitDepth Y 같고 그렇지 않으면 bitDepth C 같고,
intAdd는 slice_type이 I와 같거나 또는 인터 -계층 picture rsPic이 IRAP이면 171 ≪ (intQBits-9)이고, 그렇지 않으면 intAdd가 85 ≪ (intQBits-9)와 같다.
6. intLevel[x,y]는 intLevel[x,y]*intSign[x,y]와 같이 설정된다.
7. TransCoeffLevel [ xTbY ][ yTbY ][ cIdx ] [x][y]는 Clip3 ( -32768, 32767, TransCoeffLevel[xTbY][yTbY][cIdx] [x][y] +intLevel[x,y] )와 같이 설정된다.
변형은 변환 크기를 완전히 재사용하기 위해 전송되어야 하는 최소의 값을 보상하는 것에 대응하는 이하의 섹션에서 기술된 포워드 변환 계수들에 대한 포워드 스케일링 프로세스의 단계 14에서 오프셋을 부가하는 것이다. 이것이 1의 DC 값으로 지정되고 제로(zero)로 설정된 다른 계수를 가지면 디코더는 다음을 행할 수 있다:
(x==0 && y==0)이면
TransCoeffLevel [ xTbY ][ yTbY ][ cIdx ] [x][y]는 Clip3 ( -32768, 32767, TransCoeffLevel[xTbY][yTbY][cIdx] [x][y] +intLevel[x,y] -1)와 같이 설정되고
그렇지 않으면
TransCoeffLevel [ xTbY ][ yTbY ][ cIdx ] [x][y]는 Clip3 ( -32768, 32767, TransCoeffLevel[xTbY][yTbY][cIdx] [x][y] +intLevel[x,y] )와 같이 설정
이는 인코더가 제1계수 위치에서 1에 대응하고 그렇지 않으면 제로에 대응하는 계수 (TransCoeffLevel)를 전송할 때 재생성된 계수 값 intLevel을 변경하지 않는다는 것을 의미한다.
디코더가 제안된 디코딩 프로세스를 행할 시기를 알 수 있게 하기 위해, 발명자들은 기존의 인터-계층 동작 및 샘플 기반 종속 타입 외에 병렬로 VPS에 하나의 새로운 종속 타입을 제공할 것을 제안했다. 따라서 SHVC 인코더는 시멀캐스트와 비교된 업링크에서 비트율 감소를 더 향상시키기 위해 기존의 종속들을 사용한다.
최소의 그리고 깔끔한 디자인을 갖기 위해, 발명자들은 사용될 변환으로서 역변환의 전치를 사용할 것을 제안하고 그러한 양자화가 RDOQ 없이, 사인 비트 숨김 없이 그리고 플랫 스케일링 매트릭을 사용하지 않고 행해지는 것을 제안했다.
이하의 섹션은 이것이 어떻게 SHVC에서 실시되는지의 예를 개시하고 있다. 밑줄친 텍스트 참조. VPS 하위의 신택스로 변경하지 않는다는 것을 알 수 있다.
비디오 파라미터 세트 확장 시맨틱
direct_dep_type_len_minus2 plus 2는 direct_dependency_type[ i ][ j ] 신택스 요소의 비트 수를 지정한다. 이러한 명세서의 이러한 버전에 따른 비트스트림에 있어서, direct_dep_type_len_minus2의 값은
Figure pct00001
과 같이 될 것이다. 비록 그러한 direct_dep_type_len_minus2의 값이 이러한 명세서의 이러한 버전에서
Figure pct00002
와 같이 될 지라도, 디코더는 신택스로 나타내기 위해 0 내지 30을 포함하는 범위에서 direct_dep_type_len_minus2의 다른 값들을 허용할 것이다.
direct_dependency_type[ i ][ j ]는 layer_id_in_nuh[ i ]와 같은 nuh_layer_id를 갖는 계층과 layer_id_in_nuh[ j ]와 같은 nuh_layer_id를 갖는 계층간 종속의 타입을 나타낸다. 0, 2, 4 또는 6과 같은 direct_dependency_type[ i ][ j ]는 layer_id_in_nuh[ j ]와 같은 nuh_layer_id를 갖는 계층이 layer_id_in_nuh[ i ]와 같은 nuh_layer_id를 갖는 계층의 인터-계층 샘플 예측에 사용된다는 것을 나타낸다. 1 , 2, 5 또는 6와 같은 direct_dependency_type[ i ][ j ]는 layer_id_in_ nuh[ j ]와 같은 nuh _layer_id를 갖는 계층이 layer_id_in_nuh[ i ]와 같은 nuh _layer_id를 갖는 계층의 인터 -계층 동작 예측에 사용된다는 것을 나타낸다. 3 , 4, 5 또는 6와 같은 direct_종속_type[ i ][ j ]는 layer_id_in_ nuh[ j ]와 같은 nuh _layer_id를 갖는 계층이 layer_id_in_ nuh[ i ]와 같은 nuh _layer_id를 갖는 계층의 잔차 재생성에 사용된다는 것을 나타낸다. 비록 direct_dependency_type[ i ][ j ]의 값이 이러한 명세서의 이러한 버전에서 0 내지
Figure pct00003
범위를 포함한 범위에 있을 지라도, 디코더는 신택스로 나타내기 위해
Figure pct00004
to 232 - 2의 범위를 포함한 범위에서 direct_dependency_type[ i ][ j ]의 값을 허용할 것이다.
가변의 NumDirectRefLayers[ i ], 및 RefLayerId[ i ][ j ] SamplePredEnabledFlag[ i ][ j ], MotionPredEnabledFlag[ i ][ j ], ResidualReGenerationEnabledFlag[i][j] 및 DirectRefLayerIdx[ i ][ j ]는 아래와 같이 유도된다:
for( i = 0; i <= vps_max_layers_minus1; i++ ) {
iNuhLId = layer_id_in_nuh[ i ]
NumDirectRefLayers[ iNuhLId ] = 0
for( j = 0; j < i; j++ )
if( direct_dependency_flag[ i ][ j ] ) {
RefLayerId[ iNuhLId ][ NumDirectRefLayers[ iNuhLId ]++ ] = layer_id_in_nuh[ j ]
SamplePredEnabledFlag[ iNuhLId ][ j ] = ( ( direct_dependency_type[ i ][ j ] + 1 ) & 1 )
MotionPredEnabledFlag[ iNuhLId ][ j ] = ( ( ( direct_dependency_type[ i ][ j ] + 1 ) & 2 ) ≫ 1 )
ResidualReGenerationEnabledFlag[ iNuhLId ][ j ] = ( ( ( direct_dependency_type[ i ][ j ] + 1 ) & 4 ) ≫ 2 )
DirectRefLayerIdx[ iNuhLid ][ layer_id_in_nuh[ j ] ] = NumDirectRefLayers[ iNuhLId ]-1 }
}
잔차 종속 계층들에 대한 디코딩 프로세스
발명자들은 새로운 ResidualReGenerationEnabledFlag 및 기존의 inter_layer_pred_enable_flag 모두가 1과 같을 때 비트스트림에서 분석된 변환 계수 레벨(TransCoeffLevels)을 이용하는 대신 정확한 올바른 변환 계수를 재생성하기 위한 기존의 것 외에 SHVC에 대한 추가의 디코딩 프로세스의 실시예들을 규정한다.
인트라 예측 모드로 코드된 코딩 유닛에 대한 디코딩 프로세스
만약 ResidualReGenerationEnabledFlag[ currLayerId ][ rLId ] 및 inter_layer_pred_enable_flag 모두가 1과 같으면, "스케일링 및 변환 프로세스" 전에 변환 계수 레벨 TransCoeffLevel이 "스케일링 및 변환 프로세스"에서 지정된 것과 같이 수정되는 것을 제외하고 HEVC / SHVC 명세서의 하위 조항 " 인트라 예측 모드로 코드된 코딩 유닛에 대한 디코딩 프로세스 "의 명세서가 적용된다. 그렇지 않으면 하위 조항 8.4의 명세서가 적용된다.
인터 예측 모드로 코드된 코딩 유닛의 잔차 신호에 대한 디코딩 프로세스
만약 ResidualReGenerationEnabledFlag[ currLayerId ][ rLId ] 및 inter_layer_pred_enable_flag가 1과 같으면, "스케일링 및 변환 프로세스" 전에 변환 계수 레벨 TransCoeffLevel이 "스케일링 및 변환 프로세스"에서 지정된 것과 같이 수정되는 것을 제외하고 HEVC /SPEC 명세서의 하위 조항 " 인터 예측 모드로 코드된 코딩 유닛의 잔차 신호에 대한 디코딩 프로세스 "의 명세서가 적용된다. 그렇지 않으면 하위 조항 " 인터 예측 모드로 코드된 코딩 유닛의 잔차 신호에 대한 디코딩 프로세스 "의 명세서가 적용된다.
디블록킹 ( deblocking ) 필터 프로세스 전의 스케일링, 변환 및 어레이 구성 프로세스
만약 ResidualReGenerationEnabledFlag[ currLayerId ][ rLId ] 및 inter_layer_pred_enable_flag가 1과 같으면, "스케일링 및 변환 프로세스" 전에 변환 계수 레벨 TransCoeffLevel이 "스케일링 및 변환 프로세스"에서 지정된 것과 같이 수정되는 것을 제외하고 HEVC / SHVC의 하위 조항 " 디블록킹 필터 프로세스 전 스케일링, 변환 및 어레이 구성 프로세서"가 적용된다. 그렇지 않으면 하위 조항 "디블록킹 필터 프로세스 전 스케일링, 변환 및 어레이 구성 프로세스"가 적용된다.
주석: 트랜스코더는 HEVC 버전 1 호환가능 비트스트림을 인코드하기 위해 ResidualReGenerationEnabledFlag[currLayerId][rLId]이 1과 같거나 또는 inter_layer_pred_enable_flag가 0과 같을 때 그 수정된 TransCoeffLevel을 포함하는 현재 계층으로부터 최고 계층의 특정 신택스를 재사용할 수 있다.
스케일링 및 변환 프로세스
이러한 프로세스에 대한 입력은 아래와 같다:
- 현재 픽처의 상부 좌측 루마 샘플에 대한 현재 루마 변환 블록의 상부 좌측 샘플을 지정하는 루마 위치( xTbY, yTbY ),
- 코딩 블록에 대한 현재 블록의 계층 깊이를 지정하는 가변 trafoDepth,
- 현재 블록의 칼라 성분을 지정하는 가변 cIdx,
- 현재 변환 블록의 크기를 지정하는 가변 nTbS,
- 인터 -계층 기준 픽처 ( 디블록 및 SAO 후) rsPic 로부터 재구성된 어레이의 샘플,
- 어레이의 예측 샘플 predSamples.
이러한 프로세스의 출력은 요소 TransCoeffLevel [ xTbY ][ yTbY ][ cIdx ][ x ][ y ]를 갖는 ( nTbS )x( nTbS ) 어레이의 변환 계수 레벨이다.
첫번째 ( nTbS )x( nTbS ) 어레이의 임시 잔차 샘플 (rT)은 아래와 같이 rlPicSample와 predSamples간 차를 취함으로써 얻어진다:
rT[x][y] = rlPicSample [x][y]- predSamples [x][y]
( nTbS )x( nTbS ) 어레이의 레벨 1은 아래와 같이 유도된다:
- 만약 cu_ transquant _bypass_flag가 1과 같으면, ( nTbS )x( nTbS ) 어레이의 레벨 1은 아래와 같이 ( nTbS )x( nTbS ) 어레이의 임시 잔차 샘플 rT와 같이 설정되 고,
l[x][y] =rT[x][y].
- 그렇지 않으면, 아래와 같이 순서된 단계들이 적용된다:
1. 조항 "임시 잔차 샘플들에 대한 변환 프로세스 "에서 지정된 것과 같은 포워드 변환은 입력으로서 변환 블록 위치 ( xTbY , yTbY ), 변환 블록의 크기 nTbS , 칼라 성분 가변 cIdx , 양자화 파라미터 qP , 및 어레이의 임시 잔차 샘플을 적용하고, 그 출력은 (nTbS)x(nTbS) 어레이의 포워드 변환 계수 d이다.
2. ( nTbS )x( nTbS ) 어레이의 변환 계수 TransCoeffLevel는 아래와 같이 수정된다:
- 만약 transform_skip_flag[ xTbY ][ yTbY ][ cIdx ]이 1과 같으면, x = 0..nTbS - 1, y = 0..nTbS - 1을 갖는 그러한 샘플 어레이 값 TransCoeffLevel [xTbY][yTbY][cIdx][ x ][ y ]는 아래와 같이 유도된다:
TransCoeffLevel [ xTbY ][ yTbY ][ cIdx ] [ x ][ y ] = ( l[ x ][ y ] ≪ ( 15-bitDepth-log2(nTbS) ) (H 8-267)
여기서 bitDepth는 cIdx가 0과 같을 때 bitDepth Y 같고, 그렇지 않으면 bitDepth C 와 같다.
- 그렇지 않으면(transform_skip_flag[ xTbY ][ yTbY ][ cIdx ]), 조항 "포워드 변환 계수에 대한 포워드 스케일링 프로세스"에서 지정된 바와 같은 변환 계수에 대한 그러한 포워드 스케일링 프로세스는 입력으로서 변환 블록 위치 ( xTbY , yTbY ), 변환 블록의 크기 nTbS , 칼라 성분의 가변 cIdx , 및 ( nTbS )x( nTbS ) 어레이의 포워드 변환 계수 d를 적용하고, 그 출력은 ( nTbS )x( nTbS ) 어레이의 변환 계수 TransCoeffLevel이다.
포워드 변환 계수에 대한 포워드 스케일링 프로세스
이러한 프로세스에 대한 입력은 아래와 같다:
- 현재 픽처의 상부 좌측 루마 샘플에 대한 현재 루마 변환 블록의 상부 좌측 샘플을 지정하는 루마 위치( xTbY, yTbY ),
- 현재 변환 블록의 크기를 지정하는 가변 nTbS,
- 현재 블록의 칼라 성분을 지정하는 가변 cIdx,
- 양자화 파라미터를 지정하는 가변 qP,
- 요소 d[x][y]를 갖는 어레이의 포워드 변환 계수 d.
이러한 프로세스의 출력은 요소 TransCoeffLevel [ xTbY ][ yTbY ][ cIdx ] [ x ][ y ]를 갖는 ( nTbS )x( nTbS ) 어레이 TransCoeffLevel의 변환 계수들이다.
그러한 변환 계수들은 아래와 같은 순서의 단계들에 의해 수정된다:
8. intLevel[x,y]는 d[x,y]와 같이 설정된다.
9, intSign[x,y]는 intLevel[x,y]이 0보다 작으면 -1과 같이 설정되고, 그렇지 않으면 1로 설정된다.
10. fwdScaleFactor = fwdLevelScale [ Qp % 6]이고 , 여기서 fwdLevelScale = {26214, 23302, 20560, 18396, 16384, 14564}이다.
11. int64Level[x,y]는 abs( intLevel [ x,y ]) * fwdScaleFactor와 같이 설정된다.
12. intLevel[x,y]는 ( int64Level [ x,y ]+ intAdd ) ≫ intQBits와 같이 설정되고, 여기서 intQBits는 29+Qp/6-bitDepth-log2(nTbS)와 같다.
bitDepth는 cIdx가 0과 같으면 bitDepth Y 같고, 그렇지 않으면 bitDepth C 같고,
intAdd는 slice_type이 I와 같거나 또는 인터 -계층 픽처 rsPic가 IRAP이면 171 ≪ (intQBits-9)와 같고, 그렇지 않으면 intAdd는 85 ≪ (intQBits-9)와 같다.
13. intLevel[x,y]는 intLevel[x,y]*intSign[x,y]와 같이 설정된다.
14. TransCoeffLevel [ xTbY ][ yTbY ][ cIdx ] [x][y]는 Clip3 ( -32768, 32767, intLevel[x,y] )와 같이 설정된다.
일반적인 임시 잔차 샘플들에 대한 변환 프로세스
이러한 프로세스에 대한 입력은 아래와 같다:
- 현재 픽처의 상부 좌측 루마 샘플에 대한 현재 루마 변환 블록의 상부 좌측 샘플을 지정하는 루마 위치( xTbY, yTbY ),
- 현재 변환 블록의 크기를 지정하는 가변 nTbS,
- 현재 블록의 칼라 성분을 지정하는 가변 cIdx,
- 요소 rT[ x ][ y ]를 갖는 (nTbS)x(nTbS) 어레이의 임시 잔차 샘플 rT.
이러한 프로세스의 출력은 요소 d[ x ][ y ]를 갖는 ( nTbS )x( nTbS ) 어레이의 포워드 변환 계수 d이다 .
그러한 CuPredMode [ xTbY ][ yTbY ], nTbS , 및 cIdx의 값들에 따라, 가변 trType이 아래와 같이 유도된다:
- CuPredMode[ xTbY ] [ yTbY ]이 MODE_ INTRA와 같으면, nTbS는 4와 같고, cIdx는 0과 같고, trType는 1과 같다.
- 그렇지 않으면, trType는 0과 같다.
( nTbS )x( nTbS ) 어레이의 변환 계수들은 아래와 같이 유도된다:
1. x = 0..nTbS - 1, y = 0..nTbS - 1를 갖는 임시 잔차 샘플 rT[ x ][ y ]의 각 (수직) 열(column)은 입력으로서 변환 블록 nTbS의 크기, y = 0..nTbS - 1를 갖는 리스트 r[ x ][ y ], 및 변환 타입 가변 trType를 갖는 각 열 x = 0..nTbS - 1에 대한 조항 "포워드 변환 프로세스"에서 지정한 것과 같은 1차원 변환 프로세스를 적용함으로써 x = 0..nTbS - 1, y = 0..nTbS - 1을 갖는 e[ x ][ y ]로 변환되고, 그 출력은 y = 0..nTbS - 1를 갖는 리스트(list) e[ x ][ y ]이다.
2. x = 0..nTbS - 1, y = 0..nTbS - 1를 갖는 중간 샘플 값 g[ x ][ y ]는 아래와 같이 유도된다:
shift1는 log2 ( nTbS ) - 1 + bitDepth - 8이고, 여기서 bitDepth는 cIdx가 0과 같으면 bitDepth Y 와 같고, 그렇지 않으면 bitDepth C 와 같다.
g[ x ][ y ] = (e[ x ][ y ] + (1≪ (shift1-1) ) ≫ shift1
3. x = 0..nTbS - 1, y = 0..nTbS - 1를 갖는 결과의 어레이 g[ x ][ y ]의 각 (수평) 행(row)은 입력으로서 변환 블록 nTbS의 크기, x = 0..nTbS - 1를 갖는 리스트 g[ x ][ y ], 및 변환 타입 가변 trType을 갖는 각 행 y = 0..nTbS - 1에 대한 조항 "포워드 변환 프로세스"에서 지정한 것과 같은 1차원 변환 프로세스를 적용함으로써 x = 0..nTbS - 1, y = 0..nTbS - 1를 갖는 h[ x ][ y ]로 변환되고, 그 출력은 x = 0..nTbS - 1를 갖는 리스트 h[ x ][ y ]이다.
4. 그러한 포워드 계수들은 아래와 같이 유도된다:
shift2는 log2(nTbS) + 8와 같고,
d[ x ][ y ] = (h[ x ][ y ] + (1≪(shift2-1)) ) ≫ shift2
포워드 변환 프로세스
이러한 프로세스에 대한 입력은 아래와 같다:
- 잔차 샘플들의 샘플 크기를 지정하는 가변 nTbS,
- j = 0..nTbS - 1인 요소 x[ j ]를 갖는 변환 계수의 리스트,
- 변환 타입 가변 trType.
이러한 프로세스의 출력은 i = 0..nTbS - 1인 요소 y[ i ]를 갖는 변환된 샘플 y의 리스트이다.
trType의 값에 따라, 아래와 같이 적용된다:
- trType이 1과 같으면, 아래의 변환 행렬 곱셈이 적용된다:
Figure pct00005
여기서, 변환 계수 어레이 transMatrix는 식 H 8- 277으로 HEVC / SHVC 명세서에 규정된다.
- 그렇지 않으면(trType이 0과 같으면), 아래의 변환 행렬 곱셈이 적용된다:
Figure pct00006
여기서, 변환 계수 어레이 transMatrix는 식 H 8-279 및 H 8-281로 HEVC/SHVC 명세서에 지정된다.
SHVC, 시멀캐스트 및 풀(full) 트랜스코딩과 비교하면 본원의 현재 개시에 따른 코딩의 효과는 아래와 같이 나타난다.
SHVC, 시멀캐스트 및 풀 트랜스코딩 모두는 RDOQ 및 사인 데이터(sign data) 숨김을 이용하는 반면, 본원의 제안은 계층 0에 대한 것은 이용하나 계층 1에 대한 것은 이용하지 않는다.
저지연(Low delay) 구성:
시멀캐스트와 비교하여 -11.6% (+1.5% vs SHVC), 고충실도와 비교하여 0% (SHVC 24.3% 손실), 저충실도 및 SHVC와 비교하여 8.7% 손실 (풀 트랜스코딩이 +12.9% 가짐)
램덤-액세스 구성:
시멀캐스트와 비교하여 -12.9% (+10.3% vs SHVC), 고충실도와 비교하여 0% (SHVC 14.4% 손실), 저충실도 및 SHVC와 비교하여 10.4% 손실 (풀 트랜스코딩이 +12.1%를 가짐)
따라서 발명자들은 SHVC가 버전 1 HEVC와 같은 동일한 성능을 갖는 다운링크에 고충실도 비트스트림을 어떻게 제공할 수 있는지 또 버전 1 HEVC와 어떻게 호환될 수 있는지를 보여주고 있다. 저충실도 계층들은 시멀캐스트와 비교하여 오버헤드를 감소시키기 위해 업링크에서 고충실도 기본 계층을 사용하고 있다. 저충실도 계층을 재구성하기 위해, 그러한 잔차는 고충실도 계층으로부터 재생성된다. 트랜스코더는 트랜스코딩으로부터 달성될 수 있는 것보다 우수한 코딩 효율을 갖는 저충실도 비트스트림을 모드 및 동작 추정 없이 유도하기 위해 이러한 SHVC 비트스트림을 이용할 수 있다. VPS 하위의 신택스로 변경하지 않는다.
트랜스코더의 예시의 대안들의 설명이 이하 기술된다. 여기서는 통상 인코더가 디코더와 같은 동일한 디코딩 프로세스를 수행해야 하기 때문에 인코더 및 디코더 모두를 적용하는 것으로 나타냈다. 그러한 대안들은 일 예로서 SHVC의 관점에서 기술했지만 일반적으로 HEVC와 스케일러블 및 비스케일러블 비디오/이미지 코딩 방식에도 적용한다.
대안 1
대안 1은 상기 설명과 연관되며, 도 7-8과, VPS(비디오 파라미터 세트) 확장 및 디코딩 프로세스를 참조한다.
그러한 설명은 잔차의 생성에 대한 인터-계층 기준 픽처를 사용한다는 것에 주목해야 한다. 계층 0의 인-루프 필터링 후 재구성이 사용되는 또 다른 접근방식이 규정될 수 있다. 통상 이러한 픽처들은 동일하다. 이러한 경우, RPS(기준 픽처 세트)로 소정의 인터-계층 기준 픽처 표시를 전송할 필요는 없다. 이는 HEVC 버전 1과 더 유사한 보다 높은 계층을 생성하고 RPS를 수정할 필요가 없으며, 인터-계층 기준 픽처가 기준 픽처 리스트의 마지막 위치에 있지 않을 경우 기준 인덱스를 수정할 필요가 없고, 또 인터-계층 기준 픽처가 인트라 코드될 때, 단일 계층 비트스트림으로 트랜스코딩할 때 슬라이스 타입을 수정할 필요도 없다.
또한 도 7-8은 계층 0으로부터의 동작이 예측(P)에 사용될 수 있는 것을 나타내고 있다는 것에 주목해야 한다. 만약 그와 같은 정보가 사용되지 않으면 그것은 사용될 필요가 없다.
또한 도 7-8은 변환 및 역변환이 사용되고 있는 것을 나타내고 있다는 것에 주목해야 한다. 만약 그러한 블록 또는 비트스트림이 변환을 사용하지 않는 것으로 나타나면, 변환 및 역변환 모두가 생략될 수 있다. 또한 이러한 예는 변환 스킵(skip) transform_skip_flag와 관련된 제안의 디코딩 프로세스로 기술된다. 저손실 코딩이 변환을 사용하면, 도면들에 나타낸 양자화, 역양자화 및 역변환 또한 생략될 수 있다. 이러한 예는 cu_transquant_bypass_flag와 관련된 제안의 디코딩 프로세스로 기술된다.
대안 2
다른 대안에 따르면, 부가 정보는 계층들간 특정 종속의 명세서 및 SHVC에 대한 SEI(추가의 확장 정보)의 추가의 변환 및 양자화에 대한 디코딩 프로세스를 포함한다. 그러한 종속에 대한 일 예는 대안 1의 VPS 확장으로 나타나 있고, 그러한 종속 정보를 이용하는 디코딩 프로세스의 일 예는 대안 1의 디코딩 프로세스에 나타나 있다. 디코더가 SEI 메시지를 수신하면, 보다 높은 계층들에 대한 인코더/디코더 매치(동일한 재구성된 픽셀값들)를 얻기 위해 기준 계층을 이용함으로써 스케일러블 비트스트림의 보다 높은 계층을 어떻게 디코드할지를 알 것이다.
대안 3
또 다른 대안에 따르면, 부가 정보는 SHVC에 보조 픽처에 대한 추가의 변환 및 양자화에 대한 디코딩 프로세스 및 계층들간 특정 종속의 명세서를 포함한다. 그러한 종속에 대한 일 예는 대안 1의 VPS 확장으로 나타나 있고, 종속 정보를 이용하는 디코딩 프로세스의 일 예는 대안 1의 디코딩 프로세스에 나타나 있다. 디코더가 상기 보조 픽처를 수신하면, 보다 높은 계층들에 대한 인코더/디코더 매치(동일한 재구성된 픽셀값들)를 얻기 위해 비트스트림의 기준 계층을 이용함으로써 그것을 어떻게 디코드할지를 알 것이다.
대안 4
누구든 비트스트림이 잔차 재생성, 변환 및 양자화를 위한 추가의 디코딩 프로세스를 이용하는 것을 이해하기 위해 좀더 쉬운 디코더를 위해 그것을 만들도록 새로운 확장성 타입을 지정할 수도 있다. 일 예는 대안 1의 상부에 그것을 부가하는 것이다.
1과 동일한 scalability_mask_flag[ I ]는 이하 표 2의 i-번째 확장성 범위에 대응하는 dimension_id 신택스 요소들이 제공되는 것을 나타낸다. 0과 같은 scalability_mask_flag[ I ]는 i-번째 확장성 범위에 대응하는 dimension_id 신택스 요소들이 제공되지 않는 것을 나타낸다.
표 2 : 확장성 범위에 대한 확장성 맵핑
Figure pct00007
예컨대 이것은 VPS의 부가 정보로 시그널될 수 있다.
대안 5
대안 1은 주로 SNR 확장성에 대해 나타냈다. 만약 기준 픽처(계층 0)의 해상도가 현재 픽처(예컨대, 계층 1)에서보다 크면, 다운-샘플링 프로세스를 규정해야 하고 사용될 필터 계수를 지정해야 한다. 그러한 다운-샘플링은 저해상도의 잔차 재생성에 이용되기 전에 고해상도 출력에 적용된다.
이렇게 하기 위한 하나의 접근방식은 해상도가 인터-계층 기준 픽처를 생성할 때 기준 계층에서보다 확장 계층에서 더 낮으면 대안의 필터가 사용되도록 SHVC에서 리샘플링 프로세스를 수정하는 것이다. 0.5x 확장성에 대한 일 예는 현재 규정된 바와 같이 로우-패스 필터(low-pass filter)에 대응되고 올-패스 필터(all-pass filter)(dirac)에 대응되지 않도록 풀-화소(full-pel) 위치(위상 0)에 대한 루마 및 크로마 필터만을 수정하는 것이다.
SHVC와 관련하여, 이후 잔차 ReGenerationFlag[curLayer][rld]가 1일 때 리샘플링이 수행되도록 인터 계층 기준 픽처들에 대한 리샘플링 프로세스를 수정할 필요가 있다:
인터 계층 기준 픽처들에 대한 리샘플링 프로세스
SamplePredEnabledFlag[currLayerId][rLId] 또는 ResidualReGenerationFlag[currLayerId][rLId]가 1과 같을 때, 픽처 샘플 리샘플링 프로세스는 입력으로서 샘플 어레이의 기준 계층 픽처 rlPic를 적용하고, 출력으로서 샘플 어레이의 리샘플된 픽처 rsPic를 적용한다.
어느 필터 계수가 사용될지가 VPS, SPS, PPS 또는 슬라이스 레벨로 또는 대안으로 SEI 메시지로 시그널되거나 새로운 보조 픽처에 규정될 수 있다. 다음에 디코더는 저해상도의 디코딩에 사용하기 전에 고해상도의 적절한 다운-샘플링을 행할 수 있게 그러한 정보를 사용할 수 있다.
대안 6
상기한 대안들의 일부에 있어서, 분석/디코드된 변환 계수들은 추가의 디코딩 프로세스(변환 및 양자화)에 의해 오버라이트(overwrite)되거나 리파인(refine)된다.
그것은 색 성분이 적용되는 비트스트림의 부가 정보로서 표시될 수 있다. 예컨대, 그렇다면 그것은 루마 또는 각각의 크로마 채널에 또는 모든 색 성분에 적용된다. 이때 "정상의" 디코딩 프로세스는 단지 적용되도록 표시된 색 성분들에 대한 추가의 변환 및 양자화에 의해 선-처리된다.
이것은 VPS, SPS, PPS, 슬라이스 헤더 레벨로 또는 코딩 유닛 레벨로 부가 정보로서, 또는 대안으로 SEI 메시지로 시그널될 수 있다.
상기 기술된 실시예들 및 대안들은 마찬가지로 기술된 트랜스코딩 방법 및 어렌지먼트를 서포트하기 위해 인코더 또는 디코더 어렌지먼트에서 사용될 것이다. 인코딩 및/또는 디코딩 어렌지먼트 및 방법들은 비디오 비트스트림을 생성하여 인코딩하고 그 인코딩된 비디오 비트스트림을 디코딩하는데 필요한 부가 정보를 생성할 수 있게 한다.
도 10에 따르면, 비디오 비트스트림이 인코더에서 인코드되고 그 비디오 비트스트림에 속하는 부가 정보가 생성되는 것이 개략적으로 나타나 있다. 인코드된 비디오 비트스트림 및 생성된 부가 정보 모두는 그 비디오 비트스트림이 적응된 적응 노드로 업링크를 통해 전송된다. 그러한 적응된 비디오 비트스트림은 이후 다운링크를 통해 전송되고 출력 비디오 비트스트림으로 디코드되는 디코더에서 수신된다. 도 10은 적응 프로세스에 적용될 때 제안된 시스템의 일반적인 블록도를 나타낸다. 인코더는 통상 HEVC 메인 프로파일 인코더와 같은 넌-스케일러블 비디오 인코더이다. 추가로, 입력 비디오로부터 그리고 인코더로부터의 입력에 기초하여 부가 정보가 생성된다.
상기 메인 인코드된 비디오 비트스트림 외에 그러한 생성된 부가 정보는, 즉 업링크를 통해 전송된다. 그러한 부가 정보의 전송에 사용된 비트율은 통상 메인 비디오 데이터의 비트율보다 훨씬 낮은데, 예컨대 그 메인 비디오 데이터의 10% 정도이다(이하 좀더 상세히 기술한 실행 설명 참조). 상기 부가 정보는 예컨대 다른 물리 또는 논리 채널을 통해 메인 비디오 데이터로부터 독립적으로 전송될 수 있다. 그러나, 통상적으로 그러한 부가 정보는 메인 비디오 데이터가 인터리브(interleave)되어 전송된다. 상기 부가 정보를 전송하는 한가지 방식은 메인 비트스트림에 인터리브된 HEVC 추가 확장 정보 메시지(SEI)를 이용하는 것이다. 또 다른 방식은, 스케일러블 비디오 층들이 SHVC에서 구별되는 방법과 유사하게, 예컨대 NAL 유닛 헤더에서 nuh_layer_id의 값에 의해 메인 비트스트림으로부터 구별되는 다른 HEVC NAL 유닛(네트워크 적응 계층)을 이용하는 것이다.
상기 메인 비디오 데이터 외에, 상기 부가 정보가 적응 노드에 제공되고, 이후 적응 프로세스에서 상기 적응 노드에 의해 사용된다.
이후, 예컨대 도 11에 따른 트랜스코더는, 아래와 같이 스케일러블 비트스트림에서 부분적으로 코딩된 낮은 해상도들 중 어느 하나에 대한 트랜스코딩의 속도를 높이도록 이러한 정보를 사용할 수 있다:
효율적인 RDO 수행을 위해 부가 정보를 생성하기 위해서는 적응 노드, 예컨대 픽셀 및/또는 동작 리샘플링에 이용된 필터에서 수행된 동작들, 및 트랜스코더의 인코더 스테이지에서 수행된 동작들(동작 보상된 예측을 포함하는 동작-보상 재구성, 인트라 예측, 변환, 양자화, 재구성, 루프 필터링 등), 즉 부가 정보가 실제로 트랜스코더의 인코더 스테이지에 적용되었는지에 대한 동작들의 정확한 지식을 가질 필요가 있다. 부가 정보 생성 및 트랜스코더에 대한 지식을 갖게 하기 위한 부가 정보 생성을 위한 한가지 옵션은 "배타적 솔루션"으로서, 예컨대 완전한 솔루션을 제공하는 단일의 벤더(vendor)에 의해 제공될 것이다. 또 다른 옵션은 트랜스코더의 일부 또는 모든 동작이 HEVC 명세서에 부록과 같이 표준 명세서에서 표준화된 것일 수 있다.
HEVC를 이용하는 예로서, 실시예는 아래의 단계들에 의해 인코더에 의해 수행될 수 있다:
1. 인코더 또는 또 다른 엔티티는 낮은 해상도의 픽처를 구성하기 위해 다운 샘플링을 이용한다. 그러한 다운 샘플링 방법은 바람직하게 표준화된 인코더와 적응 노드간 동의되어야 한다.
2. 인코더는 최고 해상도 픽처를 인코드하고 HEVC 비디오 코딩 표준에 순응하는 비트스트림을 출력한다. 동작 보상에 사용된 그러한 블록 구조, 블록 모드, 인트라 모드, 동작 벡터, 및 기준 픽처는 저장된다.
3. 인코더는 블록 구조를 결정하고 픽처의 모든 블록에 대한 동작 추정 및 선택을 수행함으로써 각각의 낮은 해상도의 픽처를 인코드한다. 아래와 같이 포함되는 부가 정보가 생성된다:
a. 코딩 유닛(CU), 예측 유닛(PU), 및 변환 유닛(TU)에 대한 블록 파티션 사이즈. 이들은 더 높은 해상도 픽처로부터 사이즈를 예측함에 따라 또는 예측하지 않고 인코드될 것이다. 예컨대, 만약 더 높은 해상도가 특정 블록을 위한 64x64 코딩 유닛을 선택하고 낮은 해상도가 2x(즉, 두배) 더 작으면, 해상도 32x32 및 64x64는 대응하는 픽처 영역에서 좀더 쉽게 예상되기 때문에 다른 블록 사이즈보다 더 싸게 만들어진다. 마찬가지로, 그러한 변환 사이즈가 8x8이면, 그러한 변환 사이즈 8x8 및 4x4는 다른 변환 사이즈보다 싸게 만들어진다. 이는 예컨대 현재 해상도의 블록 사이즈를 코딩할 때 CABAC 콘텍스트(context)에 대응하는 더 높은 해상도로부터 블록 사이즈를 포함함으로써 실현될 수 있다. 여기서 그리고 본 문서에서, CABAC 콘텍스트에 소정 정보를 포함하는 것은 그러한 정보에 기초하여 CABAC 콘텍스트를 선택하는 것으로 이해된다.
b. 코딩 유닛을 위한 블록 모드. 다시 그것들은 보다 높은 계층으로부터 예측에 따라 또는 예측하지 않고 인코드될 것이다. 예측되면, 보다 높은 계층의 대응하는 픽처 영역의 블록 모드는 현재 블록의 모드를 예측하는데 사용된다. 예컨대, 더 높은 해상도 픽처의 대응하는 블록(들)이 인트라 코드되면, 인트라 모드는 낮은 해상도 블록을 더 싸게 만든다. 블록 사이즈에 따라, 그러한 예측은 모드를 코딩할 때 CABAC 콘텍스트에 공동-위치된 블록 모드들을 포함함으로써 실현될 수 있다.
c. 모드가 인트라인 블록들에 대한 인트라 예측 모드는, 상기 기술한 것과 유사하게, 더 높은 품질 계층으로부터 예측되거나 예측되지 않는다.
d. 모드가 인트라인 블록들에 대한 동작 보상을 위한 동작 벡터 및 기준 픽처는, 상기 기술한 것과 유사하게, 더 높은 품질 계층으로부터 예측되거나 예측되지 않는다. 동작 벡터들의 예측은 낮은 품질 계층의 동작 벡터들을 코딩하기 위한 CABAC 콘텍스트에 더 높은 품질 계층 동작 벡터들에 대한 정보, 또는 적응 동작 벡터 예측(AMVP) 또는 임시 동작 벡터 예측(TMVP)과 같은 기술들을 이용한 예측 동작 벡터 코딩에 의한 동작 벡터들의 예측을 포함함으로써 실현될 수 있으며, 여기서 동작 벡터 예측기는 더 높은 품질 계층의 동작 벡터에 기초하여 유도되고, 낮은 품질 계층 동작 벡터를 코딩할 때, 실제 낮은 품질 벡터와 동작 벡터 예측기간 차가 코딩된다.
e. 모든 블록을 위한 양자화 파라미터
f. 픽처를 위한 SAO 파라미터는, 상기 기술한 것과 유사하게, 더 높은 품질 계층으로부터 예측되거나 예측되지 않는다.
상기 부가 정보 a-f의 선택은 레이트-왜곡 최적화(RDO) 기술들을 채용함으로써 수행될 수 있다. 그와 같은 기술들에 있어서, 통상 코딩 모드 또는 파라미터 결정의 임펙트는 코딩에 필요한 비트율(R) 및 비디오(D)를 재구성한 후 결과의 비디오 왜곡 모두에 대한 결정의 임펙트를 고려함으로써 평가된다. 여기서, D는 통상 재구성된 비디오 및 대응하는 오리지널(왜곡되지 않은) 비디오의 함수, 예컨대 평균-제곱 에러(MSE) 또는 신호-대-잡음비(SNR) 또는 피크-신호-대 잡음비(PSNR)이다. 그러한 D 및 R의 임펙트는 통상 가중 인자 λ(lambda)를 이용하여, 비용 함수 D+λ*R, 즉 왜곡 및 비트율의 가중된 합을 최소화함으로써 고려된다. 그러한 비용 함수는 통상 몇개의 다른 파라미터 선택을 위해 평가되고, 이후 그러한 비용 함수를 최소화하는 선택이 인코더에 의해 선택된다. 그러한 부가 정보 코딩의 경우, 고려될 왜곡 Dtranscoded은 트랜스코딩 프로세스에서 부가 정보를 이용한 다음 그 트랜스코드된 비디오를 디코딩한 후 관찰되는 왜곡이다. 더욱이, 2개의 비트율이 고려되는데, 즉 그 비트율은 업링크에서 부가 정보 Rsideinformation를 코딩하기 위해 요구되고(즉, 비디오를 인코더에서 트랜스코더로 전송할 때), 그리고 그 비트율은 트랜스코딩 후(Rtranscoded) 비디오를 나타내기 위해 요구된다. 만약 그러한 부가 정보가 높은 품질 비디오와 상관없이 코드되면, 상기 부가 정보는 트랜스코드된 비디오에서 현 상태로 사용되고, 이에 따라 Rsideinformation는 Rtranscoded로 직접 선형 구성을 갖는 것으로 고려되고, 그러한 경우 Dtranscoded+λ*Rsideinformation는 비용 함수로서 사용될 수 있다. 만약 그러한 부가 정보가 높은 품질 비디오에 따라 코드되면, 그와 같은 Rsideinformation와 Rtranscoded간 관계가 존재하지 않으며, 그러한 2개의 비트율은 2개의 가중 인자 λsideinformation 및 λtranscoded를 이용하여 Dtranscodedsideinformation*Rsideinformationtranscoded*Rtranscoded와 같은 비용 함수의 독립된 용어로 고려될 것이다.
4. 인코더는 부가 정보로 전송된 그러한 사이즈/모드/벡터/QP/SAO를 이용하여 낮은 해상도 픽처를 재구성한다.
a. 블록이 인트라인지 또는 인터인지에 따라 블록 모드와 인트라 예측 모드 또는 동작 벡터 및 기준 픽처를 적용함으로써 잔차 블록을 구성한다.
b. 공지된 양자화 방법에 따라 잔차 블록을 양자화한다. 그러한 양자화 방법은 일반적으로 표준화되지 않기 때문에, 이러한 방법은 인코더와 적응 노드간 동의되거나 표준화(바람직하게)되어야 한다.
c. HEVC 명세서에 따라 블록을 역양자화하고, 그것을 그 예측에 부가하고 재구성된 블록을 형성한다.
d. 픽처에 대한 디-블록킹 필터 및 SAO를 적용한다. 재구성된 픽처는 이제 적응 노드가 디코드한 후 디코더가 어떤 스트림을 디코딩할지가 어느 정도 정확해질 것이다.
상기 예 이후, 이들 단계가 들어오는 고해상도 비트스트림 및 부가 정보로부터 단일의 계층 저해상도 비트스트림을 생성하도록 적응 노드에 의해 수행될 것이다.
1. 동작 보상에 이용된 고해상도 비트스트림 저장 블록 구조, 블록 모드, 인트라 모드, 동작 벡터 및 기준 픽처를 디코드한다.
2. 고해상도 픽처는 동의된/표준화된 다운 샘플링 방법을 이용함으로써 다운 샘플된다.
3. 적응 노드는 부가 정보 비트스트림으로부터 동작 보상을 위한 블록 사이즈, 블록 모드, 인트라 예측 모드, 동작 벡터, 및 기준 픽처, 양자화 파라미터, 및 SAO 파라미터를 디코드한다. 이들 모든 파라미터의 일부는 고해상도 비트스트림의 디코딩 동안 저장된 파라미터들로부터 예측될 것이다. 이러한 디코드된 파라미터들은 출력 비트스트림에 포함된다.
4. 각 블록에 있어서, 블록 사이즈, 모드(인트라 및 인터 모드와 파라미터를 포함하는), 및 QP는 잔차 블록을 형성하는데 사용된다. 이후 이러한 잔차 블록들은 상기 기술한 공지의 양자화 방법에 따라 양자화된다. 그러한 결과의 계수들은 출력 비트스트림에 포함된다.
5. HEVC 명세서에 따라 각 블록을 역양자화하고, 그것을 그 예측에 부가하고 재구성된 블록을 형성한다.
6. 픽처에 대한 디-블록킹 필터 및 SAO를 적용한다. 재구성된 픽처는 출력 스트림을 디코딩하는 결과에 어느 정도 맞추어질 것이다. 그러한 출력 스트림은 순응하는 단일 계층 HEVC 스트림이 될 것이다.
상기 적응 단계 4 및 5는 단계 5에서 블록을 재구성할 때 상기 동일한 픽처에서 앞서 이전에 디코드된 블록들의 재구성 프로세스의 결과가 고려되도록 블록 레벨마다 수행되어야 한다. 그것은 통상적으로 이들이 이웃하는 블록의 디코드된 픽셀들에 기초하여 예측 신호를 생성하므로 인트라-예측 모드가 사용되는 경우가 된다. 디코딩 프로세스가 단지 픽처 레벨에만 영향을 주면 새로운 스킴을 실행하기 위한 기존의 디코더 수행을 좀더 간단히 재사용할 수 있기 때문에 그와 같은 블록당 프로세싱을 피하는 것이 바람직하다. 이것은 인트라 예측된 블록들이 사용되지 않을 때 주어진 픽처에서 실현될 수 있다. 대안으로, 그것은 재구성된 인터-예측된 블록들에 기초하여 인트라-예측된 블록들에 대한 예측이 불가할 때 실현될 수 있는데, 즉 그것은 "억제된 인트라 예측"이라 부르고, 게다가 예컨대 인트라-코드된 블록들을 서로 나란히 두는 것을 피함으로써 인트라-예측된 블록들간 소정의 예측이 피해질 때 실현될 수 있다. 인코더는 그와 같은 억제를 실현하도록 선택한다. 그러나, 예컨대 기존의 트랜스코더 또는 디코더 실행을 이용하여 트랜스코더 또는 디코더가 단지 픽처 레벨 프로세싱만의 실행을 이용하게 하기 위해, 트랜스코더 또는 디코더는 그와 같은 억제가 인코더에 의해 실현된다는 것을 알아야 한다. 따라서, 그러한 인코더는 예컨대 억제가 실현될지의 여부를 나타내는 플레그(flag) 또는 표시자를 이용하여 그와 같은 억제가 뒤따른다는 것을 시그널한다. 만약 그러한 트랜스코더 또는 디코더가 플래그를 수신하고 그 플래그가 억제가 실현된 것이라는 것을 나타내면, 픽처-레벨 프로세싱, 또는 대안으로 블록-레벨 프로세싱을 수행할 수 있다. 상기 트랜스코더 또는 디코더가 플래그를 수신하고 그 플래그가 억제가 실현되지 않은 것을 나타내면, 트랜스코더 또는 디코더는 블록-레벨 프로세싱을 수행할 수 있거나, 또는 그것이 블록-레벨 프로세싱을 이용하여 서포트되지 않으면, 그것이 비디오를 디코드할 수 없다는 것을 나타낼 수 있다.
상기 가이드된 트랜스코딩 아키텍처가 갖는 장점은, 도 2에 나타낸 것과 같은 공지된 트랜스코딩 아키텍처들과 비교하여, 그러한 추가의 부가 정보는 트랜스코더의 인코딩 스테이지에 최적화된 모드/동작 정보를 제공할 수 있기 때문에 트랜스코드된 비트스트림에 대해 매우 높은 압축 효율이 달성되는 반면, 그러한 트랜스코더의 인코딩 스테이지는 통상 높은 트랜스코딩 복잡성의 주요한 이유인 모드/동작 추정을 포함하지 않는다는 것이다. 도 2에 따른 기존의 트랜스코더가 단지 압축된 비트스트림만을 이용할 수 있는 것과 달리, 상기 부가 정보 생성이 시스템의 전송기측에서 확립되므로, 저해상도 모드/동작 정보의 생성에 오리지널 비디오 소스 데이터를 이용할 수 있다는 것을 알 수 있을 것이다. 기존의 트랜스코딩과 비교하여, 모드/동작 최적화의 이용을 위해 오리지널 비디오 소스 데이터의 이용성은 제안된 시스템이 트랜스코드된 비트스트림의 약간 더 좋은 압축 효율, 즉 약간 더 좋은 다운링크 대역폭 이용을 달성할 수 있게 한다.
부가 정보의 다중 이용의 예가 도 12를 참조하여 기술되며, 여기서 부가 정보에 따른 가이드된 트랜스코딩이 잔차 리파인먼트(refinement)를 위해 수행된다. 도 12에 나타낸 바와 같이, 그러한 부가 정보는 저해상도 비디오에 대한 모드/동작 정보(도 12의 하부에 나타낸) 및 계수 정보(도 12의 상부에 나타낸) 모두를 포함한다. 바람직하게, 그러한 양 타입의 부가 정보는 예컨대 계층 식별자의 NAL 유닛 타입에 의해 구별된 다른 NAL 유닛을 이용하여, 업링크로 전송된 단일 스트림에 인터리브된다(나타내지 않음).
비록 2개의 분리된 부가 정보 입력 및 2개의 부가 정보 이용 유닛(120, 140)으로 나타냈을 지라도, 단일의 부가 정보 비트스트림에 인터리브된 2개의 분리된 부가 정보 비트스트림의 수신을 가능하게 하는 단일의 부가 정보 이용 유닛(120, 140)을 동일하게 가질 수 있다.
저해상도 계수 데이터는 기존의 단일 계층 비디오 또는 스케일러블 비디오에서와 같이 예측 잔차 데이터를 포함할 것이다. 다운-샘플링 동작이 인터-계층 예측에 포함되는 것 외에, 스케일러블 코딩(예컨대, SHVC)에서와 같은 유사한 예측 메카니즘을 이용하여, 다운-샘플된 고해상도 픽셀 데이터에 따라 코딩될 것이다. "잔차 디코더"의 출력은 저해상도 잔차 데이터이다. 그러한 "잔차 디코더"는 동작-보상 재구성 메카니즘을 수행하지 않고 저행상도 잔차 데이터를 재구성할 것이다.
트랜스코더의 인코더 스테이지는 동작-보상 잔차 생성, 뒤이은 잔차 조절(그 결과 조절된 잔차 데이터가 되는), 변환 계수(그 결과 변환 계수가 되고 비트스트림 생성되는)를 포함한다. 그러한 동작-보상 잔차 생성은 입력 데이터로서 타겟 해상도로 다운-샘플된 메인 비디오 픽셀 데이터를 사용하고, 그 동작 보상된 잔차 생성은 부가 정보로서 수신된 저해상도 모드/동작 데이터를 이용함으로써 수행된다(그 데이터가 메인 비디오로부터 다운-샘플된 모드/동작 데이터에 따라 선택적으로 인코드된). 상기 잔차 조절 스테이지에서, 동작-보상 잔차 생성에서 생성된 잔차 데이터는 잔차 디코더에 의해 디코드된 저해상도 잔차 데이터에 기초하여 조절된다. 그러한 잔차 조절 동작은 예컨대 2개의 잔차 신호를 부가하거나, 또는 그것들을 상호 빼는 것을 포함할 것이다. 그 결과의 조절된 잔차 데이터는 변환되고, 양자화되고, 저해상도 모드/동작 데이터와 함께 엔트로피 코드된다.
또한 상기 잔차 조절 동작과 유사한 도 12의 조절 동작으로 나타낸 예에 대안으로 동작-보상 잔차 생성에 입력된 픽셀 데이터에 또는 변환 및 양자화 스테이지로부터 출력된 변환 계수에도 수행될 수 있다는 것에 주목하자.
비록 도 12에 나타내지 않았지만, 이러한 예의 부가 정보 이용자는 또한 변환 및 양자화 스테이지, 및 잔차 조절 스테이지를 콘트롤할 수 있다는 것에 주목하자.
상기 나타낸 바와 같이, 그러한 부가 정보는 미리 결정된 입력 비디오 포맷과 관련된 잔차 정보 뿐만 아니라 또 대안으로 트랜스코딩을 더 강화하기 위해 코딩 파라미터의 조사 범위를 포함할 수 있다. 상기 부가 정보 및 인코드된 비디오 비트스트림은 인터리브된 비트스트림으로서 함께, 또는 단일 캐리어 내의 분리된 층들로, 또는 분리된 캐리어들 또는 채널들로 전송될 수 있다. 수신 트랜스코딩 어렌지먼트(100; '트랜스코더 어렌지먼트'라고도 칭함)가 그러한 제공된 부가 정보를 이용할 수 있도록 하기 위해, 선택적으로 상기 제공된 부가 정보의 표시 뿐만 아니라 선택적으로 상기 제공된 부가 정보의 잠재적 사용의 표시가 트랜스코딩 노드로 전송되고 그 트랜스코딩 노드에 의해 수신된다. 따라서, 상기 트랜스코더 어렌지먼트(100)는 그와 같은 표시의 존재를 검출하도록 동작하고 그 제공된 부가 정보를 해석하도록 동작하는 표시 식별 유닛을 포함한다.
상기 언급한 바와 같이, 상기 부가 정보는 잠재적인 타겟 출력 해상도와 관련된 모드/동작 정보 및/또는 변환 계수 또는 가이드된 트랜스코더의 타겟 출력 동작 포인트를 포함한다. 또한 픽셀 리샘플링 및/또는 동작 리샘플링(예컨대, 사용된 필터)에 대한 파라미터, 타겟 출력 해상도에 대한 루프-필터 파라미터(예컨대, 디-블록킹 파라미터 또는 SAO, 샘플 적응 오프셋, 파라미터), 트랜스코더의 인코딩 스테이지에 사용되는 양자화 파라미터, 또는 다른 인코딩 파라미터에 대한 정보를 포함한다. 그러한 부가 정보의 파라미터들은 메인 비디오 비트스트림의 관련된 파라미터에 따라 코드될 수 있는데, 예컨대 스케일러블 코딩과 유사하게 차분 코딩이 적용될 수 있다.
상기 언급된 적응 방법들은 시간이 지남에 따라 변경될 수 있는데, 예컨대 비디오의 각기 다른 픽처들에 대해 각기 다른 방법들이 적용될 것이다. 따라서, 그러한 부가 정보의 타입 및 양은 변할 것이다. 예컨대, 가이드된 트랜스코딩에 대한 부가 정보는 몇몇 픽처로 전송되고, 반면 부가 정보는 몇몇 다른 픽처(예컨대, 비-기준 픽처)로 전송될 수 있다. 그와 같은 변화를 이용하여, 전송된 부가 정보의 양과 트랜스코딩 복잡성간 트레이드-오프(trade-off)가 선택될 수 있다.
도 13을 참조하여, 실시예에 따른 비디오 비트스트림을 트랜스코딩하기 위한 트랜스코더 어렌지먼트(100)의 일반적인 실시예가 기술된다. 트랜스코딩 방법의 실시예들의 상기 기술된 블록도 또는 순서도를 참조하여 기술한 바와 같이 모든 기능들을 수행하기 위한 어렌지먼트가 채용되고, 구성되거나, 또는 동작될 수 있다.
상기 트랜스코딩 어렌지먼트는 고충실도 포맷인 입력 비디오 포맷을 갖는 비트스트림을 수신하고 상기 비디오 비트스트림과 관련된 부가 정보를 수신하도록 구성된다. 상기 부가 정보는 적어도:
저충실도 입력 비디오 포맷을 갖는 오리지널 비디오 소스를 나타내는 비디오 비트스트림,
상기 오리지널 비디오 소스의 지식에 기초하여 최적화된 코딩 파라미터, 및
상기 오리지널 비디오 소스와 디코드된 버전의 고충실도 포맷간 잔차를 나타내는 변환 계수를 포함한다.
상기 트랜스코더 어렌지먼트는:
트랜스코딩 안내 정보를 생성하기 위해 상기 수신된 부가 정보를 디코드하고,
수신된 비트스트림 및 생성된 트랜스코딩 안내 정보에 기초하여 저충실도 출력 포맷을 갖는 상기 비트스트림의 표시를 추정하고,
저충실도 출력 포맷을 갖는 상기 비트스트림의 추정 표시를 향상시키기 위해 저충실도 출력 포맷을 갖는 상기 비트스트림의 추정된 표시로부터 생성된 변환 계수에 부가 정보의 변환 계수를 부가하도록 더 구성된다. 트랜스코더는 저충실도 출력 포맷을 갖는 상기 비트스트림의 향상된 추정된 표시를 인코드하도록 더 구성된다.
실시예에 따르면, 오리지널 비디오 소스와 디코드된 버전의 고충실도 포맷간 잔차는 양자화된 잔차이다.
상기 트랜스코더 어렌지먼트는 상기 수신된 비디오 비트스트림의 상기 표시로서 픽셀 데이터를 제공하기 위해 상기 수신된 비디오 비트스트림을 디코드하도록 더 구성된다. 더욱이, 상기 부가 정보는 상기 미리 결정된 입력 비디오 포맷과 관련된 잔차 정보를 더 포함한다.
상기 트랜스코더 어렌지먼트는 상기 비디오 비트스트림으로부터 독립적으로 또는 상기 비디오 비트스트림과 함께 상기 부가 정보를 수신하도록 더 구성된다.
다른 실시예에 따르면, 상기 트랜스코더 어렌지먼트는 상기 비디오 비트스트림 내의 상기 부가 정보의 존재에 대한 표시를 확인하도록 더 구성된다. 상기 미리 결정된 입력 비디오 포맷 및 상기 미리 결정된 출력 비디오 포맷은 비디오의 각기 다른 색 표시, 또는 각기 다른 비디오 코덱을 포함한다.
상기 트랜스코딩 어렌지먼트(100)는 기지국 노드 또는 비디오 공급자 노드와 같은 네트워크 노드(고정 또는 무선)에서, 또는 모바일 폰 또는 랩탑 등과 같은 사용자 장비에서 실행될 수 있다.
도 13에 나타낸 바와 같은 일 형태에 따르면, 상기 트랜스코딩 어렌지먼트는 입력 비디오 포맷을 갖는 비트스트림을 수신하도록 구성된 비디오 수신기(110) 및 상기 비디오 비트스트림과 관련된 부가 정보를 수신하도록 구성된 부가 정보 수신기(120)를 포함한다.
상기 트랜스코더 어렌지먼트는 비트스트림을 디코드하기 위한 비디오 디코더(130) 및 트랜스코딩 안내 정보를 생성하기 위해 상기 수신된 부가 정보를 디코드하도록 구성된 부가 정보 디코더(140)를 더 포함한다. 상기 트랜스코더 어렌지먼트는 수신된 비트스트림 및 생성된 트랜스코딩 안내 정보에 기초하여 저충실도 출력 포맷을 갖는 상기 비트스트림의 표시를 추정하고, 저충실도 출력 포맷을 갖는 상기 비트스트림의 추정 표시를 향상시키기 위해 저충실도 출력 포맷을 갖는 상기 비트스트림의 추정된 표시로부터 생성된 변환 계수에 부가 정보의 변환 계수를 부가하도록 구성된 프로세서(145)를 포함한다. 부가 정보 수신기(120), 부가 정보 디코더(140) 및 프로세서(145)는 부가 정보(SI) 사용자(155)로 나타나 있다.
상기 트랜스코더 어렌지먼트는 저충실도 출력 포맷을 갖는 상기 비트스트림의 표시의 향상된 추정을 인코드하도록 구성된 인코더(150)를 더 포함한다.
도 14를 참조하여, 비디오 공급자 어렌지먼트(200)가 기술된다. 그러한 비디오 공급자 어렌지먼트(200)는 상기 기술한 바와 같은 가이드된 트랜스코딩을 서포트하기 위해 상기 기술된 실시예들에 따라 인코딩을 유효하게 동작하고 가능하도록 구성된다.
비디오 공급자 어렌지먼트(200)는 비트스트림을 인코딩하기 위한 비디오 비트스트림 인코더(210) 및 부가 정보를 생성하기 위한 부가 정보 생성기(220)를 포함하고, 고충실도 포맷인 입력 비디오 포맷을 갖는 비트스트림을 전송하고 상기 비디오 비트스트림과 관련된 부가 정보를 전송하기 위한 비디오 공급자 전송기(230)를 더 포함한다. 상기 부가 정보는 적어도:
저충실도 입력 비디오 포맷을 갖는 오리지널 비디오 소스를 나타내는 비디오 비트스트림;
상기 오리지널 비디오 소스의 지식에 기초하여 최적화된 코딩 파라미터; 및
상기 오리지널 비디오 소스와 디코드된 버전의 고충실도 포맷간 잔차를 나타내는 변환 계수들을 포함한다.
상기 비디오 공급자 어렌지먼트(200)는 네트워크 노드 또는 사용자 장비에 포함될 수 있다.
이하에서, 트랜스코더 어렌지먼트(300)의 실행 예가 도 15를 참조하여 기술된다. 그러한 트랜스코더 어렌지먼트(300)는 하나 또는 그 이상의 프로세서(310) 및 메모리(320)와 같은 처리 회로를 포함한다. 이러한 특정 예에서, 상기 기술된 적어도 일부의 단계, 기능, 절차, 모듈 및/또는 블록들은 상기 처리 회로에 의한 실행을 위해 상기 메모리에 로딩된 컴퓨터 프로그램으로 실행된다. 상기 처리 회로 및 메모리는 정상적인 소프트웨어 실행을 가능하도록 서로 상호연결된다. 그러한 메모리(320)는 비디오 비트스트림을 수신하기 위한 소프트웨어(321), 수신측 정보를 위한 소프트웨어(322), 트랜스코딩 안내 정보를 생성하기 위한 소프트웨어(323) 및 인코딩을 위한 소프트웨어(324)와 같은 각기 다른 소프트웨어 모듈을 포함한다. 또한 선택의 입력/출력 장치(330)는 입력 파라미터(들) 및/또는 결과의 출력 파라미터(들)와 같은 관련 데이터의 입력 및/또는 출력을 가능하게 하도록 상기 처리 회로 및/또는 메모리에 상호연결된다.
이하에서, 비디오 공급자 어렌지먼트(400)의 실행의 예가 도 16을 참조하여 기술된다. 그러한 트랜스코더 어렌지먼트(400)는 하나 또는 그 이상의 프로세서(410) 및 메모리(420)와 같은 처리 회로를 포함한다. 이러한 특정 예에서, 상기 기술한 적어도 일부의 단계, 기능, 절차, 모듈 및/또는 블록들은 상기 처리 회로에 의한 실행을 위해 메모리에 로딩된 컴퓨터 프로그램으로 실행된다. 상기 처리 회로 및 메모리는 정상적인 소프트웨어 실행을 가능하게 하도록 서로 상호연결된다. 그러한 메모리(420)는 비디오 비트스트림을 인코딩하기 위한 소프트웨어(421), 부가 정보를 생성하기 위한 소프트웨어(422), 인코드된 비디오 및 부가 정보를 전송하기 위한 소프트웨어(423)와 같은 각기 다른 소프트웨어 모듈을 포함한다. 또한 선택의 입력/출력 장치(430)는 입력 파라미터(들) 및/또는 결과의 출력 파라미터(들)와 같은 관련 데이터의 입력 및/또는 출력을 가능하게 하도록 상기 처리 회로 및/또는 메모리에 상호연결된다.
용어 "컴퓨터"는 특정 프로세싱, 결정 또는 컴퓨팅 태스크(task)를 수행하도록 프로그램 코드 또는 컴퓨터 프로그램 명령들을 실행할 수 있는 소정의 시스템 또는 장치와 같은 일반적인 의미로 해석될 수 있다.
특정 실시예에 있어서, 그러한 컴퓨터 프로그램은 처리 회로 또는 컴퓨터에 의해 실행될 때 그러한 처리 회로 또는 컴퓨터가 상기 기술한 트랜스코딩 방법 및 비디오 제공 방법의 실시예들을 참조하여 기술한 바와 같은 단계 및 기능들을 수행하게 하는 프로그램 코드를 포함한다.
그러한 프로그램 코드는 처리 회로에 의해 실행될 때 상기 기술한 적어도 일부의 단계 및/또는 태스크를 수행하도록 구성된 적절한 기능 모듈로 구성될 것이다.
상기 소프트웨어 또는 컴퓨터 프로그램은 컴퓨터-판독가능 매체에서 정상적으로 수행되거나 저장되는 컴퓨터 프로그램 제품으로 실현될 것이다. 상기 컴퓨터-판독가능 매체는 한정하진 않지만 ROM(Read-Only Memory), RAM(Random Access Memory), CD(Compact Disc), DVD(Digital Versatile Disc), USB(Universal Serial Bus), 메모리, HDD(Hard Disk Drive) 저장 장치, 플레시 메모리, 또는 소정의 다른 기존의 메모리 장치를 포함한 하나 또는 그 이상의 제거가능 또는 제거불가능 메모리 장치들을 포함할 것이다. 따라서 상기 컴퓨터 프로그램은 처리 회로에 의한 실행을 위해 컴퓨터 또는 동등한 처리 장치의 동작 메모리에 로딩될 것이다.
예컨대, 메모리에 저장된 그러한 컴퓨터 프로그램은 처리 회로에 의해 실행가능한 프로그램 명령들을 포함하며, 이에 의해 상기 처리 회로는 상기 기술한 단계, 기능, 절차 및/또는 블록들을 실행할 수 있거나 실행하도록 동작한다.
따라서 비디오 공급자 및 트랜스코딩 어렌지먼트 뿐만 아니라 그 내부의 인코딩 및 디코딩 어렌지먼트는 그 컴퓨터 프로그램을 실행할 때 상기 기술한 것들과 같은 잘 규정된 처리 태스크들을 수행하도록 구성된다.
상기 컴퓨터 또는 처리 회로는 상기 기술한 단계, 기능, 절차, 및/또는 블록들을 실행하는 것으로만 제공되지 않으며, 다른 태스크들도 실행할 수 있다.
따라서 상기 실시예들에 따라 가이드된 트랜스코딩은 적절한 적응 복잡성으로 업링크 절감을 제공하는 다른 시멀캐스트가 채용되는 환경(예컨대, 주문형 분배 또는 화상 회의)을 위한 실용적인 대안이 될 수 있다. 또한 업링크 및 다운링크 절감 뿐만 아니라 적절한 적응 복잡성을 희생하여 복잡성의 감소를 제공하는 다른 스케일러블 코딩이 채용되는 환경(예컨대, 화상 회의)을 위한 실용적인 대안을 제공할 수 있다. 또한 특히 증가된 인코딩 복잡성 및 약간 증가된 업링크 비트율을 희생하여 매우 효과적인 인코딩(N≫1을 갖는)이 사용될 경우 기존의 트랜스코딩보다 낮은 적응 복잡성을 제공하는 다른 기존의 트랜스코딩이 채용되는 환경(예컨대, 주문형 분배)을 위한 실용적인 대안을 제공할 수 있다. 적응 복잡성의 감소는 특히 단일의 전송기 및 많은 적응 노드를 갖춘 시나리오(예컨대, 주문형 분배)와 관련될 것이다.
상기 기술한 방법 및 장치들이 다양한 방식으로 조합 및 재배열될 수 있다는 것을 알아야 할 것이다.
예컨대, 실시예들은 하드웨어에서 실행되거나, 또는 적절한 처리 회로에 의한 실행을 위해 소프트웨어로 실행되거나, 또는 그 조합으로 실행될 것이다.
상기 기술한 단계, 기능, 절차, 모듈, 및/또는 블록들은 범용 전자 회로 및 주문형 회로 모두를 포함한 개별 회로 또는 집적회로 기술과 같은 소정 기존의 기술을 이용하는 하드웨어에서 실행될 것이다.
특정 예들은 하나 또는 그 이상의 적절하게 구성된 디지털 신호 프로세서 및 다른 공지의 전자 회로, 예컨대 특수 기능을 수행하도록 상호연결된 개별 논리 게이트, 또는 주문형 집적회로(ASIC)를 포함한다.
대안으로, 상기 기술한 적어도 일부의 단계, 기능, 절차, 모듈, 및/또는 블록들은 하나 또는 그 이상의 처리 유닛을 포함하는 적절한 처리 회로에 의한 실행을 위해 컴퓨터 프로그램과 같은 소프트웨어로 실행될 것이다.
따라서 상기 제공된 흐름도 또는 흐름도들은 하나 또는 그 이상의 프로세서에 의해 수행될 때 컴퓨터 흐름도 또는 흐름도들로 간주될 것이다. 대응하는 장치들은 기능 모듈들의 그룹으로 규정되고, 여기서 프로세서에 의해 수행된 각 단계는 기능 모듈에 대응한다. 이러한 경우, 그러한 기능 모듈들은 프로세서 상에서 실행되는 컴퓨터 프로그램과 같이 실행된다.
처리 회로의 예들은 한정하진 않지만 하나 또는 그 이상의 마이크로프로세서, 하나 또는 그 이상의 디지털 신호 프로세서(DSP), 하나 또는 그 이상의 중앙 처리 장치(CPU), 비디오 가속 하드웨어, 및/또는 하나 또는 그 이상의 필드 프로그램가능 게이트 어레이(FPGA), 하나 또는 그 이상의 프로그램가능 로직 콘트롤러(PLC)와 같은 소정의 적절한 프로그램가능 로직 회로를 포함한다.
또한 그러한 제안된 기술이 실행되는 소정 기존의 장치 또는 유닛의 일반적인 처리 성능을 재사용할 수도 있다는 것을 알아야 한다. 또한 예컨대 기존 소프트웨어의 재프로그래밍에 의해 또는 새로운 소프트웨어 요소의 부가에 의해 기존의 소프트웨어를 재사용할 수도 있을 것이다.
현재 개시의 실시예들이 소스로서 네트워크 노드, 적응 노드 및 싱크로서 사용자 장비를 연관지어 기술했을지라도, 사용자 장비 또는 기지국 노드에서 그러한 적응 또는 트랜스코딩이 발생하는 것을 동일하게 적용할 수 있다.

Claims (16)

  1. 오리지널 비디오 소스를 입력 포맷에서 출력 포맷으로 나타내는 비트스트림을 트랜스코딩하는 트랜스코더 어렌지먼트를 위한 방법으로서,
    - 고충실도 포맷인 입력 비디오 포맷을 갖는 비트스트림을 수신하는 단계(S10);
    - 비디오 비트스트림과 관련된 부가 정보를 수신하는 단계(S20);
    - 트랜스코딩 안내 정보를 생성하기 위해 수신된 부가 정보를 디코딩하는 단계(S40);
    - 수신된 비트스트림 및 생성된 트랜스코딩 안내 정보에 기초하여 저충실도 출력 포맷을 갖는 비트스트림의 표시를 추정하는 단계(S50);
    - 저충실도 출력 포맷을 갖는 비트스트림의 추정된 표시를 향상시키기 위해 저충실도 출력 포맷을 갖는 비트스트림의 추정된 표시로부터 생성된 변환 계수에 부가 정보의 변환 계수를 부가하는 단계(S60); 및
    - 저충실도 출력 포맷을 갖는 비트스트림의 향상된 추정된 표시를 인코딩하는 단계(S70)를 포함하며,
    상기 부가 정보는 적어도:
    저충실도 입력 비디오 포맷을 갖는 오리지널 비디오 소스를 나타내는 비디오 비트스트림,
    상기 오리지널 비디오 소스의 지식에 기초하여 최적화된 코딩 파라미터, 및
    상기 오리지널 비디오 소스와 디코드된 버전의 고충실도 포맷간 잔차를 나타내는 변환 계수를 포함하는, 트랜스코더 어렌지먼트를 위한 방법.
  2. 청구항 1에 있어서,
    오리지널 비디오 소스와 디코드된 버전의 고충실도 포맷간 잔차는 양자화된 잔차인, 트랜스코더 어렌지먼트를 위한 방법.
  3. 청구항 1 또는 2에 있어서,
    상기 수신된 비디오 비트스트림의 상기 표시로서 픽셀 데이터를 제공하기 위해 상기 수신된 비디오 비트스트림을 디코딩하는 단계(S30)를 더 포함하는, 트랜스코더 어렌지먼트를 위한 방법.
  4. 청구항 1 내지 3 중 어느 한 항에 있어서,
    상기 부가 정보는 미리 결정된 입력 비디오 포맷과 관련된 잔차 정보를 더 포함하는, 트랜스코더 어렌지먼트를 위한 방법.
  5. 청구항 1 내지 4 중 어느 한 항에 있어서,
    상기 부가 정보는 상기 비디오 비트스트림으로부터 독립적으로 수신되는, 트랜스코더 어렌지먼트를 위한 방법.
  6. 청구항 1 내지 5 중 어느 한 항에 있어서,
    상기 부가 정보는 상기 비디오 비트스트림과 함께 수신되는, 트랜스코더 어렌지먼트를 위한 방법.
  7. 청구항 1 내지 6 중 어느 한 항에 있어서,
    상기 방법은 상기 비디오 비트스트림 내의 상기 부가 정보의 존재에 대한 표시를 확인하는 단계를 더 포함하는, 트랜스코더 어렌지먼트를 위한 방법.
  8. 청구항 1 내지 7 중 어느 한 항에 있어서,
    미리 결정된 입력 비디오 포맷 및 미리 결정된 출력 비디오 포맷은 비디오의 각기 다른 색 표시, 또는 각기 다른 비디오 코텍을 포함하는, 트랜스코더 어렌지먼트를 위한 방법.
  9. 오리지널 비디오 소스를 입력 포맷에서 출력 포맷으로 나타내는 비트스트림을 트랜스코딩하는 트랜스코더 어렌지먼트(100)로서, 상기 트랜스코더 어렌지먼트(100)는:
    고충실도 포맷인 입력 비디오 포맷을 갖는 비트스트림을 수신하고;
    비디오 비트스트림과 관련된 부가 정보를 수신하도록 구성되며,
    상기 부가 정보는 적어도:
    저충실도 입력 비디오 포맷을 갖는 오리지널 비디오 소스를 나타내는 비디오 비트스트림,
    상기 오리지널 비디오 소스의 지식에 기초하여 최적화된 코딩 파라미터, 및
    상기 오리지널 비디오 소스와 디코드된 버전의 고충실도 포맷간 잔차를 나타내는 변환 계수를 포함하고,
    상기 트랜스코더 어렌지먼트는 트랜스코딩 안내 정보를 생성하기 위해 수신된 부가 정보를 디코딩하고, 수신된 비트스트림 및 생성된 트랜스코딩 안내 정보에 기초하여 저충실도 출력 포맷을 갖는 비트스트림의 표시를 추정하고, 저충실도 출력 포맷을 갖는 비트스트림의 추정된 표시를 향상시키기 위해 저충실도 출력 포맷을 갖는 비트스트림의 추정된 표시로부터 생성된 변환 계수에 부가 정보의 변환 계수를 부가하며, 저충실도 출력 포맷을 갖는 비트스트림의 향상된 추정된 표시를 인코드하도록 더 구성된, 트랜스코더 어렌지먼트(100).
  10. 청구항 9에 있어서,
    오리지널 비디오 소스와 디코드된 버전의 고충실도 포맷간 잔차는 양자화된 잔차인, 트랜스코더 어렌지먼트(100).
  11. 청구항 9 또는 10에 있어서,
    상기 수신된 비디오 비트스트림의 상기 표시로서 픽셀 데이터를 제공하기 위해 상기 수신된 비디오 비트스트림을 디코드하도록 더 구성된, 트랜스코더 어렌지먼트(100).
  12. 청구항 9 내지 11 중 어느 한 항에 있어서,
    상기 부가 정보는 미리 결정된 입력 비디오 포맷과 관련된 잔차 정보를 더 포함하는, 트랜스코더 어렌지먼트(100).
  13. 청구항 9 내지 12 중 어느 한 항에 있어서,
    트랜스코더 어렌지먼트는 상기 비디오 비트스트림으로부터 독립적으로 상기 부가 정보를 수신하도록 더 구성된, 트랜스코더 어렌지먼트(100).
  14. 청구항 9 내지 13 중 어느 한 항에 있어서,
    트랜스코더 어렌지먼트는 상기 비디오 비트스트림과 함께 상기 부가 정보를 수신하도록 더 구성된, 트랜스코더 어렌지먼트(100).
  15. 청구항 9 내지 14 중 어느 한 항에 있어서,
    트랜스코더 어렌지먼트는 상기 비디오 비트스트림 내의 상기 부가 정보의 존재에 대한 표시를 확인하도록 더 구성된, 트랜스코더 어렌지먼트(100).
  16. 청구항 9 내지 15 중 어느 한 항에 있어서,
    미리 결정된 입력 비디오 포맷 및 미리 결정된 출력 비디오 포맷은 비디오의 각기 다른 색 표시, 또는 각기 다른 비디오 코텍을 포함하는, 트랜스코더 어렌지먼트(100).
KR1020167006654A 2013-10-11 2014-10-07 비디오 비트스트림을 트랜스코딩하기 위한 방법 및 어렌지먼트 KR101670208B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361889647P 2013-10-11 2013-10-11
US61/889,647 2013-10-11
PCT/SE2014/051172 WO2015053697A1 (en) 2013-10-11 2014-10-07 Method and arrangement for transcoding a video bitstream

Publications (2)

Publication Number Publication Date
KR20160035096A true KR20160035096A (ko) 2016-03-30
KR101670208B1 KR101670208B1 (ko) 2016-10-27

Family

ID=52813415

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167006654A KR101670208B1 (ko) 2013-10-11 2014-10-07 비디오 비트스트림을 트랜스코딩하기 위한 방법 및 어렌지먼트

Country Status (5)

Country Link
US (3) US9930351B2 (ko)
EP (1) EP3022927A1 (ko)
JP (2) JP2016539540A (ko)
KR (1) KR101670208B1 (ko)
WO (1) WO2015053697A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018128322A1 (ko) * 2017-01-03 2018-07-12 엘지전자(주) 영상 처리 방법 및 이를 위한 장치
KR20200124729A (ko) * 2018-02-27 2020-11-03 지티이 코포레이션 비트스트림 처리방법 및 장치

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9819984B1 (en) 2007-03-26 2017-11-14 CSC Holdings, LLC Digital video recording with remote storage
US9510001B2 (en) 2013-07-09 2016-11-29 Electronics And Telecommunications Research Institute Video decoding method and apparatus using the same
WO2015053697A1 (en) 2013-10-11 2015-04-16 Telefonaktiebolaget L M Ericsson (Publ) Method and arrangement for transcoding a video bitstream
EP3055998A1 (en) 2013-10-11 2016-08-17 Telefonaktiebolaget LM Ericsson (publ) Method and arrangement for video transcoding using mode or motion or in-loop filter information
US10284858B2 (en) * 2013-10-15 2019-05-07 Qualcomm Incorporated Support of multi-mode extraction for multi-layer video codecs
US20160205398A1 (en) * 2015-01-08 2016-07-14 Magnum Semiconductor, Inc. Apparatuses and methods for efficient random noise encoding
US10410398B2 (en) * 2015-02-20 2019-09-10 Qualcomm Incorporated Systems and methods for reducing memory bandwidth using low quality tiles
US10841601B2 (en) 2015-06-23 2020-11-17 Telefonaktiebolaget Lm Ericsson (Publ) Methods and arrangements for transcoding
WO2017020021A1 (en) * 2015-07-29 2017-02-02 Vid Scale, Inc. Scalable high efficiency video coding to high efficiency video coding transcoding
CN105163124B (zh) * 2015-08-28 2019-01-18 京东方科技集团股份有限公司 一种图像编码方法、图像解码方法及装置
US10880566B2 (en) 2015-08-28 2020-12-29 Boe Technology Group Co., Ltd. Method and device for image encoding and image decoding
WO2017176180A1 (en) * 2016-04-06 2017-10-12 Telefonaktiebolaget Lm Ericsson (Publ) Methods, encoder, and transcoder for transcoding
JP6868785B2 (ja) * 2016-05-13 2021-05-12 ソニーグループ株式会社 画像処理装置および方法
US20170347138A1 (en) * 2016-05-24 2017-11-30 Arris Enterprises Llc Efficient transcoding in a network transcoder
EP3322188B1 (en) * 2016-11-10 2019-12-25 Alcatel Lucent Method and device for generating a signal comprising video transcoding hints
EP3322189B1 (en) * 2016-11-10 2019-12-25 Alcatel Lucent Method and system for controlling video transcoding
EP3322187B1 (en) * 2016-11-10 2020-01-29 Alcatel Lucent Method and transcoder for video transcoding
US10904329B1 (en) * 2016-12-30 2021-01-26 CSC Holdings, LLC Virtualized transcoder
KR20180092774A (ko) 2017-02-10 2018-08-20 삼성전자주식회사 샘플 적응적 오프셋 처리를 수행하는 영상 처리 장치 및 영상 처리 방법
US11082720B2 (en) 2017-11-21 2021-08-03 Nvidia Corporation Using residual video data resulting from a compression of original video data to improve a decompression of the original video data
EP3777201A1 (en) * 2018-04-03 2021-02-17 Universiteit Gent Creating different video stream representations
WO2019208677A1 (ja) * 2018-04-27 2019-10-31 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法および復号方法
CN110545452B (zh) * 2018-05-28 2022-04-12 阿里巴巴集团控股有限公司 网络直播方法、装置、终端及服务器
US11363306B2 (en) * 2019-04-05 2022-06-14 Comcast Cable Communications, Llc Methods, systems, and apparatuses for processing video by adaptive rate distortion optimization
KR20220030995A (ko) * 2019-07-14 2022-03-11 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 변환 블록 크기 제한
JP7359936B2 (ja) * 2019-07-20 2023-10-11 北京字節跳動網絡技術有限公司 パレットモードの使用の指示の条件依存符号化
WO2021118295A1 (ko) * 2019-12-12 2021-06-17 엘지전자 주식회사 루프 필터링을 제어하기 위한 영상 코딩 장치 및 방법
US11451811B2 (en) * 2020-04-05 2022-09-20 Tencent America LLC Method and apparatus for video coding
US20200269133A1 (en) * 2020-05-11 2020-08-27 Intel Corporation Game and screen media content streaming architecture
US11310504B2 (en) 2020-07-30 2022-04-19 Tencent America LLC Complexity reduction for 32-p and 64-p LGT
US11284165B1 (en) 2021-02-26 2022-03-22 CSC Holdings, LLC Copyright compliant trick playback modes in a service provider network
WO2023229481A1 (ru) * 2022-05-27 2023-11-30 Александр Валерьевич ИВАНОВ Эстафетное представление целочисленных данных

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100875781B1 (ko) * 2000-03-13 2008-12-24 소니 가부시끼 가이샤 콘텐츠 공급 장치 및 방법과, 기록 매체
KR100735274B1 (ko) * 2004-11-18 2007-07-03 삼성전자주식회사 트랜스코더를 구비한 분산형 멀티미디어 전송 네트워크의트랜스코딩 방법 및 장치
US20070009024A1 (en) * 2005-03-15 2007-01-11 Nero Ag Apparatus and method for producing a picture data stream and for processing a picture data stream
US20060245491A1 (en) * 2005-04-28 2006-11-02 Mehrban Jam Method and circuit for transcoding transform data
JP4523522B2 (ja) * 2005-09-06 2010-08-11 三菱電機株式会社 階層的画像符号化装置、トランスコーダ、階層的画像符号化方法およびトランスコーディング方法
US8320450B2 (en) * 2006-03-29 2012-11-27 Vidyo, Inc. System and method for transcoding between scalable and non-scalable video codecs
US8073052B1 (en) * 2006-07-27 2011-12-06 The Texas A&M University System Layered Wyner-Ziv video coding for transmission over unreliable channels
CN101001371B (zh) 2007-01-19 2010-05-19 华为技术有限公司 视频转码的方法及其装置
EP1962513A1 (en) * 2007-02-26 2008-08-27 Vestel Elektronik Sanayi ve Ticaret A.S. Methods and apparatus for processing of a digital image
US8107571B2 (en) * 2007-03-20 2012-01-31 Microsoft Corporation Parameterized filters and signaling techniques
US8457958B2 (en) * 2007-11-09 2013-06-04 Microsoft Corporation Audio transcoder using encoder-generated side information to transcode to target bit-rate
US8204325B2 (en) 2008-01-18 2012-06-19 Sharp Laboratories Of America, Inc. Systems and methods for texture synthesis for video coding with side information
KR101467790B1 (ko) * 2008-09-08 2014-12-03 엘지전자 주식회사 디지털 텔레비전 수신기 및 이 수신기에서 멀티 모드 서비스의 방송을 처리하는 방법
US20100229206A1 (en) * 2009-03-03 2010-09-09 Viasat, Inc. Space shifting over forward satellite communication channels
US20110142129A1 (en) * 2009-12-11 2011-06-16 General Instrument Corporation Mpeg video resolution reduction system
EP2577489A4 (en) * 2010-06-02 2014-09-10 Onmobile Global Ltd METHOD AND APPARATUS FOR ADAPTING MULTIMEDIA CONTENT
US20150312575A1 (en) * 2012-04-16 2015-10-29 New Cinema, LLC Advanced video coding method, system, apparatus, and storage medium
WO2014056150A1 (en) * 2012-10-09 2014-04-17 Nokia Corporation Method and apparatus for video coding
US20140098883A1 (en) 2012-10-09 2014-04-10 Nokia Corporation Method and apparatus for video coding
WO2015053697A1 (en) * 2013-10-11 2015-04-16 Telefonaktiebolaget L M Ericsson (Publ) Method and arrangement for transcoding a video bitstream

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
J. Chen, et al. High efficiency video coding (HEVC) scalable extension draft 3. JCT-VC of ITU-T and ISO/IEC. JCTVC-N1008 Ver.3, Sep. 16, 2013, pp.1-64 *
K. Andersson, et al. Transcoder-friendly scalable coding. JCT-VC of ITU-T and ISO/IEC. JCTVC-O0127 Ver.1, Oct. 15, 2013, pp.1-12 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018128322A1 (ko) * 2017-01-03 2018-07-12 엘지전자(주) 영상 처리 방법 및 이를 위한 장치
RU2720066C1 (ru) * 2017-01-03 2020-04-23 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ обработки изображений и устройство для этого
US11394974B2 (en) 2017-01-03 2022-07-19 Lg Electronics Inc. Image processing method, and device for same
US11882286B2 (en) 2017-01-03 2024-01-23 Lg Electronics Inc. Image processing method, and device for same
KR20200124729A (ko) * 2018-02-27 2020-11-03 지티이 코포레이션 비트스트림 처리방법 및 장치
US11523174B2 (en) 2018-02-27 2022-12-06 Zte Corporation Bitstream processing method and device

Also Published As

Publication number Publication date
JP2017216698A (ja) 2017-12-07
WO2015053697A1 (en) 2015-04-16
EP3022927A4 (en) 2016-05-25
JP2016539540A (ja) 2016-12-15
US20180167626A1 (en) 2018-06-14
US20160212438A1 (en) 2016-07-21
US10334261B2 (en) 2019-06-25
KR101670208B1 (ko) 2016-10-27
US9930351B2 (en) 2018-03-27
JP6416992B2 (ja) 2018-10-31
EP3022927A1 (en) 2016-05-25
US20190268614A1 (en) 2019-08-29
US10812816B2 (en) 2020-10-20

Similar Documents

Publication Publication Date Title
KR101670208B1 (ko) 비디오 비트스트림을 트랜스코딩하기 위한 방법 및 어렌지먼트
US10757429B2 (en) Method and arrangement for video transcoding using mode or motion or in-loop filter information
AU2015230740B2 (en) Method and apparatus of scalable video coding
CN108337522B (zh) 可伸缩解码方法/设备、可伸缩编码方法/设备和介质
KR102209109B1 (ko) 영상 부호화/복호화 방법 및 장치
KR20130045784A (ko) 인터 예측 모드 스케일러블 코딩 방법 및 장치
US11025931B2 (en) Methods, encoder, and transcoder for transcoding
KR20210022598A (ko) 비디오 부호화 방법 및 비디오 복호화 방법과 이를 이용하는 장치
KR102506469B1 (ko) 영상 부호화/복호화 방법 및 장치
KR102219841B1 (ko) 비디오 부호화 방법 및 비디오 복호화 방법과 이를 이용하는 장치
KR102334374B1 (ko) 영상 부호화/복호화 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191010

Year of fee payment: 4