KR100197385B1 - 버퍼 엠프티/필 룩어헤드 비트 할당기를 구비한 모션 비디오 압축 시스템 - Google Patents

버퍼 엠프티/필 룩어헤드 비트 할당기를 구비한 모션 비디오 압축 시스템 Download PDF

Info

Publication number
KR100197385B1
KR100197385B1 KR1019960053042A KR19960053042A KR100197385B1 KR 100197385 B1 KR100197385 B1 KR 100197385B1 KR 1019960053042 A KR1019960053042 A KR 1019960053042A KR 19960053042 A KR19960053042 A KR 19960053042A KR 100197385 B1 KR100197385 B1 KR 100197385B1
Authority
KR
South Korea
Prior art keywords
coding unit
encoding
coding
picture
bits
Prior art date
Application number
KR1019960053042A
Other languages
English (en)
Other versions
KR970060716A (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 KR970060716A publication Critical patent/KR970060716A/ko
Application granted granted Critical
Publication of KR100197385B1 publication Critical patent/KR100197385B1/ko

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/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/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • 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/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/177Methods 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 group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

정 비트 레이트 및 가변 비트 레이트로 동작하기 위해 비트 할당 조건에 따라 비트들을 화상들에 할당하기 위한 시스템 및 방법이 제공된다. 각각의 화상의 인코딩 복잡성은 시공 특성들을 기초로 모델링된다. 모델링을 기초로, 다수의 비트들이 각각의 화상에 미리 할당된다. 각각의 화상은 그 후 할당된 비트들에 따라 압축된다. 달성된 비트 레이트와 희망 비트 레이트 간의 차이 및 계산 자원의 유용성을 기초로, 제2 패스 또는 다수의 패스들이 코딩을 향상시키기 위해 실행될 수 있다.

Description

버퍼 엠프티/필 룩어헤드 비트 할당기를 구비한 모션 비디오 압축 시스템
제1도는 가상 버퍼 검공기의 블럭도.
제2도는 종래의 비디오 압축 시스템의 개관도.
제3도는 MPEG 데이타 스트림의 비디오 압축 층 내의 압축 데이타의 화상 그룹(GOP) 층의 일례를 도시한 도면.
제4도는 MPEG 데이타 스트림의 비디오 압축 층 내의 압축 데이타의 매크로블럭(MB)층의 화상의 예시적인 매크로블럭 세분화를 도시한 도면.
제5도는 매크로블럭의 블럭 세분화를 도시한 도면.
제6도는 일반적인 화상 그룹의 화상 타입을 도시한 도면.
제7도는 정 비트 레이트(constrant-bit-rate) 모드에서의 동작에 대한 시간에 따른 가상 디코더 버퍼의 상황을 도시한 예시적인 도면.
제8도는 가변 비트 레이트 모드에서의 동작에 대한 시간에 따른 가상 디코더 버퍼의 상황을 도시한 예시적인 도면.
제9도는 본 발명의 실시예에 따른 비디오 압축 시스템의 개관도.
제10도는 제9도의 복잡성 추정기의 실시예의 블럭도.
제11도는 제9도의 버퍼 엠프티/필(empty/fill) 화상 비트 할당기의 상세한 블럭도.
제12도 및 제13도는 정 비트 레이트 모드에서의 제11도의 룩 어헤드 버퍼 제한 비트 할당기의 동작을 도시한 플로우챠트(이 플로우챠트는 또한 가변 비트 레이트 모드의 룩 어헤드 버퍼 제한 비트 할당기의 동작의 부분으로서 사용됨).
제14도는 가변 비트 레이트 모드의 제14도의 룩 어헤드 버퍼 제한 비트 할당기의 동작을 도시한 플로우챠트.
제15도는 제9도의 복잡성 추정기의 제2 실시예의 블럭도.
제16도는 정 비트 레이트 모드에서 동작하는 본 발명의 양호한 실시예에서 달성된 디코더 버퍼 상태와 인코딩 왜곡 간의 관계의 일례를 도시한 도면.
제17도는 가변 비트 레이트 모드에서 동작하는 본 발명의 양호한 실시예에서 달성된 디코더 버퍼 상태와 인코딩 왜곡 간의 관계의 일례를 도시한 도면.
제18도는 본 발명의 실시예의 제9도의 비트 생성 모델링기(modeler)에 의해 모델링된 3개의 예시적인 화상들의 인코딩 왜곡과 코딩 비트들 간의 관계를 도시한 도면.
제19도는 정 비트 레이트 모드에서의 예시적인 인코딩시에, 제11도의 룩 어헤드 버퍼 제한 비트 할당기에 의해 예측된 디코더 버퍼 풀니스(buffer fullness)의 상황을 도시한 도면.
제20도는 가변 비트 레이트 모드에서의 예시적인 인코딩시에, 제11도의 룩 어헤드 버퍼 제한 비트 할당기에 의해 예측된 디코더 버퍼 풀니스의 상황을 도시한 도면.
제21도는 텍스트의 예시적인 할당 문제들에서 사용된 모델 파라미터들을 도시한 테이블.
제22도는 예시적인 정 비트 레이트 비트 할당 문제에 대한 컴퓨트된(computed) 부분 비트 할당을 도시한 테이블.
제23도는 제22도의 부분 비트 할당에 대응하는 양자화 스케일을 도시한 테이블.
제24도는 예시적인 정 비트 레이트 할당 문제에 대한 최종 비트 할당을 도시한 도면.
제25도는 예시적인 가변 비트 레이트 할당 문제에 대한 최종 비트 할당을 도시한 도면.
제26도는 비디오 송신/기억 시스템의 보다 넓은 환경에서의 제9도의 비디오 압축 시스템을 도시한 도면.
* 도면의 주요부분에 대한 부호의 설명
901 : 복잡성 추정기 902 : 파라미터
903 : 화상 코더 904 : 모델
905 : 버퍼 엠프티/필 화상 비트 할당기 907 : 양자화 스케일
1101: 화상 타입 분류기
1104 : 룩 어헤드 버퍼 제한 비트 할당기 1108 : 가상 버퍼 검공기
[발명의 목적]
[발명이 속하는 기술분야 및 그 분야의 종래기술]
본 발명은 데이타 압축 분야에 관한 것으로, 특히, 디지탈 모션 비디오 신호들을 압축하기 위한 시스템 및 방법에 관한 것이다.
디지탈 송신 네트워크, 디지탈 기억 매체, VLSI 디바이스들과, 비디오 및 오디오 신호들의 디지탈 프로세싱의 기술 발전은 다수의 애플리케이션에서 경제적인 디지탈 비디오 송신 및 기억에 집중된다. 디지탈 비디오 신호들의 기억 및 송신은 다수의 애플리케이션에 중심이 되기 때문에, 또한 비디오 신호의 비압축 표현이 대량의 기억 장소를 필요로 하기 때문에, 디지탈 비디오 압축 기술의 사용은 본 기술 분야에서 중요한 것이다.
디지탈 비디오 신호들을 압축하기 위한 몇몇 국제 표준들이 과거 10년 동안 나타났고, 현재 더 개발중이다. 이 표준들은 비디오 전화 및 원격 회의; 동축 네트워크, 광섬유 네트워크, 지상 방송 또는 직접 위성 방성을 통한 고품질 디지탈 TV송신 및; CD-ROM, 디지탈 테이프, 디지탈 비디오 디스크 및 디스크 드라이브들에 저장된 인터랙티브 멀티미디어 제품들을 포함하는 다양한 애플리케이션들에서 압축 디지탈 비디오의 송신 및 기억용 알고리즘들에도 적용된다.
몇몇 압축 표준들은 공통 코어의 압축 기술들, 즉, CCITT(Consultative Committee on International Telegraphy and Telephony), Recommendation H. 120, CCITT Recommendation H.261과, ISO/IEC MPEG1 및 MPEG2 표준들을 기초로 한 알고리즘들을 포함한다. MPEG 알고리즘들은 ISO(International Standards Organization)과 IEC(International Electtrotechnical Commission)의 합동 기술 위원회의 부분인 이동 화상 전문가 그룹(MPEG : Moving Picture Experts Group)에 의해 개발되었다. MPEG 위원회는 비디오 및 관련 오디오 신호들의 다중화 압축 표현에 대한 표준들을 개발해왔다. 이 표준들은 압축 비트 스트림의 구문 및 디코딩 방법에 관해 정의하지만, 인코더에서 사용되는 알고리즘의 신규성 및 다양성에는 상당한 개발의 여지를 남겨 두고 있다.
MPEG1 표준은 압축 프로그레시브 비디오에서 사용되기 위해 개발되었다. 프로그레시브 비디오 시퀀스는 각각의 프레임이 개별적인 순간에 관측되는 장면을 나타내는 시퀀스이다. 대조적으로, 인터레이스 비디오의 경우에는, 필드(스크린의 모든 다른 라인)는 정기적으로 포획된다. 인터레이스 비디오의 경우, 서로 다른 시간에 스크린의 상부 및 하부 필드가 재생된다. 임의의 주어진 시간에, 2개의 필드들로부터의 데이타(프레임)가 관측될 수 있다.
MPEG2 표준은 인터레이스 비디오, 프로그레시브 비디오, 또는 프로그레시브와 인터레이스 비디오의 혼합물을 압축하는데 사용될 수 있다. 인코더는 각각의 프레임이 프로그레시브 또는 인터레이스인지를 규정한다.
MPEG 표준들은 각각의 화상의 압축 표현의 비트들의 수가 가변적인 비트 스트림을 규정한다. 이 변수는 코드화된 장면의 시공 복잡성의 시간에 따른 고유 변화 뿐만 아니라 서로 다른 타입의 화상 프로세싱으로 인한 것이다. 이것은 비트 레이트의 파동을 균등하게 하기 위해 버퍼를 사용하게 한다. 예를 들어, 정 비트 레이트 기억 매체 또는 송신 채널의 경우, 버퍼링은 압축 화상들의 비트 레이트가 버퍼의 사이즈에 좌우되는 한계 내에서 변하게 하고, 기억 소자 또는 송신 채널에 대한 정 비트 레이트를 출력한다.
버퍼링의 중요성을 고려하여, MPEG 표준들은 인코드된 비트 스트림이 디코더 버퍼 사이즈 및 입력 비트 레이트에 대한 지정된 한계들에 따라 디코드 가능한 지를 검증하는, 제1도에 도시된 가상 버퍼 검공기(VBV : Virtual Buffer Verifier)라고 하는 가설 디코더를 정의한다. VBV는 2개의 동작 모드들 : 정 비트 레이트(CBR) 및 가변 비트 레이트(VBR)를 갖는다. 2개의 모드들은 이하에 기술된다.
정 비트 레이트 동작의 경우, 디코더 버퍼(101)는 기억 매체 또는 송신 매체로부터의 압축 데이타(100)로 정 비트 레이트로 필된다. 버퍼 사이즈 및 비트 레이트 모두 압축 비트 스트림으로 송신되는 파라미터들이다. 비트 스트림의 정보로부터 또한 유도된 초기 지연 후에, 가설 디코더(103)는 제1 화상과 관련된 모든 데이타를 버퍼로부터 즉시 제거한다. 그 후, 시퀀스의 화상 레이트와 동일한 간격들로, 디코더는 버퍼의 초기 화상과 관련된 모든 데이타를 제거한다.
가변 비트 레이트 동작은 버퍼가 풀이 될 때까지 압축 비트 스트림이 특정 최대 비트 레이트로 버퍼에 입력되는 것을 제외하고는 상술된 바와 유사하다. 버퍼가 풀이 된 경우, 버퍼가 적어도 부분적으로 엠프티일 때까지는 더 이상의 비트들이 입력되지 않는다. 이는 효율적으로 가변적인 버퍼에 입력된 비트 레이트로 해석된다.
비트 스트림이 MPEG 레이트 제어 요구 사항들을 만족시키기 위해, 각각의 화상의 모든 데이타가 디코더에 의해 요구되는 순간에 버퍼 내에서 유용할 필요가 있다. 이 요구사항들은 각각의 화상에 허용되는 비트들의 수에 대한 상한 및 하한(UVBV및 LVBV)으로 해석된다. 소정의 화상에 대한 상한 및 하한은 선행하는 모든 화상들에서 사용된 비트들의 수에 좌우된다. 인코더의 기능은 VBV 요구사항들을 만족시키는 비트 스트림들을 생성하는 것이다. 실제 디코더가 상술된 방법으로 구성되거나 동작되리라고는 기대하지 않는다. 가설 디코더 및 관련 버퍼는 단지 압축 화상들의 사이즈를 제한하는 수단일 뿐이다.
레이트 제어 체계는 MPEG에서 사용될 수 있는 레이트 제어 메카니즘을 기술하고 있는 Gonzales 및 Viscito에 의한 미국 특허 제5,231,484호에서 발견될 수 있다. 이 타입의 체계에 대한 블럭도는 제2도에 도시되어 있다. 이 체계에서, 입력 비디오 신호 Fk(200)는 복잡성 추정기(201) 및 화상 코더(205)에 송신된다. 복잡성 추정기는 복잡성 추정치 Ck(신호 202)를 화상 비트 할당기(203)에 송신한다. 화상 비트 할당기는 양자화 스케일 Qk(신호 204)를 화상 코더(205)에 송신한다. 양자화 스케일은 인코더로부터 압축 비디오 신호들을 수신할 가설 디코더 버퍼의 순간 버퍼 풀니스와 이전 인코드된 화상들의 복잡성에 따라 세트된다. 화상 코더는 양자화 스케일을 사용하여 Fk를 인코드하고 출력 비트 스트림 CDk(신호 206)를 생성한다.
[발명이 이루고자 하는 기술적 과제]
본 발명의 목적은 디코드된 정보에서 항상 양호한 품질(즉, 화상들에 대한 시각적인 품질)을 유지하면서 비트 할당 조건들이 만족되도록 화상들과 같은 디지탈 정보 유닛들을 인코딩하기 위한 시스템 및 기술들을 제공하는데 있다.
본 발명의 한 양상에 따라, 디지탈 정보의 유닛들(코딩 유닛들)은 할당된 비트들의 수를 기초로 한 각각의 코딩 유닛에 대한 코딩 왜곡들을 모델링함으로써 인코드된다. 그 후 비트들은 디코더 버퍼부로부터 이전 코딩 유닛을 제거한 후에 모델 디코더 버퍼의 풀니스가 제1 수 미만일 때만 제1 코딩 유닛을 제외한 각각의 코딩 유닛의 인코딩 왜곡이 이전 코딩 유닛의 인코딩 왜곡 보다 낮고, 디코더 버퍼부로부터 이전 코딩 유닛을 제거한 후에 디코더 버퍼 풀니스가 제2 수 초과일 때만 제1 코딩 유닛을 제외한 각각의 코딩 유닛의 인코딩 왜곡이 이전 코딩 유닛의 인코딩 왜곡보다 높다는 규칙에 따라 각각의 코딩 유닛에 할당된다. 코딩 유닛들은 상기 할당을 기초로 인코드된다.
다수의 실시예들에서, 정 비트 레이 및 가변 비트 레이트로 동작하기 위해 VBV 조건에 따라 비트들을 화상들에 할당하기 위한 방법이 제공된다. 각각의 화상의 인코딩 복잡성은 시공 특성들을 기초로 모델링된다. 모델링을 기초로, 다수의 비트들이 각각의 화상에 미리 할당된다. 각각의 화상은 그 후 할당된 비트들에 따라 압축된다. 달성된 비트 레이트와 희망 비트 레이트 간의 차이 및 계산 자원의 유용성을 기초로, 제2 패스 또는 다수의 패스들이 코딩을 향상시키기 위해 실행될 수 있다.
[발명의 구성 및 작용]
[MPEG2 환경]
본 발명이 MPEG2 인코더와 관련하여 적용될 수 있기 때문에, 본 발명의 이해를 용이하게 하기 위해, MPEG2 비디오 압축 표준의 몇몇 적합한 양상이 검토될 것이다. 그러나, 본 발명이 또한 MPEG2 표준의 몇몇 특성들을 공유하는 다른 비디오 코딩 알고리즘들에도 적용될 수 있음을 알 수 있다.
먼저, 텍스트의 페이지, 이미지, 음성 세그먼트 또는 비디오 시퀀스와 같은 임의의 데이타 오브젝트 압축이 1) 오브젝트를 토큰들 집합으로 분해하는 단계; 2) 몇몇 센스로 최소 길이를 갖는 이진 스트링으로 토큰들을 표현하는 단계; 및 3) 잘 정의된 순서로 스트링들을 연결하는 단계를 포함하는 일련의 단계들로서 간주될 수 있음을 알 수 있다. 단계들(2 및 3)은 손실이 없다. 즉, 고유 데이타는 반전시 신뢰성 있게 회복될 수 있다. 단계 (2)는 엔트로피 코딩으로서 공지된 것이다.
단계 (1)은 손실되지 않거나 손실될 수 있다. 대부분의 비디오 압축 알고리즘들은 엄중한 비트 레이트 요구 사항들 때문에 손실된다. 성공적인 손실 압축 알고리즘은 과도하고 무관한 정보를 제거하여, 시각적으로 중요하지 않은 비교적 큰 에러들을 허용하고 관찰자가 쉽게 감지하는 시퀀스 양상을 주의깊게 나타낸다. 단계 (1)의 MPEG2 표준에서 사용된 기술은 예측/보간 모션-보상 하이브리드 DCT/ DPCM 코딩으로서 기술될 수 있다. 가변 길이 코딩으로도 공지된 허프만 코딩은 단계 (2)에서 사용된다. 언급된 바와 같이, MPEG2 표준이 셀제로 디코더 및 압축 비트 스트림 구문의 규격이더라도, 편의상 MPEG2 규격은 주로 인코더 관점에서 이하 기술된다.
MPEG 비디오 표준들은 송신용 비디오의 코드화된 표현을 기술한다. 이 표준은 인터레이스 또는 논인터레이스 성분 비디오 상에서 동작하도록 디자인된다.
각각의 화상은 3개의 성분들 : 휘도(Y), 레드 칼라 차이(CR), 및 블루 칼라 차이(CB)를 갖는다. 4:2:0 데이타의 경우, CR및 CB성분들은 수평 방향 및 수직 방향으로 Y 성분의 샘플 수의 1/2을 각각 갖는다. 4:2:2 데이타의 경우, CR및 CB성분들은 수평 방향으로는 Y 성분의 샘플 수의 1/2을 각각 갖고, 수직 방향으로는 동일한 수의 샘플들을 각각 갖는다. 4:4:4 데이타의 경우, CR및 CB성분들은 수평 방향 및 수직 방향으로 Y 성분과 동일한 수의 샘플들을 각각 갖는다.
MPEG 데이타 스트림은 적층된 것으로 간주될 수 있는 시스템 데이타 스트림으로 시스템 정보 및 가능한 다른 비트 스트림들과 팩된 비디오 스트림과 오디오 스트림으로 구성된다. MPEG 데이타 스트림의 비디오 층 내에서, 압축 데이타가 더 적층된다. 본 발명의 이해를 돕기 위해 층들의 구성이 기술된 것이다.
층들은 압축 비트 스트림의 분해 뿐만 아니라 압축 체계의 동작과도 관계된다. 최고 층은 전체 시퀀스에 대한 제어 정보 및 파라미터들을 포함하는 비디오 시퀀스 층이다. 다음 층에서, 시퀀스는 화상 그룹(GOP)으로서 공지된 연속 화상 세트들로 세분화된다. 이 층의 일반적인 도면은 제3도에 도시되어 있다. 디코딩은 선행 GOP와는 무관하게 임의의 GOP의 개시에서 시작될 수 있다. GOP 내에 있을 수 있는 화상들의 수에는 제한이 없고 또한 모든 GOP가 동일한 수의 화상들을 가질 수 있다.
제3 또는 화상 층은 단일 화상이다. 이 층의 일반적인 도면은 제4도에 도시되어 있다. 각각의 화상의 휘도 성분은 16×16 영역들로 세분화되고; 칼라 차이 성분들은 16×16 휘도 영역 내에 공간적으로 배치된 적합한 크기의 블럭들로 세분화되고; 4:4:4 비디오의 경우, 칼라 차이 성분들은 16×16이고, 4:4:2 비디오의 경우, 칼라 차이 성분들은 8×16이고, 4:2:0 비디오의 경우, 칼라 차이 성분들은 8×8이다.
배치 휘도 영역 및 칼라 차이 영역들이 매크로블럭(MB)으로 공지된 제5 층을 구성한다고 생각하자. 화상의 매크로블럭들은 래스터 스캔 순서로 연속적으로 번호가 붙여진다.
제4 층 또는 슬리이스 층이 화상 층과 MB 층 사이에 있다. 각각의 슬라이스는 소정 수의 연속 MB들로 이루어진다. 슬라이스들은 한 화상 내에서 또는 화상과 화상 사이에서 크기가 균일할 필요가 없다.
마지막으로, 제5도에 도시된 바와 같이, 각각의 MB는 4개의 8×8 휘도 블럭들 및 8, 4 또는 2개의(4:4:2, 4:2:2 및 4:2:0 비디오의 경우) 색도 블럭들로 이루어진다.
각각의 화상의 화소 또는 픽셀들의 휘도 성분의 폭이 C로 표시되고 높이가 R로 표시되면(C는 열에 대한 것이고, R은 행에 대한 것임), 프레임 구조 화상은 폭이 C/16 MB이고 높이가 R/16 MB이다.
시퀀스, GOP, 화상 및 슬라이스 층들 모두 관련된 헤더들을 갖는다. 헤더들은 바이트 정렬 개시 코드들로 개시되고 대응 층에 포함된 데이타에 관련된 정보를 포함한다.
화상은 필드 구조 또는 프레임 구조일 수 있다. 프레임 구조 화상은 전체 프레임, 즉, 데이타의 2개의 필드들을 재구성하는 정보를 포함한다. 필드 구조 화상은 하나의 필드를 재구성하는 정보를 포함한다. (화소 또는 픽셀들의) 각각의 휘도 프레임의 폭이 C로 표시되고 높이가 R로 표시되면(C는 열에 대한 것이고, R은 행에 대한 것임), 프레임 구조 화상은 C×R 픽셀들에 대한 정보를 포함하고 프레임 구조 화상은 C×R/2 픽셀들에 대한 정보를 포함한다.
필드 구조 화상의 매크로블럭은 단일 필드로부터의 16×16 픽셀 세그먼트를 포함한다. 프레임 구조 화상의 매크로블럭은 2개의 필드들로 구성된 프레임으로부터의 16×16 픽셀 세그먼트를 포함하는데, 각각의 매크로블럭은 2개의 필드들 각각으로부터 16×8 영역을 포함한다.
MPEG2 시퀀스의 각각의 프레임은 2개의 코드화된 필드 화상들 또는 하나의 코드화된 프레임 화상으로 구성되어야만 한다. 예를 들어, 하나의 필드 구조 화상에 이어지는 하나의 프레임 구조 화상에 이어지는 하나의 필드 구조 화상으로서 2개의 프레임들을 코드화하는 것은 비합법적이고; 합법적인 결합은 2개의 프레임 구조 화상들, 4개의 필드 구조 화상들, 하나의 프레임 구조 화상에 이어지는 2개의 필드 구조 화상들, 또는 2개의 필드 구조 화상들에 이어지는 하나의 프레임 구조 화상이다. 따라서, MPEG2 구문에서 프레임 헤더가 없는 경우, 개념적으로 MPEG2에는 하나의 프레임 층이 있는 것으로 생각할 수 있다.
GOP 내에는, 3가지 타입의 화상들이 나타날 수 있다. GOP 내의 3가지 타입들의 화상들의 일례는 제6도에 도시되어 있다. 화상 타입들간의 개별적인 특성은 사용되는 압축 방법이다. 제1 타입, 인트라모드 화상들 또는 I-화상들은 임의의 다른 화상과 무관하게 압축된다. I-화상들 간에 대한 고정된 상한이 없더라도, 랜덤 액세스 및 다른 특정 동작 모드들을 용이하게 하기 위해 시퀀스 도처에 종종 산재되리라고 예상된다. 예측 모션 보상 화상들(P-화상들)은 그 화상의 압축 데이타로부터 및 이전에 디스플레이된 I-화상 또는 P-화상으로부터 가장 최근에 재구성된 2개의 필드들로부터 재구성된다. 양방향 모션 보상 화상들(B-화상들)은 그 화상과, 이전에 디스플레이된 I-화상 또는 P-화상으로부터의 2개의 재구성 필드들의 압축 데이타 및 차후에 디스플레이될 I-화상 또는 P-화상으로부터의 2개의 재구성된 필드들로부터 재구성된다. 재구성된 I-화상 또는 P-화상이 다른 화상들을 재구성하는데 사용될 수 있기 때문에, 이들은 앵커(anchor) 화상이라고 한다. 편의상, 다음 앵커 화상이 I-화상이면, 이 앵커 화상은 터미널 화상이라고 한다.
하나의 매우 유용한 이미지 압축 기술은 변환 코딩이다. MPEG 및 몇몇 다른 압축 표준들에서, 디스크리트 코사인 변환(DCT)은 정선된 변환이다. I-화상의 압축은 1) 픽셀들의 블럭들을 DCT 하는 단계, 2) DCT 계수들을 양자화하는 단계, 및 3) 그 결과를 허프만 크딩하는 단계에 의해 달성된다. MPEG에서, DCT 동작은 8×8 픽셀 블럭을 8×8 변환 계수 집합으로 변환시킨다. DCT 변환 자체는 손실 없는 동작으로, 컴퓨팅 디바이스 및 실행되는 알고리즘의 정밀도 내에서 반전될 수 있다.
DCT 계수들을 양자화하는 제2 단계는 MPEG 표준에서 손실있는 주요 소스이다. DCT 계수들의 2차원 어레이의 요소들을 Cmn이라고 하자. 여기서 m 및 n은 0 내지 7의 범위 내에 있을 수 있고, 버림 및 라운딩(rounding) 계수들은 제외하고, 양자화는 각각의 DCT 계수 Cmn를 Wmn×Qp로 분할함으로써 달성되는데, Wmn은 가중 팩터이고 Qp는 매크로블럭 양자화기(quantiser)이다. Qp는 각각의 DCT 계수에 적용됨을 주의하자. 가중 팩터 Wmn은 보다 조잡한 양자화가 덜 시각적인 유의 계수들에 적용되게 한다.
몇몇 가중 집합들이 있을 수 있다. 예를 들어, I-화상을 위한 하나의 가중 팩터 및 P-화상과 B-화상을 위한 다른 가중 팩터가 있을 수 있다. 고객 가중들은 비디오 시퀀스 층에서 송신될 수 있거나, 디폴트 값들이 사용될 수 있다. 매크로 블럭 양자화기 파라미터는 MPEG2에서 품질 대 비트 레이트를 트레이드 오프하는 주요 수단이다. Qp는 화상 내에서 MB로부터 MB로 변할 수 있음을 아는 것이 중요하다. 적응 양자화(AQ)로 공지된 이 특성은 각각의 화상의 서로 다른 영역들이 서로 다른 스텝사이즈로 양자화되게 하고, 각각의 화상에 대한 시각적인 품질 및 화상간의 시각적인 품질을 동일화(및 최적화)하는데 사용될 수 있다. 통상, 예를 들어 MPEG 테스트 모델에서, 매크로 블럭 양자화기는 매크로블럭 마스킹 팩터 및 화상 공치 양자화기의 적으로 계산된다.
양자화 후에, 각각의 MB에 대한 DCT 계수 정보는 호프만 코드 집합을 사용하여 구성 및 코드화된다. 이 단계에 대한 설명은 본 발명의 이해를 돕기 위해 꼭 필요한 것이 아니고 본 기술 분야에서 일반적으로 공지된 것이므로, 더 이상의 설명은 생략하겠다.
대부분의 비디오 시퀀스들은 연속 화상들 간의 고도의 상관 관계를 나타낸다. 화상 코딩 전에 이 리던던시를 제거하는 유용한 방법은 모션 보상이다. MPEG2는 모션 보상을 위한 몇몇 도구들을 제공한다(이하에 기술됨).
모든 모션 보상 방법들은 공통적으로 다음 사항들을 갖는다. 각각의 매크로블럭에 있어서, 하나 이상의 모션 벡터들이 비트 스트림에서 인코드된다. 이 모션 벡터들은 디코더가 예측 매크로블럭이라고 하는 매크로블럭을 재구성하게 한다.
인코더는 인코드될 매크로블럭으로부터 예측 매크로블럭을 공제하여 차이 매크로블럭을 형성한다. 인코더는 인트라 매크로블럭을 압축하는데 사용되는 도구와 기본적으로 유사한 도구를 사용하여 차이 매크로블럭을 압축한다.
화상 타입은 사용될 수 있는 모션 보상 방법들을 결정한다. 인코더는 화상의 각각의 매크로블럭에 대한 방법을 이 방법들 중에서 선택한다. 모션 보상 방법은 사용된 매크로블럭 모드 및 모션 보상 모드에 의해 표시된다. 4개의 매크로블럭 모드들, 인트라(I) 모드, 포워드(F) 모드, 백워드(B) 모드 및 보간 포워드-백워드(FB) 모드가 있다. I 모드의 경우, 모션 보상이 사용되지 않는다. 다른 매크로블럭 모드들의 경우, 16×16(S) 또는 16×8(E) 모션 보상 모드들이 사용될 수 있다. F 매크로블럭 모드의 경우, 이중 프라임(D) 모션 보상 모드가 또한 사용될 수 있다.
MPEG 표준들은 정 비트 레이트 및 가변 비트 레이트 송신 및 기억 매체와 함께 사용될 수 있다. 각각의 화상의 비트들의 수가 코드화된 장면의 시공 복잡성의 시간에 따른 고유 변화 뿐만 아니라 서로 다른 타입들의 화상 프로세싱으로 인해 가변적이다. MPEG 표준들은 비트 레이트에서 허용되는 변화량을 제한하기 위해 가상 버퍼 검공기(VBV)의 형식으로 버퍼 베이스 레이트 제어 기법을 사용한다. 제1도에 도시된 바와 같이, VBV는 전체 비트 레이트가 타겟 할당 및 타겟이 제한된 단기(short-term) 편차와 동일하도록 각각의 화상을 코드화하는데 사용되는 비트들의 수를 제한하는 것이 유일한 임무인 가설 디코더(103)에 이어지는 디코더 버퍼(101)로서 고안된다. VBV는 정 비트 레이트 모드 또는 가변 비트 레이트 모드에서 동작할 수 있다.
정 비트 레이트 모드에서, 버퍼는 기억 매체 또는 송신 매체로부터 비트 스트림의 압축 데이타로 정 비트 레이트로 필된다. 버퍼 크기 및 비트 레이트 모두는 압축 비트 스트림으로 송신되는 파라미터들이다. 비트스트림의 정보로부터도 유도되는 초기 지연 후에, 가설 디코더는 제1 화상과 관련된 모든 데이타를 버퍼로부터 즉시 제거한다. 그 후, 시퀀스의 화상 레이트와 동일한 간격들로, 디코더는 버퍼의 초기 화상과 관련된 모든 데이타를 제거한다. VBV의 동작의 예가 제7도에 도시되어 있다. 이 도면은 시간에 따른 디코더 버퍼의 풀니스를 도시하고 있다. 시간 T0의 초기 지연 후에 초기 버퍼 풀니스 B1로 버퍼는 개시된다. 사선 세그먼트들은 정 비트 레이트로 버퍼에 입력되는 압축 데이타를 도시하고 있다. 수직 라인 세그먼트들은 버퍼의 초기 화상과 관련된 데이타를 버퍼로부터 즉시 제거하는 것을 도시하고 있다. 이 예에서는, 화상들이 시간 T의 일정한 간격으로 제거되는 것으로 도시되어 있다. 일반적으로, 화상 디스플레이 간격, 즉, 연속 화상들의 제거 사이의 시간 간격은 가변적일 수 있다.
비트 스트림이 MPEG 레이트 제어 요구 사항들을 만족시키기 위해, 각각의 화상의 모든 데이타가 디코더에 의해 요구되고 디코더 버퍼가 오버필되지 않은 순간에 버퍼 내에서 유용할 필요가 있다. 이 요구사항들은 각각의 화상에 허용되는 비트들의 수에 대한 상한 및 하한으로 해석된다. 소정의 화상에 대해 상한 및 하한은 선행하는 모든 화상들에서 사용된 비트들의 수에 좌우된다. 예를 들어, 제2 화상은 U2가 제2 화상이 제거될 때 버퍼에서 유용한 비트들의 수이기 때문에, U2비트들보다 많은 비트들을 포함할 수 없고, L2비트들 보다 적게 제거하면 버퍼에서 입력 비트들로 오버플로우가 야기되기 때문에 L2보다 작은 비트들을 포함할 수 없다. 인코더의 기능은 에러 없이 VBV에 의해 디코드될 수 있는 비트 스트림들을 생성하는 것이다.
정 비트 레이트 동작의 경우, 버퍼로부터 본 화상을 제거하기 직전의 버퍼 풀니스는 이전 화상을 제거하기 직전의 버퍼 풀니스 - 이전 화상의 비트들의 수 + 비트 레이트와 본 화상 제거와 이전 화상 제거 사이의 시간의 양의 적과 동일하다.
즉,
buffer_fullness_before_remove_pic =
buffer_fullness_before_remove_last_pic - bits_in_last_pic +
time_between_pic_and_last_pic × bit_rate
화상들의 비트들의 수에 대한 상한은 버퍼로부터 본 화상을 제거하기 직전의 버퍼 풀니스와 동일하다. 하한은 0 비트들 보다 크거나 버퍼 사이즈 - 버퍼로부터 본 화상을 제거하기 직전의 버퍼 풀니스 + 다음 화상이 제거되기 전에 버퍼에 입력될 비트들의 수이다. 소정의 화상을 제거하기 전의 버퍼 풀니스는 초기 버퍼 풀니스 및 선행 화상들 모두의 비트들의 수에 좌우되고, 상술된 규칙을 사용하여 계산될 수 있다.
가변 비트 레이트 동작은 입력될 더 이상의 비트들이 없을 때, 버퍼가 풀이될 때까지 압축 비트 스트림이 특정 최대 비트 레이트로 입력되는 것을 제외하고는 상술된 바와 유사하다. 이는 최대 특정 레이트까지, 효율적으로 변할 수 있는 버퍼 입력 비트 레이트로 해석된다. 가변 비트 레이트 동작 하에서의 버퍼 풀니스의 예시적인 도면은 제8도에 도시되어 있다. 버퍼는 정의된 버퍼 풀니스가 버퍼 사이즈 BMAX를 초과할 수 없다는 것을 제외하고는 정 비트 레이트의 경우와 유사하게 동작된다. 이것은 각각의 화상에 대해 생성된 비트들의 수에 상한을 야기하지만, 하한은 야기하지 않는다.
가변 비트 레이트 동작의 경우, 버퍼로부터 본 화상을 제거하기 직전의 버퍼 풀니스는 버퍼의 크기, 또는 이전 화상을 제거하기 직전의 버퍼 풀니스 - 이전 화상의 비트들의 수 + 최대 비트 레이트와 본 화상 제거와 이전 화상 제거 사이의 시간의 양의 적 중 보다 적은 것과 동일하다.
즉,
buffer_fullness_before_remove_pic = min(buffer_size,
buffer_fullness_before_remove_last_pic - bits_in_last_pic +
time_between_pic_and_last_pic × bit_rate )
화상들의 비트들의 수에 대한 상한은 버퍼로부터 본 화상을 제거하기 직전의 버퍼 풀니스와 동일하다. 상술된 바와 같이, 하한은 없다. 소정의 화상을 다시 제거하기 전의 버퍼 풀니스는 초기 버퍼 풀니스 및 선행 화상들 모두의 비트들의 수에 좌우되고, 상술된 규칙을 사용하여 계산될 수 있다.
[인코더의 양호한 실시예]
본 발명의 양호한 실시예에 따라, 레이트 제어는 버퍼의 현 상태 뿐만 아니라 다수의 화상들이 인코드된 후의 버퍼의 차후 예측 상태들을 기초로 한다. 현 버퍼 상태 및 예측 버퍼 상태는 종래의 방법들과 다른 방법으로 레이트 제어에 사용된다. 이 실시예에서, 각각의 화상은 코딩 유닛으로 간주된다. 비트들은 화상 시퀀스에 할당되어 버퍼가 특정 상한 및 하한에 도달한다고 예측될 때만 양자화 스케일 Qp가 변경되게 한다. 특히, Qp는 디코더 버퍼가 소정의 임계치를 넘어서 필된다고 예측될 때만 증가되고 디코더 버퍼가 소정의 임계치를 지나 엠프티된다고 예측될 때만 감소된다.
제9도는 본 발명의 실시예의 구성 소자들과 그들의 상호 작용을 도시한 것이다. 화상 코더(903)는 제2도의 화상 코더(205)와 같이 종래의 타입이다. 입력 비디오 신호(900) Fk는 복잡성 추정기(901 : CE) 및 화상 코더(908: PC)에 의해 입력된다. (여기서, k는 시간 인덱스이다). CE는 입력 비디오 시퀀스(900)를 처리하여, 각각의 화상에 대한 인코딩 복잡성의 모델링에 유용한 파라미터들 Pk(신호 902)를 추정한다. CE의 실시예는 이하에 기술될 것이다. 파라미터들(902)은 도입된 인코딩 왜곡을 기초로 화상들을 인코드하는데 사용되는 다수의 비트들의 모델들을 구성하는 비트 생성 모델링기(903 : BMP)에 송신된다. BMP은 비디오 시퀀스의 각각의 화상에 할당되는 비트들의 수를 결정하는 버퍼 엠프티/필 화상 비트 할당기(905 : PBA)에 송신되는 모델들 Mk(신호 904)를 생성한다. PBA의 동작은 이하에 기술될 것이다. 양호한 실시예에서, 비트 할당은 양자화 스케일 Qk(신호 907)의 형태로 PC에 송신된다. PBA 의해 제공된 Qk를 사용하여, PC는 k번째 화상을 코드화하여 압축 데이타 CDk(신호 909)를 생성한다. PC는 신호(906), Gk를 통해 PBA 및 CE에 인식되는 코딩 통계치들을 산출한다.
제9도의 구성 소자들 각각은 하드웨어에 내장될 수 있거나 일반적인 목적의 컴퓨터의 메모리에 실증된 소프트웨어로서 내장될 수 있다. 양호하게, 화상 코더 및 복잡성 추정기는 관련 마이크로코드 제어에 따라 하드웨어 구성 소자 또는 회로판으로서 내장되고, 비트 생성 모델링기 및 버퍼 엠프티/필 화상 비트 할당기는 프로그램 코드로 내장된다.
복잡성 추정기(901)의 한 실시예가 제10도에 도시되어 있다. 입력 화상(1000), Fk[신호(200), 신호(900) 및 신호(1500)와 동일함]는 화상 타입 분류기(1001)에 의해 화상 타입으로 분류되고, 분류는 신호(1002), CLk를 통해 인식된다. 모션 보상은 모션 보상 유닛(1003)에 의해 실행되어, 모션 보상 차이 △mc (신호 1004)를 생성한다. 화상 분류 기술 및 모션 보상 기술은 본 기술 분야에 공지된 것으로 여기서는 더 상세히 기술하지 않겠다. 신호(1002) 및 신호(1004)는 비트 생성 모델에 대한 파라미터 집합 Pk(신호 1007)를 계산하는데 이 신호들을 사용하는 에러 가산기 및 이전 오버헤드 카운터(1005)에 입력된다. 이 실시예에서, Pk는 복잡성 측도 Ck및 오버헤드 OHk로 이루어진다. 에러 가산기 및 이전 오버헤드 카운터(1005)는 모든 요소들의 절대값들의 합, △mc로서 화상 k에 대한 복잡성, Ck를 계산한다. 또한 동일한 타입의 이전 화상에서 사용된 비트들의 수 - 양자화된 계수들의 표현을 위해 동일한 타입의 이전 화상에서 사용된 비트들의 수로서, 화상 k에 대한 오버헤드 추정치 OHk를 계산한다.
어떻게 OHk가 계산되는지를 쉽게 이해하기 위해, 다음의 예들을 생각해 보자. 화상들(1-7)은 이미 인코드되었고, 화상(6)은 P-화상이고, 화상(7)은 B-화상이며, 화상(8)은 P-화상이다. 화상은 100,000개의 비트들을 사용했고, 그 중에서 90,000개의 비트들은 양자화된 계수용으로 사용되었다. 따라서, 화상(8)의 예측 오버헤드는 OH8= 10,000이다.
복잡성 추정기(901)의 다른 실시예는 제15도에 도시되어 있다. 입력 화상(1500)은 화상 타입 분류기(1501)[유닛(1001)과 동일함]에 의해 화상 타입으로 분류되고, 분류는 신호(1502)[신호(1002)와 동일함], CLk를 통해 인식된다. 분석 인코더(1503 : AE)는 각각의 화상을 압축한다. 첫 번째 압축 방법은 종래의 인코딩 방법(예를 들면, Gonzales 및 Viscito의 알고리즘)을 사용하는 것이다. 두 번째 방법은 모든 매크로블럭들의 양자화 스케일에 대한 고정 값을 사용하는 것이다. 세 번째 방법은 이 특허의 주제인 인코더(예를 들면, 제10도의 복잡성 추정기를 기초로 한 인코더)를 사용하는 것이다. 어떠한 경우든, 화상 k에 대한 오버헤드 추정치는 화상용 AE에서 사용된 비트들의 수 - 양자화 DOT 계수들을 코드화하는데 사용된 비트들의 수로 세트된다. 화상 k의 복잡성은 AE에 의해 화상 k에서 사용된 평균 양자들의 수로 세트된다. 화상 k의 복잡성은 AE에 의해 화상 k에서 사용된 평균 양자화 스케일과 AE에 의해 화상 k의 양자화 계수들을 표현하는데 사용된 비트들의 수의 적으로 세트된다.
비트 생성 모델링기(903 : BPM)는 압축에 의해 야기된 인코딩 왜곡에 대한 비디오 코더에 의해 생성된 비트들의 수에 관련된다. 한 실시예에서, 양자화 스케일의 고정 값은 화상 k에서 사용되고, 값 Qk는 인코딩 왜곡 측도이다. 비트 생성 모델의 예는 제18도에 도시되어 있다. 이 도면에서, 소정의 레벨의 인코딩 왜곡을 획득하는데 필요한 비트들의 수를 나타내는, 화상들(1-3)에 대한 모델들을 도시했다.
각각의 화상에 있어서 일반적인 보다 낮은 레벨들의 왜곡을 위해 더 많은 비트들이 필요함을 주의하자. 이 실시예에서, 소정의 레벨의 코딩 왜곡 화상(3)은 화상(1)과 화상(2) 이어서 가장 많은 비트들을 필요로 한다. 따라서 화상(3)이 가장 복잡하고 화상(2)가 가장 덜 복잡하다고 말할 수 있다.
다수의 다른 비트 생성 모델링기들이 사용될 수 있고, 이들은 다른 왜곡 방법들을 사용할 수 있다. 예를 들어, 적응 양자화가 Gonzales 및 Viscito에 의한 이전에 참조된 특허에 기술되어 있다. 적응 양자화를 사용하여, 매크로블럭의 공간 특성을 기초로 한 양자화 스케일을 생성하기 위해 베이스 양자화 레벨을 세팅한 후 베이스 양자화 레벨을 변경시킴으로써 화질을 세트할 수 있다. 또한, 비트 생성 모델링기는 서로 다른 화상 타입들의 차이 양자화 레벨들을 동등하게 정의할 수 있다. (예를 들어, I 화상의 소정의 양자화 레벨은 B 프레임의 양자화 레벨의 2배와 동일한 품질 레벨을 갖는 것으로 간주될 수 있다.)
복잡성 추정기의 상술된 실시예들 중 임의의 실시예에 있어서, 비트 생성 모델링기는 다음과 같이 동작한다. 양자화 스케일 Qk를 갖는 화상 k를 위해 필요한 비트들의 수는 화상 k의 오버헤드 추정치, 화상 k의 복잡성의 지수 및 화상 k의 양자화 스케일의 합으로서 모델된다. 즉, Bk(Qk) = Ck/ Qk+ OHk이다. 여기서, Bk(Qk)는 양자화 스케일 Qk가 사용될 때 화상 k의 압축 표현에 필요한 비트들의 예측된 수이다.
인코더의 한 실시예에서, 시퀀스는 여러번 압축되고, 제1 압축 패스를 제외한 각각의 압축 패스의 경우, 이전 패스는 분석 인코더(1503)로서 사용된다.
버퍼 엠프티/필 화상 비트 할당기(905)는 제11도에 더 상세히 도시되어 있다.
비트 생성 모델링기(903)에 의해 생성된 모델 Mk, 신호(1100)[신호(904)와 동일함]는 룩 어헤드 메모리(1101)에 저장된다. 저장된 모델들은 비디오 시퀀스의 화상의 비트 할당을 구성하기 위해 룩 어헤드 버퍼 제한 비트 할당기(1104 : LABCBA)에 의해 사용된다. 비트 할당은 신호(1109)를 통해 양자화 스케일 Qk로서 출력된다. LABCBA는 정 비트 레이트 모드에서 동작할 때는 제12도의 플로우챠트를 실행하고 가변 비트 레이트 모드의 경우에는 제14도의 플로우챠트를 실행한다. LABCBA는 이하에 더 상세히 기술될 것이다. LABCBA는 가상 버퍼 검공기(1108)를 사용하여 버퍼 한계의 컴플라이언스에 대해 체크한다. 양호한 실시예에서, 가상 버퍼 검공기(1108)는 MPEG VBV 알고리즘에 대응한다. 물론 인코더가 다른 코딩 환경에서 사용되면, 적합한 버퍼 조건들이 가상 버퍼 검공기(1108)에서 사용되어야만 한다.
정 비트 레이트 동작의 동작의 경우, LABCBA는 다음 특성들에 따라 비트 할당을 결정한다.
1. 화상 k가 코드화된 인코딩 왜곡은 화상 k-1의 제거 후에 버퍼가 엠프티일 때만, 코딩 순서로, 이전 화상 k-1의 인코딩 왜곡으로부터 감소된다.
2. 화상 k가 코드화된 인코딩 왜곡은 화상 k의 제거 전에 버퍼가 풀일 때만, 코딩 순서로, 이전 화상 k-1의 인코딩 왜곡으로부터 증가된다.
상술된 특성들을 갖는 비트 할당의 일례는 버퍼 풀니스 및 대응 왜곡의 도면으로 제16도에 도시되어 있다. 이 예에서, 조건(1)은 화상들(10 및 12)에 적용되고, 조건(2)는 화상들(4, 6, 16 및 18)에 적용된다.
가변 비트 레이트 동작의 경우, LABCBA는 다음 특성들에 따라 비트 할당을 결정한다.
3. 화상 k가 코드화된 인코딩 왜곡은 화상 k-1의 제거 후에 버퍼가 엠프티일 때 또는 조건(3)이 적용되는 때만, 코딩 순서로, 이전 화상 k-1의 인코딩 왜곡으로부터 감소된다.
4. 화상 k가 코드화된 인코딩 왜곡은 화상 k의 제거 전에 버퍼가 풀일 때만, 코딩 순서로, 이전 화상 k-1의 인코딩 왜곡으로부터 증가된다.
5. 화상 k가 코드화된 인코딩 왜곡은 화상 k가 버퍼로부터 제거된 후에, 버퍼가 화상 k의 디스플레이 간격 중에 피크 비트 레이트로 송신된 비트들의 수 보다 작은 수의 입력 비트들로 풀이 되면, 임의의 다른 화상의 인코딩 왜곡 보다 많지 않다.
상술된 특성들(3 및 5)을 갖는 비트 할당의 일례는 버퍼 풀니스 및 대응 인코딩 왜곡의 도면으로 제17도에 도시되어 있다. 이 예에서, 조건(3)은 화상들(3 및 14)에 적용되고 조건(4)는 화상(11)에 적용되며, 조건(5)는 화상들(7, 8 및 17)에 적용된다.
양호한 실시예에서, 인코딩 왜곡은 사용된 양자화 스케일 Qk에 대해 액세스 된다. Qk가 높아지면 왜곡도 커진다. 버퍼는 디코더 버퍼 풀니스가 하한, 예를 들어 버퍼 사이즈의 5% 이하일 때믄 엠프티인 것으로 간주된다. 마찬가지로, 버퍼는 디코더 버퍼 풀니스가 상한, 예를 들어 버퍼 사이즈의 95% 이상일 때만 풀인 것으로 간주된다.
CBR 모드의 조건(1)은 버퍼의 필링을 지연시키기 위해 바로 전에 인코드된 화상들의 평균 인코딩 복잡성 보다 낮은 인코딩 복잡성을 갖는 한 그룹으로서 서브 시퀀스의 화상들을 디코딩할 때 차후 입력 비트들을 누산하는데 최대 디코더 버퍼 공간이 유용하게 됨을 보장한다. 조건(2)는 버퍼의 엠프팅을 지연시키기 위해 바로 전에 인코드된 화상들의 평균 인코딩 복잡성 보다 높은 인코딩 복잡성을 갖는 한 그룹으로서 서브시퀀스의 화상들을 코드화하는데 최대 디코더 버퍼 공간이 유용하게 되었음을 보장한다.
예를 들어, 다음 코딩 시나리오를 생각해 보자. 입력 비디오 시퀀스는 1로부터 번호가 붙여진 n개의 화상들로 이루어진다. 화상(1)이 버퍼로부터 제거되기 전의 초기 디코더 버퍼 풀니스는 Bi이다. 디코딩 버퍼의 사이즈는 Bmax이다. 화상(n)이 제거된 후의 최종 버퍼 풀니스는 Bf이다. 정 비트 레이트 모드에서, 비디오 시퀀스를 코드화하기 위해 할당될 비트들의 총 수는 시퀀스의 길이, 비트 레이트, 및 버퍼의 초기 상태와 최종 상태에 의해 결정된다.
정 비트 레이트 모드의 LABCBA의 동작은 제12도를 참조하여 이제부터 기술될 것이다. LABCBA는 양호하게 프로그램 코드로 내장된다.
단계(1202) 내지 단계(1206)로 형성된 루프는 화상(1)로 개시된 화상들의 점점 더 긴 서브시퀀스들의 할당들을 컴퓨트한다. 부분 할당이라는 용어는 화상의 서브시퀀스의 비트 할당을 나타내는데 사용된다. 특히, 1=kn인 경우, 버퍼로부터 화상 k를 제거한 후에 버퍼가 엠프티가 되게 하는 화상들(1 내지 k)의 할당들을 안다. 또한 (k+1개의 화상들을 통해 버퍼를 필하는 할당을 위해 충분한 비트들이 유용하면) 화상 k+1을 버퍼로부터 제거하기 전에 버퍼가 풀이되게 하는 할당들을 안다. 이러한 모든 할당들은 상술된 CBR 할당 조건들을 만족시킨다.
단계(1201)에서, 화상 카운터는 k는 1로 세트된다. 이 때에, 디코더 버퍼 풀니스는 Bi이다. 단계(1202)는 화상 k+1이 제거되기 전에 버퍼가 풀이 되도록 화상들(1 내지 k)에 임의의 양수의 비트들을 할당할 수 있는지를 테스트한다. 예이면, 단계(1203)가 실행되고, 아니면, 단계(1204)가 실행된다.
단계(1203)에서, 하나가 존재하면, 이전 컴퓨트 부분 할당으로부터 구성되어 화상 k+1이 제거되기 전에 버퍼가 풀이 되게 하는 (휘발성 VBV 버퍼 제약이 아닌) 합법적인 할당을 찾기 위해 탐색이 실행된다. 이 탐색을 실행하는 프로시져는 제13도의 플로우챠트에 도시되어 있고, 이는 후에 기술될 것이다. 이 단계에서 컴퓨트된 부분 할당은 메모리, Top[k]에 저장된다. 단계(1203)이 완료된 후에, 단계(1204)가 실행된다.
단계(1204)에서, 하나가 존재하면, 이전 컴퓨트 부분 할당으로부터 구성되어 화상 k가 제거된 후에 버퍼가 엠프티가 되게 하는 (휘발성 VBV 버퍼 제약이 아닌) 합법적인 할당을 찾기 위해 탐색이 실행된다. 이 단계에서 컴퓨트된 부분 할당은 메모리, Bot[k]에 저장된다. 이 탐색을 실행하는 프로시져는 제13도의 플로우챠트에 도시되어 있고, 이는 후에 기술될 것이다.
단계(1204)가 완료된 후에, 카운터 k가 단계(1205)에서 1만큼 증가된다. 카운터 k는 그 후 단계(1206)에서 n과 비교된다. k가 n과 동일하지 않으면, 단계(1202)가 반복된다. k가 n과 동일하면, 단계(1207)가 실행된다.
단계(1207)에서, 하나가 존재하면, 이전 컴퓨트 부분 할당으로부터 구성되어 화상 n이 제거된 후에 버퍼가 풀니스 Bf가 되게 하는 (휘발성 VBV 버퍼 제약이 아닌) 합법적인 할당을 찾기 위해 탐색이 실행된다. 이 단계에서 컴퓨트된 부분 할당은 LABCBADP 의해 출력된 비트 할당이다. 이 탐색을 실행하는 프로시져는 제13도의 플로우챠트에 도시되어 있고, 이는 후에 기술될 것이다.
단계(1203, 1204 및 1207)들은 모두 특정 개시 및 종료 버퍼 풀니스들을 갖는 상술된 2개의 조건들을 만족시키는 부분 할당을 컴퓨트한다. 또한, 각각의 경우에 이전 화상들에서 버퍼가 풀 또는 엠프티인 할당 종료를 이미 알고 있는 특정 화상에서 할당 종료를 찾아야만 한다. 이 탐색 프로시져는 제13도를 참조하여 기술된다.
이 탐색 프로시져는 4개의 파라미터들, k_i, k_f, Bii 및 Bff를 입력으로 한다. 이탐색 프로시져는 화상 k_i가 제거되기 전에 버퍼 풀니스 Bii로 시작해서 화상 k_f가 제거된 후에 버퍼 풀니스 Bff로 종료되는 화상들 (k_i 내지 k_f)의 비트 할당을 컴퓨트한다. 합법적인 할당이 존재하면, 화상들(k_i 내지 k_f-1)로부터 버퍼를 필 및 엠프티하는 할당들을 이미 알고 있다. (이들은 어레이들 Top 및 Bot에 저장된다.)
단계(1301)는 초기 버퍼 풀니스가 Bii이면 화상 k_f가 제거된 후의 최종 버퍼 풀니스가 Bff와 동일하게 되도록 화상들(k_i 내지k_f)에 할당될 비트들의 총 수와 동일하게 Bt를 세트한다. 단계(1302)는 화상들(k_i 내지 k_f)을 코드화 하는 데 사용될 때, 비트 생성 모델링기(903)에 의해 출력된 비트 생성 모델에 따라 Bt개의 비트들을 야기하는 양자화 스케일 Q의 값을 계산한다. 고정된 Q 값에 의해 수반된 할당이 합법적일 수 없고, 버퍼 언더플로우 또는 오버플로우를 야기할 수 있음을 주의하자. 상술된 비트 생성 모델의 양호한 실시예에서, 일정한 값 Q는 비트들의 타겟수 Bt와 화상들(k_i 내지 k_f)의 오버헤드 OHk의 합간의 차이에 의해 분할된 화상들(k_i 내지 k_f)의 복잡성들 Ck의 합으로서 계산될 수 있다.
단계(1303)는 가상 버퍼 검공기에 따라 일정한 Q 할당이 유효한지를 테스트한다. 일정한 Q 할당이 유효하면, 결과로 저장되고 탐색은 종료된다. 일정한 Q 할당이 유효하지 않으면, 단계(1305)가 실행된다. 단계(1305)에서, 카운터 j는 k_f와 동일하게 세트된다.
단계(1306)는 화상 j-1이 제거된 후에 버퍼가 엠프티이면 최종 버퍼 풀니스가 Bf이도록 화상들(j 내지 k_f)에 할당될 비트들의 총 수와 동일하게 Bt를 세트한다. 단계(1307)는 화상들(j 내지 k_f)을 코드화하는데 사용될 때, 비트 생성 모델링기에 의해 출력된 비트 생성 모델에 따라 Bt개의 비트들을 야기하는 양자화 스케일 Q의 값을 계산한다. (이 할당을 합법적일 수 없다.) 단계(1308)는 화상 j-1이 제거된 후에 버퍼가 엠프티가 되게 하는 이전 컴퓨트 부분에 할당에 사용된 Q의 최종 값, 즉, Bot[j-1]에 저장된 부분 할당의 Q의 최종 값과 동일하게 가변 lastQ를 세트한다.
단계(1309)는 화상 j-1의 제거 후에 버퍼 풀니스가 초기 엠프티이면 가상 버퍼 검공기에 따라 단계(1307)에서 계산된 일정한 Q를 사용하는 화상들(j 내지 k_f)에 대한 할당이 유효한지를 테스트하고, 또한 Q가 lastQ 보다 작은지를 테스트한다. 두 조건이 모두 만족되면, Bot[j_1]에 저장된 부분 할당을 단계(1307)에서 컴퓨트된 일정한 Q 할당에 연결함으로써 단계(1310)에서 할당이 구성된다. 구성된 할당은 결과로 저장되고 탐색은 종료된다. [최종 할당의 경우, CBR 할당의 조건(1) 및 조건(2)가 (할당 Bot[]의 경우 조건들이 만족되었기 때문에) 화상들(k_i 내지 j-1)에 대해, (모두 동일한 Q를 사용하기 때문에) 화상들(j+1 내지 k_f)에 대해, 또한 (이 화상이 화상 j-1 보다 낮은 Q를 갖지만, 화상 j-1가 제거된 후에 버퍼가 엠프티이기 때문에) 화상 j에 대해 만족됨을 주지하자. 따라서, 최종 할당의 경우 조건들(1 및 2)는 모든 화상들에 대해 만족되었다.] 조건들이 만족되지 않으면, 단계(1311)가 실행된다.
단계(1311)는 화상 j가 제거되기 전에 버퍼가 풀이면 최종 버퍼 풀니스가 Bf이도록 화상들(j 내지 k_f)에 할당될 비트들의 총 수와 동일하게 Bt를 세트한다. 단계(1312)는 화상들(j 내지 k_f)을 코드화하는데 사용될 때, 비트 생성 모델링기(903)에 의해 출력된 비트 생성 모델에 따라 Bt개의 비트들을 야기하는 양자화 스케일 Q의 값을 계산한다. 단계(1313)는 화상 j가 제거되기 전에 버퍼가 풀이 되게하는 이전 컴퓨트 부분 할당에 사용된 Q의 최종 값, 즉, Top[j-1]에 저장된 부분 할당의 Q의 최종 값과 동일하게 가변 lastQ를 세트한다.
단계(1314)는 화상 j가 제거 전에 버퍼 풀니스가 초기 풀이면 가상 버퍼 검공기에 따라 단계(1312)에서 계산된 일정한 Q를 사용하는 화상들(j 내지 k_f)에 대한 할당이 유효한지를 테스트하고, 또한 Q가 lastQ 보다 큰지를 테스트한다. 두 조건이 모두 만족되면, Top[j-1]에 저장된 부분 할당을 단계(1312)에서 컴퓨트된 일정한 Q 할당에 연결함으로써 단계(1315)에서 할당이 구성된다. 구성된 할당은 결과로 저장되고 탐색은 종료된다. [단계(1310)에서 구성된 할당에 있어서, 단계(1315)에서 구성된 할당은 CBR 할당 조건들(1 및 2)을 만족시킨다.] 조건들이 만족되지 않으면, 단계(1316)가 실행된다.
단계(1316)에서, 카운터 j는 1만큼 감소되고 제어 흐름은 단계(1317)로 진행한다. 단계(1317)에서, 카운터 j는 k_i와 비교된다. j가 k_i보다 크면, 단계(1306)이 실행되고, 크지 않으면 탐색이 종료된다.
워크 스루(walk-through) 방법이 일례로 제공된다. 이 예에서, 비디오 시퀀스는 5개의 화상들로 이루어진다. 이 화상들은 복잡성 추정기(901)에 의해 처리되어, 제21도에 도시된 테이블의 모델 파라미터들을 생성한다. 이 파라미터들은 룩어헤드 메모리(1101)에 저장된다. 다른 지시가 없는한, 수치들은 소수점 이하 2번째 자리에서 라운드된다.
가상 버퍼 검공기(1108)는 다음 파라미터 값들에 따라 동작한다. VBV 버퍼의 사이즈는 Bmax는 400,000 비트이다. 제1 화상을 제거하기 전의 초기 버퍼 풀니스 Bi는 250,000 비트이다. 화상 디스플레이 간격 당 버퍼에 입력되는 비트들의 수 Ba는 200,000이다. 비트들의 타겟 수 Btgt는 1,000,000이다. 주어진 Bi, Ba 및 Btgt에 따라, 최종 화상이 제거된 후의 최종 버퍼 풀니스 Bf는 50,000 비트이다. 이 예에서, 버퍼는 풀니스가 Bmax일 때 풀이고 풀니스가 0일 때 엠프티인 것으로 간주된다.
단계(1201)에서, 화상 카운터 k는 1로 세트된다. 이 때에, 디코더 버퍼 풀니스는 Bi 또는 250,000이다. 단계(1202)는 화상(2)가 제거되기 전에 버퍼가 풀이 되도록 화상(1)에 임의의 양수의 비트들을 할당할 수 있는지를 테스트한다. 200,000개의 비트들이 하나의 화상 디스플레이 간격 내에 버퍼에 입력되고 버퍼 풀니스가 현재 250,000이기 때문에, 테스트는 통과되어 단계(1203)가 실행된다. 단계(1203)에서, 화상(2)가 제거되기 전에 버퍼가 풀이 되게 하는 화상(1)에 대한 할당을 위해 탐색이 실행된다. 이 할당에는 하나의 화상만이 있기 때문에, 이 탐색은 사소한 일이고, 이 단계들에 대한 설명은 제13도의 플로우챠트를 참조하여 후에 보다 상세히 기술될 것이다. 그러나, 이 탐색 프로시져는 k_i=1, k_f=1, Bii=250,000 및 Bff=200,000으로 야기됨을 주의해야만 한다. 탐색의 결과는 136인 Q를 사용하여 화상(1)에 50,000 비트들을 할당하는 비트 할당이고 이 할당은 Top[1]에 저장된다.
단계(1204)에서, 화상(1)이 제거된 후에 버퍼가 엠프티가 되게 하는 합법적인 할당을 찾기 위해 탐색이 실행된다. 제13도의 이 탐색 프로시져는 k_i=1, k_f=1, Bii=250,000 및 Bff=0으로 야기된다. 결과는 8인 Q를 사용하여 화상(1)에 250,000 비트들을 할당하는 할당이고 이 할당은 Bot[1]에 저장된다.
단계(1205) 후에, 카운터 k가 값 2를 갖는다. 카운터 k가 5와 동일하지 않기 때문에, 단계(1202)가 반복된다. 화상(3)이 제거되기 전에 버퍼를 필하기 위해 화상들(1 및 2)이 디스플레이될 때에, 충분한 비트들이 버퍼에 입력되기 때문에, 단계(1203)이 실행된다.
제13도의 탐색 프로시져는 파라미터들 k_i=1, k_f=2, Bii=250,000 및 Bff=200,000으로 한다. 단계(1301)에서, Bt는 250,000으로 계산된다. 단계(1302)에서, Q는 13.47로 계산된다. 이 Q 값을 사용하는 화상들(1 내지 2)에 대한 비트 할당은 버퍼가 오버플로우 또는 언더플로우되게 하지 않는다. 따라서, 단계(1304)가 실행되고, 일정한 Q 할당이 화상들(1 내지 2)에 대해 복귀된다. 이 할당은 Top[2]에 저장된다.
단계(1204)에서, 제13도의 탐색 프로시져는 파라미터들, k_i=1, k_f=2, Bii=250,000 및 Bff=0으로 된다. 단계(1301)에서, Bt는 450,000으로 계산된다. 단계(1302)에서, Q는 6.69로 계산된다. 이 Q 값을 사용하는 화상들(1 내지 2)에 대한 비트 할당은 버퍼가 언더플로우되게 한다. 따라서, 단계(1305)가 실행된다. 이 단계에서 카운터 j는 값 2를 갖는다. 단계(1306)에서, Bt는 200,000로 계산된다. 단계(1307)에서, Q는 5.19로 계산된다. 단계(1308)에서, lastQ는 Bot[1]에 저장된 할당에서 사용된 최종 값, 즉, 8로 세트된다. 단계(1305)에서 계산된 Q를 사용하는 화상(2)에 대한 할당은 유효하고, Q lastQ이다. 따라서, 단계(1310)이 실행되고, Bot[1]을 화상(2)에 대한 막 컴퓨트된 일정한 Q 할당과 연결함으로써 구성된 할당이 화상들(1 내지 2)에 대해 복귀된다. 이 할당은 Bot[2]에 저장된다.
단계들(1202 내지 1206)로 이루어지는 루프는 단계(1206)에서 k가 5와 동일하게 될 때까지 실행된다. 컴퓨트된 부분 할당들은 제22도의 테이블로 제공되고, 대응 양자화 스케일들은 제23도에 도시되어 있다.
단계(1207)에서, 제13도의 탐색 프로시져는 파라미터들, k_i=1, k_f=5, Bii=250,000 및 Bff=50,000으로 된다. 단계(1301)에서, Bt는 1,000,000으로 계산된다. 단계(1302)에서, Q는 6.84로 계산된다. 이 Q 값을 사용하는 화상들(1 내지 5)에 대한 비트 할당은 버퍼가 언더플로우되게 한다. 따라서, 단계(1305)가 실행된다. 이 단계에서 카운터 j은 값 5를 갖는다. 단계(1306)에서, Bt는 150,000로 계산된다. 단계(1307)에서, Q는 21로 계산된다. 단계(1308)에서, lastQ는 Bot[4]에 저장된 할당에서 사용된 lastQ, 즉, 3.12로 세트된다. 단계(1305)에서 계산된 Q를 사용하는 화상(5)에 대한 할당은 유효하지만, Q는 lastQ 보다 작지 않다. 따라서, 단계(1311)이 실행된다. 단계(1311)에서, Bt는 350,000으로 계산된다. 단계(1312)에서, Q는 7로 계산된다. 단계(1313)에서, lastQ는 Top[4]에 저장된 할당에서 사용된 lastQ, 즉, 6으로 세트된다. 단계(1313)에서 계산된 Q를 사용하는 화상(5)에 대한 할당은 유효하지만, Q lastQ이다. 따라서, 단계(1315)가 실행되고 Top[4]를 화상(5)에 대한 막 컴퓨트된 일정한 Q 할당과 연결함으로써 구성된 할당이 화상들(1 내지 5)을 위해 복귀된다. 이 할당(가장 가까운 정수로 라운드됨)은 LABCBA에 의해 복귀되고 제24도에 대응 양자화 스케일들로 도시된다. 이 할당의 시간에 따른 버퍼 풀니스의 상황 도면은 제19도에 도시되어 있다.
VBR 모드의 조건(3)은 버퍼의 필링을 지연시키기 위해 바로 전에 인코드된 화상들의 평균 인코딩 복잡성 보다 낮은 인코딩 복잡성을 갖는 한 그룹으로서 서브시퀀스의 화상들을 디코딩할 때 차후 입력 비트들을 누산하는데 최대 디코더 버퍼 공간이 유용하게 됨을 보장한다. 조건(4)는 버퍼의 엠프팅을 지연시키기 위해 바로 전에 인코드된 화상들의 평균 인코딩 복잡성 보다 높은 인코딩 복잡성을 갖는 한 그룹으로서 서브시퀀스의 화상들을 코드화하는데 최대 버퍼 공간이 유용하게 되었음을 보장한다. 화상이 버퍼로부터 제거되고 다음 화상이 제거되기 전에 버퍼가 필하면, 다음 화상이 제거되기 전에 버퍼 풀니스를 변경시키지 않고 화상이 보다 많은 비트들을 사용할 수 있다(너무 많은 비트들이 화상에 추가되지 않는 한, 버퍼 풀니스는 여분의 비트가 추가되는지의 여부에 관계 없이 Bmax이다). 따라서, (사용된 비트들의 총 수가 증가되더라도) 임의의 언더플로우를 야기하지 않고 비트들이 이 화상에 추가될 수 있다. 이것은 품질이 균일하게 되도록 이 화상의 시퀀스의 임의의 지역으로부터 비트들이 전달될 수 있음을 의미한다. 화상은 임의의 다른 화상의 왜곡 보다 큰 왜곡을 갖지 않는 것이 바람직하다. 조건(5)는 이것이 그러한 경우임을 보장한다.
가변 비트 레이트 모드의 LABCBA의 동작은 제14도를 참조하여 기술될 것이다. LABCBA는 양호하게 프로그램 코드로 내장된다.
VBR 모드에서, LABCBA는 화상들을 2개의 타입들 : 이지(easy) 및 하드(hard)로 개념적으로 분류한다. 이지 화상들은 최상 품질 레벨로, 즉, 최소 양자화 스케일로 코드화될 화상들이다. 하드 화상들은 최하 품질 레벨로, 즉, 최고 양자화 스케일로 코드화될 화상들이다.
코드화될 제1 화상은 FIRST로 표시되고, 코드화될 최종 화상은 LAST로 표시된다. 화상들 FIRST 및 LAST에 할당된 비트들의 총 수는 Btgt로 표시된다. 초기 버퍼 풀니스는 Binit로 표시되고, Bmax는 버퍼가 풀이 되게 하는 비트들의 수를 나타낸다.
단계(1401)에서, 모든 화상들은 이지로 마크되고, 변수 Beasy는 Btgt와 동일하게 세트된다. 단계(1402)에서, last_over는 FIRST-1로, bf는 Binit로, i는 FIRST로 세트된다. 변수 bf는 이 때의 버퍼 풀니스를 나타낸다.
단계(1403)에서, 일정한 Q 할당은 Beasy를 비트들의 총 수로 사용하기 위해 모든 이지 화상들에 대해 컴퓨트된다.
단계(1404)에서, 화상 i가 이지인지의 여부가 테스트된다. 화상 i가 이지가 아니면, bf는 단계(1405)에서 엠프티로 세트되고 계속해서 단계(1415)가 실행된다. 화상 i가 이지이면, 단계(1406)이 실행된다. 단계(1406)에서, bf는 화상 i에 이전에 할당된 비트들의 수만큼 감소된다. 그 후 단계(1407)에서, 화상 i가 제거되기 전의 버퍼 풀니스 bf가 주어졌을 때, 화상 i에 대한 할당이 화상 i가 제거된 후에 버퍼가 언더플로우되게 하는지를 결정하기 위해 체크된다. 버퍼 언더플로우가 발생하면, 단계(1408)에서, last_over+1과 j사이의 화상들은 하드로 마크되고 비트들의 총 수는 정 비트 레이트 동작 모드 가정 하에서, 화상 last_over+1이 제거되기 전에 버퍼가 풀이면 화상 j가 제거된 후에 엠프티 버퍼가 되게 하는데 필요한 비트들의 수에 대응하는 수로 할당되고, 변수 bf는 엠프티로 세트되고, 계속해서 단계(1410)이 실행된다. 버퍼가 언더플로우가 아니면, 단계(1410)이 실행되고, 여기서 bf는 화상 i가 제거된 후에 버퍼에 입력되는 비트들의 수만큼 증가된다.
단계(1411)에서, bf는 비트들이 한계 없이 피크 비트 레이트로 버퍼에 입력되는 때에 버퍼가 오버플로우되었는지를 조사하기 위해 Bmax와 비교된다. 그렇다면, bf는 Bmax로 세트되고, last_over는 i로 세트되고, 계속해서 단계(1415)가 실행된다. 그렇지 않으면, 단계(1413)은 화상 i+1이 하드인지를 테스트하고 bf가 Bmax보다 작은지를 테스트한다. 두 조건이 모두 참이면, 단계(1414)가 실행되고, 그렇지 않으면 단계(1415)가 실행된다. 단계(1414)에서, last_over+1과 j 사이의 화상들은 하드로 마크되고 비트들의 총 수는 정 비트 레이트 동작 모드 가정하에서, 화상 last_over+1이 제거되기 전에 버퍼가 풀이면 화상 j+1이 제거되기 전에 풀 버퍼가 되게 하는데 필요한 비트들의 수에 대응하는 수로 할당되고, 변수 bf는 엠프티로 세트되고, bf가 Bmax 보다 크면 bf는 Bmax로 세트되고, 계속해서 단계(1415)가 실행된다.
단계(1415)에서, 카운터 i는 1씩 증가된다. 단계(1416)에서, i는 LAST와 비교된다. i가 LAST 보다 크지 않으면, 단계(1404)가 실행되고, 크면, 단계(1417)이 실행된다. 단계(1417)에서, 비트들의 타겟 수 Btgt 및 이지 화상과 하드 화상에 할당된 비트들의 총 수 간의 차이가 계산되어 변수 extra_bits에 저장된다. 단계(1418)에서, extra_bits는 0과 비교된다. extra_bits가 0이 아니면, Beasy는 extra_bits와 이지 화상들에 할당된 비트들의 수의 합으로 세트되고, 계속해서 단계(1402)가 실행된다. 그렇지 않으면, 단계(1420)이 실행된다.
단계(1420)에서, 연속 하드 화상들의 각각의 최대 세그먼트는 상술된 방법을 사용하여 CBR 모드에 따라 주어진 할당으로, 버퍼는 초기에는 풀이고 결국에는 엠프티가 된다. 이 때의 최종 비트 할당은 LABCBA로부터 출력된다.
상술된 가변 비트 레이트 비트 할당에 대한 워크 스루 방법이 일례로 제공된다. 이 예에서, 비디오 시퀀스는 5개의 화상들로 이루어진다. 이 화상들은 복잡성 추정기(901)에 의해 처리되어, 제21도에 도시된 테이블의 모델 파라미터들을 생성한다. 이 파라미터들은 룩 어헤드 메모리(1101)에 저장된다. 다른 지시가 없는 한, 수치들은 소수점 이하 2번째 자리에서 라운드된다.
가상 버퍼 검공기는 다음 파라미터 값들에 따라 동작한다. VBV 버퍼의 사이즈는 Bmax는 400,000 비트이다. 제1 화상을 제거하기 전의 초기 버퍼 풀니스 Bi는 250,000 비트이다. 하나의 화상 디스플레이 간격에서 버퍼에 입력될 수 있는 비트들의 최대 수 Ba는 200,000이다. 비트들의 타겟 수는 950,000이다. 이 예에서, 버퍼는 풀니스가 Bmax일 때 풀이고 풀니스가 0일 때 엠프티인 것으로 간주된다.
제14도의 플로우챠트는 FIRST = 1 및 LAST = 5와 상술된 다른 파라미터들을 참조한다.
단계(1401)에서, 모든 화상들은 이지로 마크되고 Beasy는 950,000으로 세트된다. 단계(1402)에서, last_over는 0으로 세트되고, bf는 250,000으로 세트되고, i는 1로 세트된다. 단계(1403)에서, 950,000 비트의 총 할당을 제공하기 위해 일정한 Q 할당이 화상들(1 내지 5)에 대해 컴퓨트된다. 이 할당은 일정한 Q 값, 7.26을 사용하고, 화상들(1 내지 5)에 271,610 비트, 147,203 비트, 84,365 비트, 107,627 비트 및 339,195 비트를 각각 할당한다. 화상(1)이 현재 이지이기 때문에, 단계(1404)의 테스트는 단계(1406)으로 분기한다. 여기서, bf는 271,610만큼 감소되고, 화상(1)에 대한 현 할당은 bf = -21,610을 야기한다. 이 값은 음수이기 때문에, 화상(1)에 대한 현 할당은 언더플로우를 야기한다. 따라서 단계(1407)은 단계(1408)로 분기하여, 화상(1)은 하드로 마크되고 250,000개의 비트들이 화상(1)에 할당된다. (이 250,000 값은 버퍼의 언더플로우를 야기하지 않고 화상(1)에 할당될 수 있는 비트들의 최대 수이기 때문에 사용된다. 이 단계에서 하나 보다 많은 화상이 하드로 마크되면, 화상 i가 제거될 때 버퍼 언더플로우를 야기하지 않고 화상들에 할당될 수 있는 비트들의 최대 총 수는 몇몇 방식으로 동일한 화상들에 대해, 즉, 균일하게 분배된다.) 단계(1409)는 이 예에서 엠프티 값인 0으로 bf를 세트하고, 단계(1410)으로 진행한다. 단계(1410)에서, bf는 하나의 화상 디스플레이 간격에서 버퍼에 입력될 수 있은 비트들의 최대 수인 200,000 비트 만큼 증가될 수 있다. bf가 Bmax 보다 작기 때문에, 단계(1411)의 테스트는 단계(1413)으로 분기한다. 화상(2)가 이지이기 때문에, 단계(1415)가 실행된다.
단계(1404) 내지 단계(1416)으로 이루어진 루프는 단계(1416)에서 i가 6과 동일하게 될 때까지 실행된다. 다른 화상은 이 때까지 하드로 마크되지 않는다. 따라서, 이 때에 678,390 비트들은 이지 화상들에 할당되었고 250,000 비트들은 하드 화상에 할당되었다. 단계(1417)에서, extra_bits는 21,610으로 컴퓨트된다. 이 값은 0 보다 크기 때문에, 단계(1418)의 테스트는 단계(1419)로 분기하게 하여, Beasy가 700,000 비트로 세트된다. 프로세스는 단계(1402)로 진행된다. 단계(1403)에서, 7인 일정 Q가 비트들을 이지 화상들, 즉, 화상들(2 내지 5)에 할당하는데 사용된다. 단계들(1404 내지 1416)로 이루어진 루프는 하드로 마크된 임의의 추가 화상 없이 실행된다. 단계(1417)이 달성될 때, extra_bits는 0 값이 할당되고, 단계(1420)이 단계(1418) 후에 실행된다. 단계(1420)에서, 상술된 CBR 비트 할당 프로시져는 연속 하드 화상들의 최대 서브시퀀스들을 위해 야기되고, 각각의 서브시퀀스 직전 및 직후의 버퍼 상태들에 의해 개시 및 종료 버퍼 풀니스들이 정의된다. 이 예에서, CBR 프로시져는 250,000 비트와 동일한 개시 버퍼 풀니스와 0 비트의 종료 버퍼 풀니스를 갖는 화상(1)을 위해 야기된다. 따라서, 250,000 비트들이 이 때에 화상(1)에 할당된다. 최종 할당(가장 가까운 정수로 라운드됨) 및 대응 양자화는 제25도에 도시되어 있다. 이 할당에 대한 시간에 따른 버퍼 풀니스의 상황 도면은 제20도에 도시되어 있다. LABCBA로부터 비트 할당이 주어지면, 화상 코더(908)는 비디오 시퀀스를 인코드한다.
제9도의 인코더는 제26도에 도시된 인코딩/디코딩 시스템에서 사용될 수 있다. 인코드된 비트 스트림 CDk는 송신 매체를 통해 화상 디코더(2501)에 직접 송신되거나 기억 소자(2602)에 먼저 저장된다. 예를 들어 기억 소자는 하드 (마그네틱) 드라이브 또는 컴팩트 디스크일 수 있다. 예를 들어, 송신 매체는 동축 케이블 또는 위성 송신 링크일 수 있다. 압축 데이타 비트 스트림이 먼저 기억 소자에 송신되면, 그 후 화상 디코더(2601)에 송신된다. 화상 디코더는 비트 스트림 CDk를 디코드하여 신호(2603)로 도시된 비디오 데이타를 생성한다. 그 후 비디오 데이타는 디스플레이(2604)에서 디스플레이된다.
본 발명이 MPEG 인코딩에 대해 기술되었지만, 다른 비디오 코딩 기술 또는 논비디오 데이타에도 사용될 수 있다. 임의의 디지탈 정보가 코딩 유닛으로 세그먼트될 수 있고, (고정 레이트 또는 가변 레이트 인코딩을 위해) 비트들이 코딩 유닛들에 할당할 수 있다. 코딩 유닛들은 그 후 할당을 기초로 인코드될 수 있다. 상술된 비트 할당 기술은 데이타가 비디오인지의 여부와 무관하게 작업한다. 예를 들어, 디지탈화된 음성은 1 ms 프레임들(이 프레임들은 비디오 화상들과 동일한 역할을 함)로 세그먼트될 수 있고, 비트들은 각각의 ms의 오디오(코딩 유닛들)를 위해 할당될 수 있다.
본 발명은 양호한 실시예를 통해 기술되었지만, 다수의 변경 및 향상이 본 기술 분야에 숙련된 자들에 의해 이루어질 수 있다. 따라서, 양호한 실시예는 일례로 제공된 것으로 제한의 의미는 없음을 알 수 있다. 본 발명의 범위는 첨부된 청구 범위에 의해 정의된다.

Claims (20)

  1. 정렬된 코딩 유닛들의 인코딩 방법에 있어서, 할당된 비트들의 수를 기초로 각각의 코딩 유닛의 코딩 왜곡들을 모델링하는 단계, 디코더 버퍼부로부터 이전 코딩 유닛을 제거한 후에 모델 디코더 버퍼의 풀니스(fullness)가 제1 수 미만일 때만 제1 코딩 유닛을 제외한 각각의 코딩 유닛의 인코딩 왜곡이 이전 코딩 유닛의 인코딩 왜곡 보다 낮고, 디코더 버퍼부로부터 이전 코딩 유닛을 제거한 후에 디코더 버퍼 풀니스가 제2 수 초과일 때만 제1 코딩 유닛을 제외한 각각의 코딩 유닛의 인코딩 왜곡이 이전 코딩 유닛의 인코딩 왜곡보다 높다는 규칙에 따라 각각의 코딩 유닛에 할당하는 단계, 및 상기 할당을 기초로 적어도 하나의 코딩 유닛들을 인코딩 하는 단계를 포함하는 정렬된 코딩 유닛들의 인코딩 방법.
  2. 제1항에 있어서, 상기 데이타는 비디오 데이타인 정렬된 코딩 유닛들의 인코딩 방법.
  3. 제2항에 있어서, 상기 코딩 유닛트들은 화상들인 정렬된 코딩 유닛들의 인코딩 방법.
  4. 제2항에 있어서, 상기 모델링 단계는 비디오 시퀀스를 인코딩하는 단계 및 상기 인코딩을 기초로, 할당된 비트들의 수를 기초로 시퀀스의 일부분의 코딩 왜곡들을 모델링하는 단계를 포함하는 정렬된 코딩 유닛들의 인코딩 방법.
  5. 제2항에 있어서, 상기 모델링 단계는 비디오 시퀀스를 보상하는 단계 및 상기 모션 보상을 기초로, 할당된 비트들의 수를 기초로 시퀀스의 일부분의 코딩 왜곡들을 모델링하는 단계를 포함하는 정렬된 코딩 유닛들의 인코딩 방법.
  6. 제2항에 있어서, 상기 왜곡은 양자화 레벨인 정렬된 코딩 유닛들의 인코딩 방법.
  7. 정렬된 코딩 유닛들의 코딩 방법에 있어서, 할당된 비트들의 수를 기초로 한 각각의 코딩 유닛들 집합의 왜곡들을 모델링하는 단계, 디코더 버퍼부로부터 부집합의 이전 코딩 유닛을 제거한 후에 모델 디코더 버퍼의 풀니스가 제1 임계치 미만일 때만 제1 코딩 유닛을 제외한 각각의 코딩 유닛의 인코딩 왜곡이 부집합의 이전 코딩 유닛의 인코딩 왜곡 보다 낮고, 디코더 버퍼부로부터 부집합의 이전 코딩 유닛을 제거한 후에 디코더 버퍼 풀니스가 제2 임계치 초과일 때만 제1 코딩 유닛을 제외한 부집합의 각각의 코딩 유닛의 인코딩 왜곡이 부집합의 이전 코딩 유닛의 인코딩 왜곡보다 높다는 규칙에 따라 코딩 유닛 부집합에 제1 수의 비트들을 할당하는 단계, 제1 수의 비트들의 할당에 응답해서, 디코더 버퍼부로부터 이전 코팅 유닛을 제거한 후에 디코더 버퍼 풀니스가 제3 임계치 미만일 때만 제1 코딩 유닛을 제외한 각각의 코딩 유닛의 인코딩 왜곡이 이전 코딩 유닛의 인코딩 왜곡 보다 낮고, 버퍼로부터 이전 코딩 유닛을 제거한 후에 디코더 버퍼 풀니스가 제4 임계치 초과일 때만 제1 유닛을 제외한 각각의 유닛의 인코딩 왜곡이 이전 코딩 유닛의 인코딩 왜곡 보다 높다는 규칙에 따라 모든 코딩 유닛에 제2 수의 비트들을 할당하는 단계; 및 상기 할당을 기초로 적어도 하나의 코딩 유닛들을 인코딩하는 단계를 포함하는 정렬된 코딩 유닛들의 인코딩 방법.
  8. 제7항에 있어서, 상기 데이타는 비디오 데이타인 정렬된 코딩 유닛들의 인코딩 방법.
  9. 제8항에 있어서, 상기 코딩 유닛들은 화상들인 정렬된 코딩 유닛들의 인코딩 방법.
  10. 정보를 인코딩하기 위한 장치에 있어서, 인코드될 각각의 코딩 유닛의 비트 사용에 대한 코딩 왜곡들을 모델링하기 위한 비트 생성 모델링기(bit production modeler), 디코더 버퍼부로부터 이전 코딩 유닛을 제거한 후에 모델 디코더 버퍼의 풀니스가 제1 수 미만일 때만 제1 코딩 유닛을 제외한 각각의 코딩 유닛의 인코딩 왜곡이 이전 코딩 유닛의 인코딩 왜곡 보다 낮고, 디코더 버퍼부로부터 이전 코딩 유닛을 제거한 후에 디코더 버퍼 풀니스가 제2 수 초과일 때만 제1 코딩 유닛을 제외한 각각의 코딩 유닛의 인코딩 왜곡이 이전 코딩 유닛의 인코딩 왜곡보다 높다는 규칙에 따라 각각의 코딩 유닛에 비트들을 할당하기 위해, 상기 비트 생성 모델링기로부터의 출력을 수신하기 위해 접속된 할당기, 및 상기 비트 할당기로부터의 출력을 수신하기 위해 접속된 인코더를 포함하는 정보 인코딩 장치.
  11. 정렬된 코딩 유닛들의 가변 비트 레이트 비트 인코딩 방법에 있어서, 할당된 비트들의 수를 기초로 한 각각의 코딩 유닛의 코딩 왜곡들을 모델링하는 단계, 디코더 버퍼부로부터 이전 코딩 유닛을 제거한 후에 모델 디코더 버퍼의 풀니스가 제1 수 미만일 때만 제1 코딩 유닛을 제외한 각각의 코딩 유닛의 인코딩 왜곡이 이전 코딩 유닛의 인코딩 왜곡 보다 낮고, 디코더 버퍼부로부터 이전 코딩 유닛을 제거한 후에 디코더 버퍼 풀니스가 제2 수 초과일 때만 제1 코딩 유닛을 제외한 각각의 코딩 유닛의 인코딩 왜곡이 이전 코딩 유닛의 인코딩 왜곡보다 높고, 디코더 버퍼부로부터 다음 코딩 유닛을 제거하기 전에 디코더 버퍼 풀니스가 제3 수 초과이면 최종 코딩 유닛을 제외한 각각의 코딩 유닛의 인코딩 왜곡이 임의의 다른 코딩 유닛의 인코딩 왜곡 보다 낮지 않다는 규칙에 따라 각각의 코딩 유닛에 다수의 비트들을 할당하는 단계; 및 상기 할당을 기초로 적어도 하나의 코딩 유닛들을 인코딩하는 단계를 포함하는 정렬된 코딩 유닛들의 가변 비트 레이트 비트 인코딩 방법.
  12. 제11항에 있어서, 상기 데이타는 비디오 데이타인 정렬된 코딩 유닛들의 가변 비트 레이트 비트 인코딩 방법.
  13. 제12항에 있어서, 상기 코딩 유니트들은 화상들인 정렬된 코딩 유닛들의 가변 비트 레이트 비트 인코딩 방법.
  14. 제12항에 있어서, 상기 모델링 단계는 비디오 시퀀스를 인코딩하는 단계 및 상기 인코딩을 기초로, 할당된 비트들의 수를 기초로 시퀀스의 일부분의 코딩 왜곡들을 모델링하는 단계를 포함하는 정렬된 코딩 유닛들의 가변 비트 레이트 비트 인코딩 방법.
  15. 제12항에 있어서, 상기 모델링 단계는 비디오 시퀀스를 모션 보상하는 단계 및 상기 모션 보상을 기초로, 할당된 비트들의 수를 기초로 시퀀스의 일부분의 코딩 왜곡들을 모델링하는 단계를 포함하는 정렬된 코딩 유닛들의 비트 레이트 비트 인코딩 방법.
  16. 제12항에 있어서, 상기 왜곡은 양자화 레벨인 정렬된 코딩 유닛들의 가변 비트 레이트 비트 인코딩 방법.
  17. 정렬된 코딩 유닛들의 가변 비트 레이트 비트 인코딩 방법에 있어서, 할당된 비트들의 수를 기초로 코딩 유닛들 집합의 각각의 코딩 유닛의 코딩 왜곡들을 모델링하는 단계, 제1 집합의 각각의 코딩 유닛이 임의의 다른 코딩 유닛의 인코딩 왜곡 보다 크지 않은 인코딩 왜곡을 갖고 제 2 집합이 모든 다른 코딩 유닛을 포함하도록 제1 집합의 코딩 유닛들로 코딩 유닛들을 세그먼트하는 단계, 디코더 버퍼부로부터 다른 코딩 유닛을 제거한 후에 모델 디코더 버퍼의 풀니스가 제1 수 미만일 때만 제2 집합의 다른 코딩 유닛을 따르는 제2 집합의 각각의 코딩 유닛의 인코딩 왜곡이 다른 코딩 유닛의 렌코딩 왜곡 보다 낮고, 버퍼부로부터 다른 코딩 유닛을 제거한 후에 디코더 버퍼 풀니스가 제2 수 초과일 때만 제2 집합의 다른 코딩 유닛을 제외한 제2 집합의 각각의 코딩 유닛의 인코딩 왜곡이 다른 코딩 유닛의 인코딩 왜곡 보다 높다는 규칙에 따라 각각의 코딩 유닛에 할당하는 단계, 제2 집합의 코딩 유닛들을 위해 사용되지 않은 비트들을 제1 집합의 코딩 유닛들에 할당하는 단계, 및 상기 할당을 기초로 적어도 하나의 코딩 유닛들을 인코딩하는 단계를 포함하는 정렬된 코딩 유닛들의 가변 비트 레이트 비트 인코딩 방법.
  18. 제17항에 있어서, 상기 데이타는 비디오 데이타인 정렬된 코딩 유닛들의 가변 비트 레이트 비트 인코딩 방법.
  19. 제18항에 있어서, 상기 코딩 유닛들은 화상들인 정렬된 코딩 유닛들의 가변 비트 레이트 비트 인코딩 방법.
  20. 정보를 가변 레이트 인코딩하기 위한 장치에 있어서, 인코드될 각각의 코딩 유닛의 비트 사용에 대한 코딩 왜곡들을 모델링하기 위한 비트 생성 모델링기, 디코더 버퍼부로부터 이전 코딩 유닛을 제거한 후에 모델 디코더 버퍼의 풀니스가 제1 수 미만일 때만 제1 코딩 유닛을 제외한 각각의 코딩 유닛의 인코딩 왜곡이 이전 코딩 유닛의 인코딩 왜곡 보다 낮고, 디코더 버퍼부로부터 이전 코딩 유닛을 제거한 후에 디코더 버퍼 풀니스가 제2 수 초과일 때만 제1 코딩 유닛을 제외한 각각의 코딩 유닛의 인코딩 왜곡이 이전 코딩 유닛의 인코딩 왜곡보다 높고, 디코더 버퍼로부터 다음 코딩 유닛을 제외한 각각의 코딩 유닛의 인코딩 왜곡이 임의의 다른 코딩 유닛의 인코딩 왜곡 보다 낮지 않다는 규칙에 따라 각각의 코딩 유닛에 비트들을 할당하기 위해, 상기 비트 생성 모델링기로부터의 출력을 수신하기 위해 접속된 할당기, 및 상기 비트 할당기로부터의 출력을 수신하기 위해 접속된 인코더를 포함하는 정보 가변 레이트 인코딩 장치.
