KR20040075039A - 복잡도 제약된 데이터 압축에서 동적 제어 - Google Patents

복잡도 제약된 데이터 압축에서 동적 제어 Download PDF

Info

Publication number
KR20040075039A
KR20040075039A KR10-2004-7010237A KR20047010237A KR20040075039A KR 20040075039 A KR20040075039 A KR 20040075039A KR 20047010237 A KR20047010237 A KR 20047010237A KR 20040075039 A KR20040075039 A KR 20040075039A
Authority
KR
South Korea
Prior art keywords
buffer
encoding
complexity
encoder
stream
Prior art date
Application number
KR10-2004-7010237A
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 KR20040075039A publication Critical patent/KR20040075039A/ko

Links

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/156Availability of hardware or computational resources, e.g. encoding based on power-saving 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/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
    • 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/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

비디오 프로세싱 시스템의 MPEG 부호화기의 계산 부하를 조절하는 방법과 시스템이 제공된다. 데이터 블럭들의 스트림은 부호화 모드 동안 연속 재생을 위해 수신되고 일시적으로 저장된다. 그리고 나서 버퍼된 데이터 블럭은 종래의 부호화 방법에 따라 부호화 동작을 위해 버퍼로부터 검색된다. 한편, 버퍼의 충만도는 후속 부호화 과정을 위한 적당한 부호화 복잡도를 결정하기 위해 모니터된다. 이것을 위해, 미리 정해진 임계값 범위는 연속 부호화 동작이 개선된 버퍼 효율에 수행 될 수 있도록 하기 위해 충만도와 비교된다.

Description

복잡도 제약된 데이터 압축에서 동적 제어{Dynamic control in complexity-constrained data compression}
비디오 정보는 일반적으로 저장 공간을 확보하기 위해 압축되고 디스플레이를 위한 비트스트림으로 복원된다. 그래서 비디오 정보를 가변 비트율(variable bit rate,VBR)이나 고정 비트율(constant bit rate,CBR) 채널을 통해 최소의 비트 수로 상대적으로 일관된 비디오 품질을 전송하기 위해 빠르고 효율적으로 비디오 정보를 부호화(encoding) 하는 것은 매우 바람직하다. 비디오 정보를 압축 및 복원하기 위해 널리 사용되게 된 압축 표준은 비디오 인코딩 및 디코딩를 위한 동화상 그림 전문가 그룹 (Moving Pictures Expert Group, MPEG) 표준이다. MPEG 표준은 국제 표준 ISO/IEC 11172-1, "정보 기술--약 1.5Mbit/s까지의 디지탈 저장 매체를 위한 동화상 및 관련 오디오의 코딩", 파트 1, 2, 및 3, 제 1 판 1993-08-01에 정의 되어있으며, 이것은 완전히 참조 문헌으로써 병합된다.
엔지니어를 위해, 많은 비디오 시스템의 목적은 컨텐츠 제작이나 실시간 하드웨어 비디오 부호화(real-time hardware video encoding)와같은 어떤 어플리케이션들(applications)에 비디오 압축 기반 시스템을 디자인 할 때 비디오 정보를 빠르고 효율적으로 부호화 하기 위한 것이다. 내용 저작의 경우에 있어서, 압축은 오프라인으로 수행되므로 그 결과 부호화기(encoder)가 부호화를 마치기 위해 얼마나 걸리는 지는 문제(몇 내용에서)가 안된다. MPEG2 부호화의 불규칙적인 계산 부하 (computation load)행위 때문에, 프레임의 최대 계산 부하는 프로세서의 최대 부하를 초과할 수 있고, 그것 때문에 프레임 드롭이나 예기치 않은 결과 값을 초래한다. 실시간 하드웨어 부호화기의 경우, 하드웨어 구성 요소들은 각각의 비디오 압축 표준에 의해 허용되는 최악의 시나리오 경우에 대비해 과도하게 설계되어야 한다. 이런 실시예의 유형은 바람직하지 않은 최대 계산 부하가 자주 발생 되지 않기 때문에, 비 경제적이고 자원의 낭비를 초래한다. 유사하게, 엔지니어가 프로세서에서 MPEG2 부호화를 실행했을 때, 그나 혹은 그녀는 최대 계산 부하가 발생하는 경우에 있어서 부드러운 동작을 얻기 위해 평균 복호화 위의 40%-50%의 성능 여지(performance margin)를 가지는 프로세서를 선택할 필요가 있다. 과도한 설계의 이런 낭비는 계산 자원들(computation resources)이 다른 기능들과 공유되는 범용 소프트웨어 부호화기(general-purpose software encoder)에 더 이상 용이하게 사용 가능하지 않다.
본 발명은 dls입하는 비디오 정보의 비디오 처리에 관한 것이며, 특히, 실시간에서 MPEG 부호화기의 계산 부하를 동적으로 제어하기 위한 방법과 장치에 관한 것이다.
본 발명의 상기 방법과 장치는 첨부 아래 도면들을 참조한 다음의 상세한 설명을 참조함으로써 더 완전하게 이해될 수 있다.
도 1은 비디오 정보의 압축시 계산 부하를 조절하기 위한 프로세서의 일 실시예를 도시한 도면.
도 2는 부호화기의 계산 부하를 조절하기 위해 사용되는 전형적인 정의표를 도시한 도면.
도 3은 본 발명에 따라 버퍼의 충만도의 모니터링을 그래프로 도시한 도면.
도 4는 본 발명에 따라 부호화기의 계산 부하를 조절하는 과정을 설명하는 순서도.
본 실시예의 최적 성능을 얻기 위해 계산 부하를 동적으로 조절함으로써 MPEG 디지탈 비디오 부호화기 시스템의 부호화 효율을 최대화하면서 실시간 부호화를 보장하기 위한 방법과 시스템에 관한 것이다.
본 발명의 일 특징에 따르면, 스케일러블 부호화기를 사용하는 데이터 블럭들의 스트림(stream of data blocks)을 부호화하는 방법은, 데이터 블럭들의 스트림을 수신하는 단계와, 버퍼에 상기 수신된 데이터 블럭 저장하는 단계; 제 1 의 부호화된 데이터 블럭을 생성하기 위해서 상기 버퍼로부터 상기 저장된 데이터 블럭의 제 1 시퀀스를 부호화하는 단계; 미리 정해진 임계값 범위와 비교하기 위해 상기 버퍼의 상기 충만도(fullness level)를 모니터링하는 단계; 및 상기 비교 결과에 기초하여 상기 부호화기의 복잡도를 조절하는 단계들을 포함한다. 상기 비교 결과에 기초하여 상기 부호화기의 상기 복잡도를 조절하는 단계는, 상기 버퍼의 상기 충만도가 상기 임계값 범위의 상측 범위를 초과 할 때 상기 부호화기의 상기 복잡도를 감소시키는 단계; 제 2 의 부호화된 데이터 블럭을 생성하기 위해 상기 감소된 복잡도로 제 2 데이터 블럭을 부호화 하는 단계; 상기 버퍼의 상기 충만도가 상기 미리 정해진 임계값 범위 내에 속할 때 상기 부호화기의 상기 복잡도를 유지시키는 단계와, 상기 버퍼의 충만도가 상기 미리 정해진 임계값 범위의 하측 레벨 아래에 있을 때 상기 부호화기의 복잡도를 증가시키는 단계; 제 2 의 부호화된 데이터 블럭을 생성하기 위해 상기 증가된 복잡도로 제 2 의 데이터 블럭을 부호화 하는 단계들을 포함하며, 상기 부호화기의 상기 복잡도를 증가시키거나 감소시키는 상기 단계는 미리 정해진 부호화 구성 테이블(encoding configuration table)에 의해 수행된다. 상기 방법은 후속 검색(subsequent retrieval)을 위해 메모리 매체에 제 1 부호화된 데이터 블럭들을 저장하는 단계를 더 포함한다. 본 발명에서, 상기데이터 블럭들의 스트림은 비디오 프레임들의 스트림을 포함한다.
본 발명의 다른 특징에 따르면, 스케일러블 부호화기를 사용하여 데이터 블럭들의 스트림을 부호화하는 방법은, 버퍼에 상기 데이터 블럭의 스트림을 일시적으로 저장하는 단계; 상기 버퍼로부터 상기 저장된 데이터 블럭의 제 1 시퀀스를 검색하는 단계; 제 1 부호화된 데이터 블럭을 생성하기 위해 상기 버퍼로부터 상기 저장된 데이터 블럭들의 상기 제 1 시퀀스를 부호화하는 단계; 상기 버퍼의 충만도를 모니터링 하는 단계와; 상기 버퍼의 상기 충만도를 미리 정해진 임계값 범위와 비교하는 단계; 상기 버퍼의 충만도가 미리 정해진 임계값의 하측 레벨 아래에 있을 때 속할 때 상기 부호화기의 복잡도를 증가시키는 단계; 및 상기 버퍼의 상기 충만도가 상기 미리 정해진 임계값 범위의 상측 레벨 아래에 있을 때 상기 부호화기의 복잡도를 감소시키는 단계들을 포함하며, 상기 부호화기의 복잡도를 증가시키고 감소시키는 상기 단계들은 미리 정해진 부호화 구성 테이블에 따라 수행된다. 상기 방법은 제 2 의 부호화된 데이터 블럭을 생성하기 위해 상기 증가된 복잡도로 제 2 데이터 블럭을 부호화 하는 단계와, 및 제 2 부호화된 데이터 블럭을 생성하기 위해 상기 감소된 복잡도로 제 2 데이터 블럭을 부호화하는 단계를 더 포함한다. 상기 버퍼의 상기 충만도는 상기 데이터 블럭들의 스트림의 입력 비율(input rate) 상기 제 1 의 부호화된 데이터 블럭을 생성한 후 상기 부호화기로부터의 처리 피드백 정보(feedback information)에 기초하여 결정된다.
본 발명의 다른 특징에 따르면, 데이터 블럭의 스트림을 부호화는 부호화 시스템은, 복수의 소스들로부터 나온 아날로그 신호들을 디지탈 신호들로 변환하기위한 아날로그-디지탈 변환기(analog-to-digital converter); 상기 변환된 디지탈 신호들을 미리 정의된 비율로 수신하는 버퍼; 미리 정해진 부호화 구성 테이블을 저장하 메모리, 상기 버퍼에 저장된 상기 데이터 블럭 스트림을 부호화하는 부호화기; 상기 버퍼, 상기 부호화기, 및 상기 메모리에 동작가능하게 연결되는 관리 모듈을 포함하고, 상기 관리 모듈은 상기 데이터 블럭들의 스트림을 수신하고(a), 상기 수신된 데이터 블럭들을 상기 버퍼에 저장하고(b), 제 1 부호화된 데이터 블럭을 생성하기 위해 상기 버퍼로부터 저장된 상기 데이터 블럭들의 제 1 시퀀스를 부호화하고(c), 미리 정해진 임계값 범위와 비교하기 위해 상기 버퍼의 충만도를 모니터하고(d), 상기 비교 결과와 상기 미리 정해진 상기 부호화 테이블에 기초하여 부호기의 복잡도를 조절하고(e), , 제 2 의 부호화된 데이터 블럭을 생성하기 위해 조절된 복잡도로 제 2 의 데이터 블럭을 부호화 하도록(f) 동작 가능한 상기 관리 모듈을 포함한다. 상기 관리 모듈은 버퍼의 충만도가 상기 임계값 한계의 상측 범위를 초과할 때 상기 부호화기의 복잡도를 감소시키며; 상기 버퍼의 상기 충만도가 미리 정해진 임계값 범위의 하측 레벨 아래에 있을 때 상기 부호화기의 복잡도를 증가시키며; 및, 상기 버퍼의 상기 충만도가 미리 정해진 임계값 범위 내에 속할 때 상기 부호화기의 복잡도를 유지하기에 더 작동 가능하다.
이하의 설명에 있어서, 제한하기보다는 설명을 위해, 본 발명의 완전한 이해를 제공하기 위한 특별한 구조, 인터페이스, 기술 등과 같은 특정 상세 내용이 기술된다. 그러나 이 기술에서 숙련된 사람에게는 본 발명이 이들 특정 상세 내용으로부터 벗어나는 다른 실시예들로 실시될 수 있다는 것이 분명할 것이다. 단순함과 명쾌함을 위해, 잘 알려진 장치들, 회로들, 및 방법들의 상세한 설명은 불필요한 세부사항으로 본 발명의 설명을 모호하지 않게 하기 위해 생략된다.
본 발명의 이해를 용이하게 하기 위해, MPEG 표준에 따라 비디오 데이터를 압축하는 종래의 방법은 다음에 간단히 설명될 것이다.
MPEG 표준으로 정의되는 비디오 정보의 3가지 프레임들의 유형은, 프레임내(intra-frames, I 프레임), 포워드 예측 프레임(forward-predicted frames, P 프레임) 및, 쌍방향 예측 프레임(bi-directional-predicted frames, B 프레임)이 있다. 상기 I 프레임, 혹은 실제 비디오 참조 프레임은 주기적으로 즉, 각 15 프레임마다 한 참조 프레임이 코드 된다. 예측(prediction)은 다음 참조 프레임 전 후의 프레임의 특정 수에 위치될, 비디오 프레임의 합성, P 프레임으로 만들어진다. B 프레임은 I 프레임과 예측된 P 프레임 사이로 예측되거나, 과거의 참조 프레임의 매크로 블록으로 나중의 참조 프레임의 매크로 블록을 보간(평균화)함으로써 예측된다. 움직임 벡터 역시 부호화 되며, 그것은 현재 프레임안의 매크로 블록에 대해서 참조 프레임안의 매크로 블록의 상대 위치를 특정한다. 현재 프레임은 이전 프레임과 후속 프레임에 기초하여 부호화된다. 그렇게, 한 프레임은 MPEG 부호화 규칙에 기초하여 부호화될 필요가 있으며, 그때 상기 프레임에 관계하는 다른 프레임들은 상기 프레임으로부터의 차이에 기초하여 부호화된다.
도 1은 본 발명의 전형적인 실시예에 따라 비디오 신호를 부호화 할 수 있는 부호화 회로(10)의 개략 블럭 다이어그램을 설명한다. 도 1에 도시된 것과 같이, 복호화 과정을 스케일링(scaling) 하기 위해 본 발명에 따르는 상기 부호화 회로(10)는 아날로그-디지탈(A/D) 변환기(12), 버퍼(14), 부호화기(16), 관리 모듈(18), 및 메모리(20)를 포함한다. A/D 변환기(12)에 의해 수신된 입력 신호들은 캠코더, DVD 플레이어, VCR, 텔레비젼 튜너, 및/또는 디지탈 신호를 수신하는 다른 어떤 디바이스로부터의 신호일지도 모른다. 버퍼(14)는 종래의 FIFO(first-in, first-out) 버퍼일 수 있다. 관리 모듈(18)은 개인 컴퓨터, 워크스테이션, 개인 휴대 정보 단말기(PDA), 휴대용 컴퓨터, 및/또는, 마이크로프로세서, 디지탈 신호 처리기, 마이크로 제어기, 마이크로 컴퓨터 및/또는 프로그래밍 명령에 기초한 디지탈 정보를 다루는 다른 어떤 장치와 같은 집적 회로의 중앙처리유닛일 수 있다. 상기 부호화기(16)은 관리 모듈(18)에 통합될수 있다는 것을 유념해야 한다.메모리(20)은 하드 드라이드 메모리, 램(random access memory), 롬(read-only memory), 외부 메모리 및 디지탈 정보를 저장하는 다른 어떤 장치일지도 모른다.
동작에 있어서, 비디오 정보의 스트림은 아날로그 신호를 A/D 변환기(12)에 의한 디지탈 신호로 변환된다. 변환된 디지탈 신호는 그때 버퍼(14)에 제공된다. 부호화기(16)의 입력에서 버퍼(14)의 기능은 단기간 복잡한 변동을 짧은 기간에 매끄럽게 하는 것이다. 그 후에, 관리 모듈(18)의 제어 하에 있는 부호화기(16)은 버퍼(14)에 저장된 데이터를 부호화여 상기 데이터가 국부 기억 매체 안에 저장을 위한 작은 양의 압축된 데이터로서 표현된다. 데이터를 압축함으로써, 의한, 처리 엔티티들(entities)은 주어진 시간 안에 더 많은 데이터를 효율적으로 처리 할 수 있다. 상기 MPEG 표준에 따른 부호화기(16)에 의해 수행된 부호화는 앞에 기술된 것과 같이 이 기술에 숙련된 이들에게 잘 알려져 있다. 부호화 모드 동안, 버퍼 효율이 부호화기(16)의 상기 복잡도를 조절함으로써 범람 없이 최대화 될 수 있도록 상기 관리 모듈(18)이 버퍼(14)의 충만이 모니터한다.
본 발명에서, 상기 복잡도 제약은 버퍼에 대한 평균 복잡도를 참조한다. 예를 들어, 버퍼(14)가 제 2 프레임-입력 버퍼(frame-input buffers)를 포함하고, 복합성 제약이 프레임당 천만번의 명령어이고 제 1 프레임이 천 오백만 명령어를 가진다면, 상기 부호화 회로(10)는 제 2 프레임이 오백만 명령어보다 적게 가지는 한, 복잡도 제약 아래 여전히 유지된다. 복잡도 제약 위로 넘지 않기 위해서, 버퍼(14)의 충만도에 기초한 관리 모듈(18)은 제약안에 복잡도 상태(complexity stay)를 보증하기 위해 상기 부호화기(16)를 하나의 구성점에서 다른 점으로 전환하기 위해 동적인 제어를 제공한다. 즉, 모니터링 과정은 최대 복잡도를 어떤 임계값 한계에 보여주며, 복호화기(16)은 낮은 복잡도로 구성으로 전환된다. 이것을 위해, 도 2에 보여진 예정된 정의표는, 메모리(20)에 저장된다. 그래서, 버퍼(14)의 충만도에 기초하여, 관리 모듈(18)은 부호화기(16)의 복잡도를 증가 시키거나 감소시킨다.
도 3의 참조로, 버퍼(14)의 상기 충만도는 비디오 스트림의 입력 비율과 복호화기(16)으로부터 수신된 피드백 정보에 기초하여 상기 관리 모듈(18)에 의해서 결정될 수 있다. 도 3에 도시된 것과 같이, 미리 정의된 간격, 예를 들어, 초당 30 프레임의 비율의 데이터 프레임의 스트림이 버퍼(14)에서 수신된다. 부호화 모드 동안 버퍼의 상태는 아래 방정식:
현재_시간 = 프레임 시작_시간 + 프레임 처리_시간, 그리고
새로운_도착 = (현재_시간 - 마지막 도착_시간)/프레임 간격,
에 따라 얻어질수 있으며, 여기서 "현재_시간"은 프레임상의 부호화 과정을 수행한 후에 부호화기(16)로부터 수신된 피드백 정보를 표시하며 "새로운_도착"은 부호화 과정 동안 버퍼(14)에 도착하는 프레임의 수를 표시한다. 예를 들어, 현재_시간1에서 프레임의 제 1 셋(1로 표시됨)은 부호화기(16)에 의해 부호화되며 이후 관리 모듈 (18)에 통지된다. 한편, 프레임의 제 2 셋(2로 표시됨)은 상기 버퍼(14)에 일시적으로 버퍼 된다. 이 때, 버퍼(14)에 저장된 프레임의 수는 새로운_도착1= (현재_시간1- 마지막 도착_시간1)/프레임 간격으로 얻어질 수 있다. 그 후에, 마지막 도착_시간1은 부호화기(16)으로부터 다음 피드백 정보를 위해 버퍼의 동작을 결정하기 위해 업데이트(마지막 도착_시간2= 마지막 도착_시간2+ 새로운_도착1* 프레임 간격) 된다. 버퍼에서 대기하는 프레임이 있기 때문에, 상기 부호화기는 제 1 프레임을 마친 직후 버퍼 권한으로부터 프레임을 부호화하기 시작한다. 그래서, 프레임_시작_시간2= 현재_시간1이다. 어떤 프레임도 상기 부호화기가 제 1 프레임을 마칠 때까지 상기 버퍼에 이용가능하지 않다면, 부호화기는 다음 프레임을 곧바로 부호할 수 없다는 것을 유념해라. 대신에, 다음 프레임이 도착할 때 까지 유휴상태로 남아있다. 이런 경우, 프레임_시작_시간2= 마지막_도착_시간 + 프레임_간격_시간이다. 프레임의 제 2 셋(2로 표시됨)은 현재_시간2( = 프레임_시작_시간2+ 프레임_처리_시간2)에서 부호화기(16)에 의해 부호화 되고, 프레임의 제 3 셋(3으로 표시됨)은 관리 모듈(18)에 통지되며, 한편 버퍼(14)에 일시적으로 버퍼된다. 여기, 버퍼(14)에 도착하는 프레임의 수는 새로운_도착2= (현재_시간2- 마지막 도착_시간2)/프레임 간격으로 얻어질 수 있다. 그렇게, 관리 모듈(18)은 버퍼(14)의 충만도를 계속 모니터링하기 위해 이런 단계들을 반복 할 수 있다. 다른 실시예에서는, 수신된 데이터 스트림이 버퍼(14)의 입력으로 저장될 때, 버퍼는 관리 모듈(18)에 직접적으로 시간 간격을 거쳐 충만도 신호를 보낼 수 있다.
버퍼의 충만도가 위에 설명되는대로 얻어지면, 관리 모듈(18)은 메모리(20)에 저장된 정의표에 따라 부호화기(16)의 복잡도를 증가시킬지 감소시킬지 결정할수 있다. 그래서, 버퍼 충만은 본 발명에 따라 복잡도를 언제 그리고 얼마나 많이 변경시킬지를 결정하는 파라미터로써 사용된다. 하나 접근 방식에서, 관리 모듈(18)은 더 높은 복잡도로 버퍼(14)를 이용하기 위해 부호화기를 전환하고, 상기 버퍼 충만이 미리 설정된 임계값 보다 낮을 때 비트율을 줄이고, 버퍼 충만이 미리 설정된 임계값보다 높을 때 부호화기를 낮은 복잡도로 전환한다. 이 접근 방식의 결점은 잦은 스위칭이 야기 되고 시스템 부하와 비트율의 변동을 일으킬 수 있다는 것을 유념해라. 이런 문제를 처리하기 위해, 스위칭하는 수는 소정의 임계값 범위를 벗어나는 이런 버퍼 레벨만이 스위칭될 필요가 있도록 임계값의 범위를 설정함으로써 줄일 수 있다. 예를 들어, 원하는 버퍼 충만도가 75% 이면, 65% 에서 85% 까지의 범위가 허용가능 범위로서 규정될 수 있다. 버퍼 충만도가 허용 범위안에 머무를 때, 어떤 실행도 관리 모듈(18)에 의해 수행되지 않는다. 버퍼 충만도가 85% 이상 65% 이하로 갔을 때에만 스위칭이 일어난다.
이제, 본 발명에 따라 다이나믹 부호화 처리를 지원하기 위해 계산 부하를 평가하는 준비가 상세한 설명에 설명될 것이다. 다음의 도 3의 순서도는 관리 모듈(18)의 소프트웨어 실시예의 동작을 보여준다. 상기 순서도는 또한 하드웨어 실시예에 일반적으로 적용 가능하다.
도 4는 데이터 블럭들의 스트림을 부호화하기 위한 방법의 논리도를 설명한다. 진행은 단계(100)에서 시작하며 여기서 부호화기(16)는 특정 모드에서 인입되는 데이터 블럭의 스트림을 부호화하기 위해서 처음에 미리 설정된다. 여기서, 데이터 블럭의 스트림은 비디오 캡쳐 장치로부터 제공되는 비디오 프레임의 스트림을포함할 수 있다. 이 때, 단계(100)에서, 부호화 과정은 버퍼(14)에 제 1 시퀀스의 데이터 블럭의 첫 그룹을 저장함으로써 시작된다. 버퍼(14)에 첫 그룹이 저장된다면, 데이터 블럭의 하나가 검색되며 그때 관계적 데이터 부호화 규칙에 기초하여 부호화 된다. 프레임을 부호화 한 후, 그것이 단계(115)에서의 마지막 프레임인지 아닌지를 결정한다. 만일 그렇다면, 동작은 멈추고, 그렇지 않다면 단계(120) 으로 진행한다.
단계(120)에서, 버퍼(14)의 충만도는 도 3에 관해 설명된 것처럼 부호화 처리 동안 관리 모듈(18)에 의해 모니터 된다. 그 후에, 그것은 버퍼 레벨의 충만이 단계(130)에서 미리 정해진 상위와 하위 임계값 범위 내인지를 결정한다. 범위 내이면, 복잡도의 어떠한 스위칭도 수행되지 않고 단계(110)로 복귀한다. 그렇지 않으면, 단계(140)에서 버퍼 충만도가 상측 임계값 한계를 초과하면, 부호화기(16)의 복잡도는 단계(150)에서 특정 양만큼 낮아지거나, 만일 버퍼 충만도가 단계(160)에서 하측 임계값 한계보다 낮으면, 이 때 부호화기(16)의 복잡도는 단계(170)에서 특정 양만큼 증가된다. 부호화기(16)의 구성 요소들의 CPU 부하를 스케일링하는 양이 오퍼레이터(operator)에 의해 설정된 미리 정해진 정의표와 부호화기(16)의 이용 가능한 처리 능력에 따라 변화 될 수 있다는 것을 유념한다. 결과적으로, 부호화기(16)의 최대 CPU 부하를 초과하는 것에 관련된 예기치 않은 결과 또는 프레임 드롭(frame drop)은 피할 수 있다.
이상, 본 발명의 실시예에 도시되고 설명되었지만, 이 기술에서 숙련된 사람은 많은 변경과 수정이 만들어질 수 있고, 등가물이 본 발명의 진정한 범위를 벗어나지 않고 이들 요소에 대해 치환될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 본 발명은 본 발명을 수행하기 위해 심사숙고한 최고의 방법으로서 개시된 특정 실시예에 제한되는 것이 아니라, 본 발명은 첨부 청구들의 범위 내에 속하는 모든 실시예를 포함하도록 의도된다.

Claims (20)

  1. 스케일러블 부호화기를 사용하여 데이터 블럭들의 스트림을 부호화 하는 위한 방법에 있어서,
    데이터 블럭들의 스트림을 수신하는 단계,
    버퍼(14)에 상기 수신된 데이터 블럭들을 저장하는 단계,
    제 1 의 부호화된 데이터 블럭을 생성하기 위해서 상기 버퍼(14)로부터 상기 저장된 데이터 블럭들의 제 1 시퀀스를 부호화 하는 단계,
    미리 정해진 임계값 범위와 비교하기 위해 상기 버퍼(14)의 충만도(fullness level)를 모니터링하는 단계, 및
    상기 비교 결과에 기초하여 상기 부호화기(16)의 복잡도를 조절하는 단계를 포함하는, 데이터 블럭들의 스트림을 부호화 하기 위한 방법.
  2. 제 1 항에 있어서, 상기 비교 결과에 기초하여 상기 부호화기의 상기 복잡도를 조절하는 단계는,
    상기 버퍼(14)의 충만도가 상기 임계값 범위의 상측 범위를 초과할 때 상기 부호화기(16)의 상기 복잡도를 감소시키는 단계, 및,
    제 2 의 부호화된 데이터 블럭을 생성하기 위해 상기 감소된 복잡도로 제 2 의 데이터 블럭을 부호화 하는 단계를 포함하는, 데이터 블럭들의 스트림을 부호화 하는 방법.
  3. 제 1 항에 있어서, 상기 비교 결과에 기초하여 상기 부호화기(16)의 상기 복잡도를 조절하는 단계는,
    상기 버퍼(14)의 충만도가 상기 미리 정해진 임계값 범위의 하측 레벨 아래에 있을 때 상기 부호화기(16)의 복잡도를 증가시키는 단계, 및
    제 2 의 부호화된 데이터 블럭을 생성하기 위해 상기 증가된 복잡도로 제 2 의 데이터 블럭을 부호화 하는 단계를 포함하는, 데이터 블럭들의 스트림을 부호화하는, 데이터 블럭들의 스트림을 부호화 하는 방법.
  4. 제 2 항 또는 제 3 항 중 있어서, 상기 부호화기(16)의 상기 복잡도를 감소시키거나 증가시키는 상기 단계는 미리 정해진 부호화 구성 테이블에 의해 수행되는, 데이터 블럭들의 스트림을 부호화 하는 방법.
  5. 제 1 항에 있어서, 상기 비교 결과에 기초하여 상기 부호화기(16)의 상기 복잡도를 조절하는 상기 단계는 상기 버퍼(14)의 충만도가 상기 미리 정해진 임계값 범위 내에 속할 때 상기 부호화기(16)의 상기 복잡도를 유지시키는 단계를 포함하는, 데이터 블럭들의 스트림을 부호화 하는 방법.
  6. 제 1 항에 있어서, 후속 검색을 위해 메모리 매체(20)에 상기 제 1 의 부호화된 데이터 블럭을 저장하는 단계를 더 포함하는, 데이터 블럭들의 스트림을 부호화 하는 방법.
  7. 제 1 항에 있어서, 상기 데이터 블럭들의 스트림은 비디오 프레임들의 스트림을 포함하는, 데이터 블럭들의 스트림을 부호화 하는 방법.
  8. 스케일러블 부호화기를 사용하여 데이터 블럭들의 스트림을 부호화하는 방법에 있어서,
    버퍼(14)에 상기 데이터 블럭들의 스트림을 일시적으로 저장하는 단계와,
    상기 버퍼(14)로부터 상기 저장된 데이터 블럭들의 제 1 의 시퀀스를 검색하는 단계,
    제 1 의 부호화된 데이터 블럭을 생성하기 위해 상기 버퍼(14)로부터 상기 저장된 데이터 블럭들의 상기 제 1 의 시퀀스를 부호화 하는 단계,
    상기 버퍼(14)의 충만도를 모니터링하는 단계,
    상기 버퍼(14)의 상기 충만도를 미리 정해진 임계값 범위와 비교하는 단계,
    상기 버퍼(14)의 충만도가 상기 미리 정해진 임계값 범위의 하측 레벨 아래에 있을 때 상기 부호화기(16)의 복잡도를 증가시키는 단계, 및
    상기 버퍼(14)의 상기 충만도가 상기 미리 정해진 임계값 범위의 상측 레벨 아래에 있을 때 상기 부호화기(16)의 복잡도를 감소시키는 단계를 포함하는, 데이터 블럭들의 스트림을 부호화 하는 방법.
  9. 제 8 항에 있어서, 제 2 의 부호화된 데이터 블럭을 생성하기 위해 상기 증가된 복잡도로 제 2 의 데이터 블럭을 부호화 하는 단계를 더 포함하는, 데이터 블럭들의 스트림을 부호화하는 방법.
  10. 제 8 항에 있어서, 상기 부호화기(16)의 복잡도를 증가시키고 감소시키는 상기 단계들은 미리 정해진 부호화 구성 테이블에 따라 수행되는, 데이터 블럭들의 스트림을 부호화하는 방법.
  11. 제 8 항에 있어서, 제 2 의 부호화된 데이터 블럭을 생성하기 위해 상기 감소된 복잡도로 제 2 의 데이터 블럭을 부호화하는 단계를 더 포함하는, 데이터 블럭들의 스트림을 부호화하는 방법.
  12. 제 8 항에 있어서, 상기 버퍼의 상기 충만도가 상기 미리 정해진 임계값 범위 내에 속할 때 상기 부호화기(16)의 상기 복잡도를 유지시키는 단계를 더 포함하는, 데이터 블럭들의 스트림을 부호화하는 방법.
  13. 제 8 항에 있어서, 후속 검색을 위해 메모리 매체에 상기 제 1 의 부호화된 데이터 블럭들을 저장하는 단계를 더 포함하는, 데이터 블럭들의 스트림을 부호화하는 방법.
  14. 제 8 항에 있어서, 상기 데이터 블럭들의 스트림은 비디오 프레임들의 스트림을 포함하는, 데이터 블럭들의 스트림을 부호화하는 방법.
  15. 제 8 항에 있어서, 상기 버퍼(14)의 상기 충만도는 상기 데이터 블럭들의 스트림의 입력 비율(input rate) 및 상기 제 1 의 부호화된 데이터 블럭을 생성한 후 상기 부호화기(16)로부터의 처리 피드백 정보에 기초하여 결정되는, 데이터 블럭들의 스트림을 부호화하는 방법.
  16. 데이터 블럭들의 스트림을 부호화하는 부호화 시스템에 있어서,
    복수의 소스들로부터 아날로그 신호들을 디지탈 신호들로 변환하기 위한 아날로그-디지탈 변환기(12)와,
    상기 변환된 디지탈 신호들을 미리 정의된 비율로 수신하는 버퍼(14)와,
    미리 정해진 부호화 구성 테이블을 저장하는 메모리(20),
    상기 버퍼(14)에 저장된 상기 데이터 블럭들의 스트림을 부호화하는 부호화기(16)와,
    상기 버퍼, 상기 부호화기, 및 상기 메모리에 동작가능하게 연결되는, 관리 모듈(18)을 포함하고,
    상기 관리 모듈(18)은,
    (a)상기 데이터 블럭들의 스트림을 수신하고,
    (b)상기 수신된 데이터 블럭들을 상기 버퍼(14)에 저장하고,
    (c)제 1 의 부호화된 데이터 블럭을 생성하기 위해 상기 버퍼(14)로부터 상기 저장된 데이터 블럭들의 제 1 의 시퀀스를 부호화하고,
    (d)미리 정해진 임계값 범위와 비교하기 위해 상기 버퍼(14)의 충만도를 모니터하고,
    (e)상기 비교 결과와 상기 미리 정해진 부호화 테이블에 기초하여 상기 부호화기(16)의 상기 복잡도를 조절하고,
    (f)제 2 의 부호화된 데이터 블럭을 생성하기 위해 상기 조절된 복잡도로 제 2 의 데이터 블럭을 부호화 하도록 동작 가능한, 데이터 블럭들의 스트림을 부호화 하는 부호화 시스템.
  17. 제 16 항에 있어서, 상기 관리 모듈(18)은 또한 상기 버퍼(14)의 상기 충만도가 상기 임계값 한계의 상측 범위를 초과할 때 상기 부호화기(16)의 복잡도를 감소시키기 위해 동작 가능한, 데이터 블럭들의 스트림을 부호화하기 위한 부호화 시스템.
  18. 제 16 항에 있어서, 상기 관리 모듈은 또한 상기 버퍼(14)의 상기 충만도가 상기 미리 정해진 임계값 범위의 하측 레벨 아래에 있을 때 상기 부호화기(16)의 상기 복잡도를 증가시키기 위해 동작 가능한, 데이터 블럭들의 스트림을 부호화하는 부호화 시스템.
  19. 제 16 항에 있어서, 상기 관리 모듈(18)은 또한 상기 버퍼(14)의 상기 충만도가 상기 미리 정해진 임계값 범위 내에 속할 때 상기 부호화기(16)의 상기 복잡도를 유기시키기 위해 동작 가능한, 데이터 블럭들의 스트림을 부호화하는 부호화 시스템.
  20. 제 16 항에 있어서, 상기 데이터 블럭들의 스트림은 비디오 프레임들의 스트림을 포함하는, 데이터 블럭들의 스트림을 부호화하는 부호화 시스템.
KR10-2004-7010237A 2001-12-27 2002-12-10 복잡도 제약된 데이터 압축에서 동적 제어 KR20040075039A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/029,829 US20030123540A1 (en) 2001-12-27 2001-12-27 Dynamic control in complexity-constrained data compression
US10/029,829 2001-12-27
PCT/IB2002/005374 WO2003061298A1 (en) 2001-12-27 2002-12-10 Dynamic control in complexity-constrained data compression

Publications (1)

Publication Number Publication Date
KR20040075039A true KR20040075039A (ko) 2004-08-26

Family

ID=21851109

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2004-7010237A KR20040075039A (ko) 2001-12-27 2002-12-10 복잡도 제약된 데이터 압축에서 동적 제어

Country Status (7)

Country Link
US (1) US20030123540A1 (ko)
EP (1) EP1461960A1 (ko)
JP (1) JP2005515732A (ko)
KR (1) KR20040075039A (ko)
CN (1) CN1608381A (ko)
AU (1) AU2002367067A1 (ko)
WO (1) WO2003061298A1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0312886D0 (en) * 2003-06-05 2003-07-09 Ibm A method system and computer program product for tracing software methods
JP4263140B2 (ja) * 2003-08-04 2009-05-13 Necエレクトロニクス株式会社 データ記録装置、データ記録方法及び記録制御プログラム
DE102004047194A1 (de) * 2004-09-29 2006-03-30 Hirschmann Electronics Gmbh & Co. Kg Matrixänderung beim Betrieb eines MPEG-Encoders
KR100610900B1 (ko) * 2004-12-09 2006-08-09 엘지전자 주식회사 비디오 인코더의 동적인 제어 방법
CN101151906A (zh) * 2005-01-28 2008-03-26 汤姆森特许公司 实时帧编码的方法和装置
US7672742B2 (en) * 2005-02-16 2010-03-02 Adaptec, Inc. Method and system for reducing audio latency
KR100952239B1 (ko) * 2005-07-14 2010-04-09 인텔 코오퍼레이션 레이트 제어 방법 및 장치
GB2432985A (en) * 2005-12-05 2007-06-06 Univ Robert Gordon Encoder control system based on a target encoding value
US8358693B2 (en) * 2006-07-14 2013-01-22 Microsoft Corporation Encoding visual data with computation scheduling and allocation
CN100471273C (zh) * 2006-07-17 2009-03-18 四川长虹电器股份有限公司 数字视频无线传输系统
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
GB0619570D0 (en) 2006-10-04 2006-11-15 Univ Bristol Complexity scalable video transcoder and encoder
FR2907990B1 (fr) * 2006-10-27 2009-04-17 Envivio France Entpr Uniperson Encodeur temps-reel contraint en debit et en delai,procede, produit programme d'ordinateur et moyen de stockage correspondants.
US8745676B2 (en) * 2006-12-19 2014-06-03 General Instrument Corporation Admitting a data file into a channel
WO2008079330A1 (en) * 2006-12-22 2008-07-03 Inlet Technologies Video compression with complexity throttling
US8340192B2 (en) * 2007-05-25 2012-12-25 Microsoft Corporation Wyner-Ziv coding with multiple side information
CN101399982B (zh) * 2007-09-30 2010-12-01 奇景光电股份有限公司 图像压缩控制方法及装置
US7895629B1 (en) * 2007-11-07 2011-02-22 At&T Mobility Ii Llc Video service buffer management in a mobile rate control enabled network
CN101534400B (zh) * 2009-04-14 2013-07-24 北京中星微电子有限公司 一种数据发送采样率的调节方法和装置
US10044489B2 (en) 2010-10-22 2018-08-07 Nokia Solutions And Networks Oy Enhanced inter-network access node scheduling coordination and signaling support for advanced receiver algorithms
KR20130107615A (ko) * 2012-03-22 2013-10-02 한국전자통신연구원 삼차원 비디오 부호화율 제어 방법 및 이러한 방법을 사용하는 장치
US20140019591A1 (en) * 2012-07-16 2014-01-16 Nokia Siemens Networks Oy Media Prefill Performance Improvement
US10834384B2 (en) * 2017-05-15 2020-11-10 City University Of Hong Kong HEVC with complexity control based on dynamic CTU depth range adjustment

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8544A (en) * 1851-11-25 Improvement in plows
JP2844695B2 (ja) * 1989-07-19 1999-01-06 ソニー株式会社 信号符号化装置
US5426463A (en) * 1993-02-22 1995-06-20 Rca Thomson Licensing Corporation Apparatus for controlling quantizing in a video signal compressor
EP0755610B1 (en) * 1995-02-15 2000-04-12 Koninklijke Philips Electronics N.V. Method and device for transcoding video signals
US5686963A (en) * 1995-12-26 1997-11-11 C-Cube Microsystems Method for performing rate control in a video encoder which provides a bit budget for each frame while employing virtual buffers and virtual buffer verifiers
WO2000046997A1 (en) * 1999-02-04 2000-08-10 General Instrument Corporation Video rate-buffer management scheme for mpeg transcoder
JP2001160967A (ja) * 1999-12-03 2001-06-12 Nec Corp 画像符号化方式変換装置及び符号化レート変換装置

Also Published As

Publication number Publication date
EP1461960A1 (en) 2004-09-29
US20030123540A1 (en) 2003-07-03
WO2003061298A1 (en) 2003-07-24
AU2002367067A1 (en) 2003-07-30
JP2005515732A (ja) 2005-05-26
CN1608381A (zh) 2005-04-20

Similar Documents

Publication Publication Date Title
KR20040075039A (ko) 복잡도 제약된 데이터 압축에서 동적 제어
US5631644A (en) Image encoding apparatus
JP4554927B2 (ja) ビデオトランスコーディングにおけるレート制御方法およびシステム
JP2963416B2 (ja) 量子化活動度を用いてビット発生量を制御する映像符号化方法及び装置
JP2001169284A (ja) 動画符号化装置における量子化ステップ設定方法及びその方法を用いた動画符号化装置
US6271774B1 (en) Picture data processor, picture data decoder and picture data encoder, and methods thereof
JP2002320228A (ja) 信号処理装置
JP3312597B2 (ja) 可変長符号化方法
US6011598A (en) Decoding start controller, decoder, and decoding system
JP3341842B2 (ja) バッファ管理方法
US6834082B2 (en) Image transmitting system for transmitting dynamic image data
JPH10210475A (ja) 画像符号化装置
JPH0799810B2 (ja) 符号化出力データ量制御方式及びその復号装置
JP4293112B2 (ja) 画像符号化装置と方法
JP3310276B2 (ja) 画像信号符号化装置
JP3341839B2 (ja) 画像信号符号化用バッファ管理装置
JP3310277B2 (ja) 画像信号符号化方法
JP3310275B2 (ja) 可変長符号化装置
JP3341841B2 (ja) バッファ管理装置
JP5132390B2 (ja) 動画像符号化装置及びその制御方法、コンピュータプログラム
JPH11215508A (ja) 符号発生量制御方法およびその方法を用いた符号化装置
JP3341840B2 (ja) 画像信号符号化用バッファ管理方法
Venkatesh et al. A pruning based fast rate control algorithm for MPEG coding
JPH06164412A (ja) 情報量制御装置
JPH09200749A (ja) 符号化復号化システム

Legal Events

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