KR102611940B1 - 콘텐츠 적응적 양자화 강도 및 비트 레이트 모델링 - Google Patents

콘텐츠 적응적 양자화 강도 및 비트 레이트 모델링 Download PDF

Info

Publication number
KR102611940B1
KR102611940B1 KR1020217016416A KR20217016416A KR102611940B1 KR 102611940 B1 KR102611940 B1 KR 102611940B1 KR 1020217016416 A KR1020217016416 A KR 1020217016416A KR 20217016416 A KR20217016416 A KR 20217016416A KR 102611940 B1 KR102611940 B1 KR 102611940B1
Authority
KR
South Korea
Prior art keywords
video frame
encoder
encoding
mapping
frame
Prior art date
Application number
KR1020217016416A
Other languages
English (en)
Other versions
KR20210077771A (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 KR20210077771A publication Critical patent/KR20210077771A/ko
Application granted granted Critical
Publication of KR102611940B1 publication Critical patent/KR102611940B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • 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/172Methods 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 picture, frame or field
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/197Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter

Landscapes

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

Abstract

비디오 프레임들을 인코딩할 때 사용할 양자화 강도를 결정하기 위한 모델을 생성하기 위한 시스템들, 장치들, 및 방법들이 개시된다. 프리 인코더는 하나 이상의 전처리된 비디오 프레임의 일 부분 또는 전체에 대해 상이한 양자화 강도들을 사용하여 다회 인코딩 패스들을 수행한다. 프리 인코더는 다회 인코딩 패스들 각각에 대해 인코딩된 출력의 비트 크기를 획득한다. 이어서, 다회 인코딩 패스들에 기초하여, 프리 인코더는 비트 크기를, 비디오 프레임들 또는 이의 부분(들)을 인코딩하기 위한 양자화 강도에 맵핑하기 위한 모델을 생성한다. 인코더가 하나 이상의 주어진 비디오 프레임들 또는 이의 임의의 부분(들)에 대한 최종 인코딩 패스를 시작할 때, 인코더는 모델을 사용하여 선호되는 비트 크기를 주어진 양자화 강도에 맵핑한다. 인코더는 인코딩된 비트 스트림에 대한 특정 비트 레이트를 충족하기 위해 주어진 비디오 프레임(들) 또는 프레임 부분(s)을 인코딩할 때 주어진 양자화 강도를 사용한다.

Description

콘텐츠 적응적 양자화 강도 및 비트 레이트 모델링
다양한 애플리케이션들은 이미지들 또는 비디오 콘텐츠의 인코딩 및 디코딩을 수행한다. 예를 들어, 비디오 트랜스코딩, 데스크탑 공유, 클라우드 게이밍 및 게이밍 관람은 콘텐츠의 인코딩 및 디코딩을 위한 지원을 포함하는 애플리케이션들 중 일부이다. 콘텐츠가 인코딩되는 방법을 결정하는 파라미터들 중 하나는 양자화 파라미터(QP, quantization parameter)이다. H. 264 표준에 따르는 것들과 같은 다양한 블록 기반 비디오 인코딩 방식들에서, QP는 인코딩 프로세스 동안 얼마나 많은 디테일이 보존되는지를 조절한다. 각 비디오 프레임 또는 프레임의 각 블록에 대해 선택되는 QP는 인코딩된 비디오 프레임의 크기 또는 인코딩된 블록의 크기와 직접 관련된다. 낮은 QP 값들을 선택할수록 큰 인코딩된 크기들을 내면서 많은 디테일을 유지시킬 것이다. 높은 QP 값들을 선택할수록 작은 인코딩된 크기들을 내면서 많은 디테일이 손실될 것이다. "양자화 파라미터"라는 용어는 보다 일반적으로 "양자화 강도(quantization strength)"라고도 지칭될 수 있다는 것을 유념한다.
본 명세서에서 설명되는 방법들 및 메커니즘들의 이점들은 첨부 도면들과 함께 이하의 구체적인 내용을 참조함으로써 더 잘 이해될 수 있으며, 이 첨부 도면들에서:
도 1은 콘텐츠를 인코딩 및 디코딩하기 위한 시스템의 일 구현의 블록도이다.
도 2는 비디오의 프레임들을 인코딩하기 위한 서버의 소프트웨어 구성요소들의 일 구현의 블록도이다.
도 3은 인코딩 로직의 일 구현의 블록도이다.
도 4는 QP를 비트 카운트에 맵핑하는 그래프의 일례를 도시한다.
도 5는 타겟 비트 카운트와 매칭되는 QP 값을 결정하기 위한 그래프의 일 구현을 도시한다.
도 6은 비트 크기를 QP에 맵핑하는 맵핑을 생성하기 위한 방법의 일 구현을 도시하는 일반화된 흐름도이다.
도 7은 비디오 프레임을 인코딩하기 위한 방법의 일 구현을 도시하는 일반화된 흐름도이다.
이하의 구체적인 내용에서, 본 명세서에서 제시되는 방법들 및 메커니즘들에 대한 완전한 이해를 제공하기 위해 많은 구체적인 세부 사항들이 제시된다. 그러나, 해당 기술분야의 통상의 기술자는 다양한 구현들이 이러한 구체적인 세부 사항들 없이도 실시될 수 있다는 것을 인식해야 한다. 경우에 따라, 주지된 구조들, 구성요소들, 신호들, 컴퓨터 프로그램 명령어들, 및 기술들은 본 명세서에서 설명되는 접근법들을 모호하게 하는 것을 방지하기 위해 상세히 제시되지 않는다. 도시의 간단함 및 명확성을 위해, 도면들에 도시된 요소들은 반드시 일정한 비율로 그려진 것은 아니라는 것이 이해될 것이다. 예를 들어, 요소들 중 몇몇의 치수들은 다른 요소들에 비해 과장될 수 있다.
인코딩된 비디오 프레임 비트 크기를 양자화 강도에 맵핑하기 위한 비디오 인코딩 모델들을 생성 및 구현하기 위한 시스템들, 장치들, 및 방법들이 본 명세서에 개시된다. 일 구현에서, 시스템은 적어도 인코더, 프리 인코더(pre-encoder), 및 인코더 및 프리 인코더에 연결되는 메모리를 포함한다. 프리 인코더는 입력 비디오 프레임의 적어도 일 부분에 대해 다회 프리 인코딩 패스들을 실행한다. 일 구현에서, 입력 비디오 프레임은 프리 인코딩 패스들 이전에 전처리된다. 각 프리 인코딩 패스는 상이한 양자화 강도 설정을 사용한다. 일 구현에서, 양자화 강도 설정은 인코딩 프로세스 동안 사용되는 특정 양자화 파라미터(QP)를 지칭한다. 각 프리 인코딩 패스emf에 대해, 프리 인코더는 입력 비디오 프레임의 인코딩된 부분(들)의 출력 비트 크기를 획득한다. 프리 인코더는 인코딩된 비디오 비트 스트림 비트 크기를 양자화 강도에 맵핑하기 위한 모델을 생성하는 데 획득된 출력 비트 크기들을 사용한다.
인코더가 입력 비디오 프레임의 부분(들)을 인코딩하기 전에, 인코더는 모델을 사용하여 지정된 비트 크기를 대응하는 양자화 강도에 맵핑한다. 일 구현에서, 인코더는 모델에 지정된 비트 크기를 제공하고, 모델은 지정된 비트 크기를 생성할 양자화 강도 값을 출력한다. 이어서, 인코더는 주어진 비트 수요 예측을 충족시키기 위해 모델에 의해 제공된 양자화 강도 값을 사용하여 입력 비디오 프레임의 부분(들)을 인코딩한다. 일 구현에서, 모델에 의해 제공된 양자화 강도 값을 사용함으로써, 인코더는 프레임 동안 더 적은 양자화 강도 조정들을 행할 수 있다. 이는 결과적인 인코딩된 비디오 비트 스트림의 시각적 품질을 개선하도록 돕는다.
이제 도 1을 참조하면, 콘텐츠를 인코딩 및 디코딩하기 위한 시스템(100)의 일 구현의 블록도가 도시되어 있다. 시스템(100)은 서버(105), 네트워크(110), 클라이언트(115), 및 디스플레이(120)를 포함한다. 다른 구현들에서, 시스템(100)은 네트워크(110)를 통해 서버(105)에 접속되는 다수의 클라이언트들을 포함하며, 다수의 클라이언트들은 서버(105)에 의해 생성된 동일한 비트 스트림 또는 상이한 비트 스트림들을 수신한다. 시스템(100)은 또한 다수의 클라이언트들에 대한 다수의 비트 스트림들을 생성하기 위한 하나보다 많은 서버(105)를 포함할 수 있다.
일 구현에서, 시스템(100)은 비디오 콘텐츠의 인코딩 및 디코딩을 구현한다. 다양한 구현들에서, 비디오 게임 애플리케이션, 클라우드 게이밍 애플리케이션, 가상 데스크탑 인프라스트럭처 애플리케이션, 또는 스크린 공유 애플리케이션과 같은 상이한 애플리케이션들이 시스템(100)에 의해 구현된다. 다른 구현들에서, 시스템(100)은 다른 유형들의 애플리케이션들을 실행한다. 일 구현에서, 서버(105)는 비디오 또는 이미지 프레임들을 렌더링하고, 렌더링된 프레임들을 비트 스트림으로 인코딩하며, 이어서 인코딩된 비트 스트림을 네트워크(110)를 통해 클라이언트(115)로 전달한다. 클라이언트(115)는 인코딩된 비트 스트림을 디코딩하고 디스플레이(120) 또는 디스플레이 컴포지터로 구동할 비디오 또는 이미지 프레임들을 생성한다.
양자화는 비디오 표준들(예를 들어, 고효율 비디오 코딩(HEVC, high efficiency video coding) 표준, 고급 비디오 코딩(AVC, advanced video coding))에서 특정 비디오 애플리케이션의 대역폭 요건들을 충족시키기 위해 인코딩된 비디오 스트림의 크기를 제어하는 데 사용되는 메커니즘이다. 이는 시스템(100)이 인코딩된 비디오 스트림을 일관된 방식으로 서버(105)로부터 클라이언트(115)로 전송할 수 있게 한다. 인코딩된 비디오 스트림의 비트 레이트를 제어하면서 또한 허용 가능한 화상 품질을 제공하는 것은 어려울 수 있다. 일 구현에서, 각 비디오 프레임의 선호되는 비트 카운트는 인코딩된 비디오 스트림의 비트 레이트를 비디오 시퀀스의 프레임 레이트로 나눈 것과 동일하다. "비트 카운트"라는 용어는 본 명세서에서 "비트 크기"라는 용어와 호환하여 사용된다. 일 구현에서, 서버(105)는 인코딩된 비디오 스트림의 각 프레임의 비트 카운트를 제어하기 위해 입력 비디오 시퀀스를 인코딩하는 데 사용되는 양자화 파라미터(QP)를 조정한다. 이 구현에서, 서버(105)는 비트 카운트를 QP에 맵핑하는 모델을 생성한다. 구현에 따라, 각 비디오 프레임에 대해 서버(105)는 목적하는 비트 카운트의 표시를 수신하거나 서버(105)는 목적하는 비트 카운트를 계산한다. 서버(105)가 각 비디오 프레임의 목적하는 비트 카운트를 알게 되면, 서버(105)는 모델을 사용하여 목적하는 비트 카운트를 특정 QP 값에 맵핑한다. 이어서, 서버(105)는 주어진 비디오 프레임을 인코딩할 때 QP를 이 특정 QP 값으로 설정한다. 일 구현에서, 서버(105)는 각 비디오 프레임(또는 각 비디오 프레임의 일 부분)에 대해 상이한 모델을 생성한다. 다른 구현들에서, 서버(105)는 다수의 비디오 프레임들에 대해 주어진 모델을 재사용한다.
네트워크(110)는 무선 접속, 근거리 네트워크(LAN), 도시권 네트워크(MAN), 광역 네트워크(WAN), 인트라넷, 인터넷, 케이블 네트워크, 패킷 교환 네트워크, 광섬유 네트워크, 라우터, 저장 영역 네트워크, 또는 다른 유형의 네트워크를 포함하여, 임의의 유형의 네트워크 또는 네트워크들의 조합을 나타낸다. LAN들의 예들은 이더넷 네트워크들, 광섬유 분산 데이터 인터페이스(FDDI, Fiber Distributed Data Interface) 네트워크들, 및 토큰 링 네트워크들을 포함한다. 다양한 구현들에서, 네트워크(110)는 원격 직접 메모리 액세스(RDMA, remote direct memory access) 하드웨어 및/또는 소프트웨어, 전송 제어 프로토콜/인터넷 프로토콜(TCP/IP, transmission control protocol/internet protocol) 하드웨어 및/또는 소프트웨어, 라우터, 리피터들(repeaters), 스위치들, 그리드들(grids), 및/또는 다른 구성요소들을 포함한다.
서버(105)는 비디오/이미지 프레임들을 렌더링하고/거나, 비트 카운트를 QP에 맵핑하는 모델을 생성하고/거나, 모델에 의해 제공되는 QP를 사용하여 프레임들을 비트 스트림으로 인코딩하기 위한 소프트웨어 및/또는 하드웨어의 임의의 조합을 포함한다. 일 구현에서, 서버(105)는 하나 이상의 서버의 하나 이상의 프로세서 상에서 실행되는 하나 이상의 소프트웨어 애플리케이션을 포함한다. 서버(105)는 또한 네트워크 통신 기능들 하나 이상의 입력/출력 디바이스, 및/또는 다른 구성요소들을 포함한다. 서버(105)의 프로세서(들)는 임의의 수 및 유형(예를 들어, 그래픽 처리 장치들(GPU들, graphics processing units), 중앙 처리 장치들(CPU들, central processing units), 디지털 신호 프로세서들(DSP들, digital signal processors), 현장 프로그래밍 가능한 게이트 어레이들(FPGA들, field programmable gate arrays), 주문형 집적 회로들(ASIC들, application specific integrated circuits)의 프로세서들을 포함한다. 프로세서(들)는 프로세서(들)에 의해 실행 가능한 프로그램 명령어들을 저장하는 하나 이상의 메모리 디바이스에 연결된다. 유사하게, 클라이언트(115)는 비트 스트림을 디코딩하고 프레임들을 디스플레이(120)로 구동하기 위한 소프트웨어 및/또는 하드웨어의 임의의 조합을 포함한다. 일 구현에서, 클라이언트(115)는 하나 이상의 컴퓨팅 디바이스의 하나 이상의 프로세서 상에서 실행되는 하나 이상의 소프트웨어 애플리케이션을 포함한다. 다양한 구현들에서, 클라이언트(115)는 컴퓨팅 디바이스, 게임 콘솔, 모바일 디바이스, 스트리밍 미디어 플레이어, 또는 다른 유형의 디바이스이다.
이제 도 2를 참조하면, 비디오의 프레임들을 인코딩하기 위한 서버(200)의 소프트웨어 구성요소들의 일 구현의 블록도가 도시되어 있다. 다른 구현들에서, 서버(200)는 다른 구성요소들을 포함하고/거나 도 2에 도시된 것과 다른 적절한 방식들로 배열된다는 것을 유념한다. 비디오의 새로운 프레임(205)이 서버(200)에 의해 수신되고 프리 인코더(220) 및 인코더(230)에 제공된다. 프리 인코더(220) 및 인코더(230) 각각은 하드웨어 및/또는 소프트웨어의 임의의 적절한 조합을 사용하여 구현된다. 프리 인코더(220)는 새로운 프레임(205)을 인코딩할 때 인코더(230)에 의해 사용될 양자화 파라미터(QP)(225)를 생성한다. 일 구현에서, 프리 인코더(220)는 모델(215)에 기초하여 QP(225)를 생성한다. 일 구현에서, 모델(215)은 인코딩된 프레임의 지정된 비트 레이트 또는 비트 크기를 달성하기 위해 사용할 타겟 QP(225)를 식별한다. "인코딩된 프레임"이라는 용어는 또한 "압축된 프레임"이라고도 지칭될 수 있다는 것을 유념한다.
일 구현예에서, 프리 인코더(220)는 전처리된 프레임(210)을 수신하고 전처리되는 프레임(210)에 대해 하나 이상의 동작을 수행한다. 또 다른 구현에서, 프리 인코더(220)는 새로운 프레임(205)으로부터 전처리된 프레임(210)을 생성한다. 일 구현에서, 전처리된 프레임(210)은 새로운 프레임(205)의 다운 샘플링된 버전이다. 다른 구현들에서, 전처리된 프레임(210)은 다운 샘플링 이외에 또는 이에 더하여 하나 이상의 다른 유형의 동작들(예를 들어, 필터링)이 새로운 프레임(205)에 대해 수행된 후의 새로운 프레임(205)을 나타낸다. 일 구현에서, 전처리된 프레임(210)은 메모리(240)에 저장된다. 메모리(240)는 인코딩 프로세스와 연관된 데이터 및/또는 명령어들을 저장하기 위한 임의의 수 및 유형의 메모리 또는 캐시 디바이스(들)를 나타낸다. 구현에 따라, 전처리된 프레임(210)은 원래의 새로운 프레임(205)의 전체 또는 이의 일 부분에 대응한다.
일 구현에서, 프리 인코더(220)는 모델(215)을 생성하기 위해 전처리된 프레임(210)에 대해 다회 프리 인코딩 패스들을 수행한다. 예를 들어, 일 구현에서, 프리 인코더(220)는 제1 QP 설정으로 전처리된 프레임(210)에 대해 제1 프로 인코딩 패스를 수행하여 제1 QP 설정에 대한 출력 프레임의 비트 크기를 결정한다. 또한, 이 구현에서, 프리 인코더(220)는 제2 QP 설정으로 전처리된 프레임(210)에 대해 제2 프로 인코딩 패스를 수행하여 제2 QP 설정에 대한 결과적인 인코딩된 프레임의 비트 크기를 결정한다. 이 논의를 위해, 제2 QP 설정은 제1 QP 설정과 상이하다고 가정된다. 프리 인코더(220)는 또한 다른 QP 설정들로 추가 프리 인코딩 패스들을 수행할 수 있다. 상이한 QP 설정들의 상이한 패스들에 대한 인코딩된 프레임들의 비트 크기들을 획득한 후에, 프리 인코더(220)는 QP 설정을 비트 크기에 맵핑하기 위한 모델(215)을 생성한다. 이어서, 목적하는 비트 크기가 모델(215)에 제공되어 대응하는 QP(225)를 생성한다.
인코더(230)는 새로운 프레임(205)을 수신하고, 프리 인코더(220)에 의해 생성된 QP(225)와 동일한 QP 값을 이용하여 새로운 프레임(205)을 인코딩한다. 일 구현에서, 인코더(230)가 새로운 프레임(205)을 인코딩하기 시작할 때, 인코더는 시작 QP 값을 모델(215)에 의해 생성된 QP(225)와 동일하게 설정한다. 인코더(230)가 생성되는 인코딩된 데이터의 양이 타겟 비트 크기로부터 너무 멀리 드리프트하고 있다고 결정하면, 새로운 프레임(205)의 인코딩 동안 시작 QP 값에 대한 조정이 이루어질 수 있다. 인코더(230)의 출력은 하나 이상의 클라이언트(예를 들어, 도 1의 클라이언트(115))로 전달되고/거나 메모리에 저장된 인코딩된 프레임(235)이다. 일 구현에서, 프리 인코더(220)는 각 새로운 프레임(205)에 대해 새로운 모델(215) 및 QP(225)를 생성한다. 또 다른 구현에서, 프리 인코더(220)는 하나 이상의 후속 프레임에 대해 모델(215) 및 QP(225)를 재사용한다. 추가 구현에서, 프리 인코더(220)는 새로운 프레임(205)의 일 부분으로부터 모델(215)을 생성하고, 이어서 모델(215)을 사용하여 새로운 프레임(205)의 다른 부분들의 인코딩에 사용될 QP(225)를 생성한다. 또 다른 추가 구현에서, 프리 인코더(220)는 새로운 프레임(205)에 대한 다수의 모델들(215)을 생성하며, 각 모델(215)은 새로운 프레임(205)의 상이한 부분을 나타낸다. 이 구현에서, 프리 인코더(220)는 새로운 프레임(205)의 상이한 부분들을 인코딩하기 위해 사용될 다수의 QP 값들(225)을 생성한다. 일반적으로 말하면, 프리 인코더(220)는 결과적인 인코딩된 비트 스트림에 대해 선택되었던 비트 레이트에 기초하여 새로운 프레임(205)을 인코딩하기 위한 QP 값(225)을 생성한다. 적절한 시작 QP 값(225)을 선택함으로써, 인코더(230)는 통상적으로 새로운 프레임(205)의 인코딩 동안 더 적은 QP 조정을 행할 것이다. 이는 결과적인 인코딩된 프레임(235)의 시각적 품질을 개선하도록 도울 것이다.
이제 도 3을 참조하면, 인코딩 로직(300)의 일 구현의 블록도가 도시되어 있다. 원래의 입력 비디오 프레임은 인코더(305) 및 다운 스케일링 유닛(310)에 의해 수신된다. 일 구현에서, 원래의 입력 비디오 프레임은 YUV 색 공간에 있다. 다른 구현들에서, 원래의 입력 비디오 프레임은 다른 색 공간들에서 인코딩된다. 인코더(305)는 입력 비디오 프레임을 인코딩하고, 메모리(315)로 전달되는 인코딩된 비트 스트림을 생성한다. 메모리(315)는 임의의 수 및 유형의 메모리 디바이스들을 나타낸다. 일 구현에서, 인코딩된 비트 스트림은 고효율 비디오 코딩(HEVC) 표준에 따라 포맷팅된다. 일 구현에서, 인코딩된 비트 스트림은 고급 비디오 코딩(AVC) 표준에 따라 포맷팅된다. 다른 구현들에서, 인코딩된 비트 스트림은 다른 비디오 코딩 표준들에 따라 포맷팅된다.
다운 스케일링 유닛(310)은 원래의 입력 비디오 프레임으로부터 다운 스케일링된 프레임을 생성하고, 다운 스케일링된 프레임을 메모리(315)로 전달한다. 다운 스케일링된 프레임은 식(330)에 제시된 관계로 인해 비트 카운트를 QP에 맵핑하기 위한 모델을 생성하는 데 사용될 수 있다. 식(330)에 의해 나타나는 바와 같이, 주어진 비디오 프레임에 대해, 주어진 비디오 프레임의 저해상도 버전의 비트 카운트와 주어진 비디오 프레임의 고해상도 버전의 비트 카운트 사이의 비는 주어진 QP에 대해 일정하다. 이에 따라, 다운 스케일링된 프레임은 프리 인코딩 유닛(320)에 의해 상이한 QP들로 처리되고, 결과적인 비트 카운트들 사이의 관계는 원래의 프레임을 인코딩하는 데 사용되는 상이한 QP들에 대한 비트 카운트들 사이의 관계를 나타낼 것이다. 다른 구현들에서, 다운 스케일링 유닛(310)은 다운 스케일링 이외에 또는 이에 더하여 입력 비디오 프레임에 대해 다른 유형들의 필터링 및/또는 전처리를 수행한다. 예를 들어, 다른 구현들에서, 다운 스케일링 유닛(310)은 디노이징, 그레이스케일 변환, 및/또는 다른 유형들의 전처리 단계들을 수행한다.
다운 스케일링된 프레임은 프리 인코딩 유닛(320)으로 전달된다. 일 구현에서, 프리 인코딩 유닛(320)은 상이한 QP들을 사용하여 다운 스케일링된 프레임의 적어도 두 번의 별개의 인코딩들을 수행한다. 일부 구현들에서, 프리 인코딩 유닛(320)은 상이한 QP들을 사용하여 다운 스케일링된 프레임의 일 부분의 적어도 두 번의 별개의 인코딩들을 수행한다. 이어서, 인코딩된 프레임들의 크기들(또는 프레임의 인코딩된 부분들의 크기들)에 기초하여, 프리 인코딩 유닛(320)은 출력 비트 크기를 QP에 맵핑하기 위한 모델을 생성한다. "인코드 통계"로 라벨링된 이 모델에 대한 통계는 메모리(315)에 저장된다. 인코딩 통계는 또한 인코더(305)로 전달된다. 인코더(305)는 결과적인 인코딩된 프레임에 대한 목적하는 비트 크기를 충족시키기 위해 입력 비디오 프레임에 대해 선택할 QP를 결정할 때 인코딩 통계를 사용한다. 일 구현에서, 각 인코딩된 프레임에 대한 목적하는 비트 크기는 인코더(305)에 의해 생성되는 인코딩된 비트 스트림의 목적하는 비트 레이트에 기초하여 결정된다. 예를 들어, 일 구현에서, 목적하는 비트 레이트는 비트/초(예를 들어, 3 메가비트/초(Mbps))로 지정되고, 비디오 시퀀스의 프레임 레이트는 프레임/초(fps)(예를 들면, 60 fps, 24 fps)로 지정된다. 이 구현에서, 인코더(305)는 각 인코딩된 프레임에 대한 목적하는 비트 크기를 계산하기 위해 목적하는 비트 레이트를 프레임 레이트로 나눈다.
다른 구현들에서, 인코딩 로직(300)은 주어진 비트 수요 예측을 충족시키기 위해 비디오 데이터를 인코딩하기 위해 최적의 양자화 강도를 선택하기 위한 상술된 기술들에 대한 변형들을 수행한다는 것을 유념한다. 예를 들어, 또 다른 구현에서, 프리 인코딩 유닛(320)은 프레임의 일 부분을 상이한 양자화 강도 설정들로 인코딩한다. 이어서, 프리 인코딩 유닛(320)은 상이한 양자화 강도 설정들로 인코딩된 부분의 비트 크기를 획득한다. 추가 구현에서, 프로 인코딩 유닛(320)은 두 개 이상의 프레임들을 상이한 양자화 강도 설정들로 인코딩하고, 이어서 대응하는 인코딩된 프레임들의 비트 크기들을 획득한다.
이제 도 4를 참조하면, 비트 카운트를 QP에 맵핑하는 그래프(400)의 일례가 도시되어 있다. 도표(410)는 특정 프레임, 프레임의 일 부분, 또는 비디오 시퀀스의 두 개 이상의 프레임들을 인코딩하기 위해 사용되는 QP의 상이한 값들에 대한 비트 카운트들을 나타낸다. 일 구현에서, 비트 카운트와 QP 사이의 관계는 다음의 공식을 사용하여 모델링된다: 비트 카운트 = α2β * QP. 일 구현에서, α 및 β에 대한 값들은 실험에 의해 결정된다. 예를 들어, 일 구현에서, α 및 β에 대한 값들은 주 번 이상의 상이한 프리 인코딩 패스들에서 두 개 이상의 상이한 QP들을 사용하여 프레임의 일 부분 또는 전체를 프리 인코딩함으로써 결정된다. 프레임의 인코딩된 부분 또는 전체의 크기들이 획득되고, 이어서 QP들 및 획득된 비트 크기들이 상기한 식에서 α 및 β의 값들을 풀기 위해 사용된다. 다음으로, α 및 β에 대한 값들은 비트 카운트와 QP 사이의 관계를 결정하는 모델을 생성하는 데 사용된다. 인코더가 주어진 비디오 프레임에 대한 목적하는 비트 카운트를 결정할 때, 인코더는 모델을 사용하여 목적하는 비트 카운트를 특정 QP 값에 맵핑한다. 이어서, 인코더는 목적하는 비트 카운트를 갖는 인코딩된 비디오 프레임을 생성하기 위해 주어진 비디오 프레임을 인코딩할 때 특정 QP 값을 사용한다.
이제 도 5를 참조하면, 타겟 비트 카운트와 매칭되는 QP 값을 결정하기 위한 그래프(500)의 일 구현이 도시되어 있다. 일 구현에서, 제어 로직 또는 프로 인코딩 유닛은 상이한 QP 값들 QP1 및 QP2를 이용하는 비디오 프레임의 두 번의 프로 인코딩 패스들을 구현한다. 제어 로직은 이들 두 번의 프로 인코딩 패스들에 대한 비트 카운트들을 획득한다. 다른 구현들에서, 제어 로직은 상이한 QP 값들을 이용하는 비디오 프레임의 두 번보다 많은 프로 인코딩 패스들을 수행한다. 비트 카운트(b1)는 QP1을 이용하는 프리 인코딩 패스에 대응하고 도표(505) 상에서 510으로 라벨링된다. 비트 카운트(b2)는 QP2를 이용하는 프리 인코딩 패스에 대응하고 도표(505) 상에서 515으로 라벨링된다. 각각, QP1 및 QP2를 이용하는 프로 인코딩 패스들에 대한 비트 카운트들(b1 및 b2)을 획득한 후에, 제어 로직은 비트 카운트와 QP 사이의 관계를 맵핑하기 위한 도표(505)를 생성한다. 이어서, 목적하는 비트 카운트 타겟(520)이 결정될 때, 제어 로직은 타겟(520)을 도표(505) 상의 QP 값 QP3에 맵핑한다. 이어서, 인코더는 비디오 프레임 및/또는 하나 이상의 후속 비디오 프레임들을 인코딩할 때 QP를 QP3 값으로 설정한다. 대안적으로, 인코더는 비디오 프레임의 하나 이상의 부분(예를 들어, 블록, 코딩 유닛) 및/또는 다른 비디오 프레임들의 하나 이상의 부분을 인코딩할 때 QP3 값을 사용한다.
이제 도 6을 참조하면, 비트 크기를 양자화 파라미터(QP)에 맵핑하기 위한 모델을 생성하기 위한 방법(600)의 일 구현이 도시되어 있다. 논의를 위해, 이 실시 예에서의 단계들 및 도 7의 단계들은 순차적인 순서로 도시되어 있다. 그러나, 설명되는 방법들의 다양한 구현들에서, 설명되는 요소들 중 하나 이상의 요소가 도시된 것과 상이한 순서로 동시에 수행되거나, 또는 완전히 생략된다는 것을 유념한다. 또한 다른 추가 요소들도 목적하는 바에 따라 수행된다. 본 명세서에서 설명된 다양한 시스템들 또는 장치들 중 어느 하나가 방법(600)을 구현하도록 구성된다.
프리 인코더는 제1 양자화 파라미터(QP) 설정을 사용하여 제1 비디오 프레임의 적어도 일 부분의 제1 인코딩을 수행한다(블록 605). 이어서, 프리 인코더는 제1 비디오 프레임의 인코딩된 부분의 제1 비트 크기를 획득한다(블록 610). "비트 크기"라는 용어는 본 명세서에서 "비트 카운트"라고도 지칭될 수 있다는 것을 유념한다. 다음으로, 프리 인코더는 제2 QP 설정을 사용하여 제1 비디오 프레임의 적어도 부분의 제2 인코딩을 수행한다(블록 615). 이 논의를 위해, 제2 QP 설정은 제1 QP 설정과 상이하다고 가정된다. 제1 및 제2 인코딩들은 "프리 인코딩들(pre-encodings)"이라고도 지칭될 수있다는 것을 유념한다. 이어서, 프리 인코더는 제2 비디오 프레임의 인코딩된 부분의 제1 비트 크기를 획득한다(블록 620). 다음으로, 프리 인코더는 제1 및 제2 QP들과 제1 및 제2 비트 크기들 사이의 관계들에 기초하여 비트 크기를 QP에 맵핑하기 위한 모델을 생성한다(블록 625). 블록 625 이후, 방법(600)은 종료된다. "모델"은 본 명세서에서 "맵핑"이라고도 지칭될 수도 있다는 것을 유념한다. 일 구현에서, 모델은 식: 비트 크기 = α2β * QP에서 α 및 β의 값들을 풀어서 생성된다. 예를 들어, α 및 β의 값들은 각각, 제1 및 제2 QP들을 사용하는 제1 및 제2 인코딩들에 의해 생성되는 제1 및 제2 비트 크기들을 사용하여 풀린다. 다른 구현들에서, 모델은 다른 기술들을 사용하여 생성된다.
일 부분 구현들에서, 프리 인코더는 두 개보다 많은 상이한 QP 설정들로 두 번 보다 많은 상이한 인코딩들을 수행한다. 이어서, 프리 인코더는 QP 대 비트 크기의 모델을 생성하는 데 두 개보다 많은 상이한 QP 설정들(및 대응하는 비트 크기들)을 사용한다. 방법(600)은 구현에 따라 규칙적 또는 주기적으로 수행될 수 있다는 것을 유념한다. 일 구현에서, 방법(600)은 주어진 비디오 프레임의 각 부분에 대해 수행된다. 또 다른 구현에서, 방법(600)은 비디오 스트림의 각 비디오 프레임에 대해 수행된다. 추가 구현에서, 방법(600)은 매 N(여기서 N은 1보다 큰 양의 정수)개의 비디오 프레임들마다 한 번 수행된다. 방법(600)이 수행되는 빈도는 하나 이상의 요인에 기초하여 이들 예들 사이에서 교번할 수 있다. 다른 구현들에서, 방법(600)의 후속 반복들은 다른 스케줄들에 따라 수행된다.
이제 도 7을 참조하면, 비디오 프레임을 인코딩하기 위한 방법의 일 구현이 도시되어 있다. 인코더는 인코딩할 비디오 프레임을 수신한다(블록 705). 인코더는 비디오 프레임에 대해 선호되는 인코딩된 비디오 프레임 크기를 결정한다(블록 710). 구현에 따라, 인코더는 또 다른 처리 유닛으로부터 선호되는 인코딩된 비디오 프레임 크기를 수신하며, 인코더는 레지스터 또는 다른 메모리 위치로부터 선호되는 인코딩된 오디오 프레임 크기를 검색하거나, 인코더는 인코딩된 비트 스트림의 타겟 비트 레이트에 기초하여 선호되는 인코딩된 멀티미디어 프레임 크기를 계산하거나, 또는 인코더는 다른 방식들로 선호되는 인코딩된 비디오 프레임을 결정한다.
인코더는 인코딩된 비디오 프레임 크기와 QP 사이의 맵핑에 기초하여 수신된 비디오 프레임을 인코딩하기 위해 선택할 QP를 결정한다(블록 715). 비트 크기를 QP에 맵핑하는 맵핑을 생성하는 방법의 일례는 (도 6의) 방법(600)에 관한 상기한 논의에서 설명된다. 다음으로, 인코더는 QP를 선호되는 인코딩된 비디오 프레임 크기에 대한 모델에 의해 제공된 QP 값으로 설정함으로써 인코딩된 비디오 프레임을 생성하며, 여기서 인코딩된 비디오 프레임은 수신된 비디오 프레임을 나타낸다(블록 720). 구현에 따라, 맵핑은 다양한 상이한 방식들로 구현된다. 일 구현에서, 맵핑은 소프트웨어 애플리케이션에 의해 직접 셋업된다. 또 다른 구현에서, 맵핑은 복수의 실험들을 실행함으로써 유도된 룩업 테이블 프로세스로서 구현된다. 추가 구현에서, 맵핑은 자극 인가자가 시스템을 목적하는 결과(예를 들어, 선호되는 비트 레이트)에 더 가깝게 구동하는지를 체크하는 폐루프 제어 방법으로서 구현된다. 다른 구현들에서, 맵핑은 기계 학습 기술들, 신경 네트워크, 회귀 모델, 또는 지각 품질에 영향을 미치는 설정들을 최적화하기 위한 품질 메트릭들(예를 들어, 피크 신호 대 잡음 비(PSNR, peak signal-to-noise ratio), 구조적 유사성(SSIM, structural similarity) 인덱스, 비디오 다중방법 평가 융합(VMAF, video multimethod assessment fusion))을 사용하는 다른 유형들의 모델들을 사용하여 구현된다.
블록 720 후에, 인코더는 인코딩된 비디오 프레임을 디스플레이될 디코더로 전달한다(블록 725). 블록 725 이후, 방법(700)이 종료된다. 방법(700)은 인코더에 의해 수신되는 각 비디오 프레임에 대해 반복될 수 있다. 또한, 맵핑은 후속 비디오 프레임의 각 부분에 대해, 각 후속 비디오 프레임에 대해, 또는 두 개 이상의 비디오 프레임들이 인코딩된 후에 업데이트될 수 있다.
다양한 구현들에서, 본 명세서에서 설명된 방법들 및/또는 메커니즘들을 구현하는 데 소프트웨어 애플리케이션의 프로그램 명령어들이 사용된다. 예를 들어, 범용 또는 전용 프로세서에 의해 실행 가능한 프로그램 명령어들이 고려된다. 다양한 구현들에서, 이러한 프로그램 명령어들은 고급 프로그래밍 언어에 의해 표현될 수 있다. 다른 구현들에서, 프로그램 명령어들은 고급 프로그래밍 언어로부터 이진, 중간, 또는 다른 형태로 컴파일링될 수 있다. 대안적으로, 하드웨어의 거동 또는 설계를 설명하는 프로그램 명령어들이 작성될 수 있다. 이러한 프로그램 명령어들은 C와 같은 고급 프로그래밍 언어에 의해 표현될 수 있다. 대안적으로는, Verilog와 같은 하드웨어 설계 언어(HDL, hardware design language)가 사용될 수 있다. 다양한 구현들에서, 프로그램 명령어들은 임의의 다양한 비일시적인 컴퓨터 판독 가능한 저장 매체들 상에 저장된다. 저장 매체는 프로그램 실행을 위해 컴퓨팅 시스템에 프로그램 명령어들을 제공하기 위해 사용 동안 컴퓨팅 시스템에 의해 액세스 가능하다. 일반적으로 말하면, 이러한 컴퓨팅 시스템은 적어도 하나 이상의 메모리 및 프로그램 명령어들을 실행하도록 구성된 하나 이상의 프로세서를 포함한다.
상술된 구현들은 구현들의 단지 비제한적인 예들일 뿐이라는 것이 강조되어야 한다. 해당 기술분야의 통상의 기술자들에게는 상기한 개시 내용이 충분히 이해되면 다양한 변형들 및 수정들이 명백해질 것이다. 이하의 청구범위는 이러한 모든 변형들 및 수정들을 포괄하는 것으로 해석되어야 한다.

Claims (20)

  1. 시스템으로서,
    상이한 양자화 파라미터(QP) 설정들을 사용하여 제1 비디오 프레임의 일 부분의 복수의 프리 인코딩 패스들에 기초하여 프레임 크기의 QP에의 맵핑을 생성하도록 구성된 회로를 포함하는 프리 인코더(pre-encoder) - 상기 맵핑은 프레임 크기와 QP 사이의 지수적 관계를 정의함 -; 및
    상기 프리 인코더와는 다른 인코더로서:
    선호되는 인코딩된 비디오 프레임 크기에 기초하여 상기 맵핑으로부터 주어진 QP 값을 결정하도록;
    인코딩된 비디오 프레임의 적어도 일 부분에 대해 QP를 상기 주어진 QP 값으로 설정함으로써 상기 인코딩된 비디오 프레임을 생성하도록 - 상기 인코딩된 비디오 프레임은 입력 비디오 프레임을 나타냄 -; 그리고
    상기 인코딩된 비디오 프레임을 디스플레이될 디코더로 전달하도록 구성된 회로를 포함하는, 상기 인코더를 포함하는, 시스템.
  2. 제1항에 있어서, 상기 프리 인코더는 또한:
    제1 QP 설정을 사용하여 상기 제1 비디오 프레임의 적어도 상기 부분의 제1 인코딩을 수행하도록;
    상기 제1 인코딩의 결과의 제1 크기를 획득하도록;
    제2 QP 설정을 사용하여 상기 제1 비디오 프레임의 상기 부분의 제2 인코딩을 수행하도록;
    상기 제2 인코딩의 결과의 제2 크기를 획득하도록; 그리고
    각각, 상기 제1 QP 설정 및 상기 제2 QP 설정과 상기 제1 크기 및 상기 제2 크기 사이의 관계들에 기초하여 프레임 크기의 QP에의 상기 맵핑을 생성하도록 구성되는 것인, 시스템.
  3. 제2항에 있어서, 상기 제1 비디오 프레임의 상기 부분은 상기 제1 인코딩 및 상기 제2 인코딩이 수행되기 전에 다운 스케일링되는 것인, 시스템.
  4. 제2항에 있어서, 상기 인코더는 상기 프리 인코더에 의해 생성된 상기 맵핑에 기초하여 상기 제1 비디오 프레임의 최종 패스를 인코딩할 때 초기 QP를 설정하는 방법을 결정하도록 구성되는 것인, 시스템.
  5. 제1항에 있어서, 상기 프리 인코더는 또한, 상기 제1 비디오 프레임의 각각의 부분에 대한 상이한 맵핑을 생성하도록 구성되고, 상기 상이한 맵핑들 중 하나 이상은 상기 각각의 부분의 크기와 QP 사이의 상이한 지수적 관계를 정의하는 것인, 시스템.
  6. 제1항에 있어서, 상기 입력 비디오 프레임은 상기 제1 비디오 프레임인 것인, 시스템.
  7. 제1항에 있어서, 상기 입력 비디오 프레임은 비디오 시퀀스에서의 상기 제1 비디오 프레임에 후속하는 제2 비디오 프레임인 것인, 시스템.
  8. 방법으로서,
    회로를 포함하는 프리 인코더에 의해, 상이한 양자화 파라미터(QP) 설정들을 사용하여 제1 비디오 프레임의 일 부분의 복수의 프리 인코딩 패스들에 기초하여 프레임 크기의 QP에의 맵핑을 생성하는 단계 - 상기 맵핑은 프레임 크기와 QP 사이의 지수적 관계를 정의함 -;
    상기 프리 인코더와는 다른 인코더에 의해, 선호되는 인코딩된 비디오 프레임 크기에 기초하여 상기 맵핑으로부터 주어진 QP 값을 결정하는 단계;
    상기 인코더에 의해, 인코딩된 비디오 프레임의 적어도 일 부분에 대해 QP를 상기 주어진 QP 값으로 설정함으로써 상기 인코딩된 비디오 프레임을 생성하는 단계로서, 상기 인코딩된 비디오 프레임은 입력 비디오 프레임을 나타내는 것인, 상기 인코딩된 비디오 프레임을 생성하는 단계; 및
    상기 인코더에 의해, 상기 인코딩된 비디오 프레임을 디스플레이될 디코더로 전달하는 단계를 포함하는, 방법.
  9. 제8항에 있어서,
    상기 프리 인코더에 의해, 제1 QP 설정을 사용하여 상기 제1 비디오 프레임의 적어도 상기 부분의 제1 인코딩을 수행하는 단계;
    상기 프리 인코더에 의해, 상기 제1 인코딩의 결과의 제1 크기를 획득하는 단계;
    상기 프리 인코더에 의해, 제2 QP 설정을 사용하여 상기 제1 비디오 프레임의 상기 부분의 제2 인코딩을 수행하는 단계;
    상기 프리 인코더에 의해, 상기 제2 인코딩의 결과의 제2 크기를 획득하는 단계; 및
    상기 프리 인코더에 의해, 각각, 상기 제1 QP 설정 및 상기 제2 QP 설정과 상기 제1 크기 및 상기 제2 크기 사이의 관계들에 기초하여 프레임 크기의 QP에의 상기 맵핑을 생성하는 단계를 더 포함하는, 방법.
  10. 제9항에 있어서, 상기 제1 비디오 프레임의 상기 부분은 상기 제1 인코딩 및 상기 제2 인코딩이 수행되기 전에 다운 샘플링되는 것인, 방법.
  11. 제9항에 있어서, 상기 인코더에 의해, 상기 프리 인코더에 의해 생성된 상기 맵핑에 기초하여 상기 제1 비디오 프레임의 최종 패스를 인코딩할 때 초기 QP를 설정하는 방법을 결정하는 단계를 더 포함하는, 방법.
  12. 제8항에 있어서, 상기 프리 인코더는 또한, 상기 제1 비디오 프레임의 각각의 부분에 대한 상이한 맵핑을 생성하도록 구성되고, 상기 상이한 맵핑들 중 하나 이상은 상기 각각의 부분의 크기와 QP 사이의 상이한 지수적 관계를 정의하는 것인, 방법.
  13. 제8항에 있어서, 상기 입력 비디오 프레임은 상기 제1 비디오 프레임인 것인, 방법.
  14. 제8항에 있어서, 상기 입력 비디오 프레임은 비디오 시퀀스에서의 상기 제1 비디오 프레임에 후속하는 제2 비디오 프레임인 것인, 방법.
  15. 장치로서,
    메모리; 및
    상기 메모리에 연결되는 인코더를 포함하되, 상기 인코더는:
    선호되는 인코딩된 비디오 프레임 크기에 기초하여 맵핑으로부터 주어진 양자화 파라미터(QP) 값을 결정하도록 - 상기 맵핑은 상기 맵핑을 생성하도록 구성된 회로를 포함하는, 상기 인코더와는 다른 프리 인코더에 의해 상이한 QP 설정들을 사용하여 제1 비디오 프레임의 일 부분의 두 번 이상의 프리 인코딩 패스들에 기초하여 비트 사이즈 내지 QP 사이의 관계를 지정하는 것이고, 상기 맵핑은 프레임 크기와 QP 사이의 지수적 관계를 정의함 -;
    인코딩된 비디오 프레임의 적어도 일 부분에 대해 QP를 상기 주어진 QP 값으로 설정함으로써 상기 인코딩된 비디오 프레임을 생성하도록 - 상기 인코딩된 비디오 프레임은 입력 비디오 프레임을 나타냄 -; 그리고
    상기 인코딩된 비디오 프레임을 디스플레이될 디코더로 전달하도록 구성되는 회로를 포함하는 것인, 장치.
  16. 제15항에 있어서, 상기 두 번 이상의 프리 인코딩 패스들은 상기 두 번 이상의 프리 인코딩 패스들 이전에 다운 샘플링된 제1 비디오 프레임의 일 부분에 대해 수행되는 것인, 장치.
  17. 제15항에 있어서, 상기 두 번 이상의 프리 인코딩 패스들은 상기 두 번 이상의 프리 인코딩 패스들 이전에 전처리된 제1 비디오 프레임의 일 부분에 대해 수행되는 것인, 장치.
  18. 제15항에 있어서, 상기 인코더는 상기 맵핑에 기초하여 상기 제1 비디오 프레임의 최종 패스를 인코딩할 때 초기 QP를 설정하는 방법을 결정하도록 구성되는 것인, 장치.
  19. 제15항에 있어서, 상기 프리 인코더는 또한, 상기 제1 비디오 프레임의 각각의 부분에 대한 상이한 맵핑을 생성하도록 구성되고, 상기 상이한 맵핑들 중 하나 이상은 상기 각각의 부분의 크기와 QP 사이의 상이한 지수적 관계를 정의하는 것인, 장치.
  20. 제15항에 있어서, 상기 두 번 이상의 프리 인코딩 패스들은 상기 입력 비디오 프레임에 대해 수행되는 것인, 장치.
KR1020217016416A 2018-10-31 2019-06-25 콘텐츠 적응적 양자화 강도 및 비트 레이트 모델링 KR102611940B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/177,128 US11368692B2 (en) 2018-10-31 2018-10-31 Content adaptive quantization strength and bitrate modeling
US16/177,128 2018-10-31
PCT/IB2019/055358 WO2020089702A1 (en) 2018-10-31 2019-06-25 Content adaptive quantization strength and bitrate modeling

Publications (2)

Publication Number Publication Date
KR20210077771A KR20210077771A (ko) 2021-06-25
KR102611940B1 true KR102611940B1 (ko) 2023-12-08

Family

ID=70326589

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217016416A KR102611940B1 (ko) 2018-10-31 2019-06-25 콘텐츠 적응적 양자화 강도 및 비트 레이트 모델링

Country Status (6)

Country Link
US (1) US11368692B2 (ko)
EP (1) EP3874749A4 (ko)
JP (1) JP7265623B2 (ko)
KR (1) KR102611940B1 (ko)
CN (1) CN112868230A (ko)
WO (1) WO2020089702A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10880354B2 (en) 2018-11-28 2020-12-29 Netflix, Inc. Techniques for encoding a media title while constraining quality variations
US11902547B2 (en) * 2021-07-15 2024-02-13 Google Llc Low-delay two-pass frame-level rate control using an adjusted complexity
US11653003B2 (en) 2021-07-16 2023-05-16 City University Of Hong Kong System and method for processing a stream of images
WO2023033833A1 (en) * 2021-09-03 2023-03-09 Google Llc A multi-try encoding operation for streaming applications

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2968666B2 (ja) * 1993-06-10 1999-10-25 日本電気株式会社 画像符号化方法および装置
US8054880B2 (en) 2004-12-10 2011-11-08 Tut Systems, Inc. Parallel rate control for digital video encoder with multi-processor architecture and picture-based look-ahead window
WO2005002206A1 (ja) * 2003-06-25 2005-01-06 Nokia Corporation 画像データの圧縮パラメータの値を制御するデジタル撮影装置、及び画像データの圧縮パラメータ値決定方法
US20050047504A1 (en) 2003-09-03 2005-03-03 Sung Chih-Ta Star Data stream encoding method and apparatus for digital video compression
US7724972B2 (en) * 2005-03-01 2010-05-25 Qualcomm Incorporated Quality metric-biased region-of-interest coding for video telephony
US8447121B2 (en) * 2005-09-14 2013-05-21 Microsoft Corporation Efficient integrated digital video transcoding
WO2009149564A1 (en) 2008-06-13 2009-12-17 Octasic Inc. Method and device for controlling bit-rate for video encoding, video encoding system using same and computer product therefor
US8798140B2 (en) * 2009-01-27 2014-08-05 Nvidia Corporation Encoding video frames in a video encoder
JP5257215B2 (ja) 2009-04-16 2013-08-07 ソニー株式会社 画像符号化装置と画像符号化方法
JP2012054818A (ja) * 2010-09-02 2012-03-15 Sony Corp 画像処理装置と画像処理方法
CN103828369B (zh) * 2011-06-10 2018-09-07 茨特里克斯系统公司 质量感知视频优化中的宏块级自适应量化
US20160029024A1 (en) * 2011-08-10 2016-01-28 Zoran (France) S.A. Frame buffer compression for video processing devices
US9781449B2 (en) * 2011-10-06 2017-10-03 Synopsys, Inc. Rate distortion optimization in image and video encoding
JP6034010B2 (ja) * 2011-10-24 2016-11-30 ソニー株式会社 符号化装置、符号化方法、およびプログラム
US9485515B2 (en) 2013-08-23 2016-11-01 Google Inc. Video coding using reference motion vectors
US9998750B2 (en) 2013-03-15 2018-06-12 Cisco Technology, Inc. Systems and methods for guided conversion of video from a first to a second compression format
US9426475B2 (en) 2013-06-25 2016-08-23 VIXS Sytems Inc. Scene change detection using sum of variance and estimated picture encoding cost
US9621917B2 (en) 2014-03-10 2017-04-11 Euclid Discoveries, Llc Continuous block tracking for temporal prediction in video encoding
US9848193B2 (en) * 2014-04-15 2017-12-19 Qualcomm Incorporated System and method for selecting quantization parameter (QP) in display stream compression (DSC)
US10097828B2 (en) * 2014-12-11 2018-10-09 Intel Corporation Rate control for parallel video encoding
CN105898308A (zh) * 2015-12-18 2016-08-24 乐视云计算有限公司 变分辨率的编码模式预测方法及装置
US10165310B2 (en) * 2016-06-10 2018-12-25 Affirmed Networks, Inc. Transcoding using time stamps
GB2552223B (en) 2016-07-15 2020-01-01 Gurulogic Microsystems Oy Encoders, decoders and methods employing quantization
US20180063549A1 (en) * 2016-08-24 2018-03-01 Ati Technologies Ulc System and method for dynamically changing resolution based on content
US10291931B2 (en) 2016-10-13 2019-05-14 Ati Technologies Ulc Determining variance of a block of an image based on a motion vector for the block
EP3324628B1 (en) * 2016-11-18 2021-12-29 Axis AB Method and encoder system for encoding video
KR102636099B1 (ko) * 2016-12-22 2024-02-13 삼성전자주식회사 양자화 파라미터를 조절하는 비디오 인코딩을 위한 장치 및 방법
CN107078852B (zh) 2017-01-18 2019-03-08 深圳市大疆创新科技有限公司 传输编码数据的方法、装置、计算机系统和移动设备
US10904552B2 (en) 2018-02-15 2021-01-26 Intel Corporation Partitioning and coding mode selection for video encoding

Also Published As

Publication number Publication date
US20200137389A1 (en) 2020-04-30
JP2022504778A (ja) 2022-01-13
EP3874749A1 (en) 2021-09-08
EP3874749A4 (en) 2022-08-10
CN112868230A (zh) 2021-05-28
US11368692B2 (en) 2022-06-21
WO2020089702A1 (en) 2020-05-07
KR20210077771A (ko) 2021-06-25
JP7265623B2 (ja) 2023-04-26

Similar Documents

Publication Publication Date Title
KR102611940B1 (ko) 콘텐츠 적응적 양자화 강도 및 비트 레이트 모델링
KR102432755B1 (ko) 비디오 인코더에 직접 렌더링하는 게임 엔진 애플리케이션
KR102287947B1 (ko) 영상의 ai 부호화 및 ai 복호화 방법, 및 장치
US10523947B2 (en) Server-based encoding of adjustable frame rate content
CN104096362B (zh) 基于游戏者关注区域改进视频流的码率控制比特分配
JP2022529645A (ja) デコーダ側イントラモード導出と適応イントラ予測モードとの間の相互作用のための方法及び装置
KR20160128403A (ko) 개선된 스크린 콘텐츠 및 혼합된 콘텐츠 코딩
KR20210113131A (ko) 영상의 ai 부호화 및 ai 복호화 방법, 및 장치
US11223841B2 (en) Apparatus and method for performing artificial intelligence encoding and artificial intelligence decoding on image
US10924739B2 (en) Efficient quantization parameter prediction method for low latency video coding
US20210185313A1 (en) Residual metrics in encoder rate control system
CN112715029A (zh) Ai编码设备及其操作方法和ai解码设备及其操作方法
JP2022504379A (ja) イントラ予測におけるイントラモード選択
KR102421720B1 (ko) 영상의 ai 부호화 및 ai 복호화를 위한 장치, 및 방법
JP2023536585A (ja) 閲覧方向に基づくビットストリームのランダムアクセスのサポート
KR20220063063A (ko) 인공지능 부호화 및 인공지능 복호화를 수행하기 위한 방법 및 장치
US11729418B1 (en) Content adaptive encoding
EP4228268A1 (en) Method and device for performing artificial intelligence encoding and artificial intelligence decoding
US20230396766A1 (en) Content-adaptive signal-to noise-ratio-guided two-pass video encoding for cloud gaming
JP2024514060A (ja) ストリーミングアプリケーションにおけるビデオデータの微調整
Yang et al. Power-aware adaptive video streaming from the set-top-box to mobile devices
CN117715685A (zh) 流式传输应用程序中视频数据的微调

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant