KR20130086294A - 변환 계수의 히스토그램에 기초한 비디오 레이트 제어 - Google Patents

변환 계수의 히스토그램에 기초한 비디오 레이트 제어 Download PDF

Info

Publication number
KR20130086294A
KR20130086294A KR1020127032689A KR20127032689A KR20130086294A KR 20130086294 A KR20130086294 A KR 20130086294A KR 1020127032689 A KR1020127032689 A KR 1020127032689A KR 20127032689 A KR20127032689 A KR 20127032689A KR 20130086294 A KR20130086294 A KR 20130086294A
Authority
KR
South Korea
Prior art keywords
quantization
coefficients
histogram
transform
video frame
Prior art date
Application number
KR1020127032689A
Other languages
English (en)
Inventor
로널드 보스코빅
틴 첸
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20130086294A publication Critical patent/KR20130086294A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/387Composing, repositioning or otherwise geometrically modifying originals
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • 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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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

Landscapes

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

Abstract

양자화 계수는 변환된 비디오 프레임에서 생성되는 변환 계수의 히스토그램으로부터의 정보를 이용하여 결정된다. 히스토그램은 현재 인코딩 중에 있는 비디오 프레임의 인코딩된 프레임 크기를 추정하는데에 이용된다. 비디오 인코딩의 양자화 단계에 이용되는 양자화 계수는 히스토그램으로부터의 정보에 기초하여 현재 비디오 프레임에 대해 조정된다. 히스토그램은 인코딩된 프레임 크기의 원하는 길이에 대해 균형을 이룬다. 히스토그램의 차단 임계값은 양자화 계수의 서로 다른 선택과 상관되며, 이러한 임계값 이하의 지점의 비율은 인코딩된 프레임의 크기를 추정하는데 이용된다.

Description

변환 계수의 히스토그램에 기초한 비디오 레이트 제어{VIDEO RATE CONTROL BASED ON TRANSFORM-COEFFICIENTS HISTOGRAM}
비디오 레이트 제어는 변동하는 네트워크 조건을 고려해서 만족스러운 사용자 경험을 제공하는 것을 돕기 위해 인코딩된 비디오 품질을 동적으로 조정한다. 일반적으로, 비디오 인코더에는 변동하는 네트워크 조건에 대해 일정한 비트 레이트 또는 국지적으로 일정한 비트 레이트(locally-constant bit-rate)를 매칭시키는 태스크가 부여된다. 움직임(motion)의 도입 또는 영화 촬영의 변경에 의한 장면 복잡도(scene complexity) 변동은 기준 예측 압축비에서 상당한 편차를 발생시켜, 그에 의해 비디오 품질을 저하시킨다.
이러한 요약은 아래에 상세한 설명에서 더 설명되는 단순화된 형식의 개념의 선택을 소개하기 위해 제공된다. 이러한 요약은 청구된 발명 대상의 중요한 특징 또는 필수적인 특징을 식별하도록 의도되지 않으며, 청구된 발명 대상의 범위를 결정하는데 도움을 주는 것으로 이용되도록 의도되지도 않는다.
양자화 계수는 변환된 비디오 프레임에서 생성되는 변환 계수의 히스토그램으로부터의 정보를 이용하여 결정된다. 히스토그램은 현재 인코딩 중에 있는 비디오 프레임의 인코딩된 프레임 크기를 추정하는데에 이용된다. 비디오 인코딩의 양자화 단계에 이용되는 양자화 계수는 히스토그램으로부터의 정보에 기초하여 현재 비디오 프레임에 대해 조정된다. 적절한 양자화 계수를 선택하는 것은 비디오 프레임의 변경(예를 들어, 움직임, 장면 변경)에 응답하여, 비디오 디스플레이의 품질에 보다 원활한 조정을 제공하는데 지원한다. 히스토그램은 인코딩된 프레임 크기의 원하는 길이에 대해 균형을 이룬다. 히스토그램의 차단 임계값은 양자화 계수의 서로 다른 선택과 상관하고, 이러한 임계값 이하의 지점의 비율은 인코딩된 프레임의 크기를 추정하는데 이용된다. 히스토리 트렌드(historic trends)는 계산의 정확도를 증가시키는 상관 공식의 계수를 조정하는데 이용될 수 있다.
도 1은 컴퓨터에 대한 컴퓨터 구조를 도시한다.
도 2는 비디오 레이트 제어에 히스토그램의 사용을 통합하는 비디오 인코딩 시스템을 도시한다.
도 3은 압축비 대 양자화 단계 값 및 압축비 대 비제로 계수의 퍼센티지의 예시적인 그래프를 도시한다.
도 4는 양자화 계수를 조정할 시에 변환 계수의 히스토그램을 이용하는 예시적인 블록 기반의 프레임내/프레임간(intraframe/interframe) 압축 경로를 도시한다.
도 5는 양자화되지 않은 변환 계수에서 생성된 히스토그램 정보를 이용하여 양자화 계수를 업데이트하는 프로세스(500)를 도시한다.
이제 동일한 참조번호는 동일한 구성요소를 나타내는 도면을 참조하여, 여러 실시예가 설명될 것이다. 특히, 도 1 및 상응하는 논의는 실시예가 구현될 수 있는 적절한 컴퓨팅 환경의 간단하며 일반적인 설명을 제공하도록 의도된다.
일반적으로, 프로그램 모듈은 루틴, 프로그램, 구성 요소, 데이터 구조, 및 특정 태스크를 수행하거나 특정 추상 데이터 타입을 구현하는 다른 타입의 구조를 포함한다. 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그램 가능한 가전 제품, 소형 컴퓨터, 메인프레임 컴퓨터 등을 포함하는 다른 컴퓨터 시스템의 구성이 또한 이용될 수 있다. 태스크가 통신 네트워크를 통해 링크되는 원격 처리 장치에 의해 수행되는 분산형 컴퓨팅 환경이 또한 이용될 수 있다. 분산형 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치의 양방에 위치될 수 있다.
이제 도 1을 참조하면, 여러 실시예에 활용되는 컴퓨터(100)의 예시적인 컴퓨터 구조가 설명될 것이다. 도 1에 도시된 컴퓨터 구조는 데스크톱, 서버 또는 모바일 컴퓨터로 구성될 수 있으며, 중앙 처리 유닛(5)("CPU"), 랜덤 액세스 메모리(9)("RAM") 및 판독 전용 메모리("ROM")(11)를 포함하는 시스템 메모리(7), 및 메모리를 CPU(5)에 결합하는 시스템 버스(12)를 포함한다. 시동 중과 같이 컴퓨터 내의 요소 사이에 정보를 전송하는데 도움을 주는 기본 루틴을 포함하는 기본 입력/출력 시스템은 ROM(11)에 저장된다. 컴퓨터(100)는 운영 체제(16), 애플리케이션 프로그램 및 다른 프로그램 모듈을 저장하는 대용량 저장 장치(14)를 더 포함하며, 이는 아래에서 더 상세히 설명될 것이다.
대용량 저장 장치(14)는 버스(12)에 연결된 (도시되지 않은) 대용량 저장 제어기를 통해 CPU(5)에 연결된다. 대용량 저장 장치(14) 및 관련된 컴퓨터 판독 가능 매체는 컴퓨터(100)에 비휘발성 저장을 제공한다. 여기에 포함된 컴퓨터 판독 가능 매체의 설명은 하드 디스크 또는 CD-ROM 드라이브와 같은 대용량 저장 장치에 관련되지만, 컴퓨터 판독 가능 매체는 컴퓨터(100)에 의해 액세스될 수 있는 어떤 이용 가능한 매체 저장 장치일 수 있다.
본 명세서에서 사용되는 컴퓨터 판독 가능 매체란 용어는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능한 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 어떤 방법 또는 기술에서 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함할 수 있다. 시스템 메모리(7), 이동식 저장 장치 및 비이동식 저장 장치는 모두 컴퓨터 저장 매체 예(즉, 메모리 저장 장치)이다. 컴퓨터 저장 매체는 RAM, ROM, 전기적 소거 가능한 판독 전용 메모리(EEPROM), 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다용도 디스크(DVD) 또는 다른 광학 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 또는 다른 자기 저장 장치, 또는 정보를 저장하는데 이용될 수 있고, 컴퓨팅 장치(100)에 의해 액세스될 수 있는 어떤 다른 매체를 포함할 수 있지만, 이에 제한되지 않는다. 이러한 어떤 컴퓨터 저장 매체는 장치(100)의 부분일 수 있다. 컴퓨팅 장치(100)는 또한 키보드, 마우스, 펜, 사운드 입력 장치, 터치 입력 장치 등과 같은 입력 장치(28)를 가질 수 있다. 디스플레이, 스피커, 프린터 등과 같은 출력 장치(28)가 또한 포함될 수 있다. 상술한 장치는 예이며, 다른 장치가 이용될 수 있다.
본 명세서에서 사용되는 컴퓨터 판독 가능 매체란 용어는 또한 통신 매체를 포함할 수 있다. 통신 매체는 컴퓨터 판독 가능한 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파 또는 다른 전송 메커니즘과 같이 변조된 데이터 신호의 다른 데이터에 의해 실시될 수 있으며, 어떤 정보 전달 매체를 포함할 수 있다. 용어 "변조된 데이터 신호"는 신호에 정보를 인코딩하는 방식으로 설정되거나 변경되는 하나 이상의 특성을 가진 신호를 나타낼 수 있다. 제한이 아니라 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 연결과 같은 유선 매체, 및 음향, 무선 주파수(RF), 적외선 및 다른 무선 매체와 같은 무선 매체를 포함할 수 있다.
여러 실시예에 따르면, 컴퓨터(100)는 인터넷과 같은 네트워크(18)를 통해 원격 컴퓨터에 대한 논리적 연결을 이용하여 네트워크 환경에서 동작한다. 컴퓨터(100)는 버스(12)에 연결된 네트워크 인터페이스 유닛(20)을 통해 네트워크(18)에 연결할 수 있다. 네트워크 연결은 무선 및/또는 유선일 수 있다. 네트워크 인터페이스 장치(20)는 또한 다른 타입의 네트워크 및 원격 컴퓨터 시스템에 연결하는데 이용될 수 있다. 컴퓨터(100)는 또한 키보드, 마우스 또는 전자 스타일러스(도 1에 도시되지 않음)를 포함하는 많은 다른 장치로부터 입력을 수신하여 처리하는 입력/출력 제어기(22)를 포함할 수 있다. 마찬가지로, 입력/출력 제어기(22)는 출력을 디스플레이 화면(28), 프린터 또는 다른 타입의 출력 장치에 제공할 수 있다. 디스플레이(28)는 화상 회의 동안에 비디오 피드(video feed)와 같은 비디오를 표시하도록 설계된다.
간략하게 상술한 바와 같이, 다수의 프로그램 모듈 및 데이터 파일은 워싱턴 레드몬드의 마이크로소프트사의 WINDOWS 7® 운영 체제와 같이 네트워크 컴퓨터의 동작을 제어하는데 적절한 운영 체제(16)를 포함하는 컴퓨터(100)의 대용량 저장 장치(14) 및 RAM(9)에 저장될 수 있다. 대용량 저장 장치(14) 및 RAM(9)은 또한 하나 이상의 프로그램 모듈을 저장할 수 있다. 특히, 대용량 저장 장치(14) 및 RAM(9)은 하나 이상의 애플리케이션 프로그램을 저장할 수 있다. 애플리케이션 프로그램 중 하나는 화상 회의 애플리케이션과 같은 회의 애플리케이션(24)이다. 일반적으로, 회의 애플리케이션(24)은 한 사용자가 2 이상의 사용자 사이의 화상 회의에 포함될 때에 활용하는 애플리케이션이다. 애플리케이션은 또한 비디오를 인코딩하는 다른 프로그램에 관계할 수 있다. 예를 들면, 애플리케이션은 웹 브라우저로 전달되는 비디오를 인코딩할 수 있다.
비디오 관리자(26)는 현재 비디오 프레임의 양자화되지 않은 변환 계수의 히스토그램에 부분적으로 기초하여 현재 비디오 프레임에 대한 양자화 계수를 결정하도록 구성된다. 변환 계수의 히스토그램은 현재 비디오 프레임의 인코딩된 프레임 크기를 추정하는데 이용된다. 히스토그램은 인코딩된 프레임 크기의 원하는 크기에 대해 균형을 이룬다. 히스토그램의 차단 임계값은 양자화 계수의 서로 다른 선택과 상관되며, 이러한 임계값 이하의 지점의 비율은 인코딩된 프레임의 크기를 추정하는데 이용된다. 히스토리 트렌드는 또한 계산의 정확도를 증가시키는 상관 공식의 계수를 조정하는데 이용될 수 있다. 일 실시예에 따르면, 선택된 양자화 계수는 이전에 생성된 다른 인코딩된 프레임 크기와 유사한 인코딩된 프레임 크기를 생성한다.
도 2는 비디오 레이트 제어내에서 히스토그램의 이용을 통합하는 비디오 인코딩 시스템을 도시한다. 도시된 바와 같이, 시스템(200)은 디스플레이(28), 비디오 관리자(26), 입력(205), 비디오 애플리케이션(220), 데이터 저장 장치(240) 및 다른 애플리케이션(230)을 포함한다. 비디오 관리자(26)는 도 2에 도시된 비디오 애플리케이션(220) 내에서 구현될 수 있거나 도 1에 도시된 애플리케이션(220)으로부터 외부로 구현될 수 있다.
비디오 관리자(26)와의 통신을 용이하게 하기 위해, 도 2에서 콜백(callback) 코드(210)로 도시된 하나 이상의 콜백 루틴이 구현될 수 있다. 콜백 코드(210)의 사용을 통해, 비디오 관리자(26)는 비디오를 인코딩하는데 이용되는 추가적인 정보에 대해 질의할 수 있다. 예를 들면, 비디오 관리자(26)는 메모리(240)와 같은 버퍼 또는 일부 다른 위치로부터 비디오를 요청할 수 있다. 비디오 애플리케이션의 특징에 관한 다른 정보가 또한 제공될 수 있다.
디스플레이(28)는 인코딩된 비디오의 시각적 디스플레이를 사용자에 제공하도록 구성된다. 입력(205)은 비디오 카메라, 키보드, 마우스, 터치 스크린 및/또는 일부 다른 입력 장치와 같은 하나 이상의 입력 소스로부터 입력을 수신하도록 구성된다. 예를 들면, 입력은 CIF, VGA, 720P, 1080i, 1080p 등과 같은 비디오의 하나 이상의 해상도를 지원하는 비디오 카메라로부터의 입력일 수 있다. 메모리(240)는 비디오 애플리케이션(220)이 동작 중에 이용할 수 있는 데이터를 저장하도록 구성된다.
비디오 관리자(26)는 또한 비디오 데이터가 또한 다른 애플리케이션에 제공되고/되거나 다른 애플리케이션으로부터 수신될 수 있도록 다른 애플리케이션(230)에 결합될 수 있다. 예를 들면, 비디오 관리자(26)는 다른 비디오 애플리케이션 및/또는 네트워크 사이트에 결합될 수 있다. 도시된 바와 같이, 비디오 관리자(26)는 비디오 프레임의 인코딩 프로세스에 이용되는 예시적인 단계(212, 214, 216 및 218)을 도시한 비디오 레이트 제어기(225)를 포함한다. 인코딩 프로세스 동안에 수행되는 단계는 수행되는 인코딩의 타입에 따라 변경할 수 있다. 표준 인코딩 방식(예를 들어, H.26* 및 WMV*)에 비해, 히스토그램 단계(216)는 인코딩 프로세스 동안에 포함된다. 히스토그램 단계(216)는 양자화기(218)에 의해 이용되는 양자화 계수를 결정하는데 이용된다. 예비 임무(preliminary duties)를 수행한 후와 때때로 양자화기(218) 전에, 양자화 계수 "QP"에 대한 추정이 결정될 수 있거나 결정되지 않을 수 있다. 예를 들면, QP는 이전의 인코딩 및 휴리스틱(heuristics)의 히스토리 정보를 이용하여 결정될 수 있다.
예시적인 인코딩 프로세스의 부분이 이제 설명될 것이다. 현재 프레임(212)은 수신되어 변환 프로세스(214)로 통과된다. 프레임은 이용된 인코딩 프로세스에 따라 8x8, 4x4 등과 같은 픽셀의 블록으로 분할될 수 있다. 일 실시예에 따르면, 변환은 이산 코사인 변환("DCT")이다. DCT는 블록(공간 정보)을 주파수 정보인 DCT 계수의 블록으로 변환하는 주파수 변환의 한 타입이다. DCT 동작 자체는 무손실이거나 거의 무손실이다. 그러나, 원래의 픽셀 값에 비해, DCT 계수는 중요한 정보의 대부분이 낮은 주파수 계수에 집중되므로 압축하는데 더욱 효율적이다.
생성된 DCT 변환은 단계(216)에서 생성된 AC 계수를 히스토그램으로 매핑하도록 수정된다. 계수가 수집된 후, 비디오 레이트 제어기(225)는 히스토그램을 분석하여 처리되는 현재 프레임에 대해 추정된 인코딩된 프레임 크기를 결정한다. 그 후, 추정된 인코딩된 프레임 크기는 양자화 프로세스에서 이용되는 양자화 계수를 업데이트/결정하는데 이용된다(더욱 상세한 설명에 대해서는 도 5를 참조한다).
양자화기(218)는 결정된 양자화 계수를 이용하여 변환된 계수를 양자화한다. 일반적으로, 양자화 계수는 각 계수를 동일한 값 및 라운딩(same value and rounding)으로 나눈 것과 유사한 각 계수에 적용된다. 예를 들면, 계수 값이 130이고, 양자화 계수가 10이면, 양자화된 계수 값은 13이다. 저주파 DCT 계수가 높은 값을 가지는 경향이 있으므로, 양자화는 정밀도의 손실을 초래하지만, 계수에 대한 정보의 완전한 손실이 아니다. 한편, 고주파 DCT 계수가 제로 또는 제로에 가까운 값을 가지는 경향이 있으므로, 고주파 계수의 양자화는 전형적으로 제로 값의 연속된 영역을 초래한다. 현재 프레임에 기초한 양자화 계수의 조정은 사용자에게 보다 일관된 비디오 경험을 제공할 시에 이루어진다.
도 3은 압축비 대 양자화 단계 값 및 압축비 대 비제로 계수의 퍼센티지의 예시적인 그래프를 도시한다.
그래프(310)는 압축비 대 양자화 단계 값의 그래프를 도시한다. 그래프(310)는 12개의 서로 다른 비디오의 플롯(plot)을 포함한다. 알 수 있는 바와 같이, 압축비에 대한 양자화 단계 값의 플로팅(plotting)은 일관성 또는 일반적인 추세를 생성하지 않는다. 더욱이, 일부 비디오 사이의 차이는 중요하다는 것을 알 수 있다.
그래프(350)는 양자화되지 않은 변환 값의 히스토그램에 기초하여 압축비 대 비제로 계수의 퍼센티지의 그래프를 도시한다. 그래프(350)는 또한 그래프(310)에 플로팅되는 12개의 서로 다른 비디오의 플롯을 포함한다. 그래프(350)를 참조하면, 상관은 비제로 계수의 퍼센티지와 최종 인코딩된 크기 사이에서 보여질 수 있다. 관계는 또한 선형이다. 그래프(350)에 대한 추세선(trend line)은 약간의 오차 한계를 갖지만, 그것은 그래프(310)보다 훨씬 작다. 픽셀당 비트 값은 어떤 양자화 계수:
Figure pct00001
에서 비제로 계수의 비율의 아핀(affine) 함수로 근사화될 수 있다. 일 실시예에 따르면, 상수 k 및 c는 훈련 데이터(training data) 및 휴리스틱을 이용하여 근사화될 수 있지만, 이러한 값은 (화상 회의와 같은 비디오 피드의 기간에 걸쳐 지속적으로 조정된다. 이것은 계수의 효과가 비제로 계수 비율(예를 들어, 주파수 도메인 예측 등을 통해 절약하는 DC 평면 복잡도)에 직접 확실히 관련되지 않도록 하는데 도움을 준다. 일 실시예에 따르면, 예시적인 화상 회의에서 k에 대한 값은 약 1.1875인 것이 확인되었다.
도 4는 양자화 계수를 조정할 시에 변환 계수의 히스토그램을 이용하는 예시적인 블록 기반의 프레임내/프레임간 압축 경로를 도시한다. 인코더 시스템은 현재 프레임을 포함하는 비디오 프레임의 시퀀스를 수신하여, 압축된 비디오를 출력으로 생성한다.
도시된 인코더 시스템은 예측된 프레임 및 키 프레임을 압축한다. 도 4는 인코더 시스템을 통해 키 프레임에 대한 경로(410) 및 앞으로 예측된(forward-predicted) 프레임(470)에 대한 경로를 도시한다. 인코더 시스템의 많은 구성 요소는 키 프레임 및 예측된 프레임의 양방을 압축하는데 이용된다. 이러한 구성 요소에 의해 수행되는 정확한 동작은 압축되는 정보의 타입에 따라 변화할 수 있다. 일반적으로, 키 프레임은 예측된 프레임보다 훨씬 더 비트레이트에 기여한다. 낮은 또는 중간 비트레이트 애플리케이션에서, 키 프레임은 성능에 대한 병목 현상(bottleneck)이 될 수 있다.
또한 p 프레임이라 하는 예측된 프레임, 양방향 예측을 위한 b 프레임 또는 인터 코딩된(inter coded) 프레임은 하나 이상의 다른 프레임으로부터의 예측(또는 차이)에 관해 나타낸다. 예측 잔여(prediction residual)는 예측된 것과 원래의 프레임의 차이이다. 이에 반해, 또한 i 프레임, 인트라 코딩된 프레임이라 하는 키 프레임은 다른 프레임을 참조하지 않고 압축된다.
현재 프레임(420)이 앞으로 예측된 프레임이면, 움직임 추정기(425)는 프레임 저장 장치 내에 버퍼링될 수 있는 재구성된 이전의 프레임인 참조 프레임에 관하여 현재 프레임(420)의 매크로 블록 또는 픽셀의 다른 세트의 움직임을 추정한다. 대안적인 실시예에서, 참조 프레임은 나중 프레임이거나 현재 프레임이 양방향으로 예측된다. 움직임 추정기(425)는 픽셀, 1/2 픽셀, 1/4 픽셀 또는 다른 증분(increment)으로 움직임을 추정할 수 있으며, 프레임 단위(frame-by-frame basis) 또는 다른 단위로 움직임 추정의 해상도를 전환할 수 있다. 움직임 추정의 해상도는 수평 및 수직으로 동일하거나 상이할 수 있다.
움직임 보상기(430)는 움직임 보상된 현재 프레임을 형성하기 위해 움직임 추정 정보를 재구성된 이전의 프레임에 적용한다. 일반적으로, 움직임 추정기(425) 및 움직임 보상기(435)는 어떤 타입의 움직임 추정/보상을 적용하도록 구성될 수 있다.
주파수 변환기(435)는 공간 도메인 비디오 정보를 주파수 도메인(즉, 스펙트럼) 데이터로 변환한다. 블록 기반의 비디오 프레임의 경우, 주파수 변환기(435)는 DCT 또는 DCT의 변형을 픽셀 데이터 또는 예측 잔여 데이터의 블록에 적용하여, DCT 계수의 블록을 생성한다. 대안적으로, 변환기(435)는 푸리에 변환과 같은 다른 통상의 주파수 변환을 적용하거나 웨이블릿 또는 서브밴드 분석을 이용한다. 주파수 변환기(435)는 8x8, 8x4, 4x8 또는 다른 크기의 주파수 변환(예를 들어, DCT)을 프레임에 적용하도록 구성될 수 있다.
변환-계수의 히스토그램 단계(440)는 현재 비디오 프레임의 양자화되지 않은 변환 계수로부터 생성되는 히스토그램에 부분적으로 기초하여 현재 비디오 프레임에 대한 양자화 계수를 조정하도록 구성된다. 변환 계수의 히스토그램은 현재 비디오 프레임의 추정된 인코딩된 프레임 크기를 결정하는데 이용된다. 히스토그램은 인코딩된 프레임 크기를 원하는 크기에 대해 균형을 이룬다. 히스토그램의 차단 임계값은 양자화 계수의 여러 선택과 상관되며, 이러한 임계값 이하의 지점의 비율은 인코딩된 프레임의 크기를 추정하는데 이용된다. 양자화 계수는 히스토그램 단계(440)에 의해 결정되는 추정된 인코딩된 프레임 크기에 기초하여 선택된다.
양자화부(445)는 히스토그램(440)에 의해 결정되는 양자화 계수를 이용하여 스펙트럼 데이터 계수의 블록을 양자화한다.
재구성된 현재 프레임이 다음의 움직임 추정/보상, 참조 프레임에 필요하면, 재구성기(447)는 양자화된 스펙트럼 데이터 계수에서 역 양자화를 수행한다. 그 후, 역 주파수 변환기는 (예측된 프레임에 대한) 재구성된 예측 잔여 또는 재구성된 키 프레임을 생성하는 주파수 변환기(435)의 동작의 역을 수행한다.
현재 프레임(420)이 키 프레임이면, 재구성된 키 프레임은 (도시되지 않은) 재구성된 현재 프레임으로 취해진다. 현재 프레임(420)이 예측된 프레임인 경우, 재구성된 예측 잔여는 재구성된 현재 프레임을 형성하기 위해 움직임 보상된 현재 프레임에 추가된다. 프레임 저장 장치는 다음 프레임을 예측할 시에 이용하기 위해 재구성된 현재 프레임을 버퍼링하는데 이용될 수 있다.
엔트로피 코더(450)는 양자화기(445)의 출력뿐만 아니라 어떤 보조(side) 정보(예를 들어, 움직임 정보, 공간 외삽 모드(extrapolation mode), 양자화 단계 크기)를 압축한다. 전형적인 엔트로피 코딩 기술은 산술 코딩, 차동 코딩, 허프만 코딩, 실행 길이 코딩(run length coding), LZ 코딩, 사전 코딩(dictionary coding) 및 이의 조합을 포함한다. 엔트로피 코더(450)는 전형적으로 서로 다른 종류의 정보(예를 들어, DC 계수, AC 계수, 서로 다른 종류의 보조 정보)에 대해 서로 다른 코딩 기술을 이용하고, 특정 코딩 기술 내의 다수의 코드 테이블 중에서 선택할 수 있다. 엔트로피 코더(450)는 버퍼(455)에 압축된 비디오 정보를 둔다. 일반적으로, 압축된 비디오 정보는 일정하거나 비교적 일정한 비트레이트에서 버퍼(455)로부터 감소되어, 그 비트레이트에서 다음 스트리밍을 위해 저장된다.
이제 도 5를 참조하면, 양자화되지 않은 변환 계수로부터의 히스토그램 정보를 이용하여 비디오 프레임을 코딩하는 예시적인 프로세스가 설명된다.
여기에 제시된 루틴의 논의를 판독하면, 여러 실시예의 논리적 동작은 (1) 컴퓨터 시스템에서 실행하는 컴퓨터 구현 작동 또는 프로그램 모듈의 시퀀스로서, 및/또는 (2) 컴퓨팅 시스템 내에서 상호 연결된 머신 논리 회로 또는 회로 모듈로서 구현된다는 것이 이해되어야 한다. 구현은 본 발명을 구현하는 컴퓨팅 시스템의 성능 요구 사항에 따른 선택의 문제이다. 따라서, 예시되고, 여기에 설명된 실시예를 만들어 내는 논리적인 동작은 다양하게 동작, 구조적 장치, 작동 또는 모듈로서 지칭된다. 이러한 동작, 구조적 장치, 작동 또는 모듈은 소프트웨어, 펌웨어, 특수 목적 디지털 논리 및 이의 어떤 조합에서 구현될 수 있다.
도 5는 양자화되지 않은 변환 계수에서 생성된 히스토그램 정보를 이용하여 양자화 계수를 업데이트하는 프로세스(500)를 도시한다.
개시 동작 후, 프로세스는 비디오 프레임이 처리를 위해 수신되는 동작(510)으로 흐른다. 구조 및 알고리즘에 의존할 수 있는 어떤 예비 임무를 수행한 후, 프로세스는 동작(520)으로 흐른다.
동작(520)에서, 양자화 동작 중에 이용되는 양자화 계수 "QP"에 대한 추정이 결정된다. 추정된 QP는 어떤 선택된 QP일 수 있고, 여러 압축 표준(즉, MPEG-1, MPEG-2, MPEG-4 ASP, H.26*, VC-3, WMV7, WMV8, VP5, VP6, MJPEG 등)에 이용되는 QP 값에 상응할 수 있다. 예를 들면, QP는 히스토리 정보 및 휴리스틱을 이용하여 결정될 수 있다. QP 계수는 프레임의 더 많이 압축된 표현을 제공하기 위해 변환된 계수의 크기를 감소시키는데 이용된다.
동작(530)으로 이동하면, 프레임은 하나의 도메인에서 다른 도메인으로 변환된다. 일 실시예에 따르면, 프레임에 적용되는 변환은 DCT이다.
동작(540)으로 흐르면, 생성된 DCT는 생성된 AC 계수를 히스토그램으로 매핑하도록 수정된다. 일 실시예에 따르면, 히스토그램은 빈(bin)으로 나눌 수 있거나 나눌 수 없는 양자화 레벨에 상응하는 값의 전체 범위에 걸친다. 계수를 수집한 후, 히스토그램은 양자화 계수에 대한 업데이트를 결정하도록 분석된다.
동작(550)으로 이동하면, 양자화 계수 대 비제로 계수 비율이 계산된다. 각각의 가능한 양자화 계수는 계수를 두 그룹: (1) 양자화 단계 후에 제로로 반올림될 수 있는 계수; 및 (2) 양자화 단계 후에 제로로 반올림될 수 없는 계수로 나누어진다. 일 실시예에 따르면, 각 양자화 계수가 상응하는 양자화 단계 후에 비제로 계수 대 제로 계수의 비율로 매핑되는 테이블이 생성된다.
동작(560)으로 흐르면, 비율은 다중 매개 변수 다항식을 이용하여 인코딩된 픽셀당 비트 값으로 매핑된다. 프레임 크기(즉, 이미지 크기)를 알면, 이러한 값은 예측된 인코딩된 프레임 크기로 매핑된다.
동작(570)으로 전환하면, 초기에 추정된 양자화 계수는 동작(540-560)에서 획득된 정보를 반영하도록 업데이트된다. 일 실시예에 따르면, 양자화 계수는 인코딩된 프레임 크기는 이전에 인코딩된 프레임 크기와 유사하도록 수정된다. 수용 가능한 값의 범위 내에서 인코딩된 프레임 크기를 유지하는 것은 버퍼를 초과하지 않고 인코딩된 비디오의 품질 레벨을 유지하는데 도움을 준다. 현재 프레임에 기초하여 양자화 계수를 조정하는 것은 히스토리만을 이용하는 것에 비해 장면의 복잡도의 변화에 더욱 신속히 반응하는데 도움을 주어, 더 나은 최종 사용자 경험, 보다 적은 드롭 프레임을 생성하며, 정보의 QP 레벨 변동의 양의 감소는 초기 양자화 계수 추정을 개선하는데 이용된다.
동작(580)으로 이동하면, 현재 프레임은 업데이트된 양자화 계수를 이용하여 양자화되어, 엔트로피 코딩된다.
그 후, 프로세스는 최종 동작으로 진행하며, 다른 동작을 처리하도록 복귀한다.
위의 명세, 예 및 데이터는 본 발명의 구성의 제조 및 이용에 대한 완전한 설명을 제공한다. 본 발명의 많은 실시예가 본 발명의 사상 및 범위를 벗어나지 않으면서 만들어질 수 있으므로, 본 발명은 이후에 첨부된 청구 범위 내에 존재한다.

Claims (10)

  1. 비디오 프레임의 인코딩 중에 양자화 계수를 결정하는 방법으로서,
    픽셀을 포함하는 비디오 프레임을 수신하는 단계,
    변환을 상기 비디오 프레임에 적용하는 단계 - 상기 변환은 변환 계수를 생성하는 주파수 변환임 -,
    상기 변환된 상기 비디오 프레임으로부터의 상기 변환 계수를 이용하여 히스토그램을 생성하는 단계, 및
    상기 히스토그램으로부터의 정보를 이용하여 양자화 계수를 결정하는 단계 - 상기 양자화 계수는 상기 변환 계수의 양자화 중에 사용됨 - 를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 비디오 프레임이 인코딩되기 전에 상기 히스토그램을 이용하여 상기 비디오 프레임의 인코딩된 크기를 추정하는 단계를 더 포함하는
    방법.
  3. 제2항에 있어서,
    상기 비디오 프레임은 인코딩 중에 있는 현재 비디오 프레임이며, 상기 히스토그램을 생성하는 단계는 상기 현재 비디오 프레임의 상기 변환 계수로부터 상기 히스토그램을 생성하는 단계를 포함하는
    방법.
  4. 제2항에 있어서,
    상기 히스토그램을 생성하는 단계는 상기 양자화 계수를 결정하는 차단 임계값을 이용하는 단계를 포함하는
    방법.
  5. 제2항에 있어서,
    상기 결정된 양자화 계수를 조정하기 위해 히스토리 트렌드(historic trends)를 이용하는 단계를 더 포함하는
    방법.
  6. 제2항에 있어서,
    서로 다른 양자화 값을 이용하여 양자화 후에 비제로 계수의 비율을 계산하는 단계, 및 상기 비제로 계수의 비율을 인코딩된 픽셀당 비트 값으로 매핑하는 단계를 더 포함하되, 상기 양자화 계수를 결정하는 단계는 상기 히스토그램을 생성하기 전에 결정되는 추정된 양자화 계수를 수정하는 단계를 포함하는
    방법.
  7. 양자화 계수를 결정하는 시스템으로서,
    프로세서 및 컴퓨터 판독 가능 매체,
    상기 컴퓨터 판독 가능 매체에 저장되며, 상기 프로세서에서 실행하는 운영 환경,
    상기 프로세서에서 동작하며, 태스크를 수행하도록 구성된 비디오 애플리케이션 및 비디오 관리자를 포함하되, 상기 태스크는:
    픽셀을 포함하는 비디오 프레임을 수신하되, 상기 비디오 프레임은 인코딩 중에 있는 현재 비디오 프레임인 태스크,
    주파수 변환을 상기 비디오 프레임에 적용하되, 상기 변환은 변환 계수를 생성하는 태스크,
    상기 변환 계수의 양자화 전에, 상기 변환 계수를 이용하여 히스토그램을 생성하는 태스크, 및
    상기 히스토그램으로부터의 정보 및 상기 비디오 프레임의 추정된 인코딩된 크기를 이용하여 상기 양자화 계수를 결정하는 태스크를 포함하는
    시스템.
  8. 제7항에 있어서,
    서로 다른 양자화 값을 이용하여 양자화 후에 비제로 AC 계수의 비율을 결정하는 태스크, 및 상기 비율을 인코딩된 픽셀당 비트 값으로 매핑하는 태스크를 더 포함하는
    시스템.
  9. 제7항에 있어서,
    상기 양자화 계수를 결정하는 태스크는 상기 히스토그램을 생성하기 전에 결정되는 추정된 양자화 값을 업데이트하는 태스크를 포함하는
    시스템.
  10. 양자화 계수를 결정하기 위해 컴퓨터 실행 가능한 명령어를 갖는 컴퓨터 판독 가능 저장 매체로서,
    픽셀을 포함하는 비디오 프레임을 수신하기 위한 명령어,
    주파수 변환을 상기 비디오 프레임에 적용하기 위한 명령어 - 상기 변환은 변환 계수를 생성함 -,
    상기 변환 계수의 양자화 중에 이용되는 양자화 계수를 추정하기 위한 명령어,
    상기 변환 계수의 양자화 전에 상기 변환 계수를 이용하여 히스토그램을 생성하기 위한 명령어,
    상기 비디오 프레임이 인코딩되기 전에 상기 히스토그램을 이용하여 상기 비디오 프레임의 인코딩된 크기를 추정하기 위한 명령어, 및
    상기 히스토그램으로부터의 정보를 이용하여 상기 양자화 계수를 업데이트하기 위한 명령어를 포함하는
    컴퓨터 판독 가능 저장 매체.
KR1020127032689A 2010-06-17 2011-06-02 변환 계수의 히스토그램에 기초한 비디오 레이트 제어 KR20130086294A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/818,000 2010-06-17
US12/818,000 US20110310961A1 (en) 2010-06-17 2010-06-17 Video rate control based on transform-coefficients histogram
PCT/US2011/038854 WO2011159482A2 (en) 2010-06-17 2011-06-02 Video rate control based on transform-coefficients histogram

Publications (1)

Publication Number Publication Date
KR20130086294A true KR20130086294A (ko) 2013-08-01

Family

ID=45328649

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127032689A KR20130086294A (ko) 2010-06-17 2011-06-02 변환 계수의 히스토그램에 기초한 비디오 레이트 제어

Country Status (10)

Country Link
US (1) US20110310961A1 (ko)
EP (1) EP2583462A4 (ko)
JP (1) JP2013532439A (ko)
KR (1) KR20130086294A (ko)
CN (1) CN102948147A (ko)
AU (1) AU2011265659B2 (ko)
BR (1) BR112012032273A2 (ko)
CA (1) CA2800525A1 (ko)
RU (1) RU2587412C2 (ko)
WO (1) WO2011159482A2 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112514387B (zh) * 2018-07-26 2023-02-03 谷歌有限责任公司 空间层速率分配方法和系统
CN113518227B (zh) * 2020-04-09 2023-02-10 于江鸿 数据处理的方法和系统
NO346137B1 (en) * 2020-06-17 2022-03-14 Pexip AS Method, computer program and system for detecting changes and moving objects in a video view

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4920426A (en) * 1986-11-10 1990-04-24 Kokusai Denshin Denwa Co., Ltd. Image coding system coding digital image signals by forming a histogram of a coefficient signal sequence to estimate an amount of information
TW256010B (ko) * 1991-04-18 1995-09-01 Ampex
KR0183688B1 (ko) * 1994-01-12 1999-05-01 김광호 영상부호화방법 및 장치
EP0768008B1 (en) * 1995-04-25 2000-07-05 Koninklijke Philips Electronics N.V. Device and method for coding video pictures
US6118817A (en) * 1997-03-14 2000-09-12 Microsoft Corporation Digital video signal encoder and encoding method having adjustable quantization
EP1329109A2 (en) * 2000-10-10 2003-07-23 Koninklijke Philips Electronics N.V. Video bitrate control method and device for digital video recording
AU2003285850A1 (en) * 2002-04-23 2004-04-30 Nokia Corporation Method and device for indicating quantizer parameters in a video coding system
US7231093B2 (en) * 2003-08-01 2007-06-12 Texas Instuments Incorporated Image code estimation
US7848409B2 (en) * 2005-05-02 2010-12-07 Qualcomm Incorporated Macroblock level bit allocation
US7684632B2 (en) * 2005-05-16 2010-03-23 Hewlett-Packard Development Company, L.P. Estimating image compression quantization parameter values
US20070025441A1 (en) * 2005-07-28 2007-02-01 Nokia Corporation Method, module, device and system for rate control provision for video encoders capable of variable bit rate encoding
US8019170B2 (en) * 2005-10-05 2011-09-13 Qualcomm, Incorporated Video frame motion-based automatic region-of-interest detection
CN1992898A (zh) * 2005-12-31 2007-07-04 中国科学院计算技术研究所 一种低复杂度的视频码率控制方法
EP1830573A1 (en) * 2006-03-02 2007-09-05 Thomson Licensing Method and apparatus for determining in picture signal encoding the bit allocation for groups of pixel blocks in a picture
US8503536B2 (en) * 2006-04-07 2013-08-06 Microsoft Corporation Quantization adjustments for DC shift artifacts
US8135071B2 (en) * 2007-01-16 2012-03-13 Cisco Technology, Inc. Breakpoint determining for hybrid variable length coding using relationship to neighboring blocks
US8711926B2 (en) * 2007-02-08 2014-04-29 Qualcomm Incorporated Distortion estimation for quantized data
US8199823B2 (en) 2008-04-15 2012-06-12 Sony Corporation Estimation of B frame average rate quantization parameter (QP) in a group of pictures (GOP)
JP5263681B2 (ja) * 2009-07-15 2013-08-14 富士ゼロックス株式会社 画像符号化装置およびそのプログラム

Also Published As

Publication number Publication date
WO2011159482A2 (en) 2011-12-22
BR112012032273A2 (pt) 2016-11-29
CN102948147A (zh) 2013-02-27
US20110310961A1 (en) 2011-12-22
AU2011265659A1 (en) 2012-12-20
JP2013532439A (ja) 2013-08-15
RU2587412C2 (ru) 2016-06-20
WO2011159482A3 (en) 2012-03-29
AU2011265659B2 (en) 2014-05-01
EP2583462A2 (en) 2013-04-24
EP2583462A4 (en) 2014-05-28
RU2012154335A (ru) 2014-10-20
CA2800525A1 (en) 2011-12-22

Similar Documents

Publication Publication Date Title
KR101744654B1 (ko) 모션 기반 동적 해상도 다중 비트 레이트 비디오 인코딩
JP6019189B2 (ja) ビデオ記述長によって導かれるビデオ符号化のレート−歪み−複雑性の最適化
JP6286718B2 (ja) 高効率な次世代ビデオコーディングのためのフレーム階層応答型量子化を使用する、コンテンツ適応ビットレートおよび品質管理
KR101644208B1 (ko) 이전에 계산된 모션 정보를 이용하는 비디오 인코딩
JP5180294B2 (ja) ビデオ符号化において、フレームの複雑さ、バッファレベル、およびイントラフレームの位置を利用するバッファベースのレート制御
US20080008246A1 (en) Optimizing video coding
JP5173409B2 (ja) 符号化装置および符号化装置を備えた動画像記録システム
JP2006140758A (ja) 動画像符号化方法、動画像符号化装置および動画像符号化プログラム
JP2015508954A (ja) オブジェクト検出情報に基づく符号化
US20090074075A1 (en) Efficient real-time rate control for video compression processes
JP2003037843A (ja) 画像処理装置および方法、記録媒体、並びにプログラム
WO2019001283A1 (zh) 编码分辨率控制方法及装置
US20150163486A1 (en) Variable bitrate encoding
AU2011265659B2 (en) Video rate control based on transform-coefficients histogram
WO2022021422A1 (zh) 视频编码方法、编码器、系统以及计算机存储介质
Zhao et al. An improved R-λ rate control model based on joint spatial-temporal domain information and HVS characteristics
US20150163484A1 (en) Variable bitrate encoding for multiple video streams
KR20210022117A (ko) 공간 계층 레이트 할당
CN1848960B (zh) 使用非标准化矢量量化编码器的符合视频标准的残差编码
JP2004040811A (ja) 動映像符号化のためのdct演算量調節方法及びその装置
WO2022198465A1 (zh) 一种编码方法及装置
JP2002152758A (ja) 画像符号化装置および画像符号化方法
WO2014006959A1 (ja) 動画像予測符号化装置、動画像予測符号化方法、動画像予測符号化プログラム、動画像予測復号装置、動画像予測復号方法及び動画像予測復号プログラム
KR20130032807A (ko) 동영상 부호화 장치 및 방법
JP4243286B2 (ja) 符号化方法

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid