KR20060103424A - 이중 패스 인코딩의 비트 예산 조정의 선택을 위한 방법 및장치 - Google Patents

이중 패스 인코딩의 비트 예산 조정의 선택을 위한 방법 및장치 Download PDF

Info

Publication number
KR20060103424A
KR20060103424A KR1020067002845A KR20067002845A KR20060103424A KR 20060103424 A KR20060103424 A KR 20060103424A KR 1020067002845 A KR1020067002845 A KR 1020067002845A KR 20067002845 A KR20067002845 A KR 20067002845A KR 20060103424 A KR20060103424 A KR 20060103424A
Authority
KR
South Korea
Prior art keywords
bit
encoder
frame
picture
budget
Prior art date
Application number
KR1020067002845A
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 KR20060103424A publication Critical patent/KR20060103424A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • 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/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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/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/142Detection of scene cut or scene change
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • H04N19/194Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive involving only two passes
    • 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)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 입력 이미지 시퀀스의 콘텐트에 기초한 비트 예산의 적응성 조정을 위한 시스템(100) 및 방법을 개시한다. 일 실시예에서, 두 개의 인코더들(110, 120)이 이중 패스 인코딩 시스템에 사용된다. 제1 인코더(110)는 입력 이미지 시퀀스를 수신하고, 표준 또는 임의의 미리 정해진 인코딩 알고리즘들을 사용하여 이미지 시퀀스의 각 프레임을 인코딩한다. 구체적으로, 제1 인코더(110)를 사용하여 이미지 시퀀스를 인코딩함으로써, 제1 인코더(110)는 예로서, 각 화상을 인코딩하기 위해 필요한 비트들의 수를 측정함으로써, 이미지 시퀀스 내의 각 화상의 복잡도를 평가할 수 있다. 이 복잡도 정보는 제2 인코더(120)를 위한 예측 정보로서 기능한다.
비트 예산, 복잡도 크기, 충만도 크기

Description

이중 패스 인코딩의 비트 예산 조정의 선택을 위한 방법 및 장치{Method and apparatus for selection of bit budget adjustment in dual pass encoding}
본 발명의 실시예들은 일반적으로 인코딩 시스템에 관한 것이다. 보다 구체적으로, 본 발명은 비트 예산이 적응적으로 조정될 수 있는 이중 패스 인코딩 시스템(dual pass encoding system)에 관한 것이다.
보다 낮은 비트 레이트들 및 보다 높은 비디오 품질에 대한 수요들은 대역폭의 효율적 사용을 필요로 한다. 이들 목적들을 달성하기 위해서, 동화상 전문가 그룹(Moving Picture Experts Group;MPEG)은 그 전문이 본 명세서에 참조로 통합되어 있는, ISO/IEC 국제 표준들 111172(1991)(일반적으로 MPEG-1 포맷이라 지칭됨) 및 13818(1995)(일반적으로 MPEG-2 포맷이라 지칭됨)을 만들었다. 이들 표준들의 한가지 목적은 데스크탑 비디오 퍼블리싱(desktop video publishing), 비디오 전화, 비디오 회의, 디지털 저장 미디어 및 텔레비전 방송 같은 복수의 서로 다른 어플리케이션들 및 서비스들을 수용하기에 충분한 유연성을 갖는 표준 코딩/디코딩 전략을 형성하는 것이다.
비록, MPEG 표준들이 일반적 코딩 방법 및 MPEG 컴플라이언트 비트스트림을 생성하기 위한 신택스를 지정하고 있지만, 다수의 파라미터들에 할당된 값들의 다 수의 변형들이 허용되며, 그에 의해, 광범위한 범위의 어플리케이션들 및 상호동작성을 지원한다. 사실, MPEG는 유효 비트스트림을 생성하기 위해 필요한 특정 알고리즘을 규정하지 않는다. 또한, MPEG 인코더 설계자들은 이미지 전처리, 움직임 추정, 코딩 모드 판정들, 확장성, 레이트 제어 및 스캔 모드 판정들 같은 영역들에서 그 소유의 MPEG-특정 알고리즘들을 개발 및 구현하는 큰 유연성을 허용받고 있다. 그러나, MPEG 인코더 설계자들의 공통적 목적은 지정된 비트 레이트 및 동작 딜레이 제약을 위해 주된 왜곡을 최소화하는 것이다.
레이트 제어의 영역에서, MPEG는 인코더의 비트 레이트를 제어하기 위한 특정 알고리즘을 규정하지 않는다. 인코더 설계자의 임무는 인코더 입력 버퍼가 오버플로우(overflow) 또는 언더플로우(underflow) 중 어느 쪽도 발생하지 않도록 비트 레이트 제어를 위한 레이트 제어 프로세스를 안출하는 것이다. 화상 레이트에 의해 결정된 규칙적 간격들에서, 디코더는 순간적으로 그 입력 버퍼로부터 다음 화상에 대한 비트들 모두를 제거한다. 너무 작은 비트들이 입력 버퍼 내에 존재하는 경우, 즉, 다음 화상에 대한 모든 비트가 수신되지 않은 경우, 이때, 입력 버퍼는 언더플로우하여 에러를 초래한다. 유사하게, 입력 버퍼 내에 너무 많은 비트들이 존재하는 경우, 즉, 입력 버퍼의 용량이 화상 시작들 사이에서 초과되는 경우, 이때, 입력 버퍼는 오버플로우하여 오버플로우 에러를 초래한다. 따라서, 인코더의 임무는 인코더에 의해 발생되는 비트들의 수를 감시하여, 오버플로우 및 언더플로우 조건들을 방지하는 것이다.
현재, 비트 레이트를 제어하는 한가지 방식은 양자화 프로세스를 변경하는 것이며, 이는 입력 비디오 이미지의 왜곡에 영향을 미친다. 양자화 스케일(단계 크기)을 변경함으로써, 비트 레이트는 변경 및 제어될 수 있다. 예시를 위해, 버퍼가 오버플로우를 향해 진행하는 경우, 양자화기 스케일은 증가되어야 한다. 이 작용은 양자화 프로세스가 부가적인 이산 코사인 변환(Discrete Cosine Transform;DCT) 계수들을 값 "제로(zero)"로 감소시키게 하여, 매크로블록을 코딩하기 위해 필요한 비트들의 수를 감소시킨다. 이는 사실 비트 레이트를 감소시키며, 잠재적 오버플로우 조건을 해결한다. 그러나, 이 작용이 당면한 오버플로우를 방지하기에 충분하지 못한 경우, 이때, 최후 수단으로서, 인코더는 고 주파수 DCT 계수들을 버리고, 단지 저 주파수 DCT 계수들만을 전송할 수 있다. 비록, 이 극단적 조치는 코딩된 비트스트림의 유효성을 손상시키지는 않지만, 이는 디코딩된 비디오 이미지내에 가시적 아티팩트들을 생성한다.
반대로, 버퍼가 언더플로우를 향해 진행하는 경우, 양자화기 스케일은 감소되어야 한다. 이 작용은 비제로 양자화된 DCT 계수들의 수를 증가시키고, 그에 의해, 매크로블록을 코딩하기 위해 필요한 비트들의 수를 증가시킨다. 따라서, 증가된 비트 레이트는 잠재적 언더플로우 조건을 해결한다. 그러나, 이 작용이 충분하지 못한 경우에, 이때, 인코더는 비트스트림 내에 충전 비트들을 삽입하거나, 시작 코드들에 선행 제로들을 추가할 수 있다.
비록, 양자화기 스케일의 변경이 인코더의 레이트 제어를 구현하는 효과적인 방법이지만, 열악한 레이트 제어 프로세스는 실제로, 비디오 이미지의 시각적 품질을 열화시킨다는 것, 즉, 효과적인 방식으로 양자화기 스케일을 변경하는데 실패한 다는 것이 판명되어 있으며, 따라서, 오버플로우 및 언더플로우 조건들을 피하기 위해 화상의 종단을 향해 양자화기 스케일을 극적으로 변경할 필요가 있다. 양자화기 스케일의 변경이 이미지 품질 및 압축 효율 양자 모두에 영향을 미치지 때문에, 이미지 품질을 희생시키지 않고, 비트 레이트를 제어하는 것이 레이트 제어 프로세스에 중요하다.
따라서, 이미지 품질 및 압축 효율을 유지하면서, 동적으로 비트 예산을 조정할 수 있는 인코딩 시스템 및 방법이 본 기술 분야에 필요하다.
일 실시예에서, 본 발명은 입력 이미지 시퀀스의 콘텐트에 기초하여 비트 예산을 적응성 조정하기 위한 시스템 및 방법을 개시한다. 즉, 인코더는 이미지 시퀀스의 각 화상에 대한 비트 예산을 동적으로 조정할 수 있으며, 그에 의해, 가용 전송 대역폭의 적절한 사용을 실행하고 화상 품질을 개선할 수 있다.
일 실시예에서, 두 개의 인코더들이 이중 패스 인코딩 시스템에 사용된다. 제1 인코더는 입력 이미지 시퀀스를 수신하고, 표준 또는 임의의 미리 정해진 인코딩 알고리즘들을 사용하여 이미지 시퀀스의 각 프레임을 인코딩한다. 구체적으로, 제1 인코더를 사용하여 이미지 시퀀스를 인코딩함으로써, 제1 인코더는 예로서, 각 화상을 인코딩하기 위해 필요한 비트들의 수를 측정함으로써 이미지 시퀀스내의 각 화상의 복잡도를 평가할 수 있다. 이 복잡도 정보는 컴플라이언트 인코더를 위한 예측 정보로서 기능한다.
즉, 복잡도 정보는 입력 이미지 시퀀스를 실제로 인코딩하기 위해 각 화상에 대한 비트 예산을 적응성 조정할 수 있는 제2 인코더에 제공된다. 일 실시예에서, 복잡도 정보는 다수의 화상들 또는 프레임들에 대해 저장될 수 있으며, 그에 의해, 레이트 제어 프로세스에 현저한 영향을 줄 수 있는 다가오는 이벤트들, 예로서, 장면 변경들, 새로운 DOP, 매우 복잡한 화상들, 현저한 움직임들이 없는 정화상들 등을 제2 인코더가 예측할 수 있게 한다.
복잡도 정보를 사용함으로써, 제2 패스 인코더는 가용 전송 대역폭의 보다 양호한 사용을 달성할 수 있으며, 그에 의해 화상 품질을 개선시킨다. 예로서, 본 발명은 낮은 비트 레이트 구현에서 맥동 노이즈를 감소시키고, 비디오 파괴를 처리하기 위해 사용될 수 있다.
상술한 본 발명의 특징이 상세히 이해될 수 있도록, 앞서 간단히 요약한 본 발명의 보다 특정한 설명을 첨부 도면에 일부가 예시되어 있는 실시예들을 참조한다. 그러나, 첨부 도면은 단지 본 발명의 전형적인 실시예들을 예시하기 위한 것이며, 따라서, 본 발명의 범주를 제한하는 것으로 고려되지 않아야 하며, 본 발명은 다른 마찬가지로 효과적인 실시예들이 가능하다는 것을 주의하여야 한다.
도 1은 본 발명의 이중 패스 인코딩 시스템을 예시하는 도면.
도 2는 본 발명의 움직임 보상식 인코더를 예시하는 도면.
도 3은 본 발명의 비트 예산을 조정하기 위한 방법을 예시하는 도면.
도 4는 본 발명의 비트 예산을 조정하기 위한 제2 방법을 예시하는 도면.
도 5는 범용 목적 컴퓨터를 사용하여 구현된 본 발명을 예시하는 도면.
이해를 촉진하기 위해, 도면들에 공통적인 동일한 요소들을 나타내기 위해서 가능한, 동일 참조 번호들이 사용되어 있다.
도 1은 본 발명의 이중 패스 인코딩 시스템(100)을 예시한다. 이중 패스 인코딩 시스템(100)은 제1 인코더(110) 및 제2 인코더(120)를 포함한다. 동작시, 제1 인코더(110)는 경로(105) 상의 입력 이미지 시퀀스 내의 각 화상이 미리 정해진 인코딩 방법을 사용하여 인코딩되는 미리 정해진 또는 표준 인코딩 방법을 구현한다. 결과적인 복잡도 정보(예로서, 각 화상에 대해 사용된 인코딩 비트들의 수)가 그 후 제2 인코더(120)에 제공된다. 순차적으로, 제2 인코더(120)는 이제 경로(105)상의 입력 이미지 시퀀스를 경로(125) 상의 컴플라이언트(예로서, MPEG-컴플라이언트) 인코딩된 스트림으로 실제로 인코딩하기 위해 이미지 시퀀스 내의 각 화상에 대한 비트 예산을 조정할 수 있게 하도록 복잡도 정보를 제공받는다.
제1 인코더(110)는 컴플라이언트 인코더, 예로서, MPEG 인코더일 필요가 없다는 것을 주의하여야 한다. 이유는 이미지 시퀀스가 제1 인코더에 의해 최종 컴플라이언트 인코딩된 스트림으로 실제로 인코딩되지 않는다는 것이다. 제1 인코더의 주목적은 각 화상에 대한 복잡도 크기가 예로서, 경로(107) 상에서 도출될 수 있도록 입력 이미지 시퀀스내의 각 이미지에 인코딩 방법을 적용하는 것이다. 특히, 제1 인코더의 인코딩 방법은 제2 인코더에 사용되는 인코딩 방법과 유사 또는 심지어 동일할 수 있다. 그러나, 입력 이미지 시퀀스내의 다른 화상들에 대한 각 화상의 상대적 복잡도를 도출하는 것만을 필요로 하기 때문에, 보다 덜 복잡한 인코딩 방 법이 제1 디코더에 사용될 수 있다.
순차적으로, 경로(107) 상의 복잡도 정보는 실제로 이미지 시퀀스를 인코딩하기 위한 비트 예산을 적절히 조정하기 위해 제2 인코더에 의해 효과적으로 활용될 수 있다. 따라서, 제1 인코더는 넌-컴플라이언트 인코더(non-compliant) 또는 컴플라이언트 인코더일 수 있는 반면, 제2 인코더는 컴플라이언트 인코더이다.
비록 본 발명을 MPEG-2에 관하여 설명하지만, 본 발명은 이에 한정되지 않는다는 것을 주의하여야 한다. 즉, 컴플라이언트 인코더는 MPEG-2 컴플라이언트 인코더 또는 임의의 다른 압축 표준들, 예로서, MPEG-4, H.261, H.263 등에 컴플라이언트인 인코더일 수 있다. 달리 말해서, 본 발명은 유연한 레이트 제어 구현을 가능하게 하는 임의의 압축 표준들에 적용될 수 있다.
도 2는 본 발명의 예시적 움직임 보상식 인코더(200), 예로서, 도 1의 컴플라이언트 인코더(120)의 블록도를 도시한다. 본 발명의 일 실시예에서, 장치(200)는 인코더 또는 보다 복잡한 가변 블록-기반 움직임 보상 코딩 시스템의 일부이다. 장치(200)는 가변 블록 움직임 추정 모듈(240), 움직임 보상 모듈(250), 레이트 제어 모듈(230), 이산 코사인 변환(DCT) 모듈(260), 양자화(Q) 모듈(270), 가변 길이 코딩(VLC) 모듈(275), 역 DCT(DCT-1) 변환 모듈(265), 감산기(215) 및 합산기(255)를 포함한다. 비록, 장치(200)가 복수의 모듈들을 포함하지만, 본 기술의 숙련자들은 다양한 모듈들에 의해 수행되는 펑션들은 도 2에 도시된 바와 같은 별개의 모듈들로 격리될 필요는 없다는 것을 알 수 있을 것이다. 예로서, 움직임 보상 모듈 (250), 역 양자화 모듈(275) 및 역 DCT 모듈(265)을 포함하는 모듈들의 세트는 일반적으로 "임베딩된 디코더(embeded decoder)"라 알려져 있다.
도 2는 MPEG 표준들에 따른 휘도 및 2 색차 신호(Y, Cr, Cb)로서 표현된, 디지털화된 경로(210) 상의 입력 비디오 이미지(이미지 시퀀스)를 예시한다. 이들 신호들은 각 화상(프레임)이 서로 다른 크기들을 갖는 복수의 블록들로 표현되도록 복수의 층들(시퀀스, 화상들의 그룹, 화상, 슬라이스 및 블록들)로 추가로 분할된다. 화상의 블록 유닛들로의 분할은 두 연속 화상들 사이의 변화들을 식별하기 위한 기능을 향상시키며, 저 진폭 변환 계수들(후술됨)의 제거를 통해 이미지 압축을 향상시킨다. 디지털화된 신호는 선택적으로, 적절한 윈도우, 해상도 및 입력 포맷을 선택하기 위한 포맷 변환 같은 전처리를 받을 수 있다.
경로(210) 상의 입력 비디오 이미지는 움직임 벡터들을 추정하기 위해 가변 블록 움직임 추정 모듈(240)에 수신된다. 가변 블록 움직임 추정 모듈(240)로부터의 움직임 벡터들은 샘플 값들의 예측의 효율을 향상시키기 위해 움직임 보상 모듈(250)에 의해 수신된다. 움직임 보상은 예측 에러를 형성하기 위해 사용되는 이전에 디코딩된 샘플 값들을 포함하는 과거 및/또는 미래 기준 프레임들에 오프셋들을 제공하기 위해 움직임 벡터들을 사용하는 예측을 수반한다. 즉, 움직임 보상 모듈(250)은 현 프레임의 추정을 구성하기 위해 움직임 벡터들 및 이전에 디코딩된 프레임을 사용한다.
또한, 주어진 블록에 대한 움직임 보상 수행 이전에, 코딩 모드가 선택되어 야만 한다. 코딩 모드 판정의 영역에서, MPEG는 복수의 서로 다른 코딩 모드들을 제공한다. 일반적으로, 이들 코딩 모드들은 두 개의 넓은 부류들, 즉, 인터 모드 코딩(inter mode coding) 및 인트라 모드 코딩(intra mode coding)으로 그룹화된다. 인트라 모드 코딩은 단지 그 블록 또는 화상으로부터의 정보만을 사용하는 블록 또는 화상의 코딩을 수반한다. 반대로, 인터 모드 코딩은 그 자신으로부터 및 서로 다른 시간들에서 발생하는 블록들 및 화상들로부터의 정보 양자 모두를 사용하는 블록 또는 화상의 코딩을 수반한다. 구체적으로, MPEG-2는 인트라모드, 비 움직임보상 모드(No MC), 프레임/필드/이중-프라임 움직임 보상 인터 모드, 전진/후진/평균 인터 모드 및 필드/프레임 DCT 모드를 포함하는 코딩 모드들을 제공한다. 각 블록을 위한 코딩 모드의 적절한 선택은 코딩 성능을 향상시킨다. 또한, 코딩 모드 판정을 이행하기 위해 다양한 방법들이 현재 인코더 설계자에게 가용하다.
코딩 모드가 선택되고 나면, 움직임 보상 모듈(250)은 과거 및/또는 미래 기준 화상들의 콘텐츠의 경로(252) 상의 움직임 보상된 예측(예측된 이미지)을 생성한다. 경로(252) 상의 이 움직임 보상된 예측은 감산기(215)를 경유하여 현재 블록의 경로(210) 상의 비디오 이미지로부터 감산되어 경로(253) 상의 예측 잔류 신호 또는 에러 신호를 형성한다. 예측 잔류 신호의 형성은 입력 비디오 이미지의 중복된 정보(redundant information)를 효과적으로 제거한다. 즉, 전송 채널을 경유하여 실제 비디오 이미지를 전송하는 대신, 단지 비디오 이미지의 예측들 및 이들 예측들의 에러들을 생성하기 위해 필요한 정보만이 전송되며, 그에 의해, 전송될 필요가 있는 데이터의 양을 현저히 감소시킨다. 비트 레이트를 추가로 감소시키기 위 해, 경로(253) 상의 예측 잔류 신호는 인코딩을 위해 DCT 모듈(260)에 전달된다.
DCT 모듈(260)은 그 후 예측 잔류 신호의 각 블록에 전진 이산 코사인 변환 프로세스를 적용하여 DCT 계수들의 8 x 8 블록들의 세트를 생성한다. DCT 계수들의 8 x 8 블록들의 수는 각 블록의 크기에 의존한다. 이산 코사인 변환은 가역적인 불연속 직교 변환이며, DCT 계수들은 코사인 기반 함수들(cosine basis functions)의 세트의 진폭들을 나타낸다. 이산 코사인 변환의 한가지 장점은 DCT 계수들이 서로 상관되어 있지 않다는 것이다. DCT 계수들의 이 무관성은 압축에 중요하며, 그 이유는 각 계수가 압축 효율의 손실 없이 독립적으로 취급될 수 있기 때문이다. 또한, DCT 기반 함수 또는 서브대역 분해는 양자화의 다음 단계를 위해 중요한 사이코비쥬얼 기준들(psychovisual criteria)의 효과적인 사용을 가능하게 한다.
DCT 계수들의 결과적인 8 x 8 블록은 양자화 모듈(270)에 의해 수신되며, 여기서, DCT 계수들이 양자화된다. 양자화 프로세스는 DCT 계수들이 정수 값들을 형성하기 위한 적절한 라운딩과 함께 양자화 값들의 세트에 의해 DCT 계수들을 나눔으로써 표현되게 되는 정확도를 감소시킨다. 양자화 값들은 각 DCT 계수에 대해 독립적으로 설정될 수 있으며, 기초 함수들의 가시성에 기초한 기준들을 사용한다(시각적 가중식 양자화라 알려짐). 즉, 양자화 값은 주어진 기초 함수의 가시성을 위한 임계치, 즉, 육안으로 겨우 검출가능한 계수 진폭에 대응한다. 이 값으로 DCT 계수들을 양자화함으로써, 다수의 DCT 계수들이 값 "제로(zero)"로 변환되며, 그에 의해, 이미지 압축 효율을 향상시킨다. 양자화의 프로세스는 핵심 동작이며, 주어진 비트 레이트에 그 출력을 일치시키도록 인코더를 제어(레이트 제어)하기 위해, 그리고, 시각적 품질을 달성하기 위해 중요한 도구이다. 서로 다른 양자화 값이 각 DCT 계수에 적용되기 때문에, "양자화 매트릭스(quantization matrix)"는 일반적으로 기준표, 예로서, 휘도 양자화표 또는 채도 양자화표로서 형성된다. 따라서, 인코더는 변환된 블록 내의 각 주파수 계수가 어떻게 양자화되는지를 결정하는 양자화 메트릭스를 선택한다.
다음에, 양자화된 DCT 계수들의 결과적인 8 x 8 블록이 신호 접속(271)을 경유하여 가변 길이 코딩 모듈(280)에 의해 수신되며, 여기서, 양자화된 계수들의 2차원 블록이 특정 스캐닝 모드, 예로서, "지그-재그(zig-zag)" 순서를 사용하여 스캐닝되어 이를 양자화된 DCT 계수들의 1차원 스트링으로 변환한다. 예로서, 지그-재그 스캐닝 순서는 최저 공간적 주파수로부터 최고로의 DCT 계수들의 근사 순차 순서화이다. 양자화가 일반적으로 높은 공간적 주파수들의 DCT 계수들을 제로로 감소시키기 때문에, 양자화된 DCT 계수들의 1차원 스트링은 통상적으로 제로들의 스트링이 이어지는 몇 개의 정수들로 표현된다.
가변 길이 코딩(variable length coding;VLC) 모듈(280)은 그 후 양자화된 DCT 계수들의 스트링 및 블록 유형과 움직임 벡터들 같은 블록을 위한 모든 부수-정보를 인코딩한다. VLC 모듈(280)은 인코딩 효율을 효과적으로 향상시키기 위해 가변 길이 코딩 및 런-길이 코딩을 사용한다. 가변 길이 코딩은 가역적 코딩 프로세스이며, 빈번한 이벤트들에 보다 짧은 코드 워드들이 할당되고, 덜 빈번한 이벤트들에 보다 긴 코드 워드들이 할당되며, 런 길이 코딩은 단일 심볼로 심볼들의 런을 인코딩함으로써 코딩 효율을 증가시킨다. 이들 코딩 체계들은 본 기술 분야에 잘 알려져 있으며, 정수 길이 코드 워드들이 사용될 때, 종종 허프만 코딩(Huffman coding)이라 지칭된다. 따라서, VLC 모듈(280)은 입력 비디오 이미지를 유효 데이터 스트림으로 변환하는 최종 단계를 수행한다.
데이터 스트림은 "퍼스트 인-퍼스트 아웃(First In-First Out)"(FIFO) 버퍼(290)에 수신된다. 서로 다른 화상 유형들 및 가변 길이 코딩의 사용의 결과는 FIFO로의 전체 비트 레이트가 가변적이라는 것이다. 즉, 각 프레임을 코딩하기 위해 사용되는 비트들의 수가 서로 다를 수 있다. 고정 레이트 채널을 수반하는 어플리케이션들에서, FIFO 버퍼는 비트 레이트를 원활화하기 위해 채널에 인코더 출력을 일치시키기 위해 사용된다. 따라서, FIFO 버퍼(290)의 출력 신호는 입력 비디오 이미지(210)의 압축된 표현이며, 이는 경로(295) 상의 원격통신 채널 또는 저장 매체로 전송된다.
레이트 제어 모듈(230)은 데이터 스트림의 전송 이후 디코더측(수신기 또는 타겟 저장 디바이스 내의, 미도시)상의 오버플로우 및 언더플로우를 방지하기 위해 FIFO 버퍼(290)에 들어가는 데이터 스트림의 레이트를 감시 및 조정하도록 기능한다. 고정 레이트 채널은 일정한 레이트로 비트들을 디코더 내의 입력 버퍼에 투입하는 것으로 가정된다. 화상 레이트에 의해 결정되는 규칙적 간격들에서, 디코더는 순간적으로 다음 화상에 대한 비트들 모두를 그 입력 버퍼로부터 제거한다. 입력 버퍼내에 너무 소수의 비트들이 존재하는 경우, 즉, 다음 화상에 대한 비트들 모두가 수신되어 있지 않은 경우, 이때, 입력 버퍼는 언더플로우하여 에러를 유발한다. 유사하게, 입력 버퍼 내에 너무 많은 비트들이 존재하는 경우, 즉, 입력 버퍼의 용 량이 화상 시작들 사이에서 초과된 경우, 이때, 입력 버퍼는 오버플로우하여 오버플로우 에러를 초래한다. 따라서, 레이트 제어 모듈(230)의 임무는 인코더에 의해 생성되는 비트들의 수를 제어하도록 버퍼(290)의 상태를 감시하여 오버플로우 및 언더플로우 상태들을 방지하는 것이다. 레이트 제어 알고리즘들은 이미지 품질 및 압축 효율에 영향을 주는 중요한 역할을 한다.
일 실시예에서, 레이트 제어 모듈(230) 내의 입력 이미지 시퀀스의 각 화상에 대한 비트 예산의 적절한 조정은 경로(107) 상에서 수신된 정보로부터 결정된다. 즉, 각 인코딩된 이미지의 복잡도는 제1 패스 인코더(110)에 의해 공급되는 결과에 기초하여 쉽게 결정될 수 있다. 예시를 위해, 제2 패스 인코더(120)는 최근 화상들을 인코딩하기 위한 복잡도(사용되는 비트들)와 다음 화상의 인코딩의 시작 이전의 버퍼(290)의 충만도를 비교할 수 있다. 경로(107) 상에 수신된 정보로 인한 이 전진 감시 기능은 이미지 시퀀스를 실제로 인코딩하기 위해 비트 예산을 적절히 조정하도록 제2 인코더에 의해 효과적으로 활용될 수 있다.
도 3은 본 발명의 비트 예산을 조정하기 위한 방법(300)을 예시한다. 구체적으로, 이중 패스 인코딩 레이트 제어 방법에서, 제2 패스 인코더는 제1 패스 인코더로부터의 예측 정보의 장점을 취하고, 필요한 비트 예산 및/또는 화상 코딩 유형을 결정한다.
방법 300은 단계 305에서 시작하며, 단계 310으로 진행한다. 단계 310에서, 방법 300은 표준 또는 미리 정해진 인코딩 방법을 사용하여 입력 이미지 시퀀스의 각 화상을 인코딩한다.
단계 320에서, 각 화상의 인코딩 이후, 방법 300은 각 화상의 복잡도를 도출할 수 있다. 예로서, 화상을 인코딩하기 위해 필요한 비트들의 수는 화상의 복잡도의 지표이다.
단계 330에서, 방법 300은 제2 인코더에서의 화상 인코딩 이전에 제1 인코더로부터 수신된 복잡도 정보에 기초하여 각 화상의 비트 예산을 조정한다. 예로서, 비트 레이트 제어 방법은 결정된 화상 코딩 유형에 의존하여 프레임의 초기 비트 예산을 산출한다 :
I 프레임에 대하여 : I_bit_budget = (bit_rate) / (Ki + (Kp*Cp/Ci) + (Kb*Cb/Ci));
P 프레임에 대하여 : P_bit_budget = (bit_rate) / (Kp + (Ki*Ci/Cp) + (Kb*Cb/Cp));
B 프레임에 대하여 : B_Bit_budget = (bit_rate) / (Kb + (Ki*Ci/Cb) + (Kp*Cp/Cb));
여기서, Ki, Kp 및 Kb는 화상들의 그룹(GOP) 내의 I, P 및 B 프레임들의 수를 나타낸다.
여기서, Ci, Cp 및 Cb는 상대적 I, P 및B 프레임들의 복잡도 계수를 나타낸다 :
Ci = Ri*Qi*Pass1Ci/prevPass1Ci;
Cp = Rp*Qp*Pass1Cp/prevPass1Cp;
Cb = Rb*Qb*Pass1Cb/prevPass1Cb;
여기서, Ri는 제2 패스 인코더 상의 최종 I 프레임의 인코딩 비트들을 나타내고, Qi는 제2 패스 인코더 상의 최종 I 프레임의 평균 양자화 레벨을 나타내며, Pass1Ci는 제2 패스 인코더 상의 현재 I 프레임의 제1 패스 인코더 추정 I 복잡도이고, prevPass1Ci는 제2 패스 인코더의 최종 I 프레임의 제2 패스 인코더 추정 I 복잡도이며;
여기서, Rp는 제2 패스 인코더 상의 최종 P 프레임의 인코딩 비트들을 나타내고, Qp는 제2 패스 인코더 상의 최종 P 프레임의 평균 양자화 레벨을 나타내며, Pass1Cp는 제2 패스 인코더 상의 현재 P 프레임의 제1 패스 인코더 추정 P 복잡도이고, prevPass1Cp는 제2 패스 인코더의 최종 P 프레임의 제1 패스 인코더 추정 P 복잡도이며;
여기서, Rb는 제2 패스 인코더 상의 최종 B 프레임의 인코딩 비트들을 나타내고, Qb는 제2 패스 인코더 상의 최종 B 프레임의 평균 양자화 레벨을 나타내며, Pass1Cb는 제2 패스 인코더 상의 현재 B 프레임의 제1 패스 인코더 추정 B 복잡도이고, prevPass1Cb는 제2 패스 인코더의 최종 B 프레임의 제2 패스 인코더 추정 B 복잡도이다.
그러나, 초기 비트 예산은 현재의 가용 비디오 버퍼링 증명자(VBV_fullness)를 초과할 수 없으며, 따라서, I, P 및 B 프레임에 대한 최종 비트 예산은 각각 아래와 같다 :
I_final_bitbudget = min(I_bit_budget, VBV_fullness);
P_final_bitbudget = min(P_bit_budget, VBV_fullness);
B_final_bitbudget = min(B_bit_budget, VBV_fullness);
달리 말해서, 각 프레임 유형에 대한 최종 비트 예산은 버퍼내의 현재의 가용 공간보다 클 수 없다. 따라서, 최소값 함수(min function)가 사용된다. 방법 300은 그 후 단계 335에서 종료한다. 도 3의 방법은 컴플라이언트 비트스트림으로 인코딩되기 이전에 이중 패스 인코딩 시스템이 이미지 시퀀스 내의 각 화상의 비트 예산을 적절히 조정할 수 있게 한다.
도 4는 본 발명의 비트 예산을 조정하기 위한 제2 방법 400을 예시한다. 비록, 미리 화상의 복잡도를 인지함으로써 레이트 제어 방법이 각 프레임에 대한 비트 예산을 효율적으로 조정하는 것이 앞서 예시되어 있지만, 이런 조정이 추가로 개선될 수 있는 상황들도 존재한다. 즉, 예측 정보는 장면 변화들, 새로운 GOP 시작들 등 같은 이벤트들을 다루기 위해 다수의 화상들 또는 프레임들을 위해 필요할 수 있다. 이들 이벤트들은 종종 인코딩 비트들의 많은 양을 필요로 하는 I 프레임으로서 화상을 인코딩하는 것을 필요로 한다. 도입 I 프레임의 검출이 너무 늦게 검출되는 경우, 제1 인코더로부터 수신된 복잡도 정보는 적절히 사용될 수 없다. 달리 말해서, 간단히, 잠재적 I 프레임이 급속히 접근하면 적절한 조정을 수행하기에 충분한 코딩 비트들이 존재하지 않는다. 이 문제를 해결하기 위해, 레이트 제어 방법이 조정들을 새로 수행하기에, 예로서, 다수의 프레임들에 걸쳐 조정을 확산시키기 위해 충분한 시간을 갖도록, 잠재적 I 프레임이 접근한다는 것을 미리 아는 것이 유리하다. 이 스케일링 다운 동작(scaling down operation)은 I 프레임이 도달할 때 급격한 레이트 제어 체계를 회피하도록 보다 원활한 전이를 가능하게 한 다.
방법 400은 단계 405에서 시작하며, 단계 410으로 진행한다. 단계 410에서, 방법 400은 제1 패스 인코더로부터 복잡도 정보 또는 추정을 검색하며, 이 정보를 참조표(look up table)에 저장한다.
단계 420에서, 방법 400은 현재 프레임의 VBV_fullness 및 비트 예산(bit_budget[0])을 산출한다. 비트 예산을 산출하는 방법은 상기 도 3에 개시된 방법에 따른다.
단계 425에서, 방법 400은 도입 프레임이 I 프레임으로서 인코딩될 필요가 있는지 여부를 질의한다. 예로서, 참조표가 복수의 프레임들, 예로서, 약 12 프레임들을 저장할 능력을 가질 수 있으며, 여기서, 저장된 프레임들 중 하나 이상이 I 프레임으로서 인코딩될 필요가 있다는 것을 알 수 있다. 참조표의 크기는 어플리케이션에 특정한 것이며, 본 발명은 특정 크기에 한정되지 않는다는 것을 주의하여야 한다. 질의가 부정으로 답변되는 경우, 이때, 방법 400은 단계 450으로 진행하며, 여기서, 산출된 비트 예산이 현 프레임의 인코딩에 사용된다. 방법 400은 그 후 단계 410으로 복귀하여 다음 프레임을 처리한다. 질의가 긍정적으로 답변되는 경우, 그 후, 방법 400은 단계 430으로 진행한다.
단계 430에서, 방법 400은 참조표로부터 잠재적 I 프레임에 대한 복잡도 정보 또는 추정을 검색하며, 추정 비트 예산, 예로서, (I_bit_budget[k])을 계산한다. 예로서, 현 프레임으로부터 k=5 프레임 떨어져 있는 잠재적 I 프레임이 존재하는 경우, 이때, 방법 400은 즉시 아직 5 프레임 떨어져 있는 이 I 프레임을 인코딩 하기 위해 필요한 비트들의 양을 추정한다. 본 스케일링 동작이 트리거되기 이전에 현 프레임에 대한 잠재적 I 프레임의 거리는 어플리케이션에 특정하며, 예로서, 10 프레임 이내 등등이다.
단계 435에서, 방법 400은 잠재적 I 프레임에 대한 추정 비트 예산, 예로서, (I_bit_budget[k])이 가용 비디오 버퍼링 증명자(VBV_Fullness)를 초과하는지 여부에 대해 질의한다. 질의가 부정적으로 답변된 경우, 이때, 방법은 단계 450으로 진행하며, 여기서, 현 프레임이 산출된 비트 예산을 사용하여 인코딩된다. 달리 말해서, 계류중인 I 프레임이 접근한다 하더라도 현 프레임의 인코딩에 어떠한 조정도 이루어지지 않으며, 그 이유는 버퍼 내에 충분한 공간이 존재하기 때문이다.
그러나, 질의가 긍정적으로 답변된 경우, 그 후, 방법 400은 단계 440으로 진행하며, 여기서, 현 프레임을 위해 산출된 비트 예산이 스케일링 다운된다. 달리 말해서, 방법 400은 버퍼 내에 불충분한 공간이 존재하거나, 불충분할 수 있어서 I 프레임이 여전히 다수 프레임 떨어져 있지만 이제 현 프레임의 비트 예산을 하향 조정할 필요가 있다는 것을 검출한다.
예시를 위해, 초기 I 비트 예산이 가용 VBV_fullness 보다 큰 경우, 스케일러는 하기와 같이 산출된다. 예로서, 파이프라인(pipeline) 내의 비디오 프레임 시퀀스가 f[i], 여기서, 추정 파이프 라인의 길이에 의존하여, i=0, 1, 2, 3,...이다. 프레임 f(k)이 아직 가능 I 프레임일 수 있다고 가정한다. f[k]의 복잡도를 Pass1Ci[k], Pass1Cp[k] 및 Pass1Cb[k]라 정의하고, f[k]의 비트 예산을 도 3에서 상술된 바와 같이 I_bit_budget[k]로서 산출한다.
(I_bit_budget[k] > VBV_fullness)인 경우, 이때, S=I_bit_budget[0] / VBV_fullness이며,
여기서, S는 I 프레임 비트 예산이 현재 VBV_fullness 보다 큰 경우의 스케일 팩터를 나타낸다.
이때, 현 프레임의 비트 예산은 하기와 같이 스케일링 다운된다.
P_bit_budget[0] = P_bit_budget[0]/S;
P_final_bitbudget = min(P_bit_budget[0], VBV_fullness); 현프레임이 P 프레임인 경우,
또는 B_bit_budget[0] = B_bit_budget[0]/S;
B_final_bitbudget = min(B_bit_budget[0], VBV_fullness); 현프레임이 B 프레임인 경우.
방법 400은 그 후 단계 450으로 진행하며, 여기서, 현 프레임은 새롭게 스케일링 다운된 비트 예산을 사용하여 인코딩된다. 방법 400은 그후 단계 410으로 복귀되고, 다음 프레임이 처리된다. 다음 프레임은 스케일링 다운되거나 그렇지 않을 수 있다는 것을 주의하여야 한다. 주된 양태는 접근하는 I 프레임이 적절히 인코딩되기 이전에 현 프레임들의 하나 이상의 비트 예산들이 스케일링 다운될 수 있다는 것이다.
도 5는 범용 목적 컴퓨터로 구현되는 본 발명의 이중 패스 인코딩 시스템의 블록도이다. 일 실시예에서, 이중 패스 인코딩 시스템(500)은 범용 목적 컴퓨터 또는 임의의 다른 하드웨어 등가체들을 사용하여 구현된다. 보다 구체적으로, 이중 패스 인코딩 시스템(500)은 프로세서(CPU)(510), 메모리(520), 예로서, 임의 접근 메모리(RAM) 및/또는 판독 전용 메모리(ROM), 제 인코더(522), 제2 인코더(524) 및 다양한 입력/출력 디바이스들(530)(예로서, 테이프 드라이브, 플로피 드라이브, 하드 디스크 드라이브 또는 콤팩트 디스크 드라이브를 포함하는 저장 디바이스들, 수신기, 송신기, 스피커, 디스플레이, 출력 포트, 사용자 입력 디바이스(키보드, 키패드, 마우스 등 같은) 또는 대화 명령들을 포착하기 위한 마이크로폰).
제1 인코더(522) 및 제2 인코더(524)는 명령 채널을 통해 CPU(510)에 연결된 물리적 디바이스들 또는 서브시스템들로서 구현될 수 있음을 이해해야 한다. 대안적으로, 제1 인코더(522) 및 제2 인코더(524)는 하나 이상의 소프트웨어 어플리케이션들(또는, 심지어, 예로서, 용도 특정 집적 회로들(ASIC)을 사용하는, 소프트웨어 및 하드웨어들의 조합)으로 표현될 수 있으며, 여기서, 소프트웨어는 저장 매체(예로서, 자기 또는 광학 드라이브나 디스켓)로부터 로딩되고, 컴퓨터의 메모리(520)내에서 CPU에 의해 작용된다. 이와 같이, 본 발명의 제1 인코더(522) 및 제2 인코더(연계된 데이터 구조들 포함)는 컴퓨터 판독가능한 매체 또는 캐리어, 예로서, RAM 메모리, 자기 또는 광학 드라이브 또는 디스켓 등에 저장될 수 있다.
상술한 바가 본 발명의 실시예들에 관한 것이지만, 본 발명의 기본적 범주로부터 벗어나지 않고, 본 발명의 다른 및 추가적인 실시예들이 안출될 수 있으며, 본 발명의 범주는 하기의 청구범위에 의해서 규정된다.

Claims (10)

  1. 이미지 시퀀스 내의 적어도 하나의 화상에 대한 비트 예산(bit budget)을 계산하는 방법에 있어서,
    제1 인코더에서 상기 적어도 하나의 화상을 인코딩하는 단계;
    상기 제1 인코더에 의해 인코딩되는 상기 적어도 하나의 화상의 복잡도 크기(complexity measure)을 결정하는 단계; 및
    제2 인코더에서 상기 적어도 하나의 화상을 인코딩하기 위해 상기 복잡도 크기에 따라 비트 예산을 계산하는 단계를 포함하는, 비트 예산 계산 방법.
  2. 제 1 항에 있어서, 상기 제2 인코더는 동화상 전문가 그룹(Moving Picture Experts Group;MPEG)-2에 따른 컴플라이언트 인코더(compliant encoder)인, 비트 예산 계산 방법.
  3. 제 1 항에 있어서, 상기 계산 단계는 상기 적어도 하나의 화상에 대해 선택된 인코딩 프레임 유형에 기초하여 상기 비트 예산을 계산하는, 비트 예산 계산 방법.
  4. 제 3 항에 있어서, 상기 인코딩 프레임 유형은 I-프레임, P-프레임 및 B-프레임 중 적어도 하나를 포함하는, 비트 예산 계산 방법.
  5. 제 4 항에 있어서, 상기 계산 단계는,
    I 프레임에 대하여 : I_bit_budget = (bit_rate) / (Ki + (Kp*Cp/Ci) + (Kb*Cb/Ci));
    P 프레임에 대하여 : P_bit_budget = (bit_rate) / (Kp + (Ki*Ci/Cp) + (Kb*Cb/Cp));
    B 프레임에 대하여 : B_Bit_budget = (bit_rate) / (Kb + (Ki*Ci/Cb) + (Kp*Cp/Cb));
    에 따라 상기 비트 예산을 계산하고,
    Ki, Kp 및 Kb는 화상들의 그룹(GOP) 내의 I, P 및 B 프레임들의 수를 나타내며,
    Ci, Cp 및 Cb는 상대적인 I, P 및 B 프레임들의 복잡도 계수를 나타내는, 비트 예산 계산 방법.
  6. 제 1 항에 있어서,
    상기 제1 인코더로부터 이전에 인코딩된 화상들의 복수의 복잡도 크기들을 저장하는 단계; 및
    I-프레임으로서 인코딩될 필요가 있는 화상인 상기 이전에 인코딩된 화상들 중 하나에 기초하여 현재 화상의 상기 비트 예산을 스케일링하는 단계를 더 포함하는, 비트 예산 계산 방법.
  7. 제 6 항에 있어서, 상기 스케일링 단계는 상기 스케일링 단계가 적용되는지의 여부를 결정하기 위해 상기 비트 예산을 버퍼의 충만도 크기(fullness measure)와 비교하는, 비트 예산 계산 방법.
  8. 이미지 시퀀스 내의 적어도 하나의 화상에 대한 비트 예산을 계산하는 장치(100)에 있어서,
    제1 인코더에 의해 인코딩되는 상기 적어도 하나의 화상의 복잡도 크기를 생성하기 위해 상기 적어도 하나의 화상을 인코딩하기 위한 제1 인코더(110); 및
    상기 적어도 하나의 화상을 인코딩하기 위해 상기 복잡도 크기에 따라 비트 예산을 계산하기 위한 제2 인코더(120)를 포함하는, 비트 예산 계산 장치.
  9. 제 8 항에 있어서, 상기 제2 인코더(120)는 상기 적어도 하나의 화상에 대해 선택된 인코딩 프레임 유형에 기초하여 상기 비트 예산을 계산하고, 상기 인코딩 프레임 유형은 I-프레임, P-프레임 및 B-프레임 중 적어도 하나를 포함하는, 비트 예산 계산 장치.
  10. 제 9 항에 있어서, 상기 비트 예산은,
    I 프레임에 대하여 : I_bit_budget = (bit_rate) / (Ki + (Kp*Cp/Ci) + (Kb*Cb/Ci));
    P 프레임에 대하여 : P_bit_budget = (bit_rate) / (Kp + (Ki*Ci/Cp) + (Kb*Cb/Cp));
    B 프레임에 대하여 : B_Bit_budget = (bit_rate) / (Kb + (Ki*Ci/Cb) + (Kp*Cp/Cb));
    에 따라 계산되고,
    Ki, Kp 및 Kb는 화상들의 그룹(GOP) 내의 I, P 및 B 프레임들의 수를 나타내며,
    Ci, Cp 및 Cb는 상대적인 I, P 및 B 프레임들의 복잡도 계수를 나타내는, 비트 예산 계산 장치.