KR1019960053042A 1996-01-25 1996-11-09 버퍼 엠프티/필 룩어헤드 비트 할당기를 구비한 모션 비디오 압축 시스템 KR100197385B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/591,807 1996-01-25
US8/591,807 1996-01-25
US08/591,807 US5719632A (en) 1996-01-25 1996-01-25 Motion video compression system with buffer empty/fill look-ahead bit allocation

Publications (2)

Publication Number Publication Date
KR970060716A KR970060716A (ko) 1997-08-12
KR100197385B1 true KR100197385B1 (ko) 1999-06-15

Family

ID=24368028

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960053042A KR100197385B1 (ko) 1996-01-25 1996-11-09 버퍼 엠프티/필 룩어헤드 비트 할당기를 구비한 모션 비디오 압축 시스템

Country Status (4)

Country Link
US (1) US5719632A (ko)
JP (1) JPH09214962A (ko)
KR (1) KR100197385B1 (ko)
GB (1) GB2309611B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200010278A (ko) * 2017-04-26 2020-01-30 디티에스, 인코포레이티드 프레임 그룹에 대한 비트 레이트 제어

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5694170A (en) * 1995-04-06 1997-12-02 International Business Machines Corporation Video compression using multiple computing agents
WO1997039588A1 (en) * 1996-04-12 1997-10-23 Sony Corporation Image encoder, image encoding method and medium on which image encoding program is recorded
EP1182888A3 (en) * 1996-04-25 2004-11-03 Matsushita Electric Industrial Co., Ltd. Video coding with bit rate dependent quantisation
US6023713A (en) * 1996-09-06 2000-02-08 Intel Corporation Optimized CD/DVD authoring employing block reallocation
US6549575B1 (en) * 1996-11-07 2003-04-15 International Business Machines Corporation. Efficient, flexible motion estimation architecture for real time MPEG2 compliant encoding
US6078958A (en) * 1997-01-31 2000-06-20 Hughes Electronics Corporation System for allocating available bandwidth of a concentrated media output
US6084910A (en) * 1997-01-31 2000-07-04 Hughes Electronics Corporation Statistical multiplexer for video signals
US6005620A (en) * 1997-01-31 1999-12-21 Hughes Electronics Corporation Statistical multiplexer for live and pre-compressed video
US6188436B1 (en) 1997-01-31 2001-02-13 Hughes Electronics Corporation Video broadcast system with video data shifting
US6052384A (en) * 1997-03-21 2000-04-18 Scientific-Atlanta, Inc. Using a receiver model to multiplex variable-rate bit streams having timing constraints
EP0940042B1 (en) * 1997-07-29 2005-07-27 Koninklijke Philips Electronics N.V. Variable bitrate video coding method and corresponding video coder
US6192075B1 (en) * 1997-08-21 2001-02-20 Stream Machine Company Single-pass variable bit-rate control for digital video coding
US6230200B1 (en) * 1997-09-08 2001-05-08 Emc Corporation Dynamic modeling for resource allocation in a file server
SG116400A1 (en) * 1997-10-24 2005-11-28 Matsushita Electric Ind Co Ltd A method for computational graceful degradation inan audiovisual compression system.
US6023233A (en) * 1998-03-20 2000-02-08 Craven; Peter G. Data rate control for variable rate compression systems
US7016413B2 (en) 1998-03-20 2006-03-21 International Business Machines Corporation Adaptively encoding a picture of contrasted complexity having normal video and noisy video portions
US6542549B1 (en) * 1998-10-13 2003-04-01 Matsushita Electric Industrial Co., Ltd. Method and model for regulating the computational and memory requirements of a compressed bitstream in a video decoder
US6151362A (en) * 1998-10-30 2000-11-21 Motorola, Inc. Joint rate control for stereoscopic video coding
GB2357210A (en) * 1999-12-06 2001-06-13 Snell & Wilcox Ltd Inserting future bit rate information in a compressed data stream
JP4710108B2 (ja) * 2000-07-14 2011-06-29 ソニー株式会社 画像信号符号化方法及び装置
JP4428680B2 (ja) * 2000-11-06 2010-03-10 パナソニック株式会社 映像信号符号化方法および映像信号符号化装置
US6594316B2 (en) 2000-12-12 2003-07-15 Scientific-Atlanta, Inc. Method and apparatus for adaptive bit rate control in an asynchronized encoding system
JP2002354477A (ja) * 2001-05-24 2002-12-06 Pioneer Electronic Corp 量子化単位設定装置及び量子化単位設定方法、符号化装置及び符号化方法並びに情報記録媒体及び量子化単位設定用プログラム
EP2302929B1 (en) * 2001-11-27 2015-03-25 Samsung Electronics Co., Ltd. Coding and decoding of a bitstream with a coordinate interpolator
CN1650629B (zh) * 2002-04-26 2010-10-06 索尼株式会社 编码设备和方法、编辑设备和方法
US7532670B2 (en) * 2002-07-02 2009-05-12 Conexant Systems, Inc. Hypothetical reference decoder with low start-up delays for compressed image and video
EP1518403A4 (en) * 2002-07-02 2009-03-18 Conexant Systems Inc HYPOTHETIC REFERENCE DECODER FOR COMPRESSED PICTURES AND VIDEO
EP1403775B1 (en) * 2002-09-25 2006-03-08 STMicroelectronics S.r.l. Process and devices for transmiting digital signals over buses and computer program product therefor
DE60221396D1 (de) * 2002-09-25 2007-09-06 St Microelectronics Srl Verfahren und Gerät, um digitales Signal über einem Rechnerbus zu übertragen und Rechnerprogrammprodukt dafür
MXPA05008404A (es) * 2003-02-18 2005-10-05 Nokia Corp Metodo de codificacion de imagen.
CN101668215A (zh) * 2003-02-18 2010-03-10 诺基亚有限公司 图像解码方法
US7408984B2 (en) * 2003-09-17 2008-08-05 International Business Machines Corporation Method and system for multiple pass video coding
JP4251955B2 (ja) * 2003-10-15 2009-04-08 パナソニック株式会社 オーディオデータのネットワーク装置、アンプ装置
US20050201471A1 (en) * 2004-02-13 2005-09-15 Nokia Corporation Picture decoding method
US7296205B2 (en) * 2004-02-18 2007-11-13 Nokia Corporation Data repair
US9124907B2 (en) * 2004-10-04 2015-09-01 Nokia Technologies Oy Picture buffering method
US8934533B2 (en) * 2004-11-12 2015-01-13 Pelco, Inc. Method and apparatus for controlling a video surveillance display
US20090064242A1 (en) * 2004-12-23 2009-03-05 Bitband Technologies Ltd. Fast channel switching for digital tv
US8340098B2 (en) * 2005-12-07 2012-12-25 General Instrument Corporation Method and apparatus for delivering compressed video to subscriber terminals
WO2007102147A2 (en) * 2006-03-07 2007-09-13 Bitband Technologies Ltd. Personalized insertion of advertisements in streaming media
US8358693B2 (en) 2006-07-14 2013-01-22 Microsoft Corporation Encoding visual data with computation scheduling and allocation
US8311102B2 (en) * 2006-07-26 2012-11-13 Microsoft Corporation Bitstream switching in multiple bit-rate video streaming environments
US8340193B2 (en) * 2006-08-04 2012-12-25 Microsoft Corporation Wyner-Ziv and wavelet video coding
US7388521B2 (en) * 2006-10-02 2008-06-17 Microsoft Corporation Request bits estimation for a Wyner-Ziv codec
US8340192B2 (en) * 2007-05-25 2012-12-25 Microsoft Corporation Wyner-Ziv coding with multiple side information
US8700792B2 (en) * 2008-01-31 2014-04-15 General Instrument Corporation Method and apparatus for expediting delivery of programming content over a broadband network
US8752092B2 (en) * 2008-06-27 2014-06-10 General Instrument Corporation Method and apparatus for providing low resolution images in a broadcast system
US9083976B2 (en) * 2008-09-05 2015-07-14 Freescale Semiconductor, Inc. Processing a video stream in real time based on binary information of the video stream
JP5455547B2 (ja) * 2009-10-19 2014-03-26 キヤノン株式会社 画像処理装置及び画像処理方法
US9357244B2 (en) * 2010-03-11 2016-05-31 Arris Enterprises, Inc. Method and system for inhibiting audio-video synchronization delay
US9384410B2 (en) * 2012-05-21 2016-07-05 Nvidia Corporation Method and system for image compression while encoding at least one extra bit
US9819969B2 (en) 2013-11-26 2017-11-14 Nvidia Corporation Generalization of methods and systems for image compression while encoding at least one extra bit
US10015496B2 (en) * 2015-03-25 2018-07-03 Samsung Display Co., Ltd. Method and apparatus for temporal reference coding with light coding systems for display systems
US11165847B2 (en) * 2018-10-23 2021-11-02 Tencent America LLC Techniques for multiple conformance points in media coding
JPWO2021182512A1 (ko) * 2020-03-11 2021-09-16

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4302775A (en) * 1978-12-15 1981-11-24 Compression Labs, Inc. Digital video compression system and methods utilizing scene adaptive coding with rate buffer feedback
JPH0238684B2 (ja) * 1985-09-18 1990-08-31 Kyushu Emu Ai Shii Kk Kenhoroyonunojinojidoorimagehohotosonosochi
US5231484A (en) * 1991-11-08 1993-07-27 International Business Machines Corporation Motion video compression system with adaptive bit allocation and quantization
US5510840A (en) * 1991-12-27 1996-04-23 Sony Corporation Methods and devices for encoding and decoding frame signals and recording medium therefor
JPH06111113A (ja) * 1992-09-29 1994-04-22 Sanyo Electric Co Ltd 自動販売機の筐体
US5734432A (en) * 1994-07-15 1998-03-31 Lucent Technologies, Inc. Method of incorporating a variable rate auxiliary data stream with a variable rate primary data stream
US5543853A (en) * 1995-01-19 1996-08-06 At&T Corp. Encoder/decoder buffer control for variable bit-rate channel
US5623424A (en) * 1995-05-08 1997-04-22 Kabushiki Kaisha Toshiba Rate-controlled digital video editing method and system which controls bit allocation of a video encoder by varying quantization levels

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200010278A (ko) * 2017-04-26 2020-01-30 디티에스, 인코포레이티드 프레임 그룹에 대한 비트 레이트 제어
KR102613286B1 (ko) * 2017-04-26 2023-12-12 디티에스, 인코포레이티드 프레임 그룹에 대한 비트 레이트 제어

Also Published As

Publication number Publication date
US5719632A (en) 1998-02-17
JPH09214962A (ja) 1997-08-15
GB9700307D0 (en) 1997-02-26
GB2309611B (en) 2000-06-14
GB2309611A (en) 1997-07-30
KR970060716A (ko) 1997-08-12

Similar Documents

Publication Publication Date Title
KR100197385B1 (ko) 버퍼 엠프티/필 룩어헤드 비트 할당기를 구비한 모션 비디오 압축 시스템
JP3533282B2 (ja) 複数のプロセッサを使用したビデオ圧縮
KR100343352B1 (ko) 일정 비트 레이트 혹은 가변 비트 레이트를 위한 디지털 동영상 시퀀스 2-패스 부호화 방법
KR100253931B1 (ko) 디지탈 영상 시퀀스의 디코딩 방법 및 장치
US6181742B1 (en) Single pass target allocation for video encoding
KR970003789B1 (ko) 비디오 부호기의 전송율을 제어하기 위한 비트 할당 방법
US6522693B1 (en) System and method for reencoding segments of buffer constrained video streams
EP0959627B1 (en) A motion video compression system with adaptive bit allocation and quantization
US7042941B1 (en) Method and apparatus for controlling amount of quantization processing in an encoder
EP0677969B1 (en) Moving picture coding method and an apparatus therefor
US5949490A (en) Distributing video buffer rate control over a parallel compression architecture
KR100238622B1 (ko) 새로운 적응형 양자화기를 이용한 동영상 압축 시스템 및 방법
KR100196890B1 (ko) 동영상 압축 시스템과, 비디오 동화상의 압축 방법 및 인코딩 방법
US5757967A (en) Digital video decoder and deinterlacer, format/frame rate converter with common memory
US5652629A (en) Bidirectional motion estimation in a motion video compression system
JP3463291B2 (ja) 圧縮ディジタル・ビデオ・シーケンスをデコードし表示する方法および装置
US7058677B1 (en) Method and apparatus for selectible quantization in an encoder
EP1045592A2 (en) Image processing method, image processing apparatus and data storage media
KR100624404B1 (ko) 사람의 시각적 특성을 고려한 적응적 부호화 방법 및 장치
JPH09149412A (ja) ビデオデータ圧縮方式
KR20030063536A (ko) 슬라이스 구조를 갖는 관심 영역 부호화 및 복호화를 위한방법 및 장치
KR20060103409A (ko) 슬라이스 구조를 갖는 관심 영역 부호화 및 복호화를 위한방법 및 장치
JP2001148852A (ja) 画像情報変換装置及び画像情報変換方法
JP3767007B2 (ja) 符号化装置および符号化方法
JPH09149420A (ja) 動画像圧縮方法および装置

Legal Events

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

Payment date: 20060124

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee