KR20190073564A - 비디오 코딩 코드율 할당 및 코딩 단위 코드율 할당 방법과, 컴퓨터 장비 - Google Patents

비디오 코딩 코드율 할당 및 코딩 단위 코드율 할당 방법과, 컴퓨터 장비 Download PDF

Info

Publication number
KR20190073564A
KR20190073564A KR1020197016191A KR20197016191A KR20190073564A KR 20190073564 A KR20190073564 A KR 20190073564A KR 1020197016191 A KR1020197016191 A KR 1020197016191A KR 20197016191 A KR20197016191 A KR 20197016191A KR 20190073564 A KR20190073564 A KR 20190073564A
Authority
KR
South Korea
Prior art keywords
frame
code
unit
prediction cost
bit rate
Prior art date
Application number
KR1020197016191A
Other languages
English (en)
Other versions
KR102296722B1 (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 KR20190073564A publication Critical patent/KR20190073564A/ko
Application granted granted Critical
Publication of KR102296722B1 publication Critical patent/KR102296722B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

클라이언트 단말 또는 서버에 적용되는, 비디오 코딩 비트레이트 할당 및 코드 단위 비트레이트 할당 방법으로서, 현재 프레임의 코딩된 비트레이트 및 목표 비트레이트를 획득하는 단계, 목표 비트레이트 및 코딩된 비트레이트에 따라 프레임의 코딩되지 않은 비트레이트를 결정하는 단계, 프리코딩에 기반하여 결정되는, 프레임의 현재 코드 단위의 예측된 코스트 및 코딩되지 않은 단위의 예측 코스트를 획득하는 단계, 코스트 비율 및 프레임의 코딩되지 않은 비트레이트에 따라 코딩될 현재 단위의 목표 비트레이트를 결정하는 단계를 포함하고, 상기 코스트 비율은 프레임의 현재 코드 단위의 예측된 코스트 및 코딩되지 않은 단위의 예측 코스트 간의 비율이다. 상기 비디오 코딩 비트레이트 할당 및 코드 단위 비트레이트 할당 방법은, 프레임의 코딩되지 않은 비트레이트에 의해서 뿐만 아니라 실제 코스트에 더욱 근접하는, 프레임의 현재 코드 단위의 예측된 코스트 및 코딩되지 않은 단위의 예측된 코스트 간의 비율에 의해서 코딩될 현재 단위의 목표 비트레이트를 더욱 정확하게 결정할 수 있어서, 본 발명은 코딩될 현재 단위에 대한 비트레이트 할당에서의 에러를 감소시킬 수 있고, 비디오 품질을 향상시킬 수 있다.

Description

비디오 코딩 코드율 할당 및 코딩 단위 코드율 할당 방법과, 컴퓨터 장비
본 개시는 비디오 코딩 기술 분야에 관한 것으로, 특히, 비디오 코딩을 위한 비트레이트 할당 방법, 코드 단위에 대한 비트레이트 할당 방법, 컴퓨터 장비, 및 저장 매체에 관한 것이다.
본 발명은 2017년 3월 7일에 "METHOD FOR VIDEO CODING BIT RATE ALLOCATION AND CODE UNIT BIT RATE ALLOCATION, AND APPARATUS"라는 명칭으로 중국 특허청에 출원된 중국 출원 번호 201710132204.4의 우선권을 주장하며, 상기 출원은 그 전문이 참조로서 병합된다.
인터넷 관련 기술이 점차 성숙해짐에 따라, 비디오 채팅 및 온라인 비디오 시청과 같은 비디오 서비스가 널리 보급되었다. 비디오 서비스는 비디오 코딩 기술의 지원 없이는 널리 적용될 수 없다.
비디오 코딩 기술에서, 비트레이트(bit rate)는 각 프레임의 코드 단위(code unit)에 할당될 필요가 있다. 비디오 코딩(압축)에 있어서의 종래의 비트레이트 할당 알고리즘에서, 먼저, 목표 비트레이트가, 현재 프레임 내의 코딩된 코드 단위의 코스트와의 조합으로 예측되는 현재 프레임 내의 모든 미코딩 코드 단위의 예측 코스트에 기반하여, 현재 코딩될 코드 단위에 할당되고, 이후, 현재 코딩될 코드 단위의 목표 비트레이트에 기반하여 현재 코딩될 코드 단위의 양자화 파라미터가 설정된다.
현재 코딩될 코드 단위가 코딩되기 전에 획득되는, 현재 코딩될 코드 단위의 예측 코스트(prediction cost)는 정확하지 않다. 비디오 이미지 콘텐츠가 갑자기 변하면, 현재 프레임의 코드 단위의 코스트는 이전 프레임의 코드 단위의 코스트와 크게 달라서, 낮은 예측 정확도라는 결과를 가져온다. 극단적인 경우, 예측 코스트는 심지어 0보다 작을 수도 있다. 이 경우, 현재 코딩될 코드 단위에 할당된 비트레이트는 큰 에러를 가질 수 있고, 열악한 비디오 품질이라는 결과를 가져온다.
본 관점에서, 열악한 비디오 품질 문제를 해결하기 위한, 비디오 코딩을 위한 비트레이트 할당 방법, 코드 단위에 대한 비트레이트 할당 방법, 컴퓨터 장비, 및 저장 매체가 비디오 품질을 향상시키기 위해 제공된다.
사용자 단말 또는 서버에 적용되는, 비디오 코딩의 코드 단위(code unit)에 대한 비트레이트 할당 방법으로서,
현재 프레임의 코딩된 비트레이트 및 목표 비트레이트를 획득하는 단계 - 상기 코딩된 비트레이트는 상기 현재 프레임 내의 각각의 코딩된 코드 단위의 실제 비트레이트에 기반하여 결정됨 -;
상기 현재 프레임의 상기 목표 비트레이트 및 상기 코딩된 비트레이트에 기반하여 프레임 미코딩 비트레이트(frame uncoded bit rate)를 결정하는 단계
프리코딩에 기반하여 결정되는, 현재 코드 단위 예측 코스트(current code unit prediction cost) 및 프레임 미코딩 단위 예측 코스트(frame uncoded unit prediction cost)를 획득하는 단계 - 상기 현재 코드 단위 예측 코스트는 상기 현재 프레임 내의 미코딩 코드 단위들 중에서 현재 코딩될 코드 단위의 단위 예측 코스트이고, 상기 프레임 미코딩 단위 예측 코스트는 상기 현재 프레임 내의 상기 미코딩 코드 단위들의 단위 예측 코스트에 기반하여 결정됨 -; 및
상기 프레임 미코딩 비트레이트 및 코스트 비율에 기반하여 현재 코딩될 단위의 목표 비트레이트를 결정하는 단계 - 상기 코스트 비율은 상기 프레임 미코딩 단위 예측 코스트에 대한 상기 현재 코드 단위 예측 코스트의 비율임 -
를 포함하는 비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법이 제공된다.
메모리 및 프로세서를 포함하는 컴퓨터 장비가 제공되고, 상기 메모리는 컴퓨터 판독 가능 명령을 저장하고, 상기 프로세서에 의해 실행될 때, 상기 컴퓨터 판독 가능 명령은 상기 프로세서로 하여금,
현재 프레임의 코딩된 비트레이트 및 목표 비트레이트를 획득하는 단계 - 상기 코딩된 비트레이트는 상기 현재 프레임 내의 각각의 코딩된 코드 단위의 실제 비트레이트에 기반하여 결정됨 -;
상기 현재 프레임의 상기 목표 비트레이트 및 상기 코딩된 비트레이트에 기반하여 프레임 미코딩 비트레이트(frame uncoded bit rate)를 결정하는 단계
프리코딩에 기반하여 결정되는, 현재 코드 단위 예측 코스트(current code unit prediction cost) 및 프레임 미코딩 단위 예측 코스트(frame uncoded unit prediction cost)를 획득하는 단계 - 상기 현재 코드 단위 예측 코스트는 상기 현재 프레임 내의 미코딩 코드 단위들 중에서 현재 코딩될 코드 단위의 단위 예측 코스트이고, 상기 프레임 미코딩 단위 예측 코스트는 상기 현재 프레임 내의 상기 미코딩 코드 단위들의 단위 예측 코스트에 기반하여 결정됨 -; 및
상기 프레임 미코딩 비트레이트 및 코스트 비율에 기반하여 현재 코딩될 단위의 목표 비트레이트를 결정하는 단계 - 상기 코스트 비율은 상기 프레임 미코딩 단위 예측 코스트에 대한 상기 현재 코드 단위 예측 코스트의 비율임 - 를 수행하게 한다.
비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법 및 컴퓨터 장비에 따르면, 프리코딩으로 결정되는, 실제 코스트에 더 근접한 현재 코드 단위 예측 코스트 및 프레임 미코딩 단위 예측 코스트가 획득되고, 현재 코딩될 단위의 목표 비트레이트가 실제 코스트에 더 근접한 프레임 미코딩 단위 예측 코스트에 대한 현재 코스 단위 예측 코스트의 비율 및 프레임 미코딩 비트레이트를 사용하여 결정되기 때문에, 목표 비트레이트가 더욱 정확하게 되고, 그럼에 따라 현재 코딩될 단위에 할당된 비트레이트에서의 에러가 감소되고, 비디오 품질이 향상된다.
사용자 단말 또는 서버에 적용되는, 비디오 코딩을 위한 비트레이트 할당 방법으로서,
현재 프레임의 프레임 유형 및 이전 프레임의 프레임 유형을 획득하는 단계; 및
상기 현재 프레임의 프레임 유형이 상기 이전 프레임의 프레임 유형과 서로 다른 경우, 비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법을 사용하여 현재 프레임 내의 각 코드 단위에 비트레이트를 할당하는 단계를 포함하는 비디오 코딩을 위한 비트레이트 할당 방법이 제공된다.
메모리 및 프로세서를 포함하는 컴퓨터 장비가 제공되고, 상기 메모리는 컴퓨터 판독 가능 명령을 저장하고, 상기 프로세서에 의해 실행될 때, 상기 컴퓨터 판독 가능 명령은 상기 프로세서로 하여금,
현재 프레임의 프레임 유형 및 이전 프레임의 프레임 유형을 획득하는 단계; 및
상기 현재 프레임의 프레임 유형이 상기 이전 프레임의 프레임 유형과 서로 다른 경우, 청구항 1 내지 7 중 어느 하나에 따른 비디오 코딩의 코드 단위에 대한 앞서 설명한 비트레이트 할당 방법을 사용하여 현재 프레임 내의 각 코드 단위에 비트레이트를 할당하는 단계를 수행하게 한다.
비디오 코딩을 위한 상기 할당 방법 및 컴퓨터 장비에 따르면, 현재 프레임의 프레임 유형이 이전 프레임의 프레임 유형과 서로 다른 경우, 현재 코딩될 단위에 할당된 비트레이트에서의 에러를 감소시킬 수 있고 비디오 품질을 향상시킬 수 있는 비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법이 현재 프레임 내의 각 코드 단위에 비트레이트를 할당하기 위해 사용되어서, 비디오 품질이 향상된다.
본 개시의 하나 이상의 실시예의 세부사항은 아래의 상세한 설명 및 첨부 도면에서 제공된다. 본 개시의 다른 특징들, 목적들, 및 장점들은 상세한 설명, 첨부 도면, 및 청구항으로부터 더욱 명확하게 된다.
본 개시의 실시예의 기술적 해결 방안을 보다 명확하게 설명하기 위해, 아래에서는 실시예의 설명에서 요구되는 첨부 도면을 간단히 설명한다. 명백하게, 다음의 설명에서 첨부 도면은 단지 본 개시의 일부 실시예이며, 당업자는 창조적인 노력 없이 첨부 도면에 따라 다른 도면을 또한 획득할 수 있다.
도 1은 일 실시예에 따른 비디오 코딩을 위한 비트레이트 할당 방법 및 장치와 코드 단위에 대한 비트레이트 할당 방법 및 장치의 응용 환경의 개략도이다;
도 2는 도 1에 도시된 사용자 단말의 내부 구조의 개략도이다;
도 3은 일 실시예에 따른 비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법의 흐름도이다;
도 4는 도 3에 도시된 비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법의 일 단계의 흐름도이다;
도 5는 일 실시예에 따른 비디오 코딩의 코드 단위에 대한 비트레이트 할당 장치의 구조를 나타내는 블록도이다;
도 6은 도 5에 도시된 비디오 코딩의 코드 단위에 대한 비트레이트 할당 장치의 모듈의 구조를 나타내는 블록도이다;
도 7은 일 실시예에 따른 비디오 코딩을 위한 비트레이트 할당 방법의 흐름도이다;
도 8은 또 다른 실시예에 따른 비디오 코딩을 위한 비트레이트 할당 방법의 흐름도이다;
도 9는 일 실시예에 따른 비디오 코딩을 위한 비트레이트 할당 장치의 구조를 나타내는 블록도이다; 그리고
도 10은 또 다른 실시예에 따른 비디오 코딩을 위한 비트레이트 할당 장치의 구조를 나타내는 블록도이다.
본 개시의 목적, 기술적 해결방안, 및 장점을 보다 이해하기 쉽게 하기 위해, 본 개시는 첨부된 도면 및 실시예를 참조하여 아래에서 더 상세하게 설명된다. 여기 설명된 구체적인 구현은 단지 본 개시를 설명하기 위해 사용되었고, 본 개시 내용의 보호 범위를 제한하려 의도되지 않았음이 이해되어야 한다.
도 1은 일 실시예에 따른 비디오 코딩을 위한 비트레이트 할당 방법 및 비디오 품질을 향상시키기 위한 코드 단위에 대한 비트레이트 할당 방법의 응용 환경의 개략적인 도면이다. 도 1에 도시된 대로, 응용 환경은 제1 사용자 단말(110), 제2 사용자 단말(120), 및 서버(130)를 포함한다. 제1 사용자 단말(110) 및 제2 사용자 단말(120)은 네트워크를 통해 서버(130)에 각각 연결된다. 제1 사용자 단말(110) 및 제2 사용자 단말(120)은 각각 비디오 통신의 응용 프로그램을 구동한다. 제1 사용자는 제1 사용자 단말(110)을 사용하여 비디오 데이터를 수집한다. 비디오 데이터는 서버(130)를 사용하여 제2 사용자 단말(120)에게 송신된다. 제2 사용자는 제2 사용자 단말(120)을 사용하여 비디오 데이터를 시청한다. 마찬가지로, 제1 사용자는, 제1 사용자 단말(110)을 사용하여, 제2 사용자 단말(120)를 사용하여 수집된 비디오 정보를 시청하고, 그럼에 따라 제1 사용자와 제2 사용자 간의 비디오 통신이 구현될 수 있다. 본 실시예에서, 비디오 코딩을 위한 비트레이트 할당 방법 및 코드 단위에 대한 비트레이트 할당 방법은 제1 사용자 단말(110) 또는 제2 사용자 단말(120) 내에서 구동된다.
다른 응용 시나리오에서, 제1 사용자 단말(110) 및 서버(130)만이 포함되며, 제1 사용자 단말(110)은 네트워크를 통해 서버(130)에 연결된다. 제1 사용자 단말(110)은 수집된 비디오 데이터를 서버(130)에게 송신한다. 비디오 코딩을 위한 비트레이트 할당 방법 및 코드 단위에 대한 비트레이트 할당 방법은 제1 사용자 단말(110)에서 구동된다.
다른 실시예에서, 제1 사용자는 제1 사용자 단말(110)를 사용하여 스트리밍 미디어 파일(streaming media file)을 제2 사용자 단말에게 보낼 수 있다. 본 실시예에서, 비디오 코딩을 위한 비트레이트 할당 방법 및 코드 단위에 대한 비트레이트 할당 방법은 서버(130) 내에서 구동된다. 제1 사용자 단말(110)에 의해 송신된 비디오 스트림을 디코딩한 후, 서버(130)는 비디오 스트림을 레코딩(recode)하고, 서로 다른 단말 플랫폼의 재생에 관한 요구사항을 충족시키기 위해, 레코딩된 비디오 스트림을 제2 사용자 단말(120)에게 송신한다.
다른 응용 시나리오에서, 제1 사용자 단말(110)와 서버(130)만 포함되고, 제1 사용자 단말(110)은 네트워크를 통해 서버(130)와 연결된다. 제1 사용자 단말(110)은 스트리밍 미디어 파일을 서버(130)에게 송신한다. 비디오 코딩을 위한 비트레이트 할당 방법 및 코드 단위에 대한 비트레이트 할당 방법은 서버(130) 내에서 실행된다.
도 2는 일 실시예에 따른 사용자 단말의 내부 구조의 개략적인 도면이다. 도 2에 도시된 대로, 사용자 단말은 시스템 버스를 사용하여 연결된, 프로세서, 저장 매체, 내부 메모리, 네트워크 인터페이스, 디스플레이 스크린, 카메라, 및 입력 장치를 포함한다. 단말의 저장 매체는 운영 체제와, 비디오 코딩을 위한 비트레이트 할당 장치 및 코드 단위에 대한 비트레이트 할당 장치를 저장한다. 비디오 코딩을 위한 비트레이트 할당 장치 및 코드 단위에 대한 비트레이트 할당 장치는 비디오 코딩을 위한 비트레이트 할당 방법 및 코드 단위에 대한 비트레이트 할당 방법을 구현하도록 구성된다. 프로세서는, 전체 사용자 단말의 동작을 지원하기 위해, 컴퓨팅 능력 및 제어 능력을 제공하도록 구성된다. 사용자 단말의 내부 메모리는 저장 매체 내에서 비디오 코딩을 위한 비트레이트 할당 장치 및 저장 매체의 코드 단위에 대한 비트레이트 할당 장치를 위한 환경을 제공한다. 내부 메모리는 컴퓨터 판독 가능 명령을 저장할 수 있다. 프로세서에 의해 실행될 때, 컴퓨터 판독 가능 명령은 프로세서로 하여금 비디오 코딩을 위한 비트레이트 할당 방법 및 코드 단위에 대한 비트레이트 할당 방법을 수행하게 한다. 사용자 단말의 네트워크 인터페이스는 서버와의 네트워크 통신을 수행하도록 구성되고, 예를 들어, 서버에게 비디오 파일을 송신하거나, 또는 서버에 의해 송신되는, 다른 사용자 단말로부터의 비디오 파일을 수신하도록 구성된다. 사용자 단말의 디스플레이 스크린은 액정 디스플레이 스크린, 또는 전자 잉크 디스플레이 스크린 등일 수 있다. 입력 장치는 디스플레이 스크린을 덮는 터치 레이어일 수 있고, 또는 사용자 단말 하우징에 배치된, 키, 트랙볼, 또는 터치패드일 수도 있고, 또는 외부의 키보드, 또는 터치 패드, 또는 마우스 등일 수 있다. 사용자 단말은, 이동 전화, 또는 태블릿 컴퓨터, 또는 개인 휴대 정보 단말, 또는 웨어러블 장치 등일 수 있다. 당업자는 도 2에 도시된 구조가 단지 본 개시의 해결 방안과 관련된 일부 구조의 블록도이고, 본 개시의 해결 방안이 적용된 사용자 단말에 대한 어떤 한정도 구성하지 않음을 이해할 수 있다. 구체적인 사용자 단말은 도면에 도시된 것들보다 더 많거나 더 적은 구성 요소들을 포함하거나, 또는 몇몇 구성 요소들은 결합되거나, 또는 서로 다른 구성요소 배치가 사용된다.
도 3을 참조하면, 일 실시예에서, 비디오 코딩에서의 코드 단위들에 대한 비트레이트 할당 방법이 제공된다. 본 방법은 도 1에 도시된 사용자 단말 또는 서버(130) 내에서 구동된다. 본 방법은 아래의 단계 S310 내지 S340을 포함한다.
단계 S310에서, 현재 프레임의 코딩된 비트레이트 및 목표 비트레이트(target bit rate)가 획득된다. 코딩된 비트레이트는 현재 프레임 내의 각각의 코딩된 코드 단위의 실제 비트레이트에 기반하여 결정된다.
현재 프레임은 아직 코딩되지 않았고 현재 코딩될 프레임이다. 목표 비트레이트는 할당될 비트레이트이다. 코딩된 비트레이트는 코딩이 완료된 비트레이트이다. 현재 프레임의 목표 비트레이트는 비디오의 목표 비트레이트 및 비디오의 코딩된 비트레이트에 기반하여 결정될 수 있다.
단계 S320에서, 프레임 미코딩 비트레이트(frame uncoded bit rate)는 현재의 프레임의 코딩된 비트레이트 및 목표 비트레이트에 기반하여 결정된다.
현재 프레임의 코딩되지 않은 비트레이트, 즉 프레임 미코딩 비트레이트는, 현재 프레임의 목표 비트레이트로부터 현재 프레임의 코딩된 비트레이트를 감산함으로써 획득될 수 있다.
단계 S330에서, 프리코딩(precoding)을 기반으로 결정되는, 현재 코드 단위 예측 코스트(prediction cost) 및 프레임 미코딩 단위 예측 코스트가 획득된다.
현재 프레임은 프리코딩된다. 현재 코드 단위 예측 코스트 및 프레임 미코딩 예측 코스트는 프리코딩에 기반하여 결정된다. 즉, 프리코딩에 기반하여 결정되는, 현재 코드 단위 예측 코스트 및 프레임 미코딩 단위 예측 코스트가 획득된다. 이러한 방식으로, 획득된 현재 코드 단위 예측 코스트 및 프레임 미코딩 단위 예측 코스트는 실제 코스트에 더 근접하게 된다.
현재 코드 단위 예측 코스트는 현재 프레임 내의 미코딩 코드 단위들 중에서 현재 코딩될 코드 단위의 단위 예측 코스트이다. 프레임 미코딩 단위 예측 코스트는 현재 프레임 내의 미코딩 코드 단위들의 단위 예측 코스트에 기반하여 결정될 수 있다.
단계 S340에서, 현재 코딩될 단위의 목표 비트레이트는 프레임 미코딩 비트레이트 및 코스트 비율에 기반하여 결정된다. 코스트 비율은 프레임 미코딩 단위 예측 코스트에 대한 현재 코드 단위 예측 코스트의 비율이다.
현재 코딩될 단위의 목표 비트레이트는 프레임 미코딩 비트레이트 및 코스트 비율에 기반하여 결정될 수 있다. 예를 들어, 현재 코딩될 단위의 목표 비트레이트는 프레임 미코딩 비트레이트 및 코스트 비율의 곱일 수 있다. 대안으로, 현재 코딩될 단위의 목표 비트레이트는 프레임 미코딩 비트레이트와 가중치 계수(weight coefficient)를 곱한 코스트 비율의 곱일 수 있다.
쉬운 이해를 위해, 현재 프레임이 총 n개의 코드 단위를 갖고, 현재 코딩될 단위는 현재 프레임 내의 i번째 코드 단위고, 현재 프레임 내의 첫 번째 코드 단위 내지 i-1번째 코드 단위가 코딩되며, i번째 코드 단위 내지 n번째 코드 단위는 코딩되지 않는 것으로 가정하고, 모든 부호화되지 않은 코드 단위들의 목표 비트레이트, 즉, 프레임 미코딩 비트레이트는
Figure pct00001
로 기록된다. 프레임 미코딩 단위 예측 코스트에 대한 현재 코딩될 단위의 예측 코스트의 비율은
Figure pct00002
로 기록된다.
Figure pct00003
현재 코딩될 단위의 목표 비트레이트, 즉, 현재 코딩될 단위의 비트레이트는
Figure pct00004
로 표시되고, 여기서
Figure pct00005
이다.
비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법에 따르면, 프리코딩에 기반하여 결정되는, 실제 비용에 더 근접한 현재 코드 단위 예측 코스트 및 프레임 미코딩 단위 예측 코스트가 획득되고, 현재 코딩될 단위의 목표 비트레이트가 프레임 미코딩 비트레이트 및 실제 코스트에 더 근접한 프레임 미코딩 단위 예측 코스트에 대한 현재 코드 단위 예측 코스트의 비율을 사용하여 결정되기 때문에, 목표 비트레이트가 더 정확해지고, 그럼에 따라 현재 코딩될 단위에 할당되는 비트레이트 내의 에러가 감소되며, 비디오 품질이 향상된다.
일 실시예에서, 단계 S340 이후에, 비디오 코딩의 코드 단위들에 대한 비트레이트 할당 방법은,
현재 코딩될 단위의 목표 비트레이트에 기반하여 현재 코딩될 단위의 양자화 파라미터를 결정하는 단계를 더 포함한다. 이러한 방식으로, 현재 코드 단위의 실제 비트레이트는 현재 코드 단위의 목표 비트레이트에 최대한 근접하게 된다.
도 4를 참조하면, 일 실시예에서, 프리코딩에 기반하여 결정되는, 현재 코드 단위 예측 코스트 및 프레임 미코딩 단위 예측 코스트를 획득하는 단계, 즉, 단계 S330은 다음의 단계 S331 내지 S333을 포함한다.
단계 S331에서, 다운샘플링(downsampling) 이후 획득되는 미코딩 코드 단위의 코드 블록의 픽셀 값이 획득되고, 미리 설정된 최적 프레임 내 예측 모드 및 코드 블록의 픽셀 값에 기반하여 코드 블록의 프레임 내 예측 코스트가 결정된다 .
본 실시예에서, 현재 프레임은 다운샘플링을 통해 프리코딩된다. 구체적으로, 2:1의 비율로 다운샘플링이 현재 프레임에서 수행될 수 있다. 즉, 원본 이미지의 길이와 너비가 각각 a와 b라면, 다운샘플링된 이미지의 길이와 너비는 각각
Figure pct00006
Figure pct00007
이다. 다운샘플링 후의 길이 및 너비가 N의 정수배가 아니면, 다운샘플링 후에 획득되는 이미지의 테두리가 연장되어서, 길이 및 너비는 N의 정수 배가 된다. N×N은 프리코딩에서 가장 작은 코드 블럭의 크기이며, 4×4, 또는 8×8, 또는 16×16 등일 수 있다. 다음 조건 - 하나의 코드 단위에 대응하는, 다운샘플링 이후에 획득되는 이미지는 정수배 N×N 코드 블록을 포함함 - 이 충족된다. 다운샘플링이 수행되는 비율은 2:1로 제한되지 않으며, 대안적으로 3:1, 또는 4:1 등일 수 있음이 이해될 수 있다.
미리 설정된 최적 프레임 내 예측 모드(optimal intra-frame prediction mode)는 미리 설정된 프레임 내 예측 모드 일 수 있고, 또는 미리 설정된 정책을 사용하여 결정된 최적 프레임 내 예측 모드일 수 있다.
미리 설정된 최적 프레임 내 예측 모드 및 코드 블록의 픽셀 값에 기반하여 코드 블록의 프레임 내 예측 코스트를 결정하는 방식은, 예측 잔여(prediction residual)를 획득하기 위해, 코드 블록의 각 픽셀의 픽셀 값으로부터 미리 설정된 최적 프레임 내 예측 모드를 사용하여 결정된 예측 값을 감산하는 단계, 및 절대 값의 합계를 획득하기 위해, 모든 픽셀들의 예측 잔여들의 절대값들을 더하고, 합계를 코드 블록의 프레임 내 예측 코스트로서 사용하거나 또는 코드 블록의 모든 픽셀들의 예측 잔여의 2차 합계(quadratic sum)를 코드 블록의 프레임 내 예측 코스트로서 사용하거나, 또는 각 예측 잔여를 변환하고, 변환 후에 획득된 계수들의 절대 값들의 합계를 코드 블록의 프레임 내 예측 코스트로서 사용하는 단계일 수 있다.
단계 S332에서, 현재 프레임의 프레임 유형(frame type)이 결정되고, 프레임 내 예측 코스트 및 프레임 유형에 기반하여, 코드 블록에 대응하는 최종 블록 예측 코스트를 결정한다.
프레임 유형은 프레임 내 예측 프레임(프레임 I) 및 프레임 간 예측 프레임(프레임 P)을 포함한다. 프레임 내 예측 프레임에 대해, 최종 예측 코스트는 프레임 내 예측 코스트를 사용하여 결정될 필요가 있다. 프레임 간 예측 프레임에 대해, 최종 예측 코스트는 프레임 내 예측 코스트 또는 프레임 간 예측 코스트를 사용하여 결정될 수 있다.
단계 S333에서, 미코딩 코드 단위들의 단위 예측 코스트, 현재 코드 단위 예측 코스트, 및 프레임 미코딩 단위 예측 코스트가 코드 블록에 대응하는 최종 블록 예측 코스트에 기반하여 결정된다.
미코딩 코드 단위들의 단위 예측 코스트는 미코딩 코드 단위의 코드 블록에 대응하는 최종 블록 예측 코스트에 기반하여 결정될 수 있다. 예를 들어, 코드 블록들에 대응하는 최종 블록 예측 코스트들의 합계는 코드 단위의 단위 예측 코스트로서 사용될 수 있거나, 또는 상기 코드 블록들에 대응하는 가중된 최종 블록 예측 코스트들의 합계가 코드 단위의 단위 예측 코스트로서 사용될 수 있거나, 또는 코드 단위의 단위 예측 코스트를 획득하기 위해, 코드 블록들에 대응하는 최종 블록 예측 코스트들의 합계가 가중된다. 이러한 방식으로, 현재 코드 단위 예측 코스트 및 프레임 미코딩 단위 예측 코스트는 미코딩 코드 단위의 코드 블록에 대응하는 최종 블록 예측 코스트에 기반하여 추가로 결정될 수 있다.
일 실시예에서, 다운샘플링 이후 획득되는 미코딩 코드 단위들의 코드 블록의 픽셀 값을 획득하고, 미리 설정된 최적 프레임 내 예측 모드 및 코드 블록의 픽셀 값에 기반하여 코드 블록들의 프레임 내 예측 코스트를 결정하는 단계는, 즉 단계 S331은 다음 단계(a) 내지(c)를 포함한다.
단계 (a)에서, 최적 프레임 내 예측 모드를 결정하기 위해, 미리 설정된 프레임 내 선택 정책을 사용하여, 현재 프레임 내에서의 다운샘플링 이후 획득되는 미코딩 코드 단위들의 코드 블록에 대한 프레임 내 예측 모드가 선택된다.
미리 설정된 프레임 내 선택 정책은 예측 잔여의 값에 기반하여 상대적으로 작은 예측 잔여를 갖는 모드를 선택하거나, 또는 변환 이후 획득되는 상대적으로 작은 예측 잔여를 갖는 모드를 선택하는 것을 포함할 수 있다. 프레임 내 예측 모드는 33가지 유형의 각도 예측 모드(angle prediction mode), 1개의 평면 모드(planar mode), 및 1개의 직류(direct current, DC) 모드를 갖는 HEVC(High Efficiency Video Coding) 표준과 같은 선택된 코딩 표준과 관련된다.
단계 (b)에서, 코드 블록들의 픽셀 값들이 획득되고, 코드 블록들의 프레임 내 예측 값이 코드 블록들에 대응하는 최적 프레임 내 예측 모드에 따라 결정된다.
현재 프레임에서 다운샘플링 이후 획득되는 미코딩 코드 단위들의 코드 블록의 픽셀 값이 획득된다. 또한, 코드 블록들의 예측 값, 즉 코드 블록들의 프레임 내 예측 값은 코드 블록들에 대응하는 최적 프레임 내 예측 모드에 기반하여 결정된다.
단계 (c)에서, 프레임 내 블록 예측 코스트가 코드 블록의 프레임 내 예측 값 및 픽셀 값에 기반하여 결정되고, 프레임 내 블록 예측 코스트는 코드 블록들의 프레임 내 예측 코스트이다.
프레임 내 블록 예측 코스트는 코드 블록의 픽셀 값 및 프레임 내 예측 값 간의 차이에 기반하여 결정될 수 있다. 예를 들어, 프레임 내 예측 값은 예측 잔여를 획득하기 위해, 코드 블록의 픽셀들의 각각의 픽셀 값으로부터 감산될 수 있고, 이후, 절대 값들의 합계를 획득하기 위해, 모든 픽셀의 예측 잔여의 절대 값이 더해지고, 그 합계는 코드 블록의 프레임 내 예측 코스트로서 사용되거나, 또는 코드 블록의 모든 픽셀의 예측 잔여의 2차 합계가 코드 블록의 프레임 내 예측 코스트로서 사용되거나, 또는 예측 잔여가 변환되고, 변환 이후 획득되는 계수의 절대 값의 합계가 코드 블록의 프레임 내 예측 코스트로서 사용된다.
일 실시예에서, 현재 프레임의 프레임 유형을 획득하고, 프레임 내 예측 코스트 및 프레임 유형에 기반하여, 코드 블록들에 대응하는 최종 블록 예측 코스트를 결정하는 단계, 즉 상기 단계 S332는 다음 단계(I) 내지 (II)를 포함한다.
단계(I)에서, 현재 프레임의 프레임 유형이 획득된다.
단계(II)에서, 프레임 유형이 프레임 내 예측 프레임이면, 프레임 내 블록 예측 코스트는 코드 블록들에 대응하는 최종 블록 예측 코스트로서 사용된다.
프레임 유형이 프레임 내 예측 프레임인 경우, 프레임 내 블록 예측 코스트가 코드 블록들에 대응하는 최종 블록 예측 코스트로서 사용된다. 이러한 방식으로, 프레임 유형이 프레임 내 예측 프레임인 프레임 내의 미코딩 코드 단위들의 코드 블록들에 대응하는 최종 블록 예측 코스트가 결정된다.
더 나아가, 현재 프레임의 프레임 유형을 획득하고, 프레임 내 예측 코스트 및 프레임 유형에 기반하여, 코드 블록들에 대응하는 최종 블록 예측 코스트를 결정하는 단계, 즉 상기 단계 S332는 다음 단계(III) 내지 (IV)를 더 포함한다.
단계(III)에서, 프레임 유형이 프레임 간 예측 프레임이면, 코드 블록들의 프레임 간 예측 코스트는 코드 블록들의 픽셀 값 및 미리 설정된 최적 프레임 간 예측 모드에 기반하여 결정된다.
단계 (IV)에서, 각각의 코드 블록의 프레임 간 예측 코스트 및 프레임 내 예측 코스트 중 작은 것이 코드 블록의 최종 블록 예측 코스트로서 결정된다.
프레임 유형이 프레임 간 예측 프레임인 경우, 각각의 코드 블록의 프레임 간 예측 코스트 및 프레임 내 예측 코스트 중 작은 값이 코드 블록의 최종 블록 예측 코스트로서 결정된다. 이러한 방식으로, 프레임 유형이 프레임 간 예측 프레임인 프레임 내의 미코딩 코드 단위들의 코드 블록들에 대응하는 최종 블록 예측 코스트가 결정된다.
유의해야 할 것은, 미리 설정된 최적 프레임 간 예측 모드는 미리 설정된 최적 프레임 내 예측 모드와 유사하다는 것이다. 미리 설정된 최적 프레임 간 예측 모드는 미리 설정된 프레임 간 예측 모드이거나, 또는 미리 설정된 프레임 간 정책을 사용하여 결정된 최적 프레임 내 예측 모드일 수 있다. 미리 설정된 프레임 간 선택 정책은 예측 잔여들의 값에 기반하여 상대적으로 작은 예측 잔여를 갖는 모드를 선택하는 것을 포함하거나, 또는 예측 잔여를 변환하는 것과, 변환 후에 획득된 상대적으로 작은 예측 잔여를 갖는 모드를 선택하는 것을 포함할 수 있다. 프레임 간 예측 모드는, 스킵 모드(skip mode), 병합 모드(merge mode), 및 인터 모드(inter mode)(프레임 간 모드(inter-frame mode))를 포함하는 HEVC 표준과 같은 선택된 코딩 표준과 관련된다.
일 실시예에서, 상기 코드 블록들에 대응하는 최종 블록 예측 코스트에 기반하여 미코딩 코드 단위들의 단위 예측 코스트, 현재 코드 단위 예측 코스트, 및 프레임 미코딩 단위 예측 코스트를 결정하는 단계, 즉 단계 S333은,
코드 블록들에 대응하는 최종 블록 예측 코스트에 기반하여 미코딩 코드 단위들의 단위 예측 코스트를 결정하는 단계, 및
현재 코딩될 단위의 단위 예측 코스트를 현재 코드 단위 예측 코스트로서 사용하고, 현재 프레임의 미코딩 코드 단위의 단위 예측 코스트에 기반하여 프레임 미코딩 단위 예측 코스트를 결정하는 단계를 포함한다.
이러한 방식으로, 현재 코드 단위 예측 코스트 및 프레임 미코딩 단위 예측 코스트가 결정된다. 구체적으로, 프레임 미코딩 단위 예측 코스트는 현재 프레임 내의 미코딩 코드 단위들의 단위 예측 코스트의 합계일 수 있고, 또는 프레임 미코딩 단위 예측 코스트는 가중된 현재 프레임 내의 미코딩 코드 단위들의 단위 예측 코스트의 합계일 수 있으며, 또는 프레임 미코딩 단위 예측 코스트는 현재 프레임 내의 미코딩 코드 단위들의 가중된 단위 예측 코스트(weighted unit prediction cost)의 합계일 수 있다.
관리의 용이함을 위해, 일 실시예에서, 코드 단위들은 기본 비트레이트 제어 단위, 즉 기본 단위(basic unit, BU)이다. 기본 비트레이트 제어 단위는 일관된 양자화 파라미터를 갖는 최소 비트레이트 제어 단위이다.
본 개시는 또한, 일 실시예의 비디오 코딩의 코드 단위들에 대한 비트레이트 할당 장치를 제공한다. 상기 장치는 컴퓨터 장비 내에 배치된다. 장치 내의 다양한 모듈들은 컴퓨터 장비에 의해 구동될 수 있다. 도 5를 참조하면, 본 발명의 일 실시예의 비디오 코딩의 코드 단위에 대한 비트레이트 할당 장치는,
현재 프레임의 코딩된 비트레이트 및 목표 비트레이트를 획득하도록 구성된 비트레이트 획득 모듈(510) - 코딩된 비트레이트는 현재 프레임 내의 각 코딩된 코드 단위의 실제 비트레이트에 기반하여 결정됨 -,
현재 프레임의 코딩된 비트레이트 및 목표 비트레이트에 기반하여 프레임 미코딩 비트레이트를 결정하도록 구성된 미코딩 비트레이트 결정 모듈(520),
프리코딩에 기반하여 결정되는, 현재 코드 단위 예측 코스트 및 프레임 미코딩 단위 예측 코스트를 획득하도록 구성된 코스트 획득 모듈(530) - 현재 코드 단위 예측 코스트는 현재 프레임 내의 미코딩 코드 단위들 중에서 현재 코딩될 코드 단위의 단위 예측 코스트이고, 프레임 미코딩 단위 예측 코스트는 현재 프레임 내의 미코딩 코드 단위들의 단위 예측 코스트에 기반하여 결정됨 -, 및
프레임 미코딩 비트레이트 및 코스트 비율에 기반하여 현재 코딩될 단위의 목표 비트레이트를 결정하도록 구성된 목표 비트레이트 결정 모듈(540) - 코스트 비율은 프레임 미코딩 단위 예측 코스트에 대한 현재 코드 단위 예측 코스트의 비율임 - 을 포함한다.
비디오 코딩의 코드 단위에 대한 비트레이트 할당 장치에 따르면, 실제 코스트에 더 가까운, 프리코딩에 기반하여 결정되는 현재 코드 단위 예측 코스트 및 프레임 미코딩 단위 예측 코스트가 획득되고, 현재 코딩될 단위의 목표 비트레이트가 실제 코스트에 더 근접한 프레임 미코딩 단위 예측 코스트에 대한 현재 코드 단위 예측 코스트의 비율 및 프레임 미코딩 비트레이트 사용함으로써 결정되기 때문에, 목표 비트레이트가 더욱 정확하고, 이에 따라 현재 코딩될 단위에 할당된 비트레이트의 에러가 감소되며, 비디오 품질이 향상된다.
도 6을 참조하면, 일 실시예에서, 비용 획득 모듈(530)은,
다운샘플링 이에 획득되는 미코딩 코드 단위들의 코드 블록의 픽셀 값을 획득하고, 코드 블록의 픽셀 값 및 미리 설정된 최적 프레임 내 예측 모드에 기반하여 코드 블록의 프레임 내 예측 코스트를 결정하도록 구성된 프레임 내 코스트 예측 유닛(531),
현재 프레임의 프레임 유형을 획득하고, 프레임 유형 및 프레임 내 예측 코스트에 기반하여 코드 블록에 대응하는 최종 블록 예측 코스트를 결정하도록 구성된 블록 코스트 결정 유닛(532), 및
코드 블록에 대응하는 최종 블록 예측 코스트에 기반하여 미코딩 코드 단위들의 단위 예측 코스트, 현재 코드 단위 예측 코스트, 및 프레임 미코딩 단위 예측 코스트를 결정하도록 구성된 단위 코스트 결정 유닛(533)을 포함한다.
일 실시예에서, 프레임 내 코스트 예측 유닛(531)은 프레임 내 모드 결정 서브유닛, 프레임 내 예측 값 결정 서브유닛, 및 프레임 내 블록 코스트 결정 서브유닛을 포함한다.
프레임 내 모드 결정 서브유닛은, 최적 프레임 내 예측 모드를 결정하기 위해, 미리 설정된 프레임 내 선택 정책을 사용하여, 현재 프레임 내에서의 다운샘플링 이후 획득되는 미코딩 코드 단위들의 코드 블록에 대한 프레임 내 예측 모드를 선택하도록 구성된다.
프레임 내 예측 값 결정 서브유닛은, 코드 블록들의 픽셀 값을 획득하고, 코드 블록들에 대응하는 최적 프레임 내 예측 모드에 기반하여 코드 블록들의 프레임 내 예측 값을 결정하도록 구성된다.
프레임 내 블록 코스트 예측 서브유닛은, 코드 블록들의 프레임 내 예측 값 및 픽셀 값을 기반으로 프레임 내 블록 예측 코스트를 결정하도록 구성되고, 프레임 내 블록 예측 코스트는 코드 블록들의 프레임 내 예측 코스트이다.
일 실시예에서, 블록 코스트 결정 유닛(532)은 유형 획득 서브유닛 및 프레임 내 블록 코스트 결정 서브유닛을 포함한다.
유형 획득 서브유닛은 현재 프레임의 프레임 유형을 획득하도록 구성된다.
프레임 내 블록 코스트 결정 서브유닛은, 프레임 유형이 프레임 내 예측 프레임이면, 프레임 내 블록 예측 코스트를 코드 블록들에 대응하는 최종 블록 예측 코스트로서 사용하도록 구성된다.
일 실시예에서, 블록 코스트 결정 유닛(532)은 프레임 간 예측 값 결정 서브유닛 및 프레임 간 블록 코스트 결정 서브유닛을 더 포함한다.
프레임 간 예측 값 결정 서브유닛은, 프레임 유형이 프레임 간 예측 프레임이면, 코드 블록들의 픽셀 값 및 미리 설정된 최적 프레임 간 예측 모드에 기반하여 상기 코드 블록들의 프레임 간 예측 코스트를 결정하도록 구성된다.
프레임 간 블록 코스트 결정 서브유닛은, 각각의 코드 블록의 프레임 간 예측 코스트 및 프레임 내 예측 코스트 중 더 작은 것을 코드 블록의 최종 블록 예측 코스트로서 결정하도록 구성된다.
일 실시예에서, 단위 코스트 결정 유닛(533)은 제1 단위 코스트 결정 유닛 및 제2 단위 코스트 결정 유닛을 포함한다.
제1 단위 코스트 결정 유닛은 코드 블록들에 대응하는 최종 블록 예측 코스트에 기반하여 미코딩 코드 단위들의 단위 예측 코스트를 결정하도록 구성된다.
제2 단위 코스트 결정 유닛은, 현재 코딩될 코드 단위의 단위 예측 코스트를 현재 코드 단위 예측 코스트로서 사용하고, 현재 프레임 내의 미코딩 코드 단위들의 단위 예측 코스트에 기반하여 프레임 미코딩 단위 예측 코스트를 결정하도록 구성된다.
일 실시예에서, 코드 단위는 기본 비트레이트 제어 단위이고, 기본 비트레이트 제어 단위는 일관된 양자화 파라미터를 갖는 최소 비트레이트 제어 단위이다.
비디오 코딩의 코드 단위들에 대한 비트레이트 할당 장치는 비디오 코딩의 코드 단위들에 대한 비트레이트 할당 방법에 상호 상응한다. 따라서, 본 발명의 방법에 대응하는 장치 내의 구체적인 기술적 특징들에 대해서는, 세부사항이 여기서 다시 기술되지 않는다.
본 발명은 또한 비디오 코딩을 위한 비트레이트 할당 방법을 제공한다. 도 7은 일 실시예에 따른 비디오 코딩을 위한 비트레이트 할당 방법을 나타낸다. 상기 방법은 도 1에 도시된 사용자 단말 또는 서버(130)에서 구동되고, 다음 단계 S710 및 S720를 포함한다.
단계 S710에서, 현재 프레임의 프레임 유형과 이전 프레임의 프레임 유형이 획득된다.
프레임 유형은 프레임 내 예측 프레임 및 프레임 간 예측 프레임을 포함한다. 프레임 내 예측 프레임의 경우, 최종 예측 코스트는 프레임 내 예측 코스트를 사용하여 결정될 필요가 있다. 프레임 간 예측 프레임의 경우, 최종 예측 코스트는 프레임 내 예측 코스트 또는 프레임 간 예측 코스트를 사용하여 결정될 수 있다.
단계 S720에서, 현재 프레임의 프레임 유형이 이전 프레임의 프레임 유형과 서로 다른 경우, 앞서 설명한 실시예의 비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법을 사용하여 현재 프레임 내의 각 코드 단위에 비트레이트를 할당한다.
앞선 실시예의 비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법은, 현재 프레임의 코딩된 비트레이트 및 목표 비트레이트를 획득하는 단계 - 코딩된 비트레이트는 현재 프레임 내의 각 코딩된 코드 단위의 실제 비트레이트에 기반하여 결정됨 -,
현재 프레임의 코딩된 비트레이트 및 목표 비트레이트에 기반하여 프레임 미코딩 비트레이트를 결정하는 단계,
프리코딩에 기반하여 결정되는, 현재 코드 단위 예측 코스트 및 프레임 미코딩 단위 예측 코스트를 획득하는 단계 - 현재 코드 단위 예측 코스트는 현재 프레임 내의 미코딩 코드 단위들 중에서 현재 코딩될 코드 단위의 단위 예측 코스트이고, 프레임 미코딩 단위 예측 코스트는 현재 프레임 내의 미코딩 코드 단위들의 단위 예측 코스트에 기반하여 결정됨 -, 및
프레임 미코딩 비트레이트 및 코스트 비율에 기반하여 현재 코딩될 단위의 목표 비트레이트를 결정하는 단계 - 코스트 비율은 프레임 미코딩 단위 예측 코스트에 대한 현재 코드 단위 예측 코스트의 비율임 -를 포함한다.
일 실시예에서, 비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법이 더 포함하는, 프리코딩에 기반하여 결정되는, 현재 코드 단위 예측 코스트 및 프레임 미코딩 단위 예측 코스트를 획득하는 단계는, 다운샘플링 이후 획득되는 미코딩 코드 단위들의 코드 블록의 픽셀 값을 획득하고, 코드 블록의 픽셀 값 및 미리 설정된 최적 프레임 내 예측 모드에 기반하여 코드 블록의 프레임 내 예측 코스트를 결정하는 단계;
현재 프레임의 프레임 유형을 획득하고, 프레임 유형 및 프레임 내 예측 코스트에 기반하여, 코드 블록에 대응하는 최종 블록 예측 코스트를 결정하는 단계; 및
코드 블록에 대응하는 최종 블록 예측 코스트에 기반하여 미코딩 코드 단위들의 단위 예측 코스트, 현재 코드 단위 예측 코스트, 및 프레임 미코딩 단위 예측 코스트를 결정하는 단계를 포함한다.
일 실시예에서, 비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법이 더 포함하는, 다운샘플링 이후 획득되는 미코딩 코드 단위들의 코드 블록의 픽셀 값을 획득하고, 코드 블록의 픽셀 값 및 미리 설정된 최적 프레임 내 예측 모드에 기반하여 코드 블록의 프레임 내 예측 코스트를 결정하는 단계는,
최적 프레임 내 예측 모드를 결정하기 위해, 미리 설정된 프레임 내 선택 정책을 사용하여, 현재 프레임 내에서의 다운샘플링 이후 획득되는 미코딩 코드 단위들의 코드 블록에 대한 프레임 내 예측 모드를 선택하는 단계,
코드 블록의 픽셀 값을 획득하고, 코드 블록에 대응하는 최적 프레임 내 예측 모드에 기반하여 코드 블록의 프레임 내 예측 값을 결정하는 단계; 및
코드 블록의 프레임 내 예측 값 및 픽셀 값에 기반하여 프레임 내 블록 예측 코스트를 결정하는 단계 - 프레임 내 블록 예측 코스트는 코드 블록의 프레임 내 예측 코스트임 - 를 포함한다.
일 실시예에서, 비디오 코딩의 코드 단위들에 대한 비트레이트 할당 방법이 더 포함하는, 현재 프레임의 프레임 유형을 획득하고, 프레임 유형 및 프레임 내 예측 코스트에 기반하여, 코드 블록에 대응하는 최종 블록 예측 코스트를 결정하는 단계는,
현재 프레임의 프레임 유형을 획득하는 단계; 및
프레임 유형이 프레임 내 예측 프레임이면, 프레임 내 블록 예측 코스트를 코드 블록에 대응하는 최종 블록 예측 코스트로서 사용하는 단계를 포함한다.
일 실시예에서, 비디오 코딩의 코드 단위들에 대한 비트레이트 할당 방법이 더 포함하는, 현재 프레임의 프레임 유형을 획득하고, 프레임 유형 및 프레임 내 예측 코스트에 기반하여, 코드 블록에 대응하는 최종 블록 예측 코스트를 결정하는 단계는,
프레임 유형이 프레임 간 예측 프레임이면, 미리 설정된 최적 프레임 간 예측 모드 및 코드 블록의 픽셀 값에 기반하여 코드 블록의 프레임 간 예측 코스트를 결정하는 단계; 및
각각의 코드 블록의 프레임 간 예측 코스트 및 프레임 내 예측 코스트 중 작은 것을 코드 블록의 최종 블록 예측 코스트로서 결정하는 단계를 더 포함한다.
일 실시예에서, 비디오 코딩의 코드 단위들에 대한 비트레이트 할당 방법이 더 포함하는, 코드 블록에 대응하는 최종 블록 예측 코스트에 기반하여 미코딩 코드 단위들의 단위 예측 코스트, 현재 코드 단위 예측 코스트, 및 프레임 미코딩 단위 예측 코스트를 결정하는 단계는,
코드 블록에 대응하는 최종 블록 예측 코스트에 기반하여 미코딩 코드 단위들의 단위 예측 코스트를 결정하는 단계; 및
현재 코딩될 코드 단위의 단위 예측 코스트를 현재 코드 단위 예측 코스트로서 사용하고, 현재 프레임 내의 미코딩 코드 단위들의 단위 예측 코스트에 기반하여 프레임 미코딩 단위 예측 코스트를 결정하는 단계를 포함한다.
일 실시예에서, 비디오 코딩에서의 코드 단위에 대한 비트레이트 할당 방법은, 코드 단위는 기본 비트레이트 제어 단위이고, 기본 비트레이트 제어 단위는 일관된 양자화 파라미터를 갖는 최소 비트레이트 제어 단위임을 더 포함한다.
비디오 코딩을 위한 할당 방법에 따르면, 현재 프레임의 프레임 유형이 이전 프레임의 프레임 유형과 서로 다른 경우, 현재 코딩될 단위의 비트레이트 할당의 에러를 감소시킬 수 있고 비디오 품질을 향상시킬 수 있는, 비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법이 현재 프레임의 각 코드 단위에 비트레이트를 할당하기 위해 사용되어, 비디오 품질이 향상된다.
도 8을 참조하면, 구체적 예시에서, 앞선 실시예의 방법은 단계 S730 및 S740을 더 포함할 수 있다.
단계 S730에서, 현재 프레임의 프레임 유형이 이전 프레임의 프레임 유형과 동일한 경우, 현재 프레임의 프레임 예측 코스트 및 이전 프레임의 프레임 예측 코스트를 분석한다.
현재 프레임의 프레임 예측 코스트를 분석하는 방법은, 현재 프레임 내에서의 다운샘플링 이후 획득되는 코드 단위들의 코드 블록의 픽셀 값을 획득하고, 코드 블록들의 픽셀 값 및 미리 설정된 최적 프레임 내 예측 모드에 기반하여 코드 블록들의 프레임 내 예측 코스트를 결정하는 단계, 및 현재 프레임의 프레임 유형을 획득하고, 프레임 내 예측 코스트 및 프레임 유형에 기반하여 코드 블록들에 대응하는 최종 블록 예측 코스트를 결정하고, 또한 현재 프레임의 프레임 예측 코스트를 결정하기 위해, 코드 단위들의 단위 예측 코스트를 결정하는 단계를 포함한다. 이전 프레임의 프레임 예측 코스트를 분석하는 방식은 현재 프레임의 프레임 예측 코스트를 분석하는 방식과 유사하며, 세부사항은 여기서 다시 설명되지 않는다. 코드 단위의 단위 예측 코스트는 코드 단위의 코드 블록들에 대응하는 최종 블록 예측 코스트의 합계, 또는 코드 단위의 코드 블록들에 대응하는 가중된 최종 블록 예측 코스트의 합계에 기반하여 결정될 수 있음이 이해될 수 있다. 현재 프레임의 프레임 예측 코스트는 현재 프레임의 코드 블록들에 대응하는 단위 예측 코스트의 합계 또는 코드 블록들에 대응하는 가중된 단위 예측 코스트의 합계에 기반하여 결정될 수 있다.
단계 S740에서, 현재 프레임의 프레임 예측 코스트 및 이전 프레임의 프레임 예측 코스트 사이의 차이가 미리 설정된 값보다 큰 경우, 비트레이트는 앞선 실시예에서의 비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법을 사용하여 현재 프레임 내의 각 코드 단위에 할당된다.
도 8을 참조하면, 구체적인 예시에서, 앞선 실시예의 방법은 단계 S730 및 S750를 더 포함할 수 있다.
단계 S730에서, 현재 프레임의 프레임 유형이 이전 프레임의 프레임 유형과 동일한 경우, 현재 프레임의 프레임 예측 코스트 및 이전 프레임의 프레임 예측 코스트를 분석한다.
현재 프레임의 프레임 예측 코스트를 분석하는 방법은, 현재 프레임 내에서의 다운샘플링 이후 획득되는 코드 단위들의 코드 블록의 픽셀 값을 획득하고, 코드 블록들의 픽셀 값 및 미리 설정된 최적 프레임 내 예측 모드에 기반하여 코드 블록들의 프레임 내 예측 코스트를 결정하는 단계, 및 현재 프레임의 프레임 유형을 획득하고, 프레임 내 예측 코스트 및 프레임 유형에 기반하여 코드 블록들에 대응하는 최종 블록 예측 코스트를 결정하고, 또한 현재 프레임의 프레임 예측 코스트를 결정하기 위해, 코드 단위들의 단위 예측 코스트를 결정하는 단계를 포함한다. 이전 프레임의 프레임 예측 코스트를 분석하는 방식은 현재 프레임의 프레임 예측 코스트를 분석하는 방식과 유사하며, 세부사항은 여기서 다시 설명되지 않는다. 코드 단위의 단위 예측 코스트는 코드 단위의 코드 블록들에 대응하는 최종 블록 예측 코스트의 합계, 또는 코드 단위의 코드 블록들에 대응하는 가중된 최종 블록 예측 코스트의 합계에 기반하여 결정될 수 있음이 이해될 수 있다. 현재 프레임의 프레임 예측 코스트는 현재 프레임의 코드 블록들에 대응하는 단위 예측 코스트의 합계 또는 코드 블록들에 대응하는 가중된 단위 예측 코스트의 합계에 기반하여 결정될 수 있다.
단계 S750에서, 현재 프레임의 프레임 예측 코스트 및 이전 프레임의 프레임 예측 코스트 간의 차이가 미리 설정된 값보다 크지 않은 경우, 율-왜곡(rate-distortion) 기반 비트레이트 제어 알고리즘을 사용하여 현재 프레임 내의 각 코드 단위에 비트레이트를 할당한다.
율-왜곡 기반 비트레이트 제어 알고리즘에서, 먼저, 현재 프레임 내의 모든 미코딩 코드 단위들의 평균 절대 차이(mean absolute difference, MAD)가 예측되고, 이후, 비트레이트는 현재 프레임 내의 코딩된 코드 단위의 MAD를 참조하여 각 코드 단위에 할당된다.
도 8을 참조하면, 구체적인 예시에서, 앞선 실시예의 방법은 단계 S730, S740, 및 S750를 더 포함할 수 있다.
단계 S730에서, 현재 프레임의 프레임 유형이 이전 프레임의 프레임 유형과 동일한 경우, 현재 프레임의 프레임 예측 코스트 및 이전 프레임의 프레임 예측 코스트를 분석한다.
현재 프레임의 프레임 예측 코스트를 분석하는 방법은, 현재 프레임 내에서의 다운샘플링 이후 획득되는 코드 단위들의 코드 블록의 픽셀 값을 획득하고, 코드 블록들의 픽셀 값 및 미리 설정된 최적 프레임 내 예측 모드에 기반하여 코드 블록들의 프레임 내 예측 코스트를 결정하는 단계, 및 현재 프레임의 프레임 유형을 획득하고, 프레임 내 예측 코스트 및 프레임 유형에 기반하여 코드 블록들에 대응하는 최종 블록 예측 코스트를 결정하고, 또한 현재 프레임의 프레임 예측 코스트를 결정하기 위해, 코드 단위들의 단위 예측 코스트를 결정하는 단계를 포함한다. 이전 프레임의 프레임 예측 코스트를 분석하는 방식은 현재 프레임의 프레임 예측 코스트를 분석하는 방식과 유사하며, 세부사항은 여기서 다시 설명되지 않는다. 코드 단위의 단위 예측 코스트는 코드 단위의 코드 블록들에 대응하는 최종 블록 예측 코스트의 합계, 또는 코드 단위의 코드 블록들에 대응하는 가중된 최종 블록 예측 코스트의 합계에 기반하여 결정될 수 있음이 이해될 수 있다. 현재 프레임의 프레임 예측 코스트는 현재 프레임의 코드 블록들에 대응하는 단위 예측 코스트의 합계 또는 코드 블록들에 대응하는 가중된 단위 예측 코스트의 합계에 기반하여 결정될 수 있다.
단계 S740에서, 현재 프레임의 프레임 예측 코스트 및 이전 프레임의 프레임 예측 코스트 사이의 차이가 미리 설정된 값보다 큰 경우, 앞선 실시예에서의 비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법을 사용하여 현재 프레임 내의 각 코드 단위에 비트레이트를 할당한다.
단계 S750에서, 현재 프레임의 프레임 예측 코스트 및 이전 프레임의 프레임 예측 코스트 간의 차이가 미리 설정된 값보다 크지 않은 경우, 율-왜곡 기반 비트레이트 제어 알고리즘을 사용하여 현재 프레임 내의 각 코드 단위에 비트레이트를 할당한다.
율-왜곡 기반 비트레이트 제어 알고리즘에서, 먼저, 현재 프레임 내의 모든 미코딩 코드 단위들의 평균 절대 차이(mean absolute difference, MAD)가 예측되고, 이후, 비트레이트는 현재 프레임 내의 코딩된 코드 단위의 MAD를 참조하여 각 코드 단위에 할당된다.
본 개시는 또한 비디오 코딩을 위한 비트레이트 할당 장치를 제공한다. 장치는 컴퓨터 장비 내에 배치된다. 장치 내의 다양한 모듈들은 컴퓨터 장비에 의해 실행될 수 있다. 도 9를 참조하면, 본 발명의 일 실시예의 비디오 코딩을 위한 비트레이트 할당 장치는,
현재 프레임의 프레임 유형과 이전 프레임의 프레임 유형을 획득하도록 구성된 프레임 유형 획득 모듈(910); 및
현재 프레임의 프레임 유형이 이전 프레임의 프레임 유형과 서로 다른 경우, 비디오 코딩의 코드 단위에 대한 앞서 설명한 비트레이트 할당 장치를 사용하여 현재 프레임 내의 각 코드 단위에 비트레이트를 할당하도록 구성된 단위 비트레이트 할당 모듈(920)을 포함한다.
비디오 코딩을 위한 할당 장치에 따르면, 현재 프레임의 프레임 유형이 이전 프레임의 프레임 유형과 서로 다른 경우, 현재 코딩될 단위의 비트레이트 할당의 에러를 감소시킬 수 있고 비디오 품질을 향상시킬 수 있는 비디오 코딩의 코드 단위들에 대한 비트레이트 할당 방법이 현재 프레임의 각 코드 단위에 비트레이트를 할당하기 위해 사용되어, 비디오 품질이 향상된다.
도 10을 참조하면, 일 실시예에서, 상기 장치는 프레임 예측 코스트 분석 모듈(930)을 더 포함한다.
프레임 예측 코스트 분석 모듈(930)은, 현재 프레임의 프레임 유형이 이전 프레임의 프레임 유형과 동일한 경우, 현재 프레임의 프레임 예측 코스트 및 이전 프레임의 프레임 예측 코스트를 분석하도록 구성된다.
이 경우, 단위 비트레이트 할당 모듈(920)은 또한, 현재 프레임의 프레임 예측 코스트와 이전 프레임의 프레임 예측 코스트 간의 차이가 미리 설정된 값보다 큰 경우, 비디오 코딩의 코드 단위들에 대해 전술한 비트레이트 할당 장치를 사용하여 현재 프레임의 각 코드 단위에 비트레이트를 할당하도록 구성된다.
게다가, 단위 비트레이트 할당 모듈(920)은 또한, 현재 프레임의 프레임 예측 코스트와 이전 프레임의 프레임 예측 코스트 사이의 차이가 미리 설정된 값보다 크지 않은 경우, 율-왜곡 기반 비트레이트 제어 알고리즘을 사용하여 현재 프레임의 각 코드 단위에 비트레이트를 할당하도록 구성된다.
비디오 코딩을 위한 비트레이트 할당 장치는 비디오 코딩을 위한 비트레이트 할당 방법에 상호 상응한다. 따라서, 본 발명의 방법에 대응하는 상기 장치의 구체적인 기술적 특징들에 대해서는, 세부사항이 여기서 다시 기술되지 않는다.
일 실시예는 메모리 및 프로세서를 포함하는 컴퓨터 장비를 또한 제공하며, 상기 메모리는 컴퓨터 판독 가능 명령을 저장하고, 상기 프로세서에 의해 실행될 때, 컴퓨터 판독 가능 명령은 상기 프로세서로 하여금 다음 단계,
현재 프레임의 코딩된 비트레이트 및 목표 비트레이트를 획득하는 단계 - 코딩된 비트레이트는 현재 프레임 내의 각각의 코딩된 코드 단위의 실제 비트레이트에 기반하여 결정됨 -,
현재 프레임의 목표 비트레이트 및 코딩된 비트레이트에 기반하여 프레임 미코딩 비트레이트를 결정하는 단계,
프리코딩에 기반하여 결정되는, 현재 코드 단위 예측 코스트 및 프레임 미코딩 단위 예측 코스트를 획득하는 단계 - 현재 코드 단위 예측 코스트는 현재 프레임 내의 미코딩 코드 단위들 중에서 현재 코딩될 코드 단위의 단위 예측 코스트이고, 프레임 미코딩 단위 예측 코스트는 현재 프레임 내의 미코딩 코드 단위들의 단위 예측 코스트에 기반하여 결정됨 -; 및
프레임 미코딩 비트레이트 및 코스트 비율에 기반하여 현재 코딩될 단위의 목표 비트레이트를 결정하는 단계 - 코스트 비율은 프레임 미코딩 단위 예측 코스트에 대한 현재 코드 단위 예측 코스트의 비율임 - 를 수행하게 한다.
일 실시예에서, 프리코딩에 기반하여 결정되는 현재 코드 단위 예측 코스트 및 프레임 미코딩 단위 예측 코스트를 획득하는 단계는,
다운샘플링(downsampling) 이후 획득되는 미코딩 코드 단위들의 코드 블록의 픽셀 값을 획득하고, 코드 블록의 픽셀 값 및 미리 설정된 최적 프레임 내 예측 모드에 기반하여 코드 블록의 프레임 내 예측 코스트를 결정하는 단계;
현재 프레임의 프레임 유형을 획득하고, 프레임 유형 및 프레임 내 예측 코스트에 기반하여, 코드 블록에 대응하는 최종 블록 예측 코스트를 결정하는 단계; 및
코드 블록에 대응하는 최종 블록 예측 코스트에 기반하여 미코딩 코드 단위들의 단위 예측 코스트, 현재 코드 단위 예측 코스트, 및 프레임 미코딩 단위 예측 코스트를 결정하는 단계를 포함한다.
일 실시예에서, 다운샘플링 이후 획득되는 미코딩 코드 단위들의 코드 블록의 픽셀 값을 획득하고, 코드 블록의 픽셀 값 및 미리 설정된 최적 프레임 내 예측 모드에 기반하여 코드 블록의 프레임 내 예측 코스트를 결정하는 단계는,
최적 프레임 내 예측 모드를 결정하기 위해, 미리 설정된 프레임 내 선택 정책을 사용하여, 현재 프레임 내에서의 다운샘플링 이후 획득되는 미코딩 코드 단위들의 코드 블록에 대한 프레임 내 예측 모드를 선택하는 단계;
코드 블록의 픽셀 값을 획득하고, 코드 블록에 대응하는 최적 프레임 내 예측 모드에 기반하여 코드 블록의 프레임 내 예측 값을 결정하는 단계; 및
코드 블록의 프레임 내 예측 값 및 픽셀 값에 기반하여 프레임 내 블록 예측 코스트를 결정하는 단계 - 프레임 내 블록 예측 코스트는 코드 블록의 프레임 내 예측 코스트임 - 를 포함한다.
일 실시예에서, 현재 프레임의 프레임 유형을 획득하고, 프레임 유형 및 프레임 내 예측 코스트에 기반하여, 코드 블록에 대응하는 최종 블록 예측 코스트를 결정하는 단계는,
현재 프레임의 프레임 유형을 획득하는 단계; 및
프레임 유형이 프레임 내 예측 프레임이면, 프레임 내 블록 예측 코스트를 코드 블록에 대응하는 최종 블록 예측 코스트로서 사용하는 단계를 포함한다.
일 실시예에서, 현재 프레임의 프레임 유형을 획득하고, 프레임 유형 및 프레임 내 예측 코스트에 기반하여, 코드 블록에 대응하는 최종 블록 예측 코스트를 결정하는 단계는,
프레임 유형이 프레임 간 예측 프레임이면, 미리 설정된 최적 프레임 간 예측 모드 및 코드 블록의 픽셀 값에 기반하여 코드 블록의 프레임 간 예측 코스트를 결정하는 단계; 및
각각의 코드 블록의 프레임 간 예측 코스트 및 프레임 내 예측 코스트 중 작은 것을 코드 블록의 최종 블록 예측 코스트로서 결정하는 단계를 더 포함한다.
일 실시예에서, 코드 블록에 대응하는 최종 블록 예측 코스트에 기반하여 미코딩 코드 단위들의 단위 예측 코스트, 현재 코드 단위 예측 코스트, 및 프레임 미코딩 단위 예측 코스트를 결정하는 단계는,
코드 블록에 대응하는 최종 블록 예측 코스트에 기반하여 미코딩 코드 단위의 단위 예측 코스트를 결정하는 단계; 및
현재 코딩될 코드 단위의 단위 예측 코스트를 현재 코드 단위 예측 코스트로서 사용하고, 현재 프레임 내의 미코딩 코드 단위들의 단위 예측 코스트에 기반하여 프레임 미코딩 단위 예측 코스트를 결정하는 단계를 포함한다.
일 실시예에서, 코드 단위는 기본 비트레이트 제어 단위이고, 기본 비트레이트 제어 단위는 일관된 양자화 파라미터를 갖는 최소 비트레이트 제어 단위이다.
일 실시예는 메모리 및 프로세서를 포함하는 컴퓨터 장비를 또한 제공하며, 메모리는 컴퓨터 판독 가능 명령을 저장하고, 프로세서에 의해 실행될 때, 컴퓨터 판독 가능 명령은 프로세서로 하여금 다음 단계 -
현재 프레임의 프레임 유형 및 이전 프레임의 프레임 유형을 획득하는 단계; 및
현재 프레임의 프레임 유형이 이전 프레임의 프레임 유형과 서로 다른 경우, 비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법을 사용하여 현재 프레임 내의 각 코드 단위에 비트레이트를 할당하는 단계 - 를 수행하게 한다.
일 실시예에서, 다음의 단계 -
현재 프레임의 프레임 유형이 이전 프레임의 프레임 유형과 동일한 경우, 현재 프레임의 프레임 예측 코스트 및 이전 프레임의 프레임 예측 코스트를 분석하는 단계, 및
현재 프레임의 프레임 예측 코스트 및 이전 프레임의 프레임 예측 코스트 간의 차이가 미리 설정된 값보다 큰 경우, 비디오 코딩의 코드 단위에 대한 앞서 설명한 비트레이트 할당 방법을 사용하여 현재 프레임 내의 각 코드 단위에 비트레이트를 할당하는 단계, 및/또는
현재 프레임의 프레임 예측 코스트 및 이전 프레임의 프레임 예측 코스트 간의 차이가 미리 설정된 값보다 크지 않은 경우, 율-왜곡 기반 비트레이트 제어 알고리즘을 사용하여 현재 프레임 내의 각 코드 단위에 비트레이트를 할당하는 단계 - 가 더 포함된다.
일 실시예는 또한, 컴퓨터 판독 가능 명령을 저장하는 하나 이상의 비휘발성 저장 매체를 제공하고, 하나 이상의 프로세서에 의해 실행될 때, 컴퓨터 판독 가능 명령은 하나 이상의 프로세서로 하여금 다음 단계 -
현재 프레임의 코딩된 비트레이트 및 목표 비트레이트를 획득하는 단계 - 코딩된 비트레이트는 현재 프레임 내의 각각의 코딩된 코드 단위의 실제 비트레이트에 기반하여 결정됨 -,
현재 프레임의 목표 비트레이트 및 코딩된 비트레이트에 기반하여 프레임 미코딩 비트레이트를 결정하는 단계,
프리코딩에 기반하여 결정되는, 현재 코드 단위 예측 코스트 및 프레임 미코딩 단위 예측 코스트를 획득하는 단계 - 현재 코드 단위 예측 코스트는 현재 프레임 내의 미코딩 코드 단위들 중에서 현재 코딩될 코드 단위의 단위 예측 코스트이고, 프레임 미코딩 단위 예측 코스트는 현재 프레임 내의 미코딩 코드 단위들의 단위 예측 코스트에 기반하여 결정됨 -, 및
프레임 미코딩 비트레이트 및 코스트 비율에 기반하여 현재 코딩될 단위의 목표 비트레이트를 결정하는 단계 - 코스트 비율은 프레임 미코딩 단위 예측 코스트에 대한 현재 코드 단위 예측 코스트의 비율임 - 를 수행하게 한다.
일 실시예에서, 프리코딩에 기반하여 결정되는 현재 코드 단위 예측 코스트 및 프레임 미코딩 단위 예측 코스트를 획득하는 단계는,
다운샘플링(downsampling) 이후 획득되는 미코딩 코드 단위들의 코드 블록의 픽셀 값을 획득하고, 코드 블록의 픽셀 값 및 미리 설정된 최적 프레임 내 예측 모드에 기반하여 코드 블록의 프레임 내 예측 코스트를 결정하는 단계,
현재 프레임의 프레임 유형을 획득하고, 프레임 유형 및 프레임 내 예측 코스트에 기반하여, 코드 블록에 대응하는 최종 블록 예측 코스트를 결정하는 단계, 및
코드 블록에 대응하는 최종 블록 예측 코스트에 기반하여 미코딩 코드 단위들의 단위 예측 코스트, 현재 코드 단위 예측 코스트, 및 프레임 미코딩 단위 예측 코스트를 결정하는 단계를 포함한다.
일 실시예에서, 다운샘플링 이후 획득되는 미코딩 코드 단위들의 코드 블록의 픽셀 값을 획득하고, 코드 블록의 픽셀 값 및 미리 설정된 최적 프레임 내 예측 모드에 기반하여 코드 블록의 프레임 내 예측 코스트를 결정하는 단계는,
최적 프레임 내 예측 모드를 결정하기 위해, 미리 설정된 프레임 내 선택 정책을 사용하여, 현재 프레임 내에서의 다운샘플링 이후 획득되는 미코딩 코드 단위들의 코드 블록에 대한 프레임 내 예측 모드를 선택하는 단계,
코드 블록의 픽셀 값을 획득하고, 코드 블록에 대응하는 최적 프레임 내 예측 모드에 기반하여 코드 블록의 프레임 내 예측 값을 결정하는 단계, 및
코드 블록의 프레임 내 예측 값 및 픽셀 값에 기반하여 프레임 내 블록 예측 코스트를 결정하는 단계 - 프레임 내 블록 예측 코스트는 코드 블록의 프레임 내 예측 코스트임 - 를 포함한다.
일 실시예에서, 현재 프레임의 프레임 유형을 획득하고, 프레임 유형 및 프레임 내 예측 코스트에 기반하여, 코드 블록에 대응하는 최종 블록 예측 코스트를 결정하는 단계는,
현재 프레임의 프레임 유형을 획득하는 단계; 및
프레임 유형이 프레임 내 예측 프레임이면, 프레임 내 블록 예측 코스트를 코드 블록에 대응하는 최종 블록 예측 코스트로서 사용하는 단계를 포함한다.
일 실시예에서, 현재 프레임의 프레임 유형을 획득하고, 프레임 유형 및 프레임 내 예측 코스트에 기반하여, 코드 블록에 대응하는 최종 블록 예측 코스트를 결정하는 단계는,
프레임 유형이 프레임 간 예측 프레임이면, 미리 설정된 최적 프레임 간 예측 모드 및 코드 블록의 픽셀 값에 기반하여 코드 블록의 프레임 간 예측 코스트를 결정하는 단계, 및
각각의 코드 블록의 프레임 간 예측 코스트 및 프레임 내 예측 코스트 중 작은 것을 코드 블록의 최종 블록 예측 코스트로서 결정하는 단계를 더 포함한다.
일 실시예에서, 코드 블록에 대응하는 최종 블록 예측 코스트에 기반하여 미코딩 코드 단위들의 단위 예측 코스트, 현재 코드 단위 예측 코스트, 및 프레임 미코딩 단위 예측 코스트를 결정하는 단계는,
코드 블록에 대응하는 최종 블록 예측 코스트에 기반하여 미코딩 코드 단위의 단위 예측 코스트를 결정하는 단계, 및
현재 코딩될 코드 단위의 단위 예측 코스트를 현재 코드 단위 예측 코스트로서 사용하고, 현재 프레임 내의 미코딩 코드 단위들의 단위 예측 코스트에 기반하여 프레임 미코딩 단위 예측 코스트를 결정하는 단계를 포함한다.
일 실시예에서, 코드 단위는 기본 비트레이트 제어 단위이고, 기본 비트레이트 제어 단위는 일관된 양자화 파라미터를 갖는 최소 비트레이트 제어 단위이다.
일 실시예는 컴퓨터 판독 가능 명령을 저장하는 하나 이상의 비휘발성 저장 매체를 제공하고, 하나 이상의 프로세서에 의해 실행될 때, 컴퓨터 판독 가능 명령은 하나 이상의 프로세서로 하여금 다음 단계 -
현재 프레임의 프레임 유형 및 이전 프레임의 프레임 유형을 획득하는 단계; 및
현재 프레임의 프레임 유형이 이전 프레임의 프레임 유형과 서로 다른 경우, 비디오 코딩의 코드 단위에 대한 앞서 설명한 비트레이트 할당 방법을 사용하여 현재 프레임 내의 각 코드 단위에 비트레이트를 할당하는 단계 - 를 수행하게 한다.
일 실시예에서, 다음의 단계 -
현재 프레임의 프레임 유형이 이전 프레임의 프레임 유형과 동일한 경우, 현재 프레임의 프레임 예측 코스트 및 이전 프레임의 프레임 예측 코스트를 분석하는 단계; 및
현재 프레임의 프레임 예측 코스트 및 이전 프레임의 프레임 예측 코스트 간의 차이가 미리 설정된 값보다 큰 경우, 비디오 코딩의 코드 단위에 대한 앞서 설명한 비트레이트 할당 방법을 사용하여 현재 프레임 내의 각 코드 단위에 비트레이트를 할당하는 단계, 및/또는
현재 프레임의 프레임 예측 코스트 및 이전 프레임의 프레임 예측 코스트 간의 차이가 미리 설정된 값보다 크지 않은 경우, 율-왜곡 기반 비트레이트 제어 알고리즘을 사용하여 현재 프레임 내의 각 코드 단위에 비트레이트를 할당하는 단계 - 가 더 포함된다.
당업자는 전술한 실시예의 상기 방법의 모든 또는 일부 절차가, 관련된 하드웨어를 지시하는 컴퓨터 프로그램을 사용하여 구현될 수 있다는 것을 이해할 수 있다. 상기 프로그램은 비휘발성 컴퓨터 판독 가능 저장 매체에 저장될 수 있다. 상기 프로그램이 실행될 때, 앞서 설명한 방법의 실시예의 절차가 포함될 수 있다. 본 개시에서 제공되고 실시예들에서 사용되는, 메모리, 또는 저장 장치, 또는 데이터베이스, 또는 다른 매체에 대한 임의의 참조는 비휘발성 메모리 및/또는 휘발성 메모리를 포함할 수 있다. 비휘발성 메모리는 읽기 전용 메모리(read-only memory, ROM), 또는 프로그램 가능 ROM(programmable ROM, PROM), 또는 전기적 프로그램 가능 ROM(electrically programmable ROM, EPROM), 또는 전기적 소거 가능 프로그램 가능 ROM(electrically erasable programmable ROM, EEPROM), 또는 플래시를 포함할 수 있다. 휘발성 메모리는 랜덤 액세스 메모리(random access memory, RAM) 또는 외부 캐시를 포함할 수 있다. 한정이 아닌 설명으로서, RAM은 정적 RAM(static RAM, SRAM), 동적 RAM(dynamic RAM, DRAM), 동기식 DRAM(synchronous DRAM, SDRAM), 더블 데이터 레이트 SDRAM(double data rate SDRAM, DDRSDRAM), 인핸스드 SDRAM(enhanced SDRAM, ESDRAM), 동기링크 DRAM(Synchlink DRAM, SLDRAM), 램버스 다이렉트 RAM(rambus direct RAM, RDRAM), 다이렉트 램버스 동적 RAM(direct rambus dynamic RAM, DRDRAM), 및 램버스 동적 RAM(rambus dynamic RAM, RDRAM)과 같은 다양한 형태를 가질 수 있다.
앞서 설명한 실시예의 기술적 특징은 결합될 수 있다. 설명의 간략함을 위해, 앞서 설명한 실시예의 기술적 특징의 모든 가능한 조합은 설명되지 않았다. 하지만, 기술적 특징은 기술적 특성이 상충되지 않음이 제공되는 본 명세의 범위로 되어야 한다.
앞서 설명한 실시예는 본 개시의 몇몇 구현을 나타낼 뿐이다. 그것의 설명은 비교적 구체적이고 상세하지만, 본 개시의 범위를 제한하는 것으로 이해되어서는 안 된다. 유의해야 할 것은, 당업자에 있어서, 본 개시의 사상을 벗어나지 않고 여러 변형 및 개선이 이루어질 수 있다는 것이다. 이러한 변형 및 개선은 본 개시 내용의 보호 범위에 속한다. 따라서, 본 개시 내용의 보호 범위는 첨부된 청구 범위로 귀결된다.

Claims (19)

  1. 사용자 단말 또는 서버에 적용되는, 비디오 코딩의 코드 단위(code unit)에 대한 비트레이트 할당 방법으로서,
    현재 프레임의 코딩된 비트레이트 및 목표 비트레이트를 획득하는 단계 - 상기 코딩된 비트레이트는 상기 현재 프레임 내의 각각의 코딩된 코드 단위의 실제 비트레이트에 기반하여 결정됨 -;
    상기 현재 프레임의 상기 목표 비트레이트 및 상기 코딩된 비트레이트에 기반하여 프레임 미코딩 비트레이트(frame uncoded bit rate)를 결정하는 단계
    프리코딩에 기반하여 결정되는, 현재 코드 단위 예측 코스트(current code unit prediction cost) 및 프레임 미코딩 단위 예측 코스트(frame uncoded unit prediction cost)를 획득하는 단계 - 상기 현재 코드 단위 예측 코스트는 상기 현재 프레임 내의 미코딩 코드 단위들 중에서 현재 코딩될 코드 단위의 단위 예측 코스트이고, 상기 프레임 미코딩 단위 예측 코스트는 상기 현재 프레임 내의 상기 미코딩 코드 단위들의 단위 예측 코스트에 기반하여 결정됨 -; 및
    상기 프레임 미코딩 비트레이트 및 코스트 비율에 기반하여 현재 코딩될 단위의 목표 비트레이트를 결정하는 단계 - 상기 코스트 비율은 상기 프레임 미코딩 단위 예측 코스트에 대한 상기 현재 코드 단위 예측 코스트의 비율임 -
    를 포함하는 비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법.
  2. 제1항에 있어서,
    상기 프리코딩에 기반하여 결정되는 현재 코드 단위 예측 코스트 및 프레임 미코딩 단위 예측 코스트를 획득하는 단계는,
    다운샘플링(downsampling) 이후 획득되는 미코딩 코드 단위들의 코드 블록의 픽셀 값을 획득하고, 상기 코드 블록의 상기 픽셀 값 및 미리 설정된 최적 프레임 내 예측 모드에 기반하여 상기 코드 블록의 프레임 내 예측 코스트를 결정하는 단계;
    상기 현재 프레임의 프레임 유형을 획득하고, 상기 프레임 유형 및 상기 프레임 내 예측 코스트에 기반하여, 상기 코드 블록에 대응하는 최종 블록 예측 코스트를 결정하는 단계; 및
    상기 코드 블록에 대응하는 상기 최종 블록 예측 코스트에 기반하여 상기 미코딩 코드 단위들의 단위 예측 코스트, 상기 현재 코드 단위 예측 코스트, 및 상기 프레임 미코딩 단위 예측 코스트를 결정하는 단계
    를 포함하는, 비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법.
  3. 제2항에 있어서,
    다운샘플링 이후 획득되는 미코딩 코드 단위들의 코드 블록의 픽셀 값을 획득하고, 상기 코드 블록의 상기 픽셀 값 및 미리 설정된 최적 프레임 내 예측 모드에 기반하여 상기 코드 블록의 프레임 내 예측 코스트를 결정하는 단계는,
    상기 최적 프레임 내 예측 모드를 결정하기 위해, 미리 설정된 프레임 내 선택 정책을 사용하여, 상기 현재 프레임 내에서의 다운샘플링 이후 획득되는 상기 미코딩 코드 단위들의 상기 코드 블록에 대한 프레임 내 예측 모드를 선택하는 단계;
    상기 코드 블록의 상기 픽셀 값을 획득하고, 상기 코드 블록에 대응하는 상기 최적 프레임 내 예측 모드에 기반하여 상기 코드 블록의 프레임 내 예측 값을 결정하는 단계; 및
    상기 코드 블록의 상기 프레임 내 예측 값 및 상기 픽셀 값에 기반하여 프레임 내 블록 예측 코스트를 결정하는 단계 - 상기 프레임 내 블록 예측 코스트는 상기 코드 블록의 상기 프레임 내 예측 코스트임 -
    를 포함하는, 비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법.
  4. 제2항에 있어서,
    상기 현재 프레임의 프레임 유형을 획득하고, 상기 프레임 유형 및 상기 프레임 내 예측 코스트에 기반하여, 상기 코드 블록에 대응하는 최종 블록 예측 코스트를 결정하는 단계는,
    상기 현재 프레임의 상기 프레임 유형을 획득하는 단계; 및
    상기 프레임 유형이 프레임 내 예측 프레임이면, 상기 프레임 내 블록 예측 코스트를 상기 코드 블록에 대응하는 상기 최종 블록 예측 코스트로서 사용하는 단계
    를 포함하는, 비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법.
  5. 제4항에 있어서,
    상기 현재 프레임의 프레임 유형을 획득하고, 상기 프레임 유형 및 상기 프레임 내 예측 코스트에 기반하여, 상기 코드 블록에 대응하는 최종 블록 예측 코스트를 결정하는 단계는,
    상기 프레임 유형이 프레임 간 예측 프레임이면, 미리 설정된 최적 프레임 간 예측 모드 및 상기 코드 블록의 상기 픽셀 값에 기반하여 상기 코드 블록의 프레임 간 예측 코스트를 결정하는 단계; 및
    각각의 상기 코드 블록의 상기 프레임 간 예측 코스트 및 상기 프레임 내 예측 코스트 중 작은 것을 상기 코드 블록의 상기 최종 블록 예측 코스트로서 결정하는 단계
    를 더 포함하는, 비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법.
  6. 제2항에 있어서,
    상기 코드 블록에 대응하는 상기 최종 블록 예측 코스트에 기반하여 상기 미코딩 코드 단위들의 단위 예측 코스트, 상기 현재 코드 단위 예측 코스트, 및 상기 프레임 미코딩 단위 예측 코스트를 결정하는 단계는,
    상기 코드 블록에 대응하는 최종 블록 예측 코스트에 기반하여 상기 미코딩 코드 단위의 상기 단위 예측 코스트를 결정하는 단계; 및
    상기 현재 코딩될 코드 단위의 상기 단위 예측 코스트를 상기 현재 코드 단위 예측 코스트로서 사용하고, 상기 현재 프레임 내의 상기 미코딩 코드 단위들의 상기 단위 예측 코스트에 기반하여 상기 프레임 미코딩 단위 예측 코스트를 결정하는 단계
    를 포함하는, 비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 코드 단위는 기본 비트레이트 제어 단위이고, 상기 기본 비트레이트 제어 단위는 일관된 양자화 파라미터를 갖는 최소 비트레이트 제어 단위인, 비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법.
  8. 사용자 단말 또는 서버에 적용되는, 비디오 코딩을 위한 비트레이트 할당 방법으로서,
    현재 프레임의 프레임 유형 및 이전 프레임의 프레임 유형을 획득하는 단계; 및
    상기 현재 프레임의 프레임 유형이 상기 이전 프레임의 프레임 유형과 서로 다른 경우, 비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법을 사용하여 상기 현재 프레임 내의 각 코드 단위에 비트레이트를 할당하는 단계
    를 포함하고,
    상기 비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법은,
    상기 현재 프레임의 코딩된 비트레이트 및 목표 비트레이트를 획득하는 단계 - 상기 코딩된 비트레이트는 상기 현재 프레임 내의 각 코딩된 코드 단위의 실제 비트레이트에 기반하여 결정됨 -;
    상기 현재 프레임의 상기 코딩된 비트레이트 및 상기 목표 비트레이트에 기반하여 프레임 미코딩 비트레이트(frame uncoded bit rate)를 결정하는 단계;
    프리코딩에 기반하여 결정되는, 현재 코드 단위 예측 코스트(current code unit prediction cost) 및 프레임 미코딩 단위 예측 코스트(frame uncoded unit prediction cost)를 획득하는 단계 - 상기 현재 코드 단위 예측 코스트는 상기 현재 프레임 내의 미코딩 코드 단위들 중에서 현재 코딩될 코드 단위의 단위 예측 코스트이고, 상기 프레임 미코딩 단위 예측 코스트는 상기 현재 프레임 내의 상기 미코딩 코드 단위들의 단위 예측 코스트에 기반하여 결정됨 -; 및
    상기 프레임 미코딩 비트레이트 및 코스트 비율에 기반하여 현재 코딩될 단위의 목표 비트레이트를 결정하는 단계 - 상기 코스트 비율은 상기 프레임 미코딩 단위 예측 코스트에 대한 상기 현재 코드 단위 예측 코스트의 비율임 -
    를 포함하는, 비디오 코딩을 위한 비트레이트 할당 방법.
  9. 제8항에 있어서,
    상기 프리코딩에 기반하여 결정되는, 현재 코드 단위 예측 코스트 및 프레임 미코딩 단위 예측 코스트를 획득하는 단계는,
    다운샘플링(downsampling) 이후 획득되는 상기 미코딩 코드 단위들의 코드 블록의 픽셀 값을 획득하고, 상기 코드 블록의 상기 픽셀 값 및 미리 설정된 최적 프레임 내 예측 모드에 기반하여 상기 코드 블록의 프레임 내 예측 코스트를 결정하는 단계;
    상기 현재 프레임의 상기 프레임 유형을 획득하고, 상기 프레임 유형 및 상기 프레임 내 예측 코스트에 기반하여, 상기 코드 블록에 대응하는 최종 블록 예측 코스트를 결정하는 단계; 및
    상기 코드 블록에 대응하는 상기 최종 블록 예측 코스트에 기반하여 상기 미코딩 코드 단위들의 상기 단위 예측 코스트, 상기 현재 코드 단위 예측 코스트, 및 상기 프레임 미코딩 단위 예측 코스트를 결정하는 단계
    를 포함하는, 비디오 코딩을 위한 비트레이트 할당 방법.
  10. 제9항에 있어서,
    다운샘플링 이후 획득되는 상기 미코딩 코드 단위들의 코드 블록의 픽셀 값을 획득하고, 상기 코드 블록의 상기 픽셀 값 및 미리 설정된 최적 프레임 내 예측 모드에 기반하여 상기 코드 블록의 프레임 내 예측 코스트를 결정하는 단계는,
    상기 최적 프레임 내 예측 모드를 결정하기 위해, 미리 설정된 프레임 내 선택 정책을 사용하여, 상기 현재 프레임 내에서의 다운샘플링 이후 획득되는 상기 미코딩 코드 단위들의 상기 코드 블록에 대한 프레임 내 예측 모드를 선택하는 단계;
    상기 코드 블록의 상기 픽셀 값을 획득하고, 상기 코드 블록에 대응하는 상기 최적 프레임 내 예측 모드에 기반하여 상기 코드 블록의 프레임 내 예측 값을 결정하는 단계; 및
    상기 코드 블록의 상기 프레임 내 예측 값 및 상기 픽셀 값에 기반하여 프레임 내 블록 예측 코스트를 결정하는 단계 - 상기 프레임 내 블록 예측 코스트는 상기 코드 블록의 상기 프레임 내 예측 코스트임 -
    를 포함하는, 비디오 코딩을 위한 비트레이트 할당 방법.
  11. 제9항에 있어서,
    상기 현재 프레임의 프레임 유형을 획득하고, 상기 프레임 유형 및 상기 프레임 내 예측 코스트에 기반하여, 상기 코드 블록에 대응하는 최종 블록 예측 코스트를 결정하는 단계는,
    상기 현재 프레임의 상기 프레임 유형을 획득하는 단계; 및
    상기 프레임 유형이 프레임 내 예측 프레임이면, 상기 프레임 내 블록 예측 코스트를 상기 코드 블록에 대응하는 상기 최종 블록 예측 코스트로서 사용하는 단계
    를 포함하는, 비디오 코딩을 위한 비트레이트 할당 방법.
  12. 제11항에 있어서,
    상기 현재 프레임의 프레임 유형을 획득하고, 상기 프레임 유형 및 상기 프레임 내 예측 코스트에 기반하여, 상기 코드 블록에 대응하는 최종 블록 예측 코스트를 결정하는 단계는,
    상기 프레임 유형이 프레임 간 예측 프레임이면, 미리 설정된 최적 프레임 간 예측 모드 및 상기 코드 블록의 상기 픽셀 값에 기반하여 상기 코드 블록의 프레임 간 예측 코스트를 결정하는 단계; 및
    각각의 상기 코드 블록의 상기 프레임 간 예측 코스트 및 상기 프레임 내 예측 코스트 중 작은 것을 상기 코드 블록의 상기 최종 블록 예측 코스트로서 결정하는 단계
    를 더 포함하는, 비디오 코딩을 위한 비트레이트 할당 방법.
  13. 제9항에 있어서,
    상기 코드 블록에 대응하는 상기 최종 블록 예측 코스트에 기반하여 상기 미코딩 코드 단위들의 단위 예측 코스트, 상기 현재 코드 단위 예측 코스트, 및 상기 프레임 미코딩 단위 예측 코스트를 결정하는 단계는,
    상기 코드 블록에 대응하는 최종 블록 예측 코스트에 기반하여 상기 미코딩 코드 단위들의 상기 단위 예측 코스트를 결정하는 단계; 및
    상기 현재 코딩될 코드 단위의 상기 단위 예측 코스트를 상기 현재 코드 단위 예측 코스트로서 사용하고, 상기 현재 프레임 내의 상기 미코딩 코드 단위들의 상기 단위 예측 코스트에 기반하여 상기 프레임 미코딩 단위 예측 코스트를 결정하는 단계
    를 포함하는, 비디오 코딩을 위한 비트레이트 할당 방법.
  14. 제8항 내지 제13항 중 어느 한 항에 있어서,
    상기 코드 단위는 기본 비트레이트 제어 단위이고, 상기 기본 비트레이트 제어 단위는 일관된 양자화 파라미터를 갖는 최소 비트레이트 제어 단위인, 비디오 코딩을 위한 비트레이트 할당 방법.
  15. 제8항에 있어서,
    상기 현재 프레임의 프레임 유형이 상기 이전 프레임의 프레임 유형과 동일한 경우, 상기 현재 프레임의 프레임 예측 코스트 및 상기 이전 프레임의 프레임 예측 코스트를 분석하는 단계; 및
    상기 현재 프레임의 프레임 예측 코스트 및 상기 이전 프레임의 프레임 예측 코스트 간의 차이가 미리 설정된 값보다 큰 경우, 상기 비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법을 사용하여 상기 현재 프레임 내의 각 코드 단위에 비트레이트를 할당하는 단계
    를 더 포함하는 비디오 코딩을 위한 비트레이트 할당 방법.
  16. 제8항에 있어서,
    상기 현재 프레임의 프레임 유형이 상기 이전 프레임의 프레임 유형과 동일한 경우, 상기 현재 프레임의 프레임 예측 코스트 및 상기 이전 프레임의 프레임 예측 코스트를 분석하는 단계; 및
    상기 현재 프레임의 프레임 예측 코스트 및 상기 이전 프레임의 프레임 예측 코스트 간의 차이가 미리 설정된 값보다 크지 않은 경우, 율-왜곡(rate-distortion) 기반 비트레이트 제어 알고리즘을 사용하여 상기 현재 프레임 내의 각 코드 단위에 비트레이트를 할당하는 단계
    를 더 포함하는 비디오 코딩을 위한 비트레이트 할당 방법.
  17. 제8항에 있어서,
    상기 현재 프레임의 프레임 유형이 상기 이전 프레임의 프레임 유형과 동일한 경우, 상기 현재 프레임의 프레임 예측 코스트 및 상기 이전 프레임의 프레임 예측 코스트를 분석하는 단계;
    상기 현재 프레임의 프레임 예측 코스트 및 상기 이전 프레임의 프레임 예측 코스트 간의 차이가 미리 설정된 값보다 큰 경우, 상기 비디오 코딩의 코드 단위에 대한 비트레이트 할당 방법을 사용하여 상기 현재 프레임 내의 각 코드 단위에 비트레이트를 할당하는 단계; 및
    상기 현재 프레임의 프레임 예측 코스트 및 상기 이전 프레임의 프레임 예측 코스트 간의 차이가 미리 설정된 값보다 크지 않은 경우, 율-왜곡(rate-distortion) 기반 비트레이트 제어 알고리즘을 사용하여 상기 현재 프레임 내의 각 코드 단위에 비트레이트를 할당하는 단계
    를 더 포함하는 비디오 코딩을 위한 비트레이트 할당 방법.
  18. 컴퓨터 장비로서,
    메모리 및 프로세서를 포함하고, 상기 메모리는 컴퓨터 판독 가능 명령을 저장하고, 상기 프로세서에 의해 실행될 때, 상기 컴퓨터 판독 가능 명령은 상기 프로세서로 하여금 청구항 1 내지 청구항 17 중 어느 하나에 따른 방법을 수행하게 하는, 컴퓨터 장비.
  19. 컴퓨터 판독 가능 명령을 저장하는 하나 이상의 비휘발성 저장 매체로서,
    하나 이상의 프로세서에 의해 실행될 때, 상기 컴퓨터 판독 가능 명령은 상기 하나 이상의 프로세서로 하여금 청구항 1 내지 청구항 17 중 어느 하나에 따른 방법을 수행하게 하는, 하나 이상의 비휘발성 저장 매체.
KR1020197016191A 2017-03-07 2018-03-01 비디오 코딩 코드율 할당 및 코딩 단위 코드율 할당 방법과, 컴퓨터 장비 KR102296722B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710132204.4A CN106961604B (zh) 2017-03-07 2017-03-07 视频编码的码率分配、编码单元码率分配方法及装置
CN201710132204.4 2017-03-07
PCT/CN2018/077781 WO2018161845A1 (zh) 2017-03-07 2018-03-01 视频编码的码率分配、编码单元码率分配方法及计算机设备

Publications (2)

Publication Number Publication Date
KR20190073564A true KR20190073564A (ko) 2019-06-26
KR102296722B1 KR102296722B1 (ko) 2021-08-31

Family

ID=59471586

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197016191A KR102296722B1 (ko) 2017-03-07 2018-03-01 비디오 코딩 코드율 할당 및 코딩 단위 코드율 할당 방법과, 컴퓨터 장비

Country Status (7)

Country Link
US (1) US10764586B2 (ko)
EP (1) EP3595307A4 (ko)
JP (1) JP6758684B2 (ko)
KR (1) KR102296722B1 (ko)
CN (1) CN106961604B (ko)
MA (1) MA47825A (ko)
WO (1) WO2018161845A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106961604B (zh) * 2017-03-07 2018-06-15 腾讯科技(深圳)有限公司 视频编码的码率分配、编码单元码率分配方法及装置
CN108769737B (zh) * 2018-05-29 2022-07-29 中南大学 一种码率调整方法、服务器及计算机可读介质
CN108833918B (zh) 2018-06-20 2021-09-17 腾讯科技(深圳)有限公司 视频编码方法、解码方法、装置、计算机设备及存储介质
CN110855990B (zh) * 2019-11-29 2022-04-22 京东方科技集团股份有限公司 图像编码、解码方法、计算机设备和图像处理系统
CN113301340A (zh) * 2020-09-29 2021-08-24 阿里巴巴集团控股有限公司 一种编码参数确定方法、视频传送方法和装置
CN113660491B (zh) * 2021-08-10 2024-05-07 杭州网易智企科技有限公司 编码方法、编码装置、存储介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008045630A2 (en) * 2006-10-09 2008-04-17 General Instrument Corporation Method and apparatus for providing rate control for panel-based real-time video encoder
US20090016631A1 (en) * 2007-07-10 2009-01-15 Texas Instruments Incorporated Video Coding Rate Control
KR20160139233A (ko) * 2015-05-27 2016-12-07 주식회사 씬멀티미디어 비트율 제어를 이용한 영상 부호화 장치

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6002802A (en) * 1995-10-27 1999-12-14 Kabushiki Kaisha Toshiba Video encoding and decoding apparatus
US7277483B1 (en) * 2000-04-18 2007-10-02 Ati International Srl Method and apparatus for rate control for constant-bit-rate finite-buffer-size video encoder
US6895050B2 (en) * 2001-04-19 2005-05-17 Jungwoo Lee Apparatus and method for allocating bits temporaly between frames in a coding system
JP2007300455A (ja) 2006-05-01 2007-11-15 Victor Co Of Japan Ltd 算術符号化装置、および算術符号化装置におけるコンテキストテーブル初期化方法
JP5008718B2 (ja) 2007-03-14 2012-08-22 日本電信電話株式会社 符号化ビットレート制御方法及び装置、そのプログラム並びにプログラムを記録した記録媒体
CN101127909B (zh) * 2007-09-29 2010-07-07 华为技术有限公司 一种图像码率控制方法及装置
EP2286595A1 (en) * 2008-06-16 2011-02-23 Dolby Laboratories Licensing Corporation Rate control model adaptation based on slice dependencies for video coding
US9049446B2 (en) 2008-12-17 2015-06-02 Telefonaktiebolaget L M Ericsson (Publ) Adaptive quantization based on bit ratio
CN101883283B (zh) * 2010-06-18 2012-05-30 北京航空航天大学 一种基于saqd域的立体视频码率控制方法
CN102647586B (zh) * 2011-02-16 2015-07-08 富士通株式会社 用在视频编码系统中的码率控制方法和装置
JP5871602B2 (ja) 2011-12-19 2016-03-01 キヤノン株式会社 符号化装置
CN102595140B (zh) * 2012-03-09 2014-05-28 北京邮电大学 基于图像修复和矢量预测算子的帧内预测视频编码方法
CN102868883B (zh) * 2012-06-26 2013-11-13 中国科学技术大学 一种视频编码的码率控制方法
US9538190B2 (en) 2013-04-08 2017-01-03 Qualcomm Incorporated Intra rate control for video encoding based on sum of absolute transformed difference
JP2016526336A (ja) * 2013-05-24 2016-09-01 ソニック アイピー, インコーポレイテッド 適応ビットレートストリーミングのための適応量子化を用いて複数のビデオストリームをエンコードするシステムおよび方法
JP6731574B2 (ja) * 2014-03-06 2020-07-29 パナソニックIpマネジメント株式会社 動画像符号化装置および動画像符号化方法
JP6194334B2 (ja) 2015-06-10 2017-09-06 日本電信電話株式会社 映像符号化装置、映像符号化方法及び映像符号化プログラム
CN104994387B (zh) * 2015-06-25 2017-10-31 宁波大学 一种融合图像特征的码率控制方法
CN106385627B (zh) * 2016-09-14 2019-12-13 腾讯科技(深圳)有限公司 视频编码方法和装置
CN106961604B (zh) * 2017-03-07 2018-06-15 腾讯科技(深圳)有限公司 视频编码的码率分配、编码单元码率分配方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008045630A2 (en) * 2006-10-09 2008-04-17 General Instrument Corporation Method and apparatus for providing rate control for panel-based real-time video encoder
US20090016631A1 (en) * 2007-07-10 2009-01-15 Texas Instruments Incorporated Video Coding Rate Control
KR20160139233A (ko) * 2015-05-27 2016-12-07 주식회사 씬멀티미디어 비트율 제어를 이용한 영상 부호화 장치

Also Published As

Publication number Publication date
JP2019536356A (ja) 2019-12-12
WO2018161845A1 (zh) 2018-09-13
EP3595307A4 (en) 2020-09-16
JP6758684B2 (ja) 2020-09-23
CN106961604B (zh) 2018-06-15
MA47825A (fr) 2020-01-15
EP3595307A1 (en) 2020-01-15
CN106961604A (zh) 2017-07-18
US20190253717A1 (en) 2019-08-15
KR102296722B1 (ko) 2021-08-31
US10764586B2 (en) 2020-09-01

Similar Documents

Publication Publication Date Title
KR102296722B1 (ko) 비디오 코딩 코드율 할당 및 코딩 단위 코드율 할당 방법과, 컴퓨터 장비
JP6854888B2 (ja) ビデオ符号化方法、コンピュータ装置および記憶媒体
US11563974B2 (en) Method and apparatus for video decoding
US11412229B2 (en) Method and apparatus for video encoding and decoding
US11172220B2 (en) Video encoding method, and storage medium thereof
US11109038B2 (en) Intra-coded frame rate allocation method, computer device and storage medium
CN108924553B (zh) 视频编码、解码方法、装置、计算机设备和存储介质
US20200310739A1 (en) Real-time screen sharing
CN110049336B (zh) 视频编码方法和视频解码方法
US10873763B2 (en) Video compression techniques for high dynamic range data
US20200053356A1 (en) Video coding method, computer device, and storage medium
US20200296387A1 (en) Video encoding method, computer device, and storage medium
CN107205156B (zh) 通过缩放的运动矢量预测
US20180270497A1 (en) Segmentation-based parameterized motion models
CN108848377B (zh) 视频编码、解码方法、装置、计算机设备和存储介质
JP5956316B2 (ja) 主観画質推定装置、主観画質推定方法及びプログラム
JP5990126B2 (ja) 主観画質推定装置、主観画質推定方法、及びプログラム
Liu et al. Frame-level bit allocation for hierarchical coding of H. 265/HEVC considering dependent rate-distortion characteristics
Zou et al. Rate Control in HEVC: A Survey

Legal Events

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