KR1020067002845A 2003-08-12 2004-08-10 이중 패스 인코딩의 비트 예산 조정의 선택을 위한 방법 및장치 KR20060103424A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US49451403P 2003-08-12 2003-08-12
US60/494,514 2003-08-12

Publications (1)

Publication Number Publication Date
KR20060103424A true KR20060103424A (ko) 2006-09-29

Family

ID=34215879

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067002845A KR20060103424A (ko) 2003-08-12 2004-08-10 이중 패스 인코딩의 비트 예산 조정의 선택을 위한 방법 및장치

Country Status (6)

Country Link
US (1) US20050036548A1 (ko)
EP (1) EP1654807A2 (ko)
KR (1) KR20060103424A (ko)
CN (1) CN101390389A (ko)
CA (1) CA2533929A1 (ko)
WO (1) WO2005020439A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101507183B1 (ko) * 2007-02-21 2015-03-30 마이크로소프트 코포레이션 변환-기반 디지털 미디어 코덱에서의 계산 복잡도 및 정밀도 제어

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7940843B1 (en) * 2002-12-16 2011-05-10 Apple Inc. Method of implementing improved rate control for a multimedia compression and encoding system
US8379721B2 (en) * 2005-09-22 2013-02-19 Qualcomm Incorported Two pass rate control techniques for video coding using a min-max approach
KR100790148B1 (ko) * 2006-07-27 2008-01-02 삼성전자주식회사 실시간 영상 복잡도 측정 방법
US8254700B1 (en) 2006-10-03 2012-08-28 Adobe Systems Incorporated Optimized method and system for entropy coding
US9094684B2 (en) * 2011-12-19 2015-07-28 Google Technology Holdings LLC Method for dual pass rate control video encoding
US20150063469A1 (en) * 2013-08-30 2015-03-05 Arris Enterprises, Inc. Multipass encoder with heterogeneous codecs
CN104244004B (zh) * 2014-09-30 2017-10-10 华为技术有限公司 低功耗编码方法及装置
EP3200456A1 (en) 2016-01-28 2017-08-02 Axis AB Video encoding method and video encoder system for temporal noise reduction
CN106358046A (zh) * 2016-11-12 2017-01-25 深圳市迪威码半导体有限公司 一种高清视频图像无线传输方法和系统
US10638127B2 (en) * 2017-05-15 2020-04-28 Qualcomm Incorporated Adaptive anchor frame and quantization parameter decision in video coding
CN108156440B (zh) * 2017-12-26 2020-07-14 重庆邮电大学 一种基于分块dct变换的三维视频深度图非编码传输方法
US10855988B2 (en) 2018-12-19 2020-12-01 Qualcomm Incorporated Adaptive prediction structures
CN115633176B (zh) * 2022-12-08 2023-03-21 北京蔚领时代科技有限公司 动态调整画面群组长度的方法、装置和存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5146324A (en) * 1990-07-31 1992-09-08 Ampex Corporation Data compression using a feedforward quantization estimator
US5038209A (en) * 1990-09-27 1991-08-06 At&T Bell Laboratories Adaptive buffer/quantizer control for transform video coders
US5159447A (en) * 1991-05-23 1992-10-27 At&T Bell Laboratories Buffer control for variable bit-rate channel
JP2001145113A (ja) * 1999-11-17 2001-05-25 Sony Corp 画像情報変換装置及び方法
US6804301B2 (en) * 2001-08-15 2004-10-12 General Instrument Corporation First pass encoding of I and P-frame complexity for compressed digital video

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101507183B1 (ko) * 2007-02-21 2015-03-30 마이크로소프트 코포레이션 변환-기반 디지털 미디어 코덱에서의 계산 복잡도 및 정밀도 제어

Also Published As

Publication number Publication date
CN101390389A (zh) 2009-03-18
CA2533929A1 (en) 2005-03-03
WO2005020439A2 (en) 2005-03-03
EP1654807A2 (en) 2006-05-10
WO2005020439A3 (en) 2008-07-17
US20050036548A1 (en) 2005-02-17

Similar Documents

Publication Publication Date Title
US7653129B2 (en) Method and apparatus for providing intra coding frame bit budget
US6243497B1 (en) Apparatus and method for optimizing the rate control in a coding system
KR101263813B1 (ko) 듀얼 패스 인코딩에서 주사 모드의 선택을 위한 방법 및 장치
US6037987A (en) Apparatus and method for selecting a rate and distortion based coding mode for a coding system
US6765962B1 (en) Adaptive selection of quantization scales for video encoding
KR100203710B1 (ko) 비트 발생량 조절기능을 갖는 영상 부호화 시스템
EP1445958A1 (en) Quantization method and system, for instance for video MPEG applications, and computer program product therefor
US20050074061A1 (en) Signaling buffer fullness
KR20040047977A (ko) 공간적으로 스케일가능한 압축
US6252905B1 (en) Real-time evaluation of compressed picture quality within a digital video encoder
KR19990077445A (ko) 실시간단일패스가변비트레이트제어방법및그인코더
KR20030073254A (ko) 시공간적 복잡도를 고려한 적응적 동영상 부호화 방법 및그 장치
JP2006211152A (ja) 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法、画像符号化用プログラム、画像復号用プログラム
KR20000023276A (ko) 프레임 레벨 속도 제어 방법
KR100790149B1 (ko) 비디오 인코딩 데이터율 제어 방법
US20050036548A1 (en) Method and apparatus for selection of bit budget adjustment in dual pass encoding
KR0162203B1 (ko) 양자화스텝사이즈의 가변을 이용한 적응적 부호화방법 및 그 장치
WO2006074043A2 (en) Method and apparatus for providing motion estimation with weight prediction
KR19980017213A (ko) 열화영상에 대한 보상기능을 갖는 영상 복호화 시스템
KR100834625B1 (ko) 비디오 인코딩 데이터율 제어를 위한 실시간 장면 전환검출 방법
KR20030014677A (ko) 비디오 코딩 방법 및 대응하는 인코딩 장치
KR0128858B1 (ko) 화면 변화에 대한 부호화 모드 결정장치
KR20010104058A (ko) 동영상 부호화기의 부호화 모드에 따른 적응적 양자화기
KR100774455B1 (ko) 실시간 비디오 전송 응용을 위한 비트율 조절장치
KR100196827B1 (ko) 영상부호기의 움직임 벡터 압축방법

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