KR100341063B1 - 실시간 영상 통신을 위한 율제어 장치 및 그 방법 - Google Patents

실시간 영상 통신을 위한 율제어 장치 및 그 방법 Download PDF

Info

Publication number
KR100341063B1
KR100341063B1 KR1020000035982A KR20000035982A KR100341063B1 KR 100341063 B1 KR100341063 B1 KR 100341063B1 KR 1020000035982 A KR1020000035982 A KR 1020000035982A KR 20000035982 A KR20000035982 A KR 20000035982A KR 100341063 B1 KR100341063 B1 KR 100341063B1
Authority
KR
South Korea
Prior art keywords
bit
bits
macroblock
rate control
target
Prior art date
Application number
KR1020000035982A
Other languages
English (en)
Other versions
KR20020001344A (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 송문섭
Priority to KR1020000035982A priority Critical patent/KR100341063B1/ko
Priority to JP2001130285A priority patent/JP4205315B2/ja
Priority to US09/861,359 priority patent/US6937653B2/en
Publication of KR20020001344A publication Critical patent/KR20020001344A/ko
Application granted granted Critical
Publication of KR100341063B1 publication Critical patent/KR100341063B1/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • 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/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/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/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/164Feedback from the receiver or from the transmission channel
    • 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/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/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
    • H04N19/197Methods 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 including determination of the initial value of an encoding parameter
    • 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

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 실시간 영상 통신을 위한 율제어 장치 및 그 방법에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은 부호기와 복호기의 버퍼의 넘침이나 모자람이 발생하지 않도록 하기 위하여 목표 비트수를 설정하고 최대 허용 비트수와 최소 허용 비트수를 구하여 부호화 여부를 결정하여 비트율을 제어하기 위한 율제어 장치 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있음.
3. 발명의 해결방법의 요지
본 발명은, 전송 속도와 입력 프레임수에 따라 율제어에 필요한 초기값을 설정하기 위한 초기화 수단; 버퍼의 상태와 전송 속도를 고려하여 목표 부호화 비트수, 최대 허용 비트수 및 최소 허용 비트수를 구하기 위한 목표 비트 연산 수단; 상기 목표 비트 연산 수단으로부터의 목표 부호화 비트수, 최대 허용 비트수 및 최소 허용 비트수를 이용하여 율제어와 부호화를 수행하기 위한 율제어 및 부호화 수단; 상기 율제어 및 부호화 수단으로부터의 비트열의 크기와 상기 목표 비트 연산 수단으로부터의 목표 부호화 비트수를 비교하여 스터핑 비트열(stuffing bit)을 출력하기 위한 스터핑 제어 수단; 상기 율제어 및 부호화 수단으로부터의 비트열과 상기 스터핑 제어 수단으로부터의 스터핑 비트들을 조합하여 저장하고 상기 목표비트 연산 수단으로 출력하기 위한 버퍼링 수단; 상기 버퍼링 수단으로부터의 버퍼 점유 상태 신호에 따라 프레임 스킵 신호를 출력하기 위한 프레임 스킵 수단; 및 상기 각 구성 요소의 부호화 과정을 제어하고 상기 프레임 스킵 수단으로부터의 프레임 스킵 신호에 따라 다음 입력 프레임의 부호화 여부를 결정하기 위한 제어 수단을 포함한다.
4. 발명의 중요한 용도
본 발명은 통신 시스템 등에 이용됨.

Description

실시간 영상 통신을 위한 율제어 장치 및 그 방법{Rate control apparatus and method for real-time video communication}
본 발명은 실시간 영상 통신 서비스를 위한 율제어 장치 및 그 방법에 관한 것으로, 더욱 상세하게는 부호기와 복호기 버퍼의 넘침(overflow)이나 모자람(underflow)이 발생하지 않도록 보장하기 위하여 매크로블록 단위로 부호화여부를 결정하여 비트율을 제어하기 위한 율제어 장치 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
일정한 전송 속도를 갖는 전송 선로(channel)를 통하여 부호화된 영상 정보를 실시간(real-time)으로 전송하기 위해서는, 부호화되어 전송되는 영상 정보를 일정한 비트율(bit-rate)에 맞추어 주는 작업이 필요하다. 이를 위해 일정한 크기를 갖는 버퍼(buffer)를 사용하여 순간적으로 발생하는 영상 정보를 저장해 두었다가 이를 일정한 속도로 복호기(decoder)(또는 수신기(receiver))에 전송한다. 이때, 버퍼의 모자람(underflow)이나 넘침(overflow)이 발생하지 않도록 보장하기 위하여 부호기(encoder)를 제어하는 방법을 율제어(rate control) 방법이라 한다.
율제어는 일정 시간 간격으로 입력되는 영상(프레임(frame))을 프레임 단위로 제어하는 프레임 단위 율제어 방법과 입력 영상을 일정한 크기의 블록으로 나누어 각 블록 단위로 부호화하는 경우에 이들 블록들을 블록 단위로 제어하는 방법으로 구분될 수 있다. 이때, 부호화 단위 블록을 매크로블록(macroblock)이라 한다. 일반적으로 매크로블록 단위 율제어 방식은 프레임 단위의 연산과 매크로블록 단위의 연산이 혼재되어 있는 형태로 구현된다. 도 1a 를 참조하여 종래의 매크로블록 단위의 율제어 장치 및 그 방법을 설명하면 다음과 같다.
도 1a 는 종래의 율제어 장치의 구성예시도로서, 프레임 단위의 연산 모듈(module)을 나타내고 있다.
도면에 도시된 바와 같이, 초기화(initialization) 모듈(110)은 부호화 시작시 단 한번 수행되며, 전송 선로의 전송 속도(bit rate)와 부호화하려는 영상의 초당 입력 프레임수(frame rate) 등을 외부로부터 입력받아 율제어에 필요한 초기값을 설정하여 목표 비트 연산 모듈(120)로 전달한다.
목표 비트 연산(Target bit calculation) 모듈(120)은 현재 버퍼의 상태와 전송 선로의 전송 속도를 고려하여 현재 부호화되어질 프레임의 목표 부호화 비트수를 결정하여 매크로블록 단위 율제어 및 부호화(MB rate control Encoder) 모듈(130)로 출력한다. 이때, 현재 버퍼의 상태는 버퍼 모듈(140)로부터 직접 입력받을 수도 있고, 전송 속도와 이전 프레임의 부호화 비트수, 및 이전 프레임에서의 버퍼 상태로부터 계산할 수도 있다.
매크로블록 단위 율제어 및 부호화(MB rate control Encoder) 모듈(130)은 목표 비트 연산 모듈(120)로부터 입력받은 목표 부호화 비트수에 근접한 부호화 비트수를 갖는 비트열(bitstream)을 출력하도록 프레임보다 작은 부호화 단위인 매크로블록 단위로 부호화 과정을 제어한다. 이에 대해서는 후술되는 도 1b 를 참조하여 상세히 설명하도록 한다.
버퍼(Buffer) 모듈(140)은 매크로블록 단위 율제어 및 부호화 모듈(130)로부터 출력되는 비트열을 입력받아 이를 저장하고 이를 전송 선로를 통하여 복호기로 전송하도록 하며, 필요에 따라 버퍼 점유 상태 신호를 목표 비트 연산 모듈(120)로 전달한다. 버퍼 모듈(140)로 입력되는 비트열은 일반적으로 가변적인 길이를 가지며, 전송 선로를 통해 전송되는 속도는 전송 선로의 특징에 따라 가변적인 속도 또는 고정된 속도를 갖는다.
프레임 스킵(Frame skip) 모듈(150)은 한 프레임에 대한 부호화 과정이 모두 끝난 경우에 버퍼 모듈(140)로부터 버퍼의 현재 상태를 입력받아 버퍼에 비트열이 채워져있는 상태가 일정 한도를 넘어설 경우에 버퍼의 넘침으로 인한 영상 정보의 손실을 막기 위하여 다음 입력 프레임을 부호화하지 않도록 제어 모듈(160)에 프레임 스킵 신호를 출력한다.
제어(Control logic) 모듈(160)은 전체 부호화 과정을 제어하는 역할을 하며, 특히 율제어를 위해서는 프레임 스킵 모듈(150)로부터 프레임 스킵(frame skip) 신호를 입력받아 다음 입력 프레임의 부호화 여부를 결정한다.
도 1b 는 도 1a 의 매크로블록 단위 율제어 및 부호화(MB rate control Encoder) 모듈(130)의 상세 구성예시도로서, 매크로블록 단위의 연산 및 부호화 과정의 제어를 수행하는 과정을 나타내고 있다. 여기서, 모든 기능 블록들은 매크로블록 단위로 연산을 수행한다.
도면에 도시된 바와 같이, 양자화 파라미터 연산(QP calculation) 모듈(131)은 목표 비트 연산(target bit calculation) 모듈(120)로부터 프레임당 목표 비트율(target bit)(목표 부호화 비트수)을 입력받고, 모델 갱신(model update) 모듈(133)로부터 양자화 파라미터(parameter)를 계산하기 위한 모델 정보(파라미터)를 입력받아 매크로블록을 양자화하기 위한 양자화 파라미터(QP)를 부호화 모듈(132)로 출력한다.
부호화 모듈(Encoding module)(132)은 양자화 파라미터 연산 모듈(131)로부터 양자화 파라미터를 입력받아 실제 부호화를 수행하여 비트열 크기를 모델 갱신모델(133)로 전달하고 비트열을 버퍼 모듈(140)로 전달하는 모듈로서, 변환기, 양자기 및 가변길이 부호기 등으로 구성된다.
모델 갱신(Model update) 모듈(133)은 각 매크로블록의 부호화된 비트열의 크기를 부호화 모듈(132)로부터 입력받고 양자화 파라미터 연산 모듈(131)로부터 양자화 파라미터를 입력받아 양자화 파라미터 연산 모듈(131)이 다음 입력 매크로블록의 양자화 파라미터를 계산하기 위한 입력값으로 사용할 수 있도록 하기 위해 갱신된(updated) 양자화 모델 파라미터를 출력한다.
전술한 바와 같이 종래의 율제어 방법에 대한 기술은 전송 선로에 의한 전송율을 효율적으로 맞추기 위한 양자화 파라미터를 출력하는 것을 특징으로 한다. 그러나, 실시간 영상 전송시 필연적으로 존재하는 복호기의 버퍼 상태에 대한 고려없이 부호기의 버퍼 상태만을 고려하는 단점이 있으며, 실제 부호화되는 비트수가 목표 비트수보다 많아지는 예외적 상황을 고려하지 않음으로 인하여 버퍼의 모자람이나 넘침이 발생할 수 있는 단점이 있다.
본 발명은 상기 문제점을 해결하기 위하여 안출된 것으로, 부호기와 복호기의 버퍼의 넘침이나 모자람이 발생하지 않도록 하기 위하여 목표 비트수를 설정하고 최대 허용 비트수와 최소 허용 비트수를 구하여 부호화 여부를 결정하여 비트율을 제어하기 위한 율제어 장치 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.
도 1a 는 종래의 율제어 장치의 구성예시도.
도 1b 는 도 1a 의 매크로블록 단위 율제어 및 부호화 모듈의 상세 구성예시도.
도 2a 는 본 발명에 따른 실시간 영상 통신을 위한 율제어 장치의 일실시예 구성도.
도 2b 는 도 2a 의 매크로블록 단위 율제어 및 부호화 모듈의 일실시예 상세 구성도.
도 3 은 도 2b 의 양자화 파라미터 연산(QP calculation) 모듈의 일실시예 상세 구성도.
도 4 는 도 2b 의 부호화 모듈(Encoding module)중 양자기의 일실시예 상세 구성도.
도 5 는 도 2b 의 매크로블록 스킵 제어(MB skip control) 모듈의 일실시예 상세 구성도.
도 6 은 도 2b 의 비트열 조작(Bitstream manipulation) 모듈의 일실시예 상세 구성도.
도 7 은 본 발명에 따른 실시간 영상 통신을 위한 율제어 방법에 대한 일실시예 흐름도.
도 8 은 도 7 의 매크로블록 단위의 율제어와 부호화 수행 과정에 대한 일실시예 상세 흐름도.
도 9 는 도 8 의 양자화 파라미터 및 부호화 여부 결정 과정에 대한 일실시예 상세 흐름도.
* 도면의 주요 부분에 대한 부호의 설명
200 : 초기화 모듈 300 : 목표 비트 연산 모듈
400 : 매크로블록 단위 율제어 및 부호화 모듈
500 : 버퍼 모듈 600 : 프레임 스킵 모듈
700 : 제어 모듈 800 : 스터핑 제어 모듈
상기 목적을 달성하기 위한 본 발명의 장치는, 실시간 영상 통신을 위한 율제어 장치에 있어서, 전송 속도와 입력 프레임수에 따라 율제어에 필요한 초기값을 설정하기 위한 초기화 수단; 버퍼의 상태와 전송 속도를 고려하여 목표 부호화 비트수, 최대 허용 비트수 및 최소 허용 비트수를 구하기 위한 목표 비트 연산 수단; 상기 목표 비트 연산 수단으로부터의 목표 부호화 비트수, 최대 허용 비트수 및 최소 허용 비트수를 이용하여 율제어와 부호화를 수행하기 위한 율제어 및 부호화 수단; 상기 율제어 및 부호화 수단으로부터의 비트열의 크기와 상기 목표 비트 연산 수단으로부터의 목표 부호화 비트수를 비교하여 스터핑 비트열(stuffing bit)을 출력하기 위한 스터핑 제어 수단; 상기 율제어 및 부호화 수단으로부터의 비트열과 상기 스터핑 제어 수단으로부터의 스터핑 비트들을 조합하여 저장하고 상기 목표 비트 연산 수단으로 출력하기 위한 버퍼링 수단; 상기 버퍼링 수단으로부터의 버퍼 점유 상태 신호에 따라 프레임 스킵 신호를 출력하기 위한 프레임 스킵 수단; 및 상기 각 구성 요소의 부호화 과정을 제어하고 상기 프레임 스킵 수단으로부터의 프레임 스킵 신호에 따라 다음 입력 프레임의 부호화 여부를 결정하기 위한 제어 수단을 포함하는 것을 특징으로 한다.
한편, 본 발명의 방법은, 실시간 영상 통신을 위한 율제어 장치에 적용되는 율제어 방법에 있어서, 전송 선로의 전송 속도와 부호화하려는 영상의 초당 입력 프레임수에 따라 율제어에 필요한 초기값을 설정하는 제 1 단계; 현재 버퍼의 상태와 상기 전송 선로의 전송 속도를 고려하여 목표 부호화 비트수, 최대 허용 비트수및 최소 허용 비트수를 구하는 제 2 단계; 상기 목표 부호화 비트수, 최대 허용 비트수 및 최소 허용 비트수를 이용하여 율제어와 부호화를 수행하는 제 3 단계; 부호화된 비트열의 크기와 상기 목표 부호화 비트수를 비교하여 의미없는 스터핑 비트열(stuffing bit)을 발생하는 제 4 단계; 부호화된 비트열과 상기 스터핑 비트열을 조합하여 저장하고 영상 정보가 전송하도록 하는 제 5 단계; 및 현재 버퍼의 상태에 따라 발생된 프레임 스킵 신호에 따라 다음 입력 프레임의 부호화 여부를 결정하는 제 6 단계를 포함하는 것을 특징으로 한다.
한편, 본 발명은, 실시간 영상 통신을 위한 율제어를 위하여, 프로세서를 구비한 율제어 장치에, 전송 선로의 전송 속도와 부호화하려는 영상의 초당 입력 프레임수에 따라 율제어에 필요한 초기값을 설정하는 제 1 기능; 현재 버퍼의 상태와 상기 전송 선로의 전송 속도를 고려하여 목표 부호화 비트수, 최대 허용 비트수 및 최소 허용 비트수를 구하는 제 2 기능; 상기 목표 부호화 비트수, 최대 허용 비트수 및 최소 허용 비트수를 이용하여 율제어와 부호화를 수행하는 제 3 기능; 부호화된 비트열의 크기와 상기 목표 부호화 비트수를 비교하여 의미없는 스터핑 비트열(stuffing bit)을 발생하는 제 4 기능; 부호화된 비트열과 상기 스터핑 비트열을 조합하여 저장하고 영상 정보가 전송하도록 하는 제 5 기능; 및 현재 버퍼의 상태에 따라 발생된 프레임 스킵 신호에 따라 다음 입력 프레임의 부호화 여부를 결정하는 제 6 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
이처럼 본 발명에서는 종래의 목표 비트 연산(target bit calculation) 모듈에서 계산되는 프레임의 목표 비트수와 함께 부호기 버퍼와 복호기 버퍼 모두에서 넘침이나 모자람이 발생하지 않도록 하기 위한 최대 허용 비트수와 최소 허용 비트수를 구한 후에 이를 이용하여 부호화 여부를 결정하여 비트율을 제어하도록 한다.
입력 영상 신호를 부호화하는데 있어서 부호화 비트수가 상기한 최대 허용 비트수를 넘는 경우에 버퍼의 넘침이 발생하게 되어 영상 정보를 잃어버리게 된다. 그러므로, 버퍼의 넘침을 방지하기 위하여 입력 매크로블록의 일부 또는 모든 영상 정보를 부호화하지 않는 방법을 사용한다.
이에 대한 일예로 부호화 비트수가 상기 최대 허용 비트수를 넘는 시점부터 이후의 모든 매크로블록을 부호화하지 않도록 하여 부호화되는 비트수가 상기 상한선을 넘지 않도록 하는 방법이 있다. 즉, 현재 부호화되는 매크로블록까지의 비트열의 부호화 비트수의 합이 최대 허용 비트수를 넘는 경우에 현재 부호화되는 매크로블록의 비트열을 폐기하여 비트열의 길이가 최대 허용 비트수를 넘지 않도록 보장한다. 그리고, 상기와 같이 현재 매크로블록의 비트열을 폐기할 경우에 현재 매크로블록에 대한 비트열을 폐기하고 현재 매크로블록을 부호화하지 않았음을 나타내는 비트열을 추가하여 복호기로 전달한다.
한편, 프레임의 부호화 비트수가 최소 허용 비트수 미만일 경우에 최소 허용 비트수와 프레임 비트수 사이의 차이 이상으로 비트열을 확장하여 복호기에 전송하는 방법을 사용한다.
이에 대한 일예로 입력 프레임의 모든 매크로블록들에 대한 부호화가 끝난 시점에 부호화 비트수가 상기 최소 허용 비트수보다 적은 경우에 그 차이만큼 의미없는 데이터(그러므로, 복호기에서 무시한다. 즉, 비트열을 읽고 버린다.)로 채워주어 버퍼의 모자람을 방지한다.
한편, 현재 부호화되는 매크로블록까지의 비트열의 부호화 비트수의 합이 최대 허용 비트수 또는 목표 부호화 비트수 또는 최소 허용 비트수로부터 계산되어진 허용 한계를 넘어서는 경우에 화소정보를 부호화하지 않음으로써 비트열의 길이가 최대 허용 비트수를 넘지 않도록 하는 방법을 사용한다.
상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
도 2a 는 본 발명에 따른 실시간 영상 통신을 위한 율제어 장치의 일실시예 구성도로서, 프레임 단위의 율제어 연산 모듈(module)을 나타내고 있다.
본 발명에 따른 실시간 영상 통신을 위한 율제어 장치는, 전송 선로의 전송 속도와 부호화하려는 영상의 초당 입력 프레임수를 입력받아 율제어에 필요한 초기값을 설정하기 위한 초기화 모듈(200), 현재 버퍼의 상태와 전송 선로의 전송 속도를 고려하여 목표 부호화 비트수, 최대 허용 비트수 및 최소 허용 비트수를 구하여 출력하기 위한 목표 비트 연산 모듈(300), 상기 목표 비트 연산 모듈(300)로부터의 목표 부호화 비트수, 최대 허용 비트수 및 최소 허용 비트수를 이용하여 매크로블록 단위의 율제어와 부호화를 수행하기 위한 매크로블록 단위 율제어 및 부호화 모듈(400), 상기 매크로블록 단위 율제어 및 부호화 모듈(400)로부터의 비트열의 크기와 상기 목표 비트 연산 모듈(300)로부터의 목표 부호화 비트수를 비교하여 스터핑 비트열(stuffing bit)을 출력하기 위한 스터핑 제어 모듈(800), 상기 매크로블록 단위 율제어 및 부호화 모듈(400)로부터의 비트열과 상기 스터핑 제어 모듈(800)로부터의 스터핑 비트들을 조합하여 저장하고 상기 목표 비트 연산 모듈(300)로 버퍼 점유 상태 신호를 출력하며 복호기로 영상 정보를 전송하도록 하기 위한 버퍼 모듈(500), 상기 버퍼 모듈(500)로부터 버퍼 점유 상태 신호를 입력받아 버퍼 상태가 일정 한도를 넘어설 경우에 프레임 스킵 신호를 출력하기 위한 프레임 스킵 모듈(600) 및 전체 부호화 과정을 제어하고 상기 프레임 스킵 모듈(600)로부터 프레임 스킵 신호를 입력받아 다음 입력 프레임의 부호화 여부를 결정하기 위한 제어 모듈(700)을 포함한다.
이러한 율제어 장치의 구성 및 동작을 도 2a 를 참조하여 좀 더 상세히 살펴보면 다음과 같다. 이때, 초기화 모듈(200)과 프레임 스킵 모듈(600)과 제어 모듈(700)은 상기 도 1a 에서 설명한 바와 같이 동작됨으로 여기서는 설명을 생략하기로 한다.
목표 비트 연산(Target bit calculation) 모듈(300)은 부호기와 복호기 버퍼의 모자람이나 넘침이 발생하지 않도록 목표 부호화 비트수를 계산하여 매크로블록 단위 율제어 및 부호화 모듈(400)에 출력한다. 이와 동시에 부호기와 복호기 버퍼의 모자람이나 넘침이 발생하지 않도록 하기 위한 최대 허용 비트수와 최소 허용 비트수를 계산하여 매크로블록 단위 율제어 및 부호화 모듈(400)로 출력함으로써, 이후의 모듈들이 이를 참조하여 발생 비트수가 이들 최소 허용 비트수와 최대 허용 비트수 사이에 있도록 한다. 이때, 최소 허용 비트수(Min_bit)는 다음의 (수학식1)과 같고, 최대 허용 비트수(Max_bit)는 다음의 (수학식 2)와 같다.
Min_bit = max{Bfd+ Ba- Bd, Ba- Bfe, 0}
Max_bit = min{Bfd, Be- Bfe}
여기서, Bfd는 복호기 버퍼의 채워진 상태를 의미하며 이는 부호기에서 직접 측정이 불가능하므로 부호기에서 계산된 값을 사용한다. Ba는 한 프레임이 부호화되는 중간에 비트열이 버퍼에서 전송되는 비트수이다. Bd는 복호기 버퍼의 크기이고, Be는 부호기 버퍼의 크기이다. Bfe는 부호기 버퍼의 채워진 상태를 나타낸다. 또한, min{}은 구성 원소들중 최소값을 출력하는 함수이고, max{}는 구성 원소들중 최대값을 출력하는 함수이다.
매크로블록 단위 율제어 및 부호화(MB rate control Encoder) 모듈(400)은 목표 비트 연산 모듈(300)에서 출력되는 목표 부호화 비트수, 최대 허용 비트수, 그리고 최소 허용 비트수를 입력받아 입력 영상을 부호화하여 비트열을 버퍼 모듈(500)로 출력하고 비트열의 크기를 스터핑 제어 모듈(800)로 출력한다. 이에대해서는 후술되는 도 2b 를 참조하여 상세히 설명하도록 한다.
스터핑 제어(Stuffing control) 모듈(800)은 목표 비트 연산 모듈(300)로부터 최소 허용 비트수를 입력받고 매크로블록 단위 율제어 및 부호화 모듈(400)로부터 비트열의 크기를 입력받아 비트열의 크기가 최소 허용 비트수보다 작을 경우에 이들 사이의 차이 이상의 비트수만큼 스터핑 비트열(의미없는 데이터)을 버퍼 모듈(500)로 출력하여, 버퍼 모듈(500)에서 이들을 조합하여 전송 선로를 통하여 영상 정보를 복호기로 전송하도록 한다.
전술한 목표 비트 연산(Target Bit Calculation)의 구체적인 방법은 본 발명을 제한하지는 않는다. 그러나, 본 발명에서 가장 중요한 개념은 목표 부호화 비트수만을 이용하여 율제어를 수행하는 종래 기술에 비해서, 최대 허용 비트수와 최소 허용 비트수를 미리 결정하고 이를 이용하여 율제어를 수행한다는 점에 있다.
도 2b 는 도 2a 의 매크로블록 단위 율제어 및 부호화 모듈(400)의 일실시예 상세 구성도로서, 매크로블록 단위의 율제어 연산 및 부호화 과정의 제어를 수행하는 과정을 나타내고 있다.
본 발명에 따른 매크로블록 단위 율제어 및 부호화 모듈은, 목표 비트 연산 모듈(300)로부터 목표 부호화 비트수와 최대 허용 비트수 및 최소 허용 비트수를 입력받고 부호화 모듈(420)로부터 이전 매크로블록의 비트열 크기를 입력받고 모델 갱신 모듈(430)로부터 모델 파라미터를 입력받아 양자화 파라미터와 해당 매크로블록의 부호화 여부(texture_coded)를 결정하기 위한 양자화 파라미터 연산 모듈(410), 상기 양자화 파라미터 연산 모듈(410)로부터의 양자화 파라미터에 따라변환 계수의 양자화 폭을 결정하고 화소 정보 부호화 여부 신호에 따라 화소 정보를 부호화하기 위한 부호화 모듈(420), 상기 부호화 모듈(420)로부터 비트열의 크기를 입력받고 상기 양자화 파라미터 연산 모듈(410)로부터 양자화 파라미터를 입력받아 모델을 갱신하여 모델 파라미터를 상기 양자화 파라미터 연산 모듈(410)로 출력하기 위한 모델 갱신 모듈(430), 상기 부호화 모듈(420)로부터 비트열 크기를 입력받고 상기 목표 비트 연산 모듈(300)로부터 최대 허용 비트수를 입력받아 매크로블록의 스킵 여부를 결정하여 매크로블록 스킵 신호를 출력하기 위한 매크로블록 스킵 제어 모듈(440), 및 상기 매크로블록 스킵 제어 모듈(440)로부터의 매크로블록 스킵 신호와 상기 부호화 모듈(420)로부터의 비트열을 조합하기 위한 비트열 조작 모듈(450)을 포함한다.
이러한 매크로블록 단위 율제어 및 부호화 모듈(400)의 구성 및 동작을 도 2b 를 참조하여 좀 더 상세히 살펴보면 다음과 같다.
양자화 파라미터 연산(QP calculation) 모듈(410)은 목표 비트 연산 모듈(300)로부터 목표 부호화 비트수와 최대 허용 비트수 및 최소 허용 비트수를 입력받고 부호화 모듈(420)로부터 이전 매크로블록의 부호화 비트수를 입력받고 모델 갱신 모듈(430)로부터 모델 파라미터를 입력받아 입력 매크로블록을 양자화하기 위한 양자화 파라미터와 해당 매크로블록의 화소 정보의 부호화 여부(texture_coded) 신호를 부호화 모듈(420)로 출력한다. 이때, 현재까지의 누적 비트수가 최대 허용 비트수를 넘는 경우에 화소 정보를 부호화하지 않도록 화소 정보 부호화 여부 신호를 부호화 모듈(420)로 출력한다.
양자화 파라미터 연산 모듈(410)로부터의 출력은 부호화 모듈(encoding module)(420)에 입력되어 변환 계수(transform coefficients)의 양자화에 이용된다. 즉, 양자화 파라미터에 의해 변환 계수의 양자화 폭이 결정되고 화소 정보의 부호화 여부에 대한 신호에 따라 화소 정보를 부호화한다. 이때, 화소 정보가 부호화되지 않은 경우에 화소 정보를 뺀 나머지 영상 정보들(움직임 정보(motion information), 모양 정보(shape information) 등)만이 부호화된다.
모델 갱신(Model update) 모듈(430)은 부호화 모듈(420)로부터 비트열의 크기를 입력받고 양자화 파라미터 연산 모듈(410)로부터 양자화 파라미터를 입력받아 양자화 파라미터와 생성 비트수 사이의 관계를 표현하는 모델을 갱신하여 모델 파라미터를 양자화 파라미터 연산 모듈(410)로 출력하여 다음 입력 매크로블록에 대한 양자화 파라미터를 결정하는데 이용되도록 한다.
매크로블록 스킵 제어(MB skip control) 모듈(440)은 부호화 모듈(420)로부터 입력 매크로블록의 비트열 크기를 입력받고 목표 비트 연산 모듈(300)로부터 최대 허용 비트수를 입력받아 현재 매크로블록까지의 누적 비트율의 크기가 최대 허용 비트수를 넘어서는 경우에 현재 매크로블록에 대한 비트열을 폐기시키도록 비트열 조작(bitstream manipulation) 모듈(450)에 매크로블록 스킵 신호를 출력한다.
비트열 조작 모듈(450)은 매크로블록 스킵 제어 모듈(440)로부터 현재 매크로블록의 비트열을 폐기하도록 하는 매크로블록 스킵 신호가 입력되는 경우에 입력된 비트열을 버리고 현재 입력 매크로블록이 부호화되지 않았음을 나타내는 정보만을 비트열에 덧붙여 버퍼 모듈(500)로 출력한다.
도 3 은 도 2b 의 양자화 파라미터 연산(QP calculation) 모듈(410)의 일실시예 상세 구성도이다.
본 발명에 따른 양자화 파라미터 연산 모듈(410)은, 상기 목표 비트 연산 모듈(300)로부터의 목표 부호화 비트수, 최대 허용 비트수 및 최소 허용 비트수에 따라 임계값을 계산하기 위한 임계값 연산부(411), 상기 목표 비트 연산 모듈(300)로부터의 목표 부호화 비트수(target_bit), 최대 허용 비트수(max_bit) 및 최소 허용 비트수(min_bit)와 상기 모델 갱신 모듈(430)로부터의 모델 파라미터에 따라 양자화 파라미터(QP)를 계산하기 위한 양자화 파라미터 연산부(412), 누적 비트수를 저장하기 위한 래치부(414), 상기 부호화 모듈(420)로부터의 이전 매크로블록의 비트열 크기와 상기 래치부(414)의 누적 비트수를 더하여 래치부(414)와 비교부(415)로 출력하기 위한 가산부(413) 및 상기 가산부(413)로부터의 누적 비트수를 상기 임계값 연산부(411)로부터의 임계값과 비교하여 매크로블록의 부호화 여부를 결정하기 위한 비교부(415)를 포함한다.
이러한 양자화 파라미터 연산(QP calculation) 모듈(410)의 구성 및 동작을 도 3 을 참조하여 좀 더 상세히 살펴보면 다음과 같다.
도 3 에 도시된 바와 같이, 임계값 연산부(411)는 목표 비트 연산 모듈(300)로부터 목표 부호화 비트수(target_bit), 최대 허용 비트수(max_bit) 및 최소 허용 비트수(min_bit)를 입력받아 임계값을 계산한다.
그리고, 양자화 파라미터 연산부(412)는 목표 비트 연산 모듈(300)로부터 목표 부호화 비트수(target_bit), 최대 허용 비트수(max_bit) 및 최소 허용비트수(min_bit)를 입력받고 모델 갱신 모듈(430)로부터 모델 파라미터를 입력받아 양자화 파라미터(QP)를 계산하여 부호화 모듈(420)로 출력한다.
여기서, 상기 임계값(threshold)과 양자화 파라미터를 구할 때 상기 세 가지 비트수를 모두 사용하거나 또는 일부만을 사용하여 계산할 수도 있다.
그리고, 래치부(414)는 누적 비트수를 저장하고 있다가 가산부(413)로 출력한다.
그리고, 가산부(413)는 부호화 모듈(420)로부터의 이전 매크로블록의 비트열 크기와 상기 래치부(414)에 저장되어 있는 누적 비트수를 더하여 비교부(415)로 출력한다. 또한, 다음 매크로블록을 처리하기 위하여 상기 누적 비트수를 래치부(414)에 재입력하여 저장한다. 이때, 래치부(414)에 저장되어 있는 누적 비트수를 한 프레임의 부호화가 모두 끝난 경우에 "0"으로 초기화하여 다음 프레임의 누적 비트수를 저장할 수 있도록 한다.
그리고, 비교부(415)는 가산부(413)로부터의 누적 비트수를 임계값 연산부(411)로부터의 임계값과 비교하여 누적 비트수가 임계값 이하인 경우에는 화소 정보를 부호화하도록 화소 정보 부호화 여부 신호를 출력하고, 누적 비트수가 임계값보다 큰 경우에는 버퍼의 넘침을 방지하기 위하여 화소 정보를 부호화하지 않도록 화소 정보 부호화 여부 신호를 출력한다.
도 4 는 도 2b 의 부호화 모듈(Encoding module)(420)중 양자기의 일실시예 상세 구성도이다.
본 발명에 따른 양자기는, 상기 양자화 파라미터 연산 모듈(410)로부터의 양자화 파라미터(QP)에 따라 변환 계수를 양자화하기 위한 양자화부(421), 및 "0"으로 세팅된 무의미한 데이터와 상기 양자화부(421)의 양자화된 변환 계수중 어느 하나를 상기 양자화 파라미터 연산 모듈(410)로부터의 화소 정보 부호화 여부 신호에 따라 선택하여 출력하기 위한 스위칭부(422)를 포함한다.
이러한 양자기의 구성 및 동작을 도 4 를 참조하여 좀 더 상세히 살펴보면 다음과 같다.
먼저, 화소 정보를 부호화하도록 하는 화소 정보 부호화 여부 신호가 입력된 경우에, 양자화부(421)에 입력되는 변환 계수(coeff)는 양자화 파라미터 연산 모듈(410)로부터의 양자화 파라미터(QP)에 따라 양자화되어 스위칭부(422)로 전달되고, 스위칭부(422)는 양자화된 변환 계수가 출력되도록 스위칭된다.
한편, 화소 정보를 부호화하지 않도록 하는 화소 정보 부호화 여부 신호가 입력된 경우에는, "0"으로 세팅(setting)된 데이터가 스위칭부(422)로 전달되고, 스위칭부(422)는 "0"으로 세팅된 데이터가 출력되도록 스위칭된다.
도 5 는 도 2b 의 매크로블록 스킵 제어(MB skip control) 모듈(440)의 일실시예 상세 구성도이다.
본 발명에 따른 매크로블록 스킵 제어 모듈(440)은, 누적 비트수를 저장하기 위한 래치부(442), 상기 부호화 모듈(420)로부터의 현재 매크로블록의 비트열 크기와 상기 래치부(442)의 누적 비트수를 더하여 상기 래치부(442)와 비교부(443)로 출력하기 위한 가산부(441) 및 상기 가산부(441)로부터의 누적 비트수를 상기 목표 비트 연산 모듈(300)로부터의 최대 허용 비트수와 비교하여 현재 매크로블록의 전송 여부를 결정하기 위한 비교부(443)를 포함한다.
이러한 매크로블록 스킵 제어 모듈(440)의 구성 및 동작을 도 5 를 참조하여 좀 더 상세히 살펴보면 다음과 같다.
도 5 에 도시된 바와 같이, 가산부(441)는 현재 매크로블록의 비트수와 래치부(442)에 저장되어 있는 누적 비트수를 입력받아 현재 매크로블록까지의 누적 비트수를 출력한다. 가산부(44)에서 계산된 누적 비트수는 목표 비트 연산 모듈(300)로부터의 최대 허용 비트수(max_bit)와 함께 비교부(443)에 입력되어 현재 매크로블록의 비트열에 대한 전송 여부를 출력한다. 즉, 누적 비트수가 최대 허용 비트수보다 작은 경우에는 현재 매크로블록의 비트열을 그대로 전송하도록 매크로블록 스킵 신호를 출력하고, 누적 비트수가 최대 허용 비트수보다 큰 경우에는 현재 매크로블록의 비트열을 출력하지 않도록 매크로블록 스킵 신호를 출력한다.
이때, 가산부(441)에서 계산된 누적 비트수는 다음 매크로블록까지의 누적 비트수를 계산하기 위해 다시 래치부(442)에 저장된다. 그리고, 래치부(442)내에 저장되어 있는 값은 프레임에 대한 부호화 작업이 모두 끝났을 경우에 "0"으로 초기화되어 다음 프레임의 누적 비트수를 계산하는데 이용되도록 한다.
도 6 은 도 2b 의 비트열 조작(Bitstream manipulation) 모듈(450)의 일실시예 상세 구성도로서, 매크로블록 스킵 신호에 따라 현재 매크로블록의 비트열을 조작하기 위한 비트열 조작 기능 블록을 나타내고 있다.
도 6 에 도시된 바와 같이, 부호화 모듈(420)로부터 부호화된 비트열을 입력받거나 현재 매크로블록이 부호화되지 않았음을 알리는 매크로블록 스킵 비트열을입력받아, 매크로블록 스킵 제어 모듈(440)로부터 현재 매크로블록이 전송되지 않도록 하는 매크로블록 스킵 신호가 입력되었을 때에는 매크로블록 스킵 비트열을 선택하여 출력하고, 현재 매크로블록이 전송되도록 하는 매크로블록 스킵 신호가 입력되었을 때에는 비트열을 선택하여 출력하는 스위칭부(451)를 포함한다.
한편, 복호기에서는 비트열을 정해진 순서대로 복호화를 수행하는 중에 매크로블록 스킵 신호를 입력받으면 해당 매크로블록이 스킵되었는지의 여부를 판단하여, 스킵된 경우에는 정해진 방법에 의해 해당 매크로블록을 재현하면 된다. 예를 들어, 해당 매크로블록이 스킵된 경우에 이전 재현 영상의 동일한 위치의 매크로블록 신호를 이용하여 재현할 수도 있다.
도 7 은 본 발명에 따른 실시간 영상 통신을 위한 율제어 방법에 대한 일실시예 흐름도이다.
먼저, 초기화 모듈(200)이 전송 선로의 전송 속도와 부호화하려는 영상의 초당 입력 프레임수를 입력받아 율제어에 필요한 초기값을 설정한다(1100). 그리고, 목표 비트 연산 모듈(300)이 현재 버퍼의 상태와 전송 선로의 전송 속도를 고려하여 목표 부호화 비트수, 최대 허용 비트수 및 최소 허용 비트수를 구하여 출력한다(1200).
그리고, 매크로블록 단위 율제어 및 부호화 모듈(400)이 상기 목표 비트 연산 모듈(300)로부터의 목표 부호화 비트수, 최대 허용 비트수 및 최소 허용 비트수를 이용하여 매크로블록 단위의 율제어와 부호화를 수행한다(1300). 그리고, 스터핑 제어 모듈(800)이 상기 매크로블록 단위 율제어 및 부호화 모듈(400)로부터의비트열의 크기와 상기 목표 비트 연산 모듈(300)로부터의 목표 부호화 비트수를 비교하여 비트열의 크기가 최소 허용 비트수보다 작은 경우에 스터핑 비트열(stuffing bit)을 출력한다(1400). 그리고, 버퍼 모듈(500)이 상기 매크로블록 단위 율제어 및 부호화 모듈(400)로부터의 비트열과 상기 스터핑 제어 모듈(800)로부터의 스터핑 비트들을 조합하여 저장하고 상기 목표 비트 연산 모듈(300)로 버퍼 점유 상태 신호를 출력하며 복호기로 영상 정보를 전송하도록 한다(1500).
그리고, 프레임 스킵 모듈(600)이 상기 버퍼 모듈(500)로부터 버퍼 점유 상태 신호를 입력받아 버퍼 상태가 일정 한도를 넘어설 경우에 프레임 스킵 신호를 출력한다(1600). 그리고, 제어 모듈(700)이 전체 부호화 과정을 제어하고 상기 프레임 스킵 모듈(600)로부터 프레임 스킵 신호를 입력받아 다음 입력 프레임의 부호화 여부를 결정한다(1700).
도 8 은 도 7 의 매크로블록 단위의 율제어와 부호화 수행 과정(1300)에 대한 일실시예 상세 흐름도이다.
먼저, 양자화 파라미터 연산 모듈(410)이 목표 비트 연산 모듈(300)로부터 목표 부호화 비트수와 최대 허용 비트수 및 최소 허용 비트수를 입력받고 부호화 모듈(420)로부터 이전 매크로블록의 비트열 크기를 입력받고 모델 갱신 모듈(430)로부터 모델 파라미터를 입력받아 양자화 파라미터와 해당 매크로블록의 부호화 여부(texture_coded)를 결정한다(1310).
그리고, 부호화 모듈(420)이 상기 양자화 파라미터 연산 모듈(410)로부터의양자화 파라미터에 따라 변환 계수의 양자화 폭을 결정하고 화소 정보 부호화 여부 신호에 따라 화소 정보를 부호화한다(1320)
그리고, 모델 갱신 모듈(430)이 상기 부호화 모듈(420)로부터 비트열의 크기를 입력받고 상기 양자화 파라미터 연산 모듈(410)로부터 양자화 파라미터를 입력받아 모델을 갱신하여 모델 파라미터를 상기 양자화 파라미터 연산 모듈(410)로 출력한다(1330).
그리고, 매크로블록 스킵 제어 모듈(440)이 상기 부호화 모듈(420)로부터 비트열 크기를 입력받고 상기 목표 비트 연산 모듈(300)로부터 최대 허용 비트수를 입력받아 두 비트열을 비교하여 매크로블록의 스킵 여부를 결정하여 매크로블록 스킵 신호를 출력한다(1340).
그리고, 비트열 조작 모듈(450)이 상기 매크로블록 스킵 제어 모듈(440)로부터의 매크로블록 스킵 신호와 상기 부호화 모듈(420)로부터의 비트열을 조합한다(1350).
도 9 는 도 8 의 양자화 파라미터 및 부호화 여부 결정 과정(1310)에 대한 일실시예 상세 흐름도이다.
먼저, 임계값 연산부(411)가 상기 목표 비트 연산 모듈(300)로부터의 목표 부호화 비트수, 최대 허용 비트수 및 최소 허용 비트수에 따라 임계값을 계산한다. 그리고, 양자화 파라미터 연산부(412)가 상기 목표 비트 연산 모듈(300)로부터의 목표 부호화 비트수(target_bit), 최대 허용 비트수(max_bit) 및 최소 허용 비트수(min_bit)와 상기 모델 갱신 모듈(430)로부터의 모델 파라미터에 따라 양자화 파라미터(QP)를 계산한다.
그리고, 가산부(413)가 상기 부호화 모듈(420)로부터의 이전 매크로블록의 비트열 크기와 래치부(414)의 누적 비트수를 더하여 새로운 누적 비트수를 구하여 래치부(414)와 비교부(415)로 출력한다.
그리고, 비교부(415)가 상기 가산부(413)로부터의 누적 비트수를 상기 임계값 연산부(411)로부터의 임계값과 비교하여 매크로블록의 부호화 여부를 결정한다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
상기와 같은 본 발명은, 목표 비트수를 설정하고 최대 허용 비트수와 최소 허용 비트수를 구하여 부호화 여부를 결정하여 비트율을 제어함으로써, 부호기와 복호기의 버퍼 넘침이나 모자람이 발생하는 것을 방지할 수 있는 효과가 있다.
이처럼 본 발명을 영상 부호화 장치에 적용할 경우에 부호기와 복호기 버퍼의 모자람이나 넘침이 발생하지 않게 되어 재현 영상의 화질을 향상시킬 수 있는 효과가 있다.
또한, 본 발명은 특히 저전송률 특성을 가지는 차세대 이동통신망(IMT-2000) 또는 공중통신망(PSTN : Public Switched Telephone Network)상에서의 영상 통신서비스 장치 등에 유용하다.

Claims (32)

  1. 실시간 영상 통신을 위한 율제어 장치에 있어서,
    전송 속도와 입력 프레임수에 따라 율제어에 필요한 초기값을 설정하기 위한 초기화 수단;
    버퍼의 상태와 전송 속도를 고려하여 목표 부호화 비트수, 최대 허용 비트수 및 최소 허용 비트수를 구하기 위한 목표 비트 연산 수단;
    상기 목표 비트 연산 수단으로부터의 목표 부호화 비트수, 최대 허용 비트수 및 최소 허용 비트수를 이용하여 율제어와 부호화를 수행하기 위한 율제어 및 부호화 수단;
    상기 율제어 및 부호화 수단으로부터의 비트열의 크기와 상기 목표 비트 연산 수단으로부터의 목표 부호화 비트수를 비교하여 스터핑 비트열(stuffing bit)을 출력하기 위한 스터핑 제어 수단;
    상기 율제어 및 부호화 수단으로부터의 비트열과 상기 스터핑 제어 수단으로부터의 스터핑 비트들을 조합하여 저장하고 상기 목표 비트 연산 수단으로 출력하기 위한 버퍼링 수단;
    상기 버퍼링 수단으로부터의 버퍼 점유 상태 신호에 따라 프레임 스킵 신호를 출력하기 위한 프레임 스킵 수단; 및
    상기 각 구성 요소의 부호화 과정을 제어하고 상기 프레임 스킵 수단으로부터의 프레임 스킵 신호에 따라 다음 입력 프레임의 부호화 여부를 결정하기 위한제어 수단
    을 포함하는 실시간 영상 통신을 위한 율제어 장치.
  2. 제 1 항에 있어서,
    상기 목표 비트 연산 수단은,
    상기 최소 허용 비트수 Min_bit = max{Bfd+ Ba- Bd, Ba- Bfe, 0}과 같이 구하고, 상기 최대 허용 비트수 Max_bit = min{Bfd, Be- Bfe}와 같이 구하는 것을 특징으로 하는 실시간 영상 통신을 위한 율제어 장치.
    (여기서, Bfd는 복호기 버퍼의 채워진 상태를 의미하고, Ba는 한 프레임이 부호화되는 중간에 비트열이 버퍼에서 전송되는 비트수이며, Bd는 복호기 버퍼의 크기이고, Be는 부호기 버퍼의 크기이며, Bfe는 부호기 버퍼의 채워진 상태를 나타내고, min{}은 구성 원소들중 최소값을 출력하는 함수이고, max{}는 구성 원소들중 최대값을 출력하는 함수임)
  3. 제 1 항에 있어서,
    상기 스터핑 제어(Stuffing control) 수단은,
    상기 목표 비트 연산 수단으로부터의 최소 허용 비트수와 상기 율제어 및 부호화 수단으로부터의 비트열의 크기를 비교하여 상기 비트열의 크기가 상기 최소 허용 비트수보다 작을 경우에 이들 사이의 차이 이상의 비트수만큼 의미없는 스터핑 비트열을 상기 버퍼링 수단으로 출력하는 것을 특징으로 하는 실시간 영상 통신을 위한 율제어 장치.
  4. 제 1 항에 있어서,
    상기 율제어 및 부호화 수단은,
    현재 부호화되는 매크로블록까지의 비트열의 부호화 비트수의 합이 상기 최대 허용 비트수를 넘는 경우에 현재 부호화되는 매크로블록의 비트열을 폐기하여 비트열의 길이가 상기 최대 허용 비트수를 넘지 않도록 보장하는 것을 특징으로 하는 실시간 영상 통신을 위한 율제어 장치.
  5. 제 4 항에 있어서,
    상기 율제어 및 부호화 수단은,
    현재 매크로블록의 비트열을 폐기할 경우에 현재 매크로블록을 부호화하지 않았음을 나타내는 비트열을 추가하는 것을 특징으로 하는 실시간 영상 통신을 위한 율제어 장치.
  6. 제 1 항에 있어서,
    상기 율제어 및 부호화 수단은,
    현재 부호화되는 매크로블록까지의 비트열의 부호화 비트수의 합이 상기 최대 허용 비트수 또는 목표 부호화 비트수 또는 최소 허용 비트수로부터 계산되어진 소정의 허용 한계를 넘어서는 경우에 화소 정보를 부호화하지 않음으로써 비트열의 길이가 상기 최대 허용 비트수를 넘지 않도록 하는 것을 특징으로 하는 실시간 영상 통신을 위한 율제어 장치.
  7. 제 1 항 내지 제 6 항중 어느 한 항에 있어서,
    상기 율제어 및 부호화 수단은,
    상기 목표 비트 연산 수단으로부터 목표 부호화 비트수와 최대 허용 비트수 및 최소 허용 비트수를 입력받고, 이전 매크로블록의 비트열 크기를 입력받고, 모델 파라미터를 입력받아 양자화 파라미터와 해당 매크로블록의 부호화 여부(texture_coded)를 결정하기 위한 양자화 파라미터 연산 수단;
    상기 양자화 파라미터 연산 수단으로부터의 양자화 파라미터에 따라 변환 계수의 양자화 폭을 결정하고 화소 정보 부호화 여부 신호에 따라 화소 정보를 부호화하며 비트열 크기를 상기 양자화 파라미터 연산 수단으로 출력하기 위한 부호화 수단;
    상기 부호화 수단으로부터 비트열의 크기를 입력받고 상기 양자화 파라미터 연산 수단으로부터 양자화 파라미터를 입력받아 모델을 갱신하여 모델 파라미터를 상기 양자화 파라미터 연산 수단으로 출력하기 위한 모델 갱신 수단;
    상기 부호화 수단으로부터 비트열 크기를 입력받고 상기 목표 비트 연산 수단으로부터 최대 허용 비트수를 입력받아 매크로블록의 스킵 여부를 결정하여 매크로블록 스킵 신호를 출력하기 위한 매크로블록 스킵 제어 수단; 및
    상기 매크로블록 스킵 제어 수단으로부터의 매크로블록 스킵 신호와 상기 부호화 수단으로부터의 비트열을 조합하기 위한 비트열 조작 수단
    을 포함하는 실시간 영상 통신을 위한 율제어 장치.
  8. 제 7 항에 있어서,
    상기 양자화 파라미터 연산 수단은,
    상기 목표 비트 연산 수단으로부터의 목표 부호화 비트수, 최대 허용 비트수 및 최소 허용 비트수에 따라 임계값을 계산하기 위한 임계값 연산부;
    상기 목표 비트 연산 수단으로부터의 목표 부호화 비트수, 최대 허용 비트수(max_bit) 및 최소 허용 비트수(min_bit)와 상기 모델 갱신 수단으로부터의 모델 파라미터에 따라 양자화 파라미터(QP)를 계산하기 위한 양자화 파라미터 연산부;
    누적 비트수를 저장하기 위한 저장 수단;
    상기 부호화 수단으로부터의 이전 매크로블록의 비트열 크기와 상기 저장 수단의 누적 비트수를 더하여 상기 저장 수단으로 출력하기 위한 가산부; 및
    상기 가산부로부터의 누적 비트수를 상기 임계값 연산부로부터의 임계값과 비교하여 매크로블록의 부호화 여부를 결정하기 위한 비교부
    를 포함하는 실시간 영상 통신을 위한 율제어 장치.
  9. 제 8 항에 있어서,
    상기 임계값 연산부에서 임계값(threshold)을 계산할 때 상기 목표 비트 연산 수단으로부터의 목표 부호화 비트수, 최대 허용 비트수 및 최소 허용 비트수를 모두 사용하거나 또는 일부만을 사용하는 것을 특징으로 하는 실시간 영상 통신을 위한 율제어 장치.
  10. 제 8 항에 있어서,
    상기 양자화 파라미터 연산부에서 양자화 파라미터를 구할 때 상기 목표 비트 연산 수단으로부터의 목표 부호화 비트수, 최대 허용 비트수 및 최소 허용 비트수를 모두 사용하거나 또는 일부만을 사용하는 것을 특징으로 하는 실시간 영상 통신을 위한 율제어 장치.
  11. 제 8 항에 있어서,
    한 프레임의 부호화가 모두 끝난 경우에 다음 프레임의 누적 비트수를 저장할 수 있도록 하기 위하여, 상기 저장 수단에 저장되어 있는 누적 비트수를 "0"으로 초기화하는 것을 특징으로 실시간 영상 통신을 위한 율제어 장치.
  12. 제 8 항에 있어서,
    상기 비교부는,
    상기 가산부로부터의 누적 비트수를 상기 임계값 연산부로부터의 임계값과 비교하여 상기 누적 비트수가 상기 임계값 이하인 경우에는 화소 정보를 부호화하도록 화소 정보 부호화 여부 신호를 출력하고, 상기 누적 비트수가 상기 임계값보다 큰 경우에는 버퍼의 넘침을 방지하기 위하여 화소 정보를 부호화하지 않도록 화소 정보 부호화 여부 신호를 출력하는 것을 특징으로 하는 실시간 영상 통신을 위한 율제어 장치.
  13. 제 7 항에 있어서,
    상기 부호화 수단은,
    상기 양자화 파라미터 연산 수단으로부터의 양자화 파라미터(QP)에 따라 변환 계수를 양자화하기 위한 양자화 수단; 및
    무의미한 데이터와 상기 양자화 수단의 양자화된 변환 계수중 어느 하나를 상기 양자화 파라미터 연산 수단으로부터의 화소 정보 부호화 여부 신호에 따라 선택하기 위한 선택 수단
    을 포함하는 실시간 영상 통신을 위한 율제어 장치.
  14. 제 7 항에 있어서,
    상기 매크로블록 스킵 제어 수단은,
    누적 비트수를 저장하기 위한 저장 수단;
    상기 부호화 수단으로부터의 현재 매크로블록의 비트열 크기와 상기 래치부의 누적 비트수를 더하여 상기 저장 수단으로 출력하기 위한 가산 수단; 및
    상기 가산 수단으로부터의 누적 비트수를 상기 목표 비트 연산 수단으로부터의 최대 허용 비트수와 비교하여 현재 매크로블록의 전송 여부를 결정하기 위한 비교 수단
    을 포함하는 실시간 영상 통신을 위한 율제어 장치.
  15. 제 14 항에 있어서,
    상기 비교 수단은,
    상기 가산 수단으로부터의 누적 비트수가 상기 목표 비트 연산 수단으로부터의 최대 허용 비트수보다 작은 경우에는 현재 매크로블록의 비트열을 그대로 전송하도록 매크로블록 스킵 신호를 출력하고, 상기 가산 수단으로부터의 누적 비트수가 상기 목표 비트 연산 수단으로부터의 최대 허용 비트수보다 큰 경우에는 현재 매크로블록의 비트열을 출력하지 않도록 매크로블록 스킵 신호를 출력하는 것을 특징으로 하는 실시간 영상 통신을 위한 율제어 장치.
  16. 제 14 항에 있어서,
    한 프레임의 부호화가 모두 끝난 경우에 다음 프레임의 누적 비트수를 저장할 수 있도록 하기 위하여, 상기 저장 수단에 저장되어 있는 누적 비트수를 "0"으로 초기화하는 것을 특징으로 실시간 영상 통신을 위한 율제어 장치.
  17. 제 7 항에 있어서,
    상기 비트열 조작 수단은,
    상기 부호화 수단으로부터 부호화된 비트열을 입력받거나 현재 매크로블록이 부호화되지 않았음을 알리는 매크로블록 스킵 비트열을 입력받아, 상기 매크로블록 스킵 제어 수단으로부터 현재 매크로블록이 전송되지 않도록 하는 매크로블록 스킵 신호가 입력되었을 때에는 매크로블록 스킵 비트열을 선택하여 출력하고, 현재 매크로블록이 전송되도록 하는 매크로블록 스킵 신호가 입력되었을 때에는 비트열을 선택하여 출력하는 것을 특징으로 하는 실시간 영상 통신을 위한 율제어 장치.
  18. 실시간 영상 통신을 위한 율제어 장치에 적용되는 율제어 방법에 있어서,
    전송 선로의 전송 속도와 부호화하려는 영상의 초당 입력 프레임수에 따라 율제어에 필요한 초기값을 설정하는 제 1 단계;
    현재 버퍼의 상태와 상기 전송 선로의 전송 속도를 고려하여 목표 부호화 비트수, 최대 허용 비트수 및 최소 허용 비트수를 구하는 제 2 단계;
    상기 목표 부호화 비트수, 최대 허용 비트수 및 최소 허용 비트수를 이용하여 율제어와 부호화를 수행하는 제 3 단계;
    부호화된 비트열의 크기와 상기 목표 부호화 비트수를 비교하여 의미없는 스터핑 비트열(stuffing bit)을 발생하는 제 4 단계;
    부호화된 비트열과 상기 스터핑 비트열을 조합하여 저장하고 영상 정보가 전송하도록 하는 제 5 단계; 및
    현재 버퍼의 상태에 따라 발생된 프레임 스킵 신호에 따라 다음 입력 프레임의 부호화 여부를 결정하는 제 6 단계
    를 포함하는 실시간 영상 통신을 위한 율제어 방법.
  19. 제 18 항에 있어서,
    상기 최소 허용 비트수 Min_bit = max{Bfd+ Ba- Bd, Ba- Bfe, 0}과 같이 구하고, 상기 최대 허용 비트수 Max_bit = min{Bfd, Be- Bfe}와 같이 구하는 것을 특징으로 하는 실시간 영상 통신을 위한 율제어 방법.
    (여기서, Bfd는 복호기 버퍼의 채워진 상태를 의미하고, Ba는 한 프레임이 부호화되는 중간에 비트열이 버퍼에서 전송되는 비트수이며, Bd는 복호기 버퍼의 크기이고, Be는 부호기 버퍼의 크기이며, Bfe는 부호기 버퍼의 채워진 상태를 나타내고, min{}은 구성 원소들중 최소값을 출력하는 함수이고, max{}는 구성 원소들중 최대값을 출력하는 함수임)
  20. 제 18 항에 있어서,
    상기 제 4 단계는,
    상기 최소 허용 비트수와 상기 부호화된 비트열의 크기를 비교하여 상기 비트열의 크기가 상기 최소 허용 비트수보다 작을 경우에 이들 사이의 차이 이상의 비트수만큼 의미없는 스터핑 비트열을 발생하는 것을 특징으로 하는 실시간 영상 통신을 위한 율제어 방법.
  21. 제 18 항에 있어서,
    상기 제 3 단계의 율제어 및 부호화 과정은,
    현재 부호화되는 매크로블록까지의 비트열의 부호화 비트수의 합이 상기 최대 허용 비트수를 넘는 경우에 현재 부호화되는 매크로블록의 비트열을 폐기하여 비트열의 길이가 상기 최대 허용 비트수를 넘지 않도록 보장하는 것을 특징으로 하는 실시간 영상 통신을 위한 율제어 방법.
  22. 제 21 항에 있어서,
    상기 제 3 단계의 율제어 및 부호화 과정은,
    현재 매크로블록의 비트열을 폐기할 경우에 현재 매크로블록을 부호화하지 않았음을 나타내는 비트열을 추가하는 것을 특징으로 하는 실시간 영상 통신을 위한 율제어 방법.
  23. 제 18 항에 있어서,
    상기 제 3 단계의 율제어 및 부호화 과정은,
    현재 부호화되는 매크로블록까지의 비트열의 부호화 비트수의 합이 상기 최대 허용 비트수 또는 목표 부호화 비트수 또는 최소 허용 비트수로부터 계산되어진 소정의 허용 한계를 넘어서는 경우에 화소 정보를 부호화하지 않음으로써 비트열의길이가 상기 최대 허용 비트수를 넘지 않도록 하는 것을 특징으로 하는 실시간 영상 통신을 위한 율제어 방법.
  24. 제 18 항 내지 제 23 항중 어느 한 항에 있어서,
    상기 제 3 단계는,
    상기 목표 부호화 비트수와 최대 허용 비트수 및 최소 허용 비트수와 이전 매크로블록의 비트열 크기 및 모델 파라미터에 따라 양자화 파라미터와 해당 매크로블록의 부호화 여부(texture_coded)를 결정하는 제 7 단계;
    상기 양자화 파라미터에 따라 변환 계수의 양자화 폭을 결정하고 상기 부호화 여부 결정 신호에 따라 부호화하는 제 8 단계;
    상기 부호화된 비트열의 크기와 상기 양자화 파라미터에 따라 모델을 갱신하여 모델 파라미터를 생성하는 제 9 단계;
    상기 부호화된 비트열 크기와 상기 최대 허용 비트수를 비교하여 매크로블록의 스킵 여부를 결정하여 매크로블록 스킵 신호를 발생하는 제 10 단계; 및
    상기 매크로블록 스킵 신호와 상기 부호화된 비트열을 조합하는 제 11 단계
    를 포함하는 실시간 영상 통신을 위한 율제어 방법.
  25. 제 24 항에 있어서,
    상기 제 7 단계는,
    상기 목표 부호화 비트수, 최대 허용 비트수 및 최소 허용 비트수에 따라 임계값을 구하는 제 12 단계;
    상기 목표 부호화 비트수(target_bit), 최대 허용 비트수(max_bit) 및 최소 허용 비트수(min_bit)와 상기 모델 파라미터에 따라 양자화 파라미터(QP)를 구하는 제 13 단계;
    상기 부호화된 이전 매크로블록의 비트열 크기와 누적 비트수를 더하여 새로운 누적 비트수를 구하는 제 14 단계; 및
    상기 새로 구한 누적 비트수를 상기 구한 임계값과 비교하여 매크로블록의 부호화 여부를 결정하는 제 15 단계
    를 포함하는 실시간 영상 통신을 위한 율제어 방법.
  26. 제 25 항에 있어서,
    상기 제 15 단계는,
    상기 구한 누적 비트수와 임계값을 비교하여 상기 누적 비트수가 상기 임계값 이하인 경우에는 화소 정보를 부호화하도록 화소 정보 부호화 여부 신호를 출력하고, 상기 누적 비트수가 상기 임계값보다 큰 경우에는 버퍼의 넘침을 방지하기 위하여 화소 정보를 부호화하지 않도록 화소 정보 부호화 여부 신호를 발생하는 것을 특징으로 하는 실시간 영상 통신을 위한 율제어 방법.
  27. 제 24 항에 있어서,
    상기 제 10 단계는,
    상기 부호화된 현재 매크로블록의 비트열 크기와 이전 매크로블록까지의 누적 비트수를 더하여 새로운 누적 비트수를 구하는 제 12 단계; 및
    상기 구한 누적 비트수를 상기 최대 허용 비트수와 비교하여 현재 매크로블록의 전송 여부를 결정하는 제 13 단계
    를 포함하는 실시간 영상 통신을 위한 율제어 방법.
  28. 제 27 항에 있어서,
    상기 제 13 단계는,
    상기 구한 누적 비트수가 상기 최대 허용 비트수보다 작은 경우에는 현재 매크로블록의 비트열을 그대로 전송하도록 매크로블록 스킵 신호를 출력하고, 상기 구한 누적 비트수가 상기 최대 허용 비트수보다 큰 경우에는 현재 매크로블록의 비트열을 출력하지 않도록 매크로블록 스킵 신호를 출력하는 것을 특징으로 하는 실시간 영상 통신을 위한 율제어 방법.
  29. 제 24 항에 있어서,
    상기 제 11 단계는,
    상기 부호화된 비트열과 현재 매크로블록이 부호화되지 않았음을 알리는 매크로블록 스킵 비트열을 조합하되, 상기 현재 매크로블록이 전송되지 않도록 하는 매크로블록 스킵 신호가 입력되었을 때에는 매크로블록 스킵 비트열을 선택하여 출력하고, 현재 매크로블록이 전송되도록 하는 매크로블록 스킵 신호가 입력되었을 때에는 비트열을 선택하여 출력하는 것을 특징으로 하는 실시간 영상 통신을 위한 율제어 방법.
  30. 실시간 영상 통신을 위한 율제어를 위하여, 프로세서를 구비한 율제어 장치에,
    전송 선로의 전송 속도와 부호화하려는 영상의 초당 입력 프레임수에 따라 율제어에 필요한 초기값을 설정하는 제 1 기능;
    현재 버퍼의 상태와 상기 전송 선로의 전송 속도를 고려하여 목표 부호화 비트수, 최대 허용 비트수 및 최소 허용 비트수를 구하는 제 2 기능;
    상기 목표 부호화 비트수, 최대 허용 비트수 및 최소 허용 비트수를 이용하여 율제어와 부호화를 수행하는 제 3 기능;
    부호화된 비트열의 크기와 상기 목표 부호화 비트수를 비교하여 의미없는 스터핑 비트열(stuffing bit)을 발생하는 제 4 기능;
    부호화된 비트열과 상기 스터핑 비트열을 조합하여 저장하고 영상 정보가 전송하도록 하는 제 5 기능; 및
    현재 버퍼의 상태에 따라 발생된 프레임 스킵 신호에 따라 다음 입력 프레임의 부호화 여부를 결정하는 제 6 기능
    을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  31. 제 30 항에 있어서,
    상기 제 3 기능은,
    상기 목표 부호화 비트수와 최대 허용 비트수 및 최소 허용 비트수와 이전 매크로블록의 비트열 크기 및 모델 파라미터에 따라 양자화 파라미터와 해당 매크로블록의 부호화 여부(texture_coded)를 결정하는 제 7 기능;
    상기 양자화 파라미터에 따라 변환 계수의 양자화 폭을 결정하고 상기 부호화 여부 결정 신호에 따라 부호화하는 제 8 기능;
    상기 부호화된 비트열의 크기와 상기 양자화 파라미터에 따라 모델을 갱신하여 모델 파라미터를 생성하는 제 9 기능;
    상기 부호화된 비트열 크기와 상기 최대 허용 비트수를 비교하여 매크로블록의 스킵 여부를 결정하여 매크로블록 스킵 신호를 발생하는 제 10 기능; 및
    상기 매크로블록 스킵 신호와 상기 부호화된 비트열을 조합하는 제 11 기능
    을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  32. 제 31 항에 있어서,
    상기 제 7 기능은,
    상기 목표 부호화 비트수, 최대 허용 비트수 및 최소 허용 비트수에 따라 임계값을 구하는 제 12 기능;
    상기 목표 부호화 비트수(target_bit), 최대 허용 비트수(max_bit) 및 최소 허용 비트수(min_bit)와 상기 모델 파라미터에 따라 양자화 파라미터(QP)를 구하는 제 13 기능;
    상기 부호화된 이전 매크로블록의 비트열 크기와 누적 비트수를 더하여 새로운 누적 비트수를 구하는 제 14 기능; 및
    상기 새로 구한 누적 비트수를 상기 구한 임계값과 비교하여 매크로블록의 부호화 여부를 결정하는 제 15 기능
    을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020000035982A 2000-06-28 2000-06-28 실시간 영상 통신을 위한 율제어 장치 및 그 방법 KR100341063B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020000035982A KR100341063B1 (ko) 2000-06-28 2000-06-28 실시간 영상 통신을 위한 율제어 장치 및 그 방법
JP2001130285A JP4205315B2 (ja) 2000-06-28 2001-04-26 実時間画像通信のためのレート制御装置及びその制御方法
US09/861,359 US6937653B2 (en) 2000-06-28 2001-05-18 Rate control apparatus and method for real-time video communication

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000035982A KR100341063B1 (ko) 2000-06-28 2000-06-28 실시간 영상 통신을 위한 율제어 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20020001344A KR20020001344A (ko) 2002-01-09
KR100341063B1 true KR100341063B1 (ko) 2002-06-20

Family

ID=19674437

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000035982A KR100341063B1 (ko) 2000-06-28 2000-06-28 실시간 영상 통신을 위한 율제어 장치 및 그 방법

Country Status (3)

Country Link
US (1) US6937653B2 (ko)
JP (1) JP4205315B2 (ko)
KR (1) KR100341063B1 (ko)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6563953B2 (en) * 1998-11-30 2003-05-13 Microsoft Corporation Predictive image compression using a single variable length code for both the luminance and chrominance blocks for each macroblock
GB2374746B (en) * 2001-04-19 2005-04-13 Discreet Logic Inc Displaying image data
JP3565182B2 (ja) * 2001-05-11 2004-09-15 日本電気株式会社 可変長符号の入力が中断されることを防止する方式及びその方法
EP2262269B1 (en) 2001-12-17 2018-01-24 Microsoft Technology Licensing, LLC Skip macroblock coding
US7418037B1 (en) * 2002-07-15 2008-08-26 Apple Inc. Method of performing rate control for a compression system
KR100484148B1 (ko) * 2002-07-27 2005-04-18 삼성전자주식회사 개선된 비트율 제어 방법과 그 장치
KR100949755B1 (ko) * 2002-09-05 2010-03-25 에이전시 포 사이언스, 테크놀로지 앤드 리서치 비디오 시퀀스의 레이트를 제어하는 방법 및 장치, 비디오부호화 장치
US7940843B1 (en) 2002-12-16 2011-05-10 Apple Inc. Method of implementing improved rate control for a multimedia compression and encoding system
US7804897B1 (en) * 2002-12-16 2010-09-28 Apple Inc. Method for implementing an improved quantizer in a multimedia compression and encoding system
JP2005051633A (ja) * 2003-07-30 2005-02-24 Sony Corp 編集装置、ビットレート制御方法及びビットレート制御プログラム
US20050169369A1 (en) * 2004-02-03 2005-08-04 Sony Corporation Scalable MPEG video/macro block rate control
US7697608B2 (en) * 2004-02-03 2010-04-13 Sony Corporation Scalable MPEG video/macro block rate control
CN100411476C (zh) * 2004-09-20 2008-08-13 华为技术有限公司 一种宽带码分多址系统中上行增强链路信令编码方法
US7747095B2 (en) * 2004-10-08 2010-06-29 Nvidia Corporation Methods and systems for rate control in image compression
US8340172B2 (en) * 2004-11-29 2012-12-25 Qualcomm Incorporated Rate control techniques for video encoding using parametric equations
US9077960B2 (en) * 2005-08-12 2015-07-07 Microsoft Corporation Non-zero coefficient block pattern coding
CN100463526C (zh) * 2006-12-11 2009-02-18 陈耀武 视频延时自适应矫正的解码装置
CN101578793B (zh) 2007-01-04 2014-03-05 高通股份有限公司 无线通信的分布式频谱感测方法和装置
JP4427570B2 (ja) * 2007-09-26 2010-03-10 株式会社東芝 通信装置、通信制御方法及びプログラム
WO2009148076A1 (ja) * 2008-06-05 2009-12-10 日本電信電話株式会社 映像符号量制御方法、映像符号量制御装置、映像符号量制御プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
KR101009822B1 (ko) * 2008-08-06 2011-01-19 삼성전자주식회사 서버 및 이동통신 단말기를 포함하는 통신 시스템에서스트리밍 데이터를 송수신하는 방법 및 그 통신 시스템
KR20100057388A (ko) * 2008-11-21 2010-05-31 삼성전자주식회사 버퍼 상태에 적응적인 영상 부호화 방법 및 장치, 영상 복호화 방법 및 장치
US9060187B2 (en) 2008-12-22 2015-06-16 Netflix, Inc. Bit rate stream switching
US8396114B2 (en) * 2009-01-29 2013-03-12 Microsoft Corporation Multiple bit rate video encoding using variable bit rate and dynamic resolution for adaptive video streaming
US8311115B2 (en) * 2009-01-29 2012-11-13 Microsoft Corporation Video encoding using previously calculated motion information
US8270473B2 (en) * 2009-06-12 2012-09-18 Microsoft Corporation Motion based dynamic resolution multiple bit rate video encoding
US9112618B2 (en) * 2009-07-02 2015-08-18 Qualcomm Incorporated Coding latency reductions during transmitter quieting
US8958475B2 (en) * 2009-07-02 2015-02-17 Qualcomm Incorporated Transmitter quieting and null data encoding
US8902995B2 (en) * 2009-07-02 2014-12-02 Qualcomm Incorporated Transmitter quieting and reduced rate encoding
JP4861456B2 (ja) * 2009-07-15 2012-01-25 富士通株式会社 データレート調整装置、データ配信システム、及びプログラム
EP2285112A1 (en) * 2009-08-07 2011-02-16 Canon Kabushiki Kaisha Method for sending compressed data representing a digital image and corresponding device
US8595582B2 (en) * 2009-10-01 2013-11-26 Stmicroelectronics, Inc. High-rate reverse-order run-length-limited code
US20110110422A1 (en) * 2009-11-06 2011-05-12 Texas Instruments Incorporated Transmission bit-rate control in a video encoder
JP5585062B2 (ja) * 2009-12-04 2014-09-10 ソニー株式会社 情報処理装置、情報処理方法、データ管理サーバおよびデータ同期システム
US20110182257A1 (en) * 2010-01-26 2011-07-28 Qualcomm Incorporated White space spectrum commmunciation device with multiplexing capabilties
US8705616B2 (en) 2010-06-11 2014-04-22 Microsoft Corporation Parallel multiple bitrate video encoding to reduce latency and dependences between groups of pictures
US8629913B2 (en) * 2010-09-30 2014-01-14 Apple Inc. Overflow control techniques for image signal processing
BR112013013782A2 (pt) * 2011-01-04 2016-09-13 Ericsson Telefon Ab L M método, equipamento de usuário, programa de computador e produto de programa de computador para selecionar um fluxo de saída
US9025665B2 (en) * 2011-07-01 2015-05-05 Cavium, Inc. Video encoder bit estimator for macroblock encoding
US9591318B2 (en) 2011-09-16 2017-03-07 Microsoft Technology Licensing, Llc Multi-layer encoding and decoding
US9237352B2 (en) * 2011-10-05 2016-01-12 Texas Instruments Incorporated Methods and systems for encoding pictures associated with video data
US10390016B2 (en) 2011-11-04 2019-08-20 Infobridge Pte. Ltd. Apparatus of encoding an image
KR20130049524A (ko) * 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 방법
TWI451722B (zh) * 2011-11-07 2014-09-01 Quanta Comp Inc 位元率控制裝置及其方法
US11089343B2 (en) 2012-01-11 2021-08-10 Microsoft Technology Licensing, Llc Capability advertisement, configuration and control for video coding and decoding
JP5843631B2 (ja) * 2012-01-26 2016-01-13 日本電信電話株式会社 フレームレート制御方法,フレームレート制御装置およびフレームレート制御プログラム
JP5848993B2 (ja) * 2012-03-06 2016-01-27 株式会社メガチップス 画像処理装置
US8982702B2 (en) * 2012-10-30 2015-03-17 Cisco Technology, Inc. Control of rate adaptive endpoints
CN104782124B (zh) * 2012-12-17 2018-09-07 英特尔公司 利用编码器硬件对视频内容进行预处理
MY183347A (en) * 2013-09-30 2021-02-18 Japan Broadcasting Corp Image encoding device, image decoding device, and the programs thereof
GB2518909B (en) 2013-12-16 2015-10-28 Imagination Tech Ltd Encoder adaptation
US9979970B2 (en) * 2014-08-08 2018-05-22 Qualcomm Incorporated System and method for determining buffer fullness for display stream compression
KR102274747B1 (ko) 2014-11-24 2021-07-07 삼성전자주식회사 코덱과 이를 포함하는 시스템 온 칩, 및 상기 시스템 온 칩을 포함하는 데이터 처리 시스템
US10805635B1 (en) * 2016-03-22 2020-10-13 NGCodec Inc. Apparatus and method for coding tree unit bit size limit management

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5159447A (en) 1991-05-23 1992-10-27 At&T Bell Laboratories Buffer control for variable bit-rate channel
US5231484A (en) * 1991-11-08 1993-07-27 International Business Machines Corporation Motion video compression system with adaptive bit allocation and quantization
US5552832A (en) * 1994-10-26 1996-09-03 Intel Corporation Run-length encoding sequence for video signals
JPH08163554A (ja) 1994-12-02 1996-06-21 Electron & Telecommun Res Inst ビデオビット率制御方法
US5825970A (en) * 1994-12-20 1998-10-20 Lg Electronics Inc. Quantization number selecting apparatus for DVCR and method therefor
US5686964A (en) 1995-12-04 1997-11-11 Tabatabai; Ali Bit rate control mechanism for digital image and video data compression
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
US5731835A (en) 1996-02-26 1998-03-24 David Sarnoff Research Center, Inc. Dynamic coding rate control in a block-based video coding system
KR100297830B1 (ko) * 1996-11-09 2001-08-07 윤종용 영상단위별 비트발생량 조절 장치 및 방법
JP3934712B2 (ja) * 1996-09-27 2007-06-20 日本ビクター株式会社 映像信号符号化方法及び装置
JPH10190745A (ja) 1996-11-07 1998-07-21 Sony Corp 符号化信号伝送方法及び装置
JPH10190946A (ja) 1996-12-27 1998-07-21 Canon Inc 密着型イメージセンサとこれを用いた画像読み取り装置
JP4061511B2 (ja) 1997-04-15 2008-03-19 ソニー株式会社 符号化装置及び符号化方法
JPH10290427A (ja) 1997-04-15 1998-10-27 Sony Corp データ圧縮装置
JPH10290428A (ja) 1997-04-15 1998-10-27 Sony Corp データ圧縮装置
JPH10290429A (ja) 1997-04-17 1998-10-27 Sony Corp データ圧縮装置
DE69815720T2 (de) * 1998-01-26 2004-05-13 Stmicroelectronics Asia Pacific Pte Ltd. Kodierung von bewegten bildern mit variabler bitrate in einem durchgang
EP1005233A1 (en) * 1998-10-12 2000-05-31 STMicroelectronics S.r.l. Constant bit-rate coding control in a video coder by way of pre-analysis of the slices of the pictures

Also Published As

Publication number Publication date
KR20020001344A (ko) 2002-01-09
JP2002044656A (ja) 2002-02-08
JP4205315B2 (ja) 2009-01-07
US6937653B2 (en) 2005-08-30
US20020012395A1 (en) 2002-01-31

Similar Documents

Publication Publication Date Title
KR100341063B1 (ko) 실시간 영상 통신을 위한 율제어 장치 및 그 방법
KR100740381B1 (ko) 디지털 신호 부호화 장치 및 디지털 신호 복호 장치
KR100484148B1 (ko) 개선된 비트율 제어 방법과 그 장치
KR101106086B1 (ko) 부호화 장치 및 부호화 방법
US6529552B1 (en) Method and a device for transmission of a variable bit-rate compressed video bitstream over constant and variable capacity networks
US6959041B2 (en) Picture encoding system conversion device and encoding rate conversion device
JP2001511983A (ja) 知覚特性利用型のトレリスに基づいて低ビットレートでビデオ符号化を行なうレート制御方法及び装置
EP1209625A2 (en) Picture coding apparatus and method
KR100601615B1 (ko) 네트워크 대역폭에 적응적인 영상 압축 장치
KR19990037507A (ko) 지각적 압축 및 견고한 비트 레이트 제어 시스템
JP3739388B2 (ja) 二重基準画像符号化方法、符号化装置および復号化器
Tsai et al. Modified TMN8 rate control for low-delay video communications
US7428339B2 (en) Pseudo-frames for MPEG-2 encoding
KR100713400B1 (ko) 평균 히스토그램 오차 방식을 이용한 h.263/mpeg비디오 인코더 및 그 제어 방법
US20010053182A1 (en) Picture encoding format converting apparatus
JPH08195961A (ja) 符号化器
KR20040007818A (ko) 동영상 부호화를 위한 dct연산량 조절 방법 및 그 장치
WO2004093457A1 (ja) 動画像圧縮符号化方式変換装置及び動画像通信システム
KR19990065775A (ko) 비디오 스트림 코딩을 위한 적응적 비트율 제어 방법
KR100228549B1 (ko) 채널율을 이용한 가변 비트율 비디오 제어 방법
KR100555750B1 (ko) 저전송율 비디오 부호화 장치 및 방법
JPH10210475A (ja) 画像符号化装置
KR100778473B1 (ko) 비트율 제어 방법
KR100926826B1 (ko) 비디오 비트열의 전송 오류에 대비하기 위한 변환부호장치 및 방법
KR20070023158A (ko) 화면내―프레임을 위한 부호율 제어 장치 및 그 방법

Legal Events

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

Payment date: 20100525

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee