[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR100209417B1 - Controller for video signal coding system - Google Patents

Controller for video signal coding system Download PDF

Info

Publication number
KR100209417B1
KR100209417B1 KR1019960026177A KR19960026177A KR100209417B1 KR 100209417 B1 KR100209417 B1 KR 100209417B1 KR 1019960026177 A KR1019960026177 A KR 1019960026177A KR 19960026177 A KR19960026177 A KR 19960026177A KR 100209417 B1 KR100209417 B1 KR 100209417B1
Authority
KR
South Korea
Prior art keywords
input
value
control
signal
result
Prior art date
Application number
KR1019960026177A
Other languages
Korean (ko)
Other versions
KR980007736A (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 전주범
Priority to KR1019960026177A priority Critical patent/KR100209417B1/en
Publication of KR980007736A publication Critical patent/KR980007736A/en
Application granted granted Critical
Publication of KR100209417B1 publication Critical patent/KR100209417B1/en

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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은, 비디오 신호 부호화 시스템에 사용되는, 인터/인트라(Inter/lntra) 모드, 필드/프레임(Field/Frame) 모드와 양자화 계수를 결정하는 제어기로서, 상기 비디오 신호는 다수의 GOP 를 포함하고, 각 GOP 는 세가지 종류의 픽쳐로 나뉘어지고, 각 픽쳐는 다수개의 마크로블럭으로 나누어지고, 부호화 시스템은 마크로블럭 단일로 비디오 신호를 부호화하되, 제어기는: 현재 부호화되는 픽쳐의 종류와, 픽쳐의 시작을 나타내는 신호에 응답하여, 다수의 제어신호를 포함하는 제어시퀀스를 생성하는 스테이트 머신(state machine); 제어시퀀스에 응답하여, 현재 부호화되는 마크로블럭의 일련번호와 기설정된 초기상수값에 근거하여 기설정된 일련의 방정식을 계산함으로써, 픽쳐의 각 마크로블럭에 대해 일군의 제어값을 생성하는 산술유니트로서, 일군의 제어값은 인터/인트라 모드, 필드,/프레임 모드, 양자화계수를 의미하는 산술유니트; 초기상수값을 저장하고, 초기상수값을 산술유니트에 공급하고 산술유니트에서 결정된 일군의 제어값을 저장하고, 비디오 부호화과정에 쓰이는 제어값을 제공하는 메모리 및 입출력 유니트를 포함한다.The present invention is a controller for determining an inter / intra mode, a field / frame mode and a quantization coefficient used in a video signal encoding system, wherein the video signal includes a plurality of GOPs. Each GOP is divided into three types of pictures, each picture is divided into a plurality of macroblocks, and the encoding system encodes a video signal with a single macroblock, but the controller: the type of the picture currently being encoded and the start of the picture. A state machine for generating a control sequence including a plurality of control signals in response to a signal representing a signal; An arithmetic unit that generates a group of control values for each macroblock of a picture by calculating a predetermined series of equations based on a serial number of a currently encoded macroblock and a predetermined initial constant value in response to the control sequence. The group of control values includes an arithmetic unit meaning inter / intra mode, field, / frame mode and quantization coefficient; A memory and an input / output unit for storing the initial constant value, supplying the initial constant value to the arithmetic unit, stores a group of control values determined in the arithmetic unit, and provides a control value used in the video encoding process.

Description

비디오 신호 부호화 시스템 제어기Video signal coding system controller

제1도는 본 발명에 따른 제어기를 채용한 비디오 신호 부호화 시스템의 블럭도.1 is a block diagram of a video signal encoding system employing a controller according to the present invention.

제2도는 본 발명의 제어기의 블럭도.2 is a block diagram of a controller of the present invention.

제3도는 제2도의 메모리 및 입출력 유니트의 블럭도.3 is a block diagram of the memory and input / output unit of FIG.

제4도는 제2도의 산술유니트의 블럭도.4 is a block diagram of the arithmetic unit of FIG.

제5도는 VAR 과 VAROR에 의해 인터/인트라 모드를 결정하는 방법의 예시도.5 is an illustration of a method of determining an inter / intra mode by VAR and VAROR.

본 발명은 비디오 신호 부호화 시스템에서 사용되는 제어기에 관한 것으로 특히, 양자화계수를 제어함으로서 부호화 시스템으로 부터의 데이타의 양을 제어하여 버퍼가 오버플로우(overflow) 되거나 언더플로우(underflow) 되는 것을 막고, 인터/인트라 모드와 필드/프레임 DCT를 결정하는 제어기에 관한 것이다.The present invention relates to a controller used in a video signal encoding system, and in particular, by controlling the amount of data from the encoding system by controlling the quantization coefficient to prevent the buffer from overflowing or underflowing, A controller for determining the / intra mode and the field / frame DCT.

통신과 회로집적기술의 발달로, 이산화된 비디오 신호의 전송이 현실화되었다. 일련의 영상 프레임으로 구성된 영상신호가 이산형태로 표현되어 있을 경우 상당한 양의 데이타가 전송되어야 하고, 고선명도 텔레비젼의 경우는 더욱 그러하다. 그러나 종래의 전송채널의 사용가능한 주파수대역은 한정되어 있으므로 상당한 양의 이산 데이타를 전송하려면, 영상의 화질을 악화시키지 않으면서 전송 데이타량을 줄일 수 있는 압축기술을 사용할 필요가 있다.With the development of communication and circuit integration technology, the transmission of discrete video signals has become a reality. When a video signal consisting of a series of video frames is represented in discrete form, a considerable amount of data must be transmitted, especially in high definition televisions. However, since the usable frequency band of the conventional transmission channel is limited, to transmit a considerable amount of discrete data, it is necessary to use a compression technique that can reduce the amount of transmission data without deteriorating the picture quality.

이런 측면에서 지난 수십년간 이산비디오 신호의 압축을 위한 표준들이 생성되었고 현재 개발중인 것도 있다. 그런 표준중의 하나가 ISO/IEC MPEG 표준인데 이는 국제표준화기구(International Standard Organization)와 국제 전자기술협회(International Electrotechnical Commission)의 공동 기술회합인 동영상전문가 그룹(Moving Picture Export Group)에 의해 개발된 것이다. 이 표준에서는 압축된 비트스트림과 복호화방법을 결정하고 있지만 부호화하는 알고리듬으로는 다양한 것이 가능하도록 하고 있다.In this respect, standards have been created for the compression of discrete video signals over the last few decades, and some are currently under development. One such standard is the ISO / IEC MPEG standard, developed by the Moving Picture Export Group, a joint technical conference of the International Standard Organization and the International Electrotechnical Commission. . Although this standard determines compressed bitstreams and decoding methods, various algorithms are available for encoding.

본 발명이 이런 부호화 시스템에 사용되는 것을 목적으로 하므로 발명의 이해를 돕기 위해 MPEG 비디오 압축알고리듬의 일부내용을 기술하겠다. 그러나, 본 발명에 관련된 MPEG 알고리듬의 특징들을 공유하는 비디오 부호화 알고리듬이라면 다른 곳에도 적용될 수 있다.Since the present invention aims to be used in such an encoding system, some contents of MPEG video compression algorithms will be described to help the understanding of the present invention. However, any video encoding algorithm that shares the features of the MPEG algorithm according to the present invention may be applied elsewhere.

MPEG 비디오 시퀀스는, GOP(Group Of Pictures)라는 일련의 픽쳐 내지 프레임의 군들로 나뉘어진다. 각 GOP 는 다수의 픽쳐를 포함하고 각 픽쳐는 다수의 슬라이스로 나뉘어진다. 각 슬라이스는 다수의 마크로블럭(MB)을 포함하며 각 마크로블럭은 4개의 8×8 명도(luminance) 블럭과 2개의 8×8 색상(chrominance) 블럭을 갖는다.An MPEG video sequence is divided into a series of pictures or frames called a group of pictures (GOP). Each GOP includes a number of pictures and each picture is divided into a number of slices. Each slice contains a number of macroblocks (MBs) and each macroblock has four 8 × 8 brightness blocks and two 8 × 8 chrominance blocks.

그리고, 한 GOP내에 세가지 종류의 픽쳐가 나타날 수 있는데, 그 첫번째는 인트라 모드 픽쳐 또는 I-픽쳐로서 다른 픽쳐와 별도로 압축된다. 다른 두개의 타입은 예측 움직임 보상된 픽쳐(P-픽쳐)와 양방향 움직임 보상된 픽쳐(B-픽쳐)이다.And three kinds of pictures may appear in one GOP, the first of which is an intra mode picture or an I-picture, which is compressed separately from other pictures. The other two types are predictive motion compensated pictures (P-pictures) and bidirectional motion compensated pictures (B-pictures).

한편, 움직임 보상은 연속된 픽쳐간의 리던던시(redundancy)를 제거하는 방법이다. MPEG 에서는 각 마크로블럭은 기준프레임의 유사한 위치의 16×16 영역과 비교된다. 과거의 한 프레임을 이용하여 압축된 프레임이 P-픽쳐이다. 이런 예측을 포워드-인-타임(forward-in-time)예측이라 한다. B-픽쳐에서는 포워드-인-타임 예측뿐만 아니라 백워드-인-타임 (backward-in-time)예측도 수행된다. I-픽쳐에서는 모든 마크로블럭이 인트라 모드로, 움직임 보상을 고려하지 않고 부호화된다. P-픽쳐와 B-픽쳐 에서는 각 마크로블럭이 인트라 모드 또는 움직임 보상을 이용하는 인터 모드로 부호화될 수 있다. 마크로블럭에 대해 하나의 부호화 모드를 결정하기 위해 다음과 같이 VAR 과 VAROR 이 계산된다.On the other hand, motion compensation is a method of removing redundancy between successive pictures. In MPEG, each macroblock is compared with a 16x16 area at a similar position of the reference frame. A frame compressed using one frame in the past is a P-picture. This prediction is called forward-in-time prediction. In B-picture, forward-in-time prediction is performed as well as backward-in-time prediction. In an I-picture, all macroblocks are encoded in intra mode, without considering motion compensation. In the P-picture and the B-picture, each macroblock may be encoded in an intra mode or an inter mode using motion compensation. To determine one encoding mode for a macroblock, VAR and VAROR are calculated as follows.

이때 O(i,j)와 S(i,j)는 각각 부호화될 원블럭의 화소값과 종래의 움직임 보상방법을 이용하여 재구성된 화소값을 나타내고; ave[O(i,j)]는 O(i,j)의 평균값이다. VAR 과 VAROR 는 각각 인터 모드와 인트라 모드로 해당 마크로블럭을 부호화할 때 발생하는 데이타의 양과 관계있다. 제5도에 도시된 것과 같이 인터/인트라 모드는 VAR 과 VAROR 의 값에 따라 결정된다.Where O (i, j) and S (i, j) represent the pixel values of the original block to be encoded and the pixel values reconstructed using the conventional motion compensation method, respectively; ave [O (i, j)] is an average value of O (i, j). VAR and VAROR are related to the amount of data generated when encoding the corresponding macroblock in inter mode and intra mode, respectively. As shown in FIG. 5, the inter / intra mode is determined according to the values of VAR and VAROR.

또한, MPEG과 몇몇 다른 압축표준에서는, 이산여현 변환(DCT)이 채택되었다. 프레임을 정의하는데 인터레이스된(interlaced) 스케닝을 사용하는 MPEG 에서는 두 타입의 DCT, 즉 필드별 DCT 와 프레임별 DCT가 선택적으로 사용될 수 있다. 프레임을 이루는 가로선들은 기수필드와 서수필드로 나뉘어져 서수번째 선들은(2, 4, 6‥‥) 서수필드를 형성하고 기수번째 선들은(1, 3, 5‥‥) 기수필드를 형성한다. 이산화된 인터레이스된 비디오 신호는 필드 모드 또는 프레임 모드로 압축될 수 있다. 필드 모드에서는 각 프레임은 기수필드와 서수필드로 나뉘어져서 각각 별개로 처리된다. 프레임 모드에서는 기수필드와 서수필드의 해당라인을 인터리빙(interleaving)함으로서 두개의 필드는 하나의 프레임으로 처리된다. 비디오 압축에서는 어느 한쪽이 완전히 만족스러운 성능을 발휘하는 것은 아니다. 각 프레임은 필드보다 2배의 선을 가지고 있으므로 샘플간의 상관관계가 커서 압축성이 좋아진다고 할 수 있다. 그러나 움직임이 정밀한 부분에서는 프레임모드 처리는 기수필드와 서수필드를 인터리빙 함으로서 발생하는 고주파 때문에 영향을 받을 수 있다. 이때, 필드/프레임 DCT는 마크로블럭 단위로 결정된다. DCT모드를 결정하는 규칙중 하나가 다음의 수식으로 설명된다.In addition, in MPEG and some other compression standards, discrete cosine transform (DCT) has been adopted. In MPEG, which uses interlaced scanning to define a frame, two types of DCTs, namely, field-specific DCT and frame-specific DCT, may be selectively used. The horizontal lines forming the frame are divided into radix fields and ordinal fields so that the ordinal lines form the ordinal fields (2, 4, 6 ...) and the radix lines form the radix fields (1, 3, 5 ...). Discrete interlaced video signals may be compressed in field mode or frame mode. In field mode, each frame is divided into a radix field and an ordinal field and processed separately. In frame mode, two fields are treated as one frame by interleaving corresponding lines of the odd and ordinal fields. In video compression, neither one is fully satisfactory. Since each frame has twice as many lines as the field, the correlation between samples is large, which means that the compressibility is improved. However, in the case of precise motion, frame mode processing may be affected by the high frequency generated by interleaving the odd and ordinal fields. At this time, the field / frame DCT is determined in units of macroblocks. One of the rules for determining the DCT mode is described by the following equation.

(ISO-IEC/JTC1/SC29/W G11/MPEG93/225의 Test Model 4참조)(See Test Model 4 of ISO-IEC / JTC1 / SC29 / W G11 / MPEG93 / 225)

이때, VAR1 이 VAR2 보다 큰 마크로블럭은 프레임 단위 DCT가 사용되고 반대일 경우는 필드단위 DCT가 사용된다.At this time, a macro block having a larger VAR1 than a VAR2 uses a frame unit DCT and vice versa.

그런다음, 필드 단위 또는 프레임 단위 DCT를 이용하여 구한 DCT 계수는 양자화를 거치게 된다. 양자화는 DCT 계수 한 블럭을 Wmn×QP 로 나누어줌으로써 실행되는데 Wmn는 웨이팅 팩터 행렬(Weighting Factor Matrix)이고 QP는 양자화 파라미터이다. 웨이팅 팩터는 시각적으로 덜 중요한 DCT 계수들에 양자화가 성기게 되도록 한다. 양자화 파라미터 QP는 영상의 화질과 비트레이트간의 트레이드오프(tradeoff)의 수단이 된다. QP는 한 픽쳐내에서도 마크로블럭에 따라 빨라질 수 있다. 적응양자화로 알려진 이런 성질때문에 각 프레임의 서로 다른 영역이 서로 다른 양자화 스텝크기로 양자화될 수 있다.Then, the DCT coefficients obtained using the field unit or frame unit DCT are subjected to quantization. Quantization is performed by dividing a block of DCT coefficients by W mn × QP, where W mn is a weighting factor matrix and QP is a quantization parameter. The weighting factor causes quantization to be sparse on visually less important DCT coefficients. The quantization parameter QP is a means of tradeoff between picture quality and bit rate of an image. QP can be accelerated according to the macroblock even within a picture. This property, known as adaptive quantization, allows different regions of each frame to be quantized with different quantization step sizes.

그리고, 양자화된 이후의 양자화된 계수는 허프만 부호화같은 가변길이 부호화(VLC)를 이용하여 부호화된다. VLC의 결과 발생하는 데이타의 양은 비디오 신호 특성에 따라 다르다. 따라서, 주어진 전송양에 따라 부호화된 데이타양을 조절하기 위한 레이트 제어방법이 필요하게 된다. 전술한 바와같이, 그런 레이트 제어기는, 예를 들어 버퍼의 충만도와 입력영상의 활성도에 따라 양자화 파라미터 QP를 변화시킴으로서 부호화된 데이타의 양을 조절하는 역할을 한다.The quantized coefficients after quantization are encoded using variable length coding (VLC) such as Huffman coding. The amount of data generated as a result of VLC depends on the video signal characteristics. Therefore, there is a need for a rate control method for adjusting the amount of encoded data according to a given amount of transmission. As mentioned above, such a rate controller serves to adjust the amount of coded data, for example, by varying the quantization parameter QP according to the fullness of the buffer and the activity of the input image.

다음에, 양자화 파라미터를 마크로블럭 단위로 조절함으로써 비트레 이트를 제어하는 방법이 기술될 것이다. 전체의 과정은 목표비트 할당; 레이트 제어; 적응 양자화의 세단계로 진행된다. 제1단계에서는, 다음 프레임을 부호화하는데 사용될 수 있는 비트수가 추정된다. 제2단계에서는, 각 마크로블럭에 대해 양자화 파라미터의 참조값이 가상버퍼를 이용하여 결정된다. 마지막으로, 양자화 파라미터의 참조값이 마크로블럭의 공간활성도에 따라 조절되어서 양자화 파라미터를 계산해낸다. 각 단계를 자세히 설명하겠다.Next, a method of controlling the bit rate by adjusting the quantization parameter in units of macroblocks will be described. The whole process consists of target bit allocation; Rate control; There are three stages of adaptive quantization. In the first step, the number of bits that can be used to encode the next frame is estimated. In the second step, the reference value of the quantization parameter for each macroblock is determined using the virtual buffer. Finally, the reference value of the quantization parameter is adjusted according to the spatial activity of the macroblock to calculate the quantization parameter. I will explain each step in detail.

[제1 단계][Step 1]

어떤 종류의 (I,P 또는 B 픽쳐)픽쳐를 부호화한 후 각각의 전체 복잡도 지수(Xi, Xp, Xb) 는 다음의 수식과 같이 갱신된다.After encoding some kind of (I, P or B picture) picture, each total complexity index (X i , X p , X b ) is updated as follows.

이때 SI, SP, Sb는 해당 픽쳐를 부호화항으로서 생성되는 비트수를 나타내고, QI, QP, Qb는 그 픽쳐의 모든 마크로블럭에 대한 실제 양자화 파라미터를 평균함으로써, 얻어지는 평균 양자화 파라미터이다.Where S I , S P , and S b represent the number of bits generated as a coding term for the picture, and Q I , Q P and Q b represent the average quantization obtained by averaging the actual quantization parameters for all the macroblocks of the picture. Parameter.

부호화과정의 초기에는 복잡도 지수의 초기상수값은 다음의 수식과 같이 결정된다.At the beginning of the encoding process, the initial constant value of the complexity index is determined by the following equation.

이때 BIT_RATE 의 값은 bits/sec 단위의 기설정된 상수이다. Xi,Xp, Xb가 결정된 후에는 목표비트수 즉 다음 픽쳐를 부호화하는데 생성되는 비트수의 추정값이 미리 결정된다.At this time, the value of BIT_RATE is a predetermined constant in bits / sec unit. After X i , X p and X b are determined, an estimated value of the number of target bits, i.e., the number of bits generated for encoding the next picture, is predetermined.

다음에, I,P 또는 B-픽쳐에 대한 목표 비트수(Ti, Tp, Tb)는 다음의 수식과 같이 결정된다.Next, the target number of bits (T i , T p , T b ) for the I, P or B-picture is determined by the following equation.

이때 Kp, Kb는 기설정된 상수이다. R 은 현재의 GOP에 할당된 비트중 남은 비트수이고 한 픽쳐를 부호화한 후에 다음의 수식과 같이 갱신된다.In this case, K p and K b are preset constants. R is the number of bits remaining among the bits allocated to the current GOP, and is updated as shown in the following equation after encoding one picture.

이때 Si(또는 SP, 또는 Sb)은 방금 부호화된 프레임에서 생성된 비트수이고, 첨자 i,p,b 는 프레임의 종류를 의미한다. GOP의 첫 번째 픽쳐가 부호화되기 이전의 R 값은 다음과 같다.In this case, S i (or S P , or S b ) is the number of bits generated in the just-encoded frame, and the subscripts i, p, and b represent the type of frame. The R value before the first picture of the GOP is encoded is as follows.

이때 N 은 GOP 내의 픽쳐의 개수이고 PICTURE_RATE 의 값은 기설정된 상수이다. 부호화과정의 초기에는 R의 초기상수값은 0 이다. 수식 4a 내지 4c 에서, NP 와 Nb는 현재 GOP에 남아있는 P-픽쳐와 B-픽쳐의 개수이다. 따라서 GOP의 시작부에서는 Np와 Nb는 각각 현재 GOP의 P-픽 쳐와 B-픽쳐의 총수이다.In this case, N is the number of pictures in the GOP and the value of PICTURE_RATE is a predetermined constant. At the beginning of the encoding process, the initial constant of R is zero. In Equations 4a to 4c, NP and Nb are the number of P-pictures and B-pictures remaining in the current GOP. Therefore, at the beginning of the GOP, N p and N b are the total number of P-pictures and B-pictures of the current GOP, respectively.

[제2단계 : 레이트 제어][Step 2: Rate Control]

이 단계에서는 가상버퍼의 개념에 의하여 참조 양자화 파라미터가 계산된다.In this step, the reference quantization parameter is calculated according to the concept of the virtual buffer.

먼저, 마크로블럭 j 를 부호화하기 전에, 가상버퍼의 충만도가 픽쳐종류에 따라 다음과 같이 결정된다.First, before encoding the macroblock j, the fullness of the virtual buffer is determined as follows according to the picture type.

이때 , doi, dop, dob는 각각의 픽쳐 타입에 대한 픽쳐의 시작에서 가상버퍼의 충만도를 나타내고; Bj는 현재 프레임에서 마크로블럭 j 를 포함하여 마크로블럭 j까지를 부호화하는데 생성된 비트수이고; MB_cnt는 픽쳐에 포함된 마크로블럭의 수이고; dj i, dj p, dj b는 각각의 픽쳐 타입에 대한 마크로블럭 j 에서의 가상버퍼의 충만도이다.Where do i , do p , do b represent the fullness of the virtual buffer at the start of the picture for each picture type; B j is the number of bits generated for encoding the macroblock j up to and including the macroblock j in the current frame; MB_cnt is the number of macroblocks included in the picture; d j i , d j p , d j b are the fullness of the virtual buffer in macroblock j for each picture type.

픽쳐의 끝에서의 가상버퍼의 최종충만도, 즉 j=MB_cat 일 경우 dj i, dj p, dj b)는 같은 종류의 다음 픽쳐를 부호화하기 위한 doi, dop, dob로 사용된다.The final fullness of the virtual buffer at the end in the picture also, that when j = MB_cat d j i, d j p, d j b) is used to do i, do p, do b for encoding the type of the following picture, such as do.

다음에, 마크로블럭 j 에 대한 참조 양자화 파라미터 (Qj)는 다음과 같이 결정된다.Next, the reference quantization parameter Qj for macroblock j is determined as follows.

이때,이고 dj는 가상버퍼의 충만도값이다.At this time, And d j is the fullness value of the virtual buffer.

또한, 부호화의 시작에서는 가상버퍼의 충만도는 다음의 수식과 같다.In addition, at the beginning of the encoding, the fullness of the virtual buffer is as follows.

[제3단계: 적응 양자화][Step 3: Adaptive Quantization]

이 단계에서는, 각 마크로블럭을 양자화하는데 실제로 이용되는 Mquant(변형된 양자화 파라미터)를 영상의 공간활성도를 이용하여 참조 양자화 파라미터로부터 구한다.In this step, the Mquant (modified quantization parameter) actually used to quantize each macroblock is obtained from the reference quantization parameter using the spatial activity of the image.

그리고, 마크로블럭 j 에 대한 공간활성도 지수는 인트라 화소값을 이용하여 마크로블럭 j 의 4개의 프레임-정렬된 블럭과 4개의 필드-정렬된 블록으로부터 다음의 수식과 같이 구한다.The spatial activity index for the macroblock j is obtained from the four frame-aligned blocks and the four field-aligned blocks of the macroblock j using the intra pixel value as follows.

이 때,At this time,

이고,ego,

이고, Pk는 원래 블럭의 화소값이다. 프레임-정렬된 블럭의 경우 블록은 8개의 연속된 라인으로 이루어져 있고 필드-정렬된 블럭의 경우 블럭기수필드와 서수필드의 라인들이 각각 별도의 블럭을 이루게 된다.P k is the pixel value of the original block. In the case of a frame-aligned block, a block consists of eight consecutive lines. In the case of a field-aligned block, the lines of the block radix field and the ordinal field form separate blocks.

여기에서 Pk는,Where P k is

이고, avg_act 는 이전 픽쳐에 대한 actj의 평균값이다. 첫번째 픽쳐에서는 avg_act의 값은 400 이다.And avg_act is an average value of act j for the previous picture. In the first picture, the value of avg_act is 400.

이후에, Mquant 는 다음의 수식과 같이 결정된다:After that, Mquant is determined by the following formula:

상기 수식에서 Mquantj의 최종값은 1 에서 31 범위로 조정되어 양자화 과정에서 사용된다. 따라서, 상기와 같이 함으로써, 부호화 과정에서 발생하는 비트수가 기설정된 수를 넘는 경우에는(버퍼로 입력되는 데이타가 증가하는 경우), 양자화 스텝크기는 늘어나고 반대의 경우는 줄어들게 되고, 따라서 버퍼 충만도를 어떤 번위로 조정한다.In the above equation, the final value of Mquant j is adjusted in the range of 1 to 31 and used in the quantization process. Thus, by doing the above, when the number of bits generated in the encoding process exceeds the predetermined number (in case the data inputted into the buffer increases), the quantization step size increases and vice versa, thus reducing the buffer fullness. Adjust to whatever position.

상술한 바와같은 세가지의 작업, 즉, 인터/인트라 모드와, 필드/프레임 DCT 모드와 양자화 파라미터 결정은 일련의 산술적 과정이다. 이런 작업들이 일반적인 프로세서를 이용하여 구현될 수도 있지만, 전용회로를 개발하는 것이 속도 및 가격면에서 이득이 있다.The three tasks described above, namely inter / intra mode, field / frame DCT mode and quantization parameter determination, are a series of arithmetic processes. While these tasks can be implemented using a common processor, developing a dedicated circuit has advantages in speed and cost.

따라서, 본 발명의 주목적은 양자화 파라미터를 계산하고 인터/인트라 모드와 필드/프레임 DCT모드를 결정하는 제어기의 구조와 동작방법을 제공하는 것이다.Accordingly, an object of the present invention is to provide a structure and a method of operation of a controller for calculating quantization parameters and determining inter / intra mode and field / frame DCT mode.

상기 목적을 달성하기 위하여 본 발명은, 비디오 신호 부호화 시스템에 사용되는, 인터/인트라(Inter/lntra) 모드, 필드/프레임(Field/Frame) 모드와 양자화 계수를 결정하는 제어기로서, 상기 비디오신호는 다수의 GOP 를 포함하고, 각 GOP는 세가지 종류의 픽쳐로 나뉘어지고, 각 픽쳐는 다수개의 마크로블럭으로 나누어지고, 상기 부호화 시스템은 마크로블럭단위로 비디오신호를 부호화하되, 상기 제어기는: 현재 부호화되는 픽쳐의 종류와, 픽쳐의 시작을 나타내는 신호에 응답하여, 다수의 제어신호를 포함하는 제어시퀀스를 생성하는 스테이트머신(state machine): 제어시퀀스에 응답하여, 현재 부호화되는 마크로블럭의 일련번호와 기설정된 초기 상수값에 근거하여 기설정된 일련의 방정식을 계산함으로써, 픽쳐의 각 마크로블럭에 대해 일군의 제어값을 생성하는 산술유니트로서, 상기 일군의 제어값은 인터/인트라 모드, 필드,/프레임 모드, 양자화계수를 의미하는 산술유니트; 초기상수값을 저장하고, 초기상수값을 산술유니트에 공급하고 산술유니트에서 결정된 일군의 제어값을 저장하고, 비디오 부호화과정에 쓰이는 제어값을 제공하는 메모리 및 입출력 유니트를 포함하는 것을 특징으로 하는 제어기를 제공한다.In order to achieve the above object, the present invention provides a controller for determining an inter / intra mode, a field / frame mode and a quantization coefficient, which is used in a video signal encoding system. A plurality of GOPs, each GOP is divided into three kinds of pictures, each picture is divided into a plurality of macroblocks, and the encoding system encodes a video signal in units of macroblocks, the controller being: currently encoded State machine for generating a control sequence including a plurality of control signals in response to a type of a picture and a signal indicating the start of the picture: a serial number of a macroblock currently encoded in response to a control sequence, and By calculating a set of preset equations based on the set initial constant value, a group of control values are generated for each macroblock of the picture. An arithmetic unit, wherein the group of control values includes an arithmetic unit meaning inter / intra mode, field, / frame mode, and quantization coefficient; And a memory and an input / output unit for storing the initial constant value, supplying the initial constant value to the arithmetic unit, storing a group of control values determined in the arithmetic unit, and providing a control value used in the video encoding process. To provide.

이하 첨부된 도면들 참조하여 본 발명의 바람직한 실시예에 대하여 상세하게 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

제1도를 참조하면, 인터/인트라 모드와 필드/프레임모드와 양자화 파라미터를 결정하는 본 발명의 제어기(100)를 이용한 종래의 비디오 부호화 시스템의 블럭도가 도시되어 있다.Referring to FIG. 1, a block diagram of a conventional video encoding system using the controller 100 of the present invention for determining inter / intra mode, field / frame mode and quantization parameters is shown.

우선, 비디오 신호의 부호화될 현재 프레임은 DPCM 블럭(200)과 움직임 보상(MC) 블럭(500)으로 입력된다. MC 블록(500)으로부터의 예측된 프레임 데이타도 DPCM 블럭(200)으로 입력된다. 실제로, 비디오 데이타는 부호화 전과정에 걸쳐 마크로블럭 단위로 제공되고 처리된다. DPCM 블럭(200)에서는, 부호화모드, 즉 마크로블럭의 인터/인트라 모드에 따라 예측된 프레임 데이타와 현재 프레임 데이타의 차분 또는 현재 프레임 데이타 자체가 DCT 블럭(250)으로 제공된다. 차분 또는 현재 프레임 데이타는 DCT 등을 이용하여 DCT블럭(250)에서 변환되고 변환계수는 양자화(Q) 블럭(300)으로 입력되어 양자화된다. 그후에 양자화된 계수는 두경로를 따라 이동한다. 즉, 하나는 엔트로피 부호화기(350)인데 여기에서는 양자화된 변환 계수가 예를 들어 런길이 부호화와 가변길이 부호화를 이용하여 부호화된다. 다른 하나는 역양자화(IQ) 블럭(400)으로 연결되어 양자화된 변환계수가 복원된 프레임 데이타로 변환된다. 복원된 프레임 데이타는 MC 블럭(500)으로 입력되어 공지의 움직임예측과 보상기법을 이용하여 예측된 프레임 데이타를 얻는다.First, the current frame to be encoded of the video signal is input to the DPCM block 200 and the motion compensation (MC) block 500. Predicted frame data from the MC block 500 is also input to the DPCM block 200. In practice, video data is provided and processed in units of macroblocks throughout the entire encoding process. In the DPCM block 200, the difference between the frame data predicted according to the encoding mode, that is, the inter / intra mode of the macroblock and the current frame data, or the current frame data itself is provided to the DCT block 250. The difference or current frame data is transformed in the DCT block 250 using DCT and the like, and the transform coefficient is input to the quantization (Q) block 300 and quantized. The quantized coefficient then moves along two paths. That is, one is entropy encoder 350, in which quantized transform coefficients are encoded using, for example, run length coding and variable length coding. The other is connected to an inverse quantization (IQ) block 400 to convert the quantized transform coefficients into recovered frame data. The reconstructed frame data is input to the MC block 500 to obtain predicted frame data using known motion prediction and compensation techniques.

그런 다음, 엔트로피 부호화기(350)으로부터의 부호화된 데이타는 버퍼(600)에 입력되어 해당 복호화 시스템에 전송된다.Then, the encoded data from the entropy encoder 350 is input to the buffer 600 and transmitted to the corresponding decoding system.

본 발명의 제어기(100)는 인터/인트라 모드, 필드/프레임 DCT모드, 양자화 파라미터를 마크로블럭 단위로 결정하고 전자 둘(모드 결정 결과)을 DPCM 블럭(200)에 후자(양자화 파라미터)를 Q 블럭(300)에 제공하는 역할을 한다. 인터/인트라 모드 신호에 응답하여, DPCM블럭(200)은 예측된 프레임 데이타와 현재 프레임 데이타의 차분이나(인터 모드) 현재 프레임 데이타(인트라 모드)를 DCT블럭(250)에 제공한다. 차분이나 화소값은 8×8 블럭단위로 제공되고 여기에 8×8 DCT 를 수행한다. DPCM 블록(200)으로 부터 DCT 블럭(250)에 제공되는 블럭의 포맷은 필드/프레임 DCT 모드 신호에 따라 결정된다. 프레임 DCT 모드의 경우는 DPCM 블럭(200)은 프레임 정렬된 블럭을 제공하고 필드 DCT 모드의 경우에는 필드 정렬된 블럭을 제공하여서 DCT블럭(250)이 모드에 따라 필드 또는 프레임 단위 DCT를 수행하게 된다. Q 블럭(300)에 제공된 양자화 파라미터는 양자화의 정도를 조절하는데에 쓰이고 따라서 버퍼(600)의 충만도를 조절하게 된다.The controller 100 of the present invention determines the inter / intra mode, the field / frame DCT mode, the quantization parameter in units of macroblocks, and the former two (mode determination results) are assigned to the DPCM block 200 by the latter (quantization parameter). Serves to provide 300. In response to the inter / intra mode signal, the DPCM block 200 provides the DCT block 250 with the difference between the predicted frame data and the current frame data (inter mode) or the current frame data (intra mode). The difference or pixel value is provided in 8x8 block units and performs 8x8 DCT. The format of the block provided from the DPCM block 200 to the DCT block 250 is determined according to the field / frame DCT mode signal. In the frame DCT mode, the DPCM block 200 provides a frame aligned block, and in the field DCT mode, the field aligned block is provided so that the DCT block 250 performs field or frame unit DCT according to the mode. . The quantization parameter provided to the Q block 300 is used to adjust the degree of quantization and thus to adjust the fullness of the buffer 600.

제2도를 참조하면, 제1도에 도시된 제어기(100)의 상세한 블럭도가 도시되어 있다.2, a detailed block diagram of the controller 100 shown in FIG. 1 is shown.

본 발명의 제어기(100)에서는, 세가지 종류의 결정에 수반되는 모든 산술 계산은 스테이트 머신(120)과 메모리 및 입출력 유니트(140)의 도움을 받아 산술 유니트(130)가 수행한다.In the controller 100 of the present invention, all arithmetic calculations involving three kinds of determinations are performed by the arithmetic unit 130 with the help of the state machine 120 and the memory and input / output unit 140.

다음에, 이러한 작업들을 수행하기 위한 입력신호들을 설명한다. 입력신호들은 PIC_SYNC, MBS, CLK, RESET, PIC_TYPE, BUF_FULL, 제1도의 DPCM 블록으로부터의 차분데이타 또는 현재 프레임 데이타 등이다. 입력신호중 제어 유니트(110)로 입력되는 PIC_SYNC와 MBS 는 각각, 각 프레임과 마크로블럭의 시작을 나타낸다. RESET 과 CLK 은 시스템 제어신호이다. 스테이트 머신(120)으로 입력되는 PIC_TYPE 은 세가지의 픽쳐종류중 (I,P,B) 현재 처리되는 프레임이 어디에 속하는지 하는 것이다. PIC_SYNC, MBS, PIC_TYPE 은 입력 비디오 신호열로부터 도출해 낼 수 있다. 버퍼의 상태를 나타내는 BUF_FULL 은 산술 유니트(130)에 입력된다.Next, input signals for performing these operations will be described. The input signals are PIC_SYNC, MBS, CLK, RESET, PIC_TYPE, BUF_FULL, differential data from the DPCM block of FIG. 1, or current frame data. PIC_SYNC and MBS input to the control unit 110 among the input signals indicate the start of each frame and macroblock, respectively. RESET and CLK are system control signals. The PIC_TYPE input to the state machine 120 refers to a frame (I, P, B) currently processed among three picture types. PIC_SYNC, MBS, and PIC_TYPE can be derived from the input video signal sequence. BUF_FULL indicating the state of the buffer is input to the arithmetic unit 130.

세가지의 결정을 하는 데에는 다양한 초기상수값들이 필요하다. 그런 값들은 시스템 디자인에 따라 기설정되고 본 발명의 제어기(100)에 입력된다. 좀더 상세하게는 제어기(100)가 계산을 수행하기 전에 L90 을 거쳐서 메모리 및 입출력 유니트(140)에 입력된다. 상기 식중에서 초기상수값들은 부호화과정의 초기에서 Xi,Xp,Xb,R,Nb,Np의 값과 Kp,Kb의 값 등이다.Various initial constant values are needed to make three decisions. Such values are preset according to the system design and entered into the controller 100 of the present invention. More specifically, the controller 100 is input to the memory and the input / output unit 140 via L90 before performing the calculation. The initial constants in the above equations are X i , X p , X b , R, N b , N p and K p , K b at the beginning of the encoding process.

입력신호에 응답하여, 제어 유니트(110)는 제어신호를 생성하여 이를 스테이트 머신(120)에 제공한다. 우선 제어 유니트(110)는 제어기에서 픽쳐단위 작업이 수행되는지, 마크로블럭 단위 작업이 수행되는지를 나타내는 PRCS_PIC_MB 를 제공하는데, 이때 픽쳐 단위 작업, 마크로단위 작업이란 각각 상기의 식들에서 각 픽쳐당, 각 마크로블럭 당 수행되는 것을 말한다. 픽쳐 단위 동작은 식 3A 내지 3C, 4A 내지 4C, 5 등이고 마크로블럭 단위 동작은 식 1A, 1B, 2A. 2B, 7A 내지 7C, 8 내지 13 등이다 그 다음에는, 제어 유니트(110)는 현재 처리되고 있는 마크로블럭을 나타내는 MB_NUM 을 생성하여 산술 유니트(130)에 제공한다.In response to the input signal, the control unit 110 generates a control signal and provides it to the state machine 120. First, the control unit 110 provides a PRCS_PIC_MB indicating whether a picture unit operation or a macroblock unit operation is performed in the controller. In this case, the picture unit operation and the macro unit operation are each macro in each of the above equations. What is done per block. Picture unit operations are equations 3A to 3C, 4A to 4C, 5, and the like, and macroblock unit operations are equations 1A, 1B, and 2A. 2B, 7A to 7C, 8 to 13, and so on. Next, the control unit 110 generates MB_NUM representing the macroblock currently being processed and provides it to the arithmetic unit 130.

입력신호 즉, PIC_SYNC, PRCS_PIC_MB 에 응답하여 스테이트 머신(120)은 일련의 제어 시퀀스를 생성해서 산술 유니트(130)와 메모리 및 입출력 유니트(140)에 제공하여, 산술 유니트(130)가 상기 식중 하나를 수행하도록 한다. 스테이트 머신(120)은 산술 유니트(130)가 어떤 식을 수행하는가에 따라 기설정되어 있는 제어 시퀀스를 생성하도록 프로그램되어 있다. 메모리 및 입출력 유니트(140)는 초기상수값을 호스트 프로세서(도시되지 않음)로 부터 L3O상으로 받아서 저장하고 산술 유니트(130)로 부터의 계산 결과를 L50 상으로 받아서 저장한다. 스테이트 머신(120)으로 부터 의 L80상의 제어 시퀀스에 응답하여 메모리 및 입출력 유니트(140)는 초기상수값과 계산결과에 포함된 임시값들을 L60 상에 제공하도록 제어된다. 이때 임시값들은 상기 식의 계산결과 생성되고 다른 식의 계산에 이용되는 값 또는 이전 마크로블럭(또는 픽쳐)에 대한 값을 이용하여 각 마크로블럭(또는 픽쳐)당 갱신되는 값이다. 상기 식에서 부호화가 진행되는 동안 Ti,Tp,Tb,R,Di j,Dp j,Db j,의 값등은 임시값들의 예들이다. 메모리 및 입출력 유니트는 계산의 최종결과 즉 인터/인트라, 필드/프레임 DCT 모드, 양자화 파라미터를 제1도의 DPCM 블럭(200)과 Q 블럭(300)에 제공하도록 제어된다. 산술 유니트(130)와 메모리 및 입출력 유니트(140)의 상세한 동작이 제3, 4도를 참조하여 기술될 것이다.In response to the input signals, i.e., PIC_SYNC and PRCS_PIC_MB, the state machine 120 generates a series of control sequences and provides them to the arithmetic unit 130 and the memory and input / output unit 140 so that the arithmetic unit 130 provides one of the above equations. Do it. The state machine 120 is programmed to generate a control sequence that is preset according to what equation the arithmetic unit 130 performs. The memory and input / output unit 140 receives and stores an initial constant value from the host processor (not shown) on the L3O phase and receives and stores the calculation result from the arithmetic unit 130 on the L50 phase. In response to the control sequence on L80 from the state machine 120, the memory and input / output unit 140 is controlled to provide the initial constant value and temporary values included in the calculation result on the L60. In this case, the temporary values are values that are generated as a result of the calculation of the equation and are updated for each macroblock (or picture) using a value used for calculation of another equation or a value for a previous macroblock (or picture). In the above equation, values of T i , T p , T b , R, D i j , D p j , D b j , and the like are examples of temporary values. The memory and input / output unit are controlled to provide the final result of the calculation, namely the inter / intra, field / frame DCT mode, quantization parameters, to DPCM block 200 and Q block 300 of FIG. Detailed operations of the arithmetic unit 130 and the memory and input / output unit 140 will be described with reference to FIGS. 3 and 4.

제3도를 참조하면 제2도의 메모리 및 입출력 유니트(140)의 블럭도가 도시되어 있다.Referring to FIG. 3, there is shown a block diagram of the memory and input / output unit 140 of FIG.

H0ST_DATA는 산술유니트(130)에서 식을 수행하는데 사용되는 초기상수값들을 가리킨다. BIT_RATE, PICTURE_RATE, 식 4A 내지 4C의 Kp,Kb부호화과정의 시작부에서 Xi,Xp,Xb,R,Np,Nb,Di o,Dp o,Db o, 등이 HOST_DATA 로 제공되는 초기상수값의 예이다 이들은 시스템 디자인에 따라 기설정되어 있는 다양한 초기상수값을 저장하고 제공하는 역할을 하는 호스트 프로세서로 부터 제공된다. 영상 시퀀스를 부호화하는 초기에는 모든 필요한 상수는 L90 상으로 MUX(166)를 거쳐 RAM(160)에 저장된다 산술유니트(130)에서 상기 식들을 수행하는데 그값들이 필요한 경우 RAM(160)으로 부터 L60 상으로 산술 유니트 (130)에 제공된다.H0ST_DATA indicates initial constant values used to perform the expression in the arithmetic unit 130. BIT_RATE, PICTURE_RATE, X i , X p , X b , R, N p , N b , D i o , D p o , D b o , etc. at the beginning of the K p , K b encoding process of equations 4A to 4C This is an example of the initial constants provided by HOST_DATA. These are provided by the host processor that stores and provides various initial constants that are preset according to the system design. At the beginning of encoding an image sequence, all necessary constants are stored in RAM 160 via MUX 166 on L90. If arithmetic unit 130 performs these equations, the values are needed from RAM 160 to L60. To the arithmetic unit 130.

산술 유니트(130)에서 얻은 게산결과도 역시 L50 상에 MUX(166)를 통해 입력되어 RAM(160)에 저장된다. 이런 계산결과의 예는 R,Np,Nb,Ti,Tp,Tb등이다. R은 현재 GOP 에 할당된 비트 중 남아 있는 양이고(식 5), RAM(160)에 저장되고 한 프레임이 부호화된 후 산술 유니트(130)에서 갱신된다. Np와 Nb는 현재 GOP 에 남아 있는 P 와 B 픽쳐 각각의 수이고, 식 4a내지 4c 에 따라 목표 비트 Ti,Tp,Tb를 계산하는데 이용된다.The calculation result obtained in the arithmetic unit 130 is also inputted through the MUX 166 on the L50 and stored in the RAM 160. Examples of such calculations are R, N p , N b , T i , T p , T b . R is the remaining amount of bits allocated to the current GOP (Equation 5), stored in RAM 160 and updated in arithmetic unit 130 after one frame is encoded. N p and N b are the numbers of each of the P and B pictures remaining in the current GOP, and are used to calculate the target bits T i , T p , and T b according to equations 4a to 4c.

ST_WR_ADRS 와 HOST_WR_ADRS 는 각각 산술유니트(130)로 부터 입력되는 데이타와 HOST_DATA 를 RAM(160)에 저장하는데 사용되는 어드레스 신호이다. ST_WR_EN와 HOST_WR_EN 은 RAM(160)에 데이타를 저장할 때 액티브 상태가 되는 신호이다.ST_WR_ADRS and HOST_WR_ADRS are data input from arithmetic unit 130 and address signals used to store HOST_DATA in RAM 160, respectively. ST_WR_EN and HOST_WR_EN are signals that become active when data is stored in the RAM 160.

초기상수값이 RAM(160)에 입력되는 동안, MUX(162,164,166)는 각각 HOST_WR_ADRS, HOST_WR_EN, HOST_DATA 를 선택하는데, HOST_WR_ADRS 는 초기값이 저장될 RAM(160)의 어드레스를 나타내고 HOST_WR_EN 은 액티브상태가 된다. 마찬가지로 산술 유니트(130)로 부터의 계산결과가 RAM(160)에 입력되는 동안, MUX(162,164,166)는 각각 ST_WR_ADRS, ST_WR_EN, L50 상의 데이타를 선택하는데, ST_WR_ADRS 는 계산 결과값이 저장될 RAM(160)의 어드레스를 나타내고 ST_WR_EN은 액티브상태가 된다.While the initial constant is input to the RAM 160, the MUXs 162, 164, and 166 select HOST_WR_ADRS, HOST_WR_EN, and HOST_DATA, respectively, where HOST_WR_ADRS represents the address of the RAM 160 where the initial value is to be stored, and HOST_WR_EN is active. Similarly, while the calculation result from the arithmetic unit 130 is input to the RAM 160, the MUXs 162, 164, and 166 select data on ST_WR_ADRS, ST_WR_EN, and L50, respectively, where ST_WR_ADRS stores the RAM 160 to store the calculation result. Indicates an address, and ST_WR_EN becomes active.

RD_ADRS 는 RAM(160)에 저장된 데이타를 읽어서 산술연산(130)또는 제1도의 DPCM, Q 블럭에 제공하는 경우에 사용되는 어드레스신호이다. 상술하면, 초기상수값이나 산술유니트(130)에서 결정된 임시값은 RAM(160)으로 부터 읽어서 L60 상으로 산술 유니트(130)에 입력된다. 한편, 세가지 종류의 결정의 최종결과 즉 인터/인트라, 필드/프레임 DCT모드와 양자화 파라미터 결정 결과 Mquant는 제1도의 DPCM, Q 블럭에 제공된다.RD_ADRS is an address signal used to read data stored in RAM 160 and provide it to arithmetic operation 130 or DPCM and Q blocks of FIG. In detail, the initial constant value or the temporary value determined by the arithmetic unit 130 is read from the RAM 160 and input to the arithmetic unit 130 on the L60. On the other hand, the final result of the three kinds of determination, namely inter / intra, field / frame DCT mode and quantization parameter determination result Mquant is provided to DPCM and Q blocks of FIG.

제4도를 참조하면, 제2도의 산술 유니트의 블럭도가 도시되어 있다.Referring to FIG. 4, a block diagram of the arithmetic unit of FIG. 2 is shown.

MB_NUM, BUF_FULL 은 각각 제어 유니트(110)와 버퍼(600)으로 부터 MUX(132a)로 입력된다. DPCM 블록(200)으로 부터의 차분 데이타나 현재 프레임 데이타도 MUX(132a)로 입력된다. 전술한 바와 같이, 초기상수값과 임시값은 메모리 및 입출력 유니트(140)로 부터(상세하게는 RAM(160)) L60 상에 제공된다.MB_NUM and BUF_FULL are input to the MUX 132a from the control unit 110 and the buffer 600, respectively. Difference data and current frame data from the DPCM block 200 are also input to the MUX 132a. As described above, the initial constant value and the temporary value are provided on the L60 from the memory and input / output unit 140 (details RAM 160).

FR_EXT_SEL, REG_EN_X, REG_EN_Y, CIN, OPERAT10N_SEL, FEED_BACK_SEL, DIV_START, QUOT_EN, TO_RAM_SEL, WINDOW_PNT, FR_RAM_PNT 등은 제2도의 스테이트 머신의 제어 시퀀스에 포함된 제어신호들이다. 제4도에 도시된 산술 유니트의 구성요소들은 이 제어시퀀스에 따라 산술작업을 수행하도록 제어된다. 제어신호의 기능을 설명한다.FR_EXT_SEL, REG_EN_X, REG_EN_Y, CIN, OPERAT10N_SEL, FEED_BACK_SEL, DIV_START, QUOT_EN, TO_RAM_SEL, WINDOW_PNT, FR_RAM_PNT and the like are control signals included in the control sequence of the state machine of FIG. The components of the arithmetic unit shown in FIG. 4 are controlled to perform arithmetic operations in accordance with this control sequence. The function of the control signal will be described.

(1) FR_RAM_PNT (또는 WIN_PNT)(1) FR_RAM_PNT (or WIN_PNT)

바렐쉬프터(131 또는 136)로 데이타가 입력될 때 유효하다. FR_RAM_PNT (또는 WIN_PNT)의 값은 바렐쉬프터(131 또는 136)에서 입력 데이타가 몇번 쉬프트될 지를 나타낸다. 예를 들어 FR_RAM__PNT 가 2이면 바렐 쉬프터(131)의 출력은 입력의 4배이다.This is valid when data is input to the barrel shifter 131 or 136. The value of FR_RAM_PNT (or WIN_PNT) indicates how many times the input data is shifted in the barrel shifter 131 or 136. For example, when FR_RAM__PNT is 2, the output of the barrel shifter 131 is four times the input.

(2) FR_EXT_SEL (또는 FB_SEL)(2) FR_EXT_SEL (or FB_SEL)

MUX(1323 또는132b)로의 입력중 어느 것이 선택되어 레지스터(X)(133a)또는 레지스터(Y)(133b)에 제공될 지 나타낸다.Which of the inputs to the MUX 1323 or 132b is selected to be provided to the register (X) 133a or the register (Y) 133b.

(3) REG_EN_X (또는 REG_EN_Y)(3) REG_EN_X (or REG_EN_Y)

데이타가 레지스터(X)(133a) 또는 레지스터(Y)(133b)에 저장될 때 유효한 신호이다.This is a valid signal when data is stored in register (X) 133a or register (Y) 133b.

(4) CIN, DIV_START, QUOT_EN(4) CIN, DIV_START, QUOT_EN

계산 블럭(134)을 제어하기 위한 신호이다.A signal for controlling the calculation block 134.

CIN 은 ADD(가산기)(134a)가 레지스터(X)(133a)와 레지스터(Y)(133b)의 계산결과를 제공할지 여기에 1 을 더 더할지를 나타낸다. DIV_START 는 제산의 시작을 DIV(제산기)(134d)에 알린다.CIN indicates whether ADD (adder) 134a provides the calculation result of register (X) 133a and register (Y) 133b or adds one more to it. DIV_START informs DIV (divider) 134d of the start of division.

또한, QUOT_EN 는 제산의 결과 측 몫이 언제 DIV(134d)로 부터 출력되는지를 나타낸다. 이신호는 제산의 시작으로 부터 DIV(134d)의 지연만큼 후에 인에이블되어야 한다.Also, QUOT_EN indicates when the result quotient of division is output from the DIV 134d. This signal should be enabled by a delay of DIV 134d from the start of division.

계산블럭에 포함된 다른 블럭, 즉 ADD(134a), SUB(감산기)(134b), MUL(승산기)(134c)에 대해서는 시작신호가 필요하지 않다. 레지스터(X) 그리고/또는 레지스터(Y)로부터 데이타를 입력받는 순간 ADD, SUB, MUL 은 시작신호를 기다리지 않고 해당동작을 수행한다. ADD, SUB, MUL 에 대해서는 QUOT_EN 에 해당하는 신호도 사용되지 않는다. 계산을 마치면, ADD(134a), SUB(134b), MUL(134c)는 그 결과를 곧 출력한다. ADD 와 SUB 은 지연없이 결과를 출력할 수 있고 MUL 과 DIV는 기설정된 지연 후에 결과를 출력할 수 있다.The start signal is not necessary for the other blocks included in the calculation block, that is, ADD 134a, SUB (subtractor) 134b, and MUL (multiplier) 134c. The moment ADD, SUB, or MUL receive data from register (X) and / or register (Y), they do not wait for the start signal. The signal corresponding to QUOT_EN is not used for ADD, SUB, and MUL. Upon completion of the calculation, the ADD 134a, SUB 134b, and MUL 134c immediately output the result. ADD and SUB can output results without delay and MUL and DIV can output results after a preset delay.

(5) OP_SEL(5) OP_SEL

MUX(135)에서 계산블럭(134)에서 얻은 연산결과중 하나를 선택하도록 한다. 계산블럭(134)는 가,감,승,제산을 각각 해당 블럭 즉 ADD(134a), SUB(134b), MUL(134c), DIV(1346)를 이용하여 수행한다. 이 네개의 연산 이외에도 계산블럭(134)은 MUX(135)와 함께 두개의 데이타 즉 레지스터(X), 레지스터(Y)로부터의 A, B 를 비교하는 역할을 한다. 비교는 한 데이타(B)를 다른 데이터(A)로부터 빼서 감산결과의 부호에 따라 A 또는 B를 선택하는 것이다. 제4도에 도시된 바와 같이 SUB(134b)의 출력의 MSB 또는 부호 비트가 OP_SEL 의 한 비트를 형성하고 있어서 선택결과에 영향을 주게 된다. 예를 들어 부호가 '+'인 경우 MUX(135)의 출력으로 A가 선택되고 반대의 경우 B가 선택되는 것이다.The MUX 135 selects one of the calculation results obtained from the calculation block 134. The calculation block 134 performs addition, deceleration, power, and division using the corresponding blocks, that is, ADD 134a, SUB 134b, MUL 134c, and DIV 1346. In addition to these four operations, the calculation block 134, together with the MUX 135, serves to compare two data, namely, A and B from the register (X) and the register (Y). The comparison is to subtract one data B from another data A and select A or B according to the sign of the subtraction result. As shown in FIG. 4, the MSB or sign bit of the output of the SUB 134b forms one bit of OP_SEL, which affects the selection result. For example, when the sign is '+', A is selected as the output of the MUX 135 and vice versa.

(6) TO_RAM_SEL(6) TO_RAM_SEL

산술 유니트(130)로 부터의 데이타가 RAM(160)에 저장될 때 유효하다. 또한 MUX(137)의 입력, 즉 MUX(132a)로 부터의 입력과 바렐 쉬프터(136)로 부터의 입력 중 어느것이 RAM(160)에 제공되는가를 나타낸다.This is valid when data from the arithmetic unit 130 is stored in the RAM 160. It also shows which of the inputs of the MUX 137, i.e., the input from the MUX 132a and the input from the barrel shifter 136, is provided to the RAM 160.

다음에, 다음의 식과같이 Ti를 구하는 과정을 예로 들어서 산술 유니트(130)의 세부블럭들을 설명한다.Next, detailed blocks of the arithmetic unit 130 will be described by taking a process of obtaining T i as in the following equation.

상기 수식에서를 구하는 과정을 설명하겠다. 이 과정은 다음의 10 단계로 구성되어 있다. 각 단계에서는 그단계에 할당된 작업을 하기 위한 스테이트 머신(120)에서 제공될 제어신호들이 그 기능과 함께 명시되어 있다. 각 단계에 명시되지 않은 남아있는 제어신호들은 Don't care상태로서 이는 해당작업을 수행하는데 이 신호들이 상관이 없다는 것을 의미한다.In the above formula I will explain the process of obtaining. This process consists of ten steps: At each stage, the control signals to be provided by the state machine 120 to perform the tasks assigned to that stage are specified along with their function. The remaining control signals that are not specified in each step are Don't Care, which means that these signals are irrelevant to perform the task.

[1] RAM(160)으로 부터 레지스터(X)(133a)로 Xi를 읽어오기 RD_ADRS: RAM(160)에서 Xi의 어드레스[1] Read X i from RAM 160 into register (X) 133a RD_ADRS: Address of X i in RAM 160

FR_RAM_PNT:'0'(RAM(160)으로 부터의 데이터에 2n이 곱해지지 않는다는 의미임)FR_RAM_PNT: '0' (meaning that data from RAM 160 is not multiplied by 2 n )

FR_EXT_SEL: 베럴쉬프터(131)로 부터의 출력 선택FR_EXT_SEL: Select output from barrel shifter 131

REG_EN_X: 레지스터(X)을 1 클럭동안 인에이블시켜서 다른 상관없는 데이타가 레지스터(X)에 Xi자리에 중복하여 쓰이는 것을 막는다.REG_EN_X: Enables register (X) for one clock to prevent other extraneous data from being written to register (X) at the position X i .

[2] RAM(160)으로 부터 레지스터(Y)(133b)로 Kp를 읽어오기[2] Read K p from RAM 160 into register (Y) 133b

RD_ADRS: RAM(160)에서 Kp의 어드레스RD_ADRS: Address of K p in RAM 160

FR_RAM_PNT:'O'FR_RAM_PNT: 'O'

FB_SEL: 베럴쉬프터(131)로 부터의 출력 선택FB_SEL: Select output from barrel shifter 131

REG_EN_Y: 레지스터(Y)을 1 클럭동안 인에이블시켜서 다른 상관없는 데이타가 레지스터(Y)에 Kp자리에 중복하여 쓰이는 것을 막는다.REG_EN_Y: Enables register (Y) for one clock to prevent other extraneous data from being written to register (Y) at K p 's .

[3] Np를 읽고 Xi·Kp를 시작한다.[3] Read N p and start X i · K p .

두개의 작업이 동시에 이루어진다. Xi·Kp를 시작하기 위해서는 제어신호는 필요하지 않다.Two tasks are done at the same time. In order to start the X i K p · control signal is not required.

다음은 Np를 읽기 위한 것이다.The following is to read N p .

RD_ADRS: RAM(160)에서 Np의 어드레스RD_ADRS: Address of N p in RAM 160

FR_RAM_PNT:'0'FR_RAM_PNT: '0'

FR_EXT_SEL: 베럴쉬프터(131)로 부터의 출력 선택FR_EXT_SEL: Select output from barrel shifter 131

REG_EN_X: 레지스터(X)을 1 클럭 동안 인에이블시킨다.REG_EN_X: Enables register (X) for one clock.

[4] RAM(160)으로 부터 Xp를 읽어오기[4] Read X p from RAM (160)

RD_ADRS: RAM(160)에서 Xp의 어드레스RD_ADRS: Address of X p in RAM 160

FR_RAM_PNT:'0'FR_RAM_PNT: '0'

FB_SEL: 베럴쉬프터(131)로 부터의 출력 선택FB_SEL: Select output from barrel shifter 131

REG_EN_Y: 레지스터(Y)을 1 클럭동안 인에이블시킨다.REG_EN_Y: Enables register (Y) for one clock.

[5] Np·Xp시작[5] Start of N pX P

제어신호 필요치 않다.No control signal is needed.

[6] Xi·Kp종료하고 결과를 RAM(160)에 쓴다.[6] X i · K p Exit and write the result to RAM 160.

OP_SEL: MUL(134c)의 출력을 선택한다.OP_SEL: Selects the output of the MUL 134c.

WIN_PNT:'0'(MUX(135)로 부터의 데이타에 2n이 곱해 지지 않는다는 의미임)WIN_PNT: '0' (meaning that 2 n is not multiplied by the data from MUX (135))

T0_RAM_SEL. 베럴쉬프터(136)의 출력을 선택하고 이를 RAM(160)에 제공한다.T0_RAM_SEL. Select the output of barrel shifter 136 and provide it to RAM 160.

[7] RAM(160)으로 부터 Xi·Kp를 읽어오기[7] coming from the RAM (160) reads the X i K p ·

RD_ADRS: RAM(160)에서 Xi·Kp의 어드레스RD_ADRS: address of X i · K p from the RAM (160)

FR_RAM_PNT:'0'FR_RAM_PNT: '0'

FR_EXT_SEL: 베럴쉬프터(131)로 부터의 출력 선택FR_EXT_SEL: Select output from barrel shifter 131

REG_EN_X: 레지스터(X)을 1 클럭동안 인에이블시킨다.REG_EN_X: Enables register (X) for one clock.

[8] Np·Xp종료하고 결과를 레지스터(Y)에 피드백[8] N p · X p Exit and feed back the result to register (Y)

OP_SEL: MUL(134c)의 출력을 선택한다.OP_SEL: Selects the output of the MUL 134c.

WIN_PNT:'0'WIN_PNT: '0'

FB_SEL: 베럴쉬프터(13d)로 부터의 출력 선택FB_SEL: Select the output from the barrel shifter (13d)

REG_EN_X: 레지스터(X)을 1 클럭동안 디스에이블시킨다.REG_EN_X: Disables register (X) for one clock.

REG_EN_Y: 레지스터(Y)(133b)를 1 클럭동안 인에이블시킨다.REG_EN_Y: Enables register (Y) 133b for one clock.

[9]시작[9] start

DIV_START: DIV(134d)에 제산의 시작알림DIV_START: Notifies start of division at DIV (134d)

[10]를 종료하고 결과를 RAM(160)에 쓰기[10] Exit and write the result to RAM 160

QUOT_EN: 제산결과를 MUX(13E)에 결합QUOT_EN: Combine division result with MUX 13E

OP_SEL: DIV(134d)의 출력을 선택한다.OP_SEL: Selects the output of the DIV 134d.

WIN_PNT:'0'WIN_PNT: '0'

TO_RAM_SEL: 베럴쉬프터(136)의 출력을 선택TO_RAM_SEL: selects the output of the barrel shifter 136

ST_WR_ADRS:를 쓸 어드레스ST_WR_ADRS: Address to write

ST_WR_EN: RAM(160)의 라이팅 동작을 인에이블시킴ST_WR_EN: enable the writing operation of RAM 160

상기한 바와같이 [1] 에서 [10] 단계에서 설명된 바와 같은 방법으로를 계산하고 RAM(160)에 저장된다. 이 결과는 FB_SEL과 REG_EN_Y 의 도움으로 레지스터(Y)(133b)에도 입력된다. 그리고 나서 다음의 [11]에서 [17]단계가 계속된다.As described above, in the same manner as described in the steps [1] to [10] Is calculated and stored in RAM 160. This result is also input to register (Y) 133b with the help of FB_SEL and REG_EN_Y. Then, steps [17] to [17] are continued.

[11]레지스터 (X)(133a)로 읽어오기[11] Read to register (X) (133a)

[1]단계와 비슷하다. 이 데이타는 [10]단계에서 RAM(160)에 저장된 것이다.Similar to step [1]. This data is stored in RAM 160 in step [10].

[12]계산하여 결과를 레지스터(Y)에 저장하기[12] Calculate and store the result in register (Y)

CIN: 1 이 추가로 더해지는 것을 의미CIN: Means an additional one

OP_SEL: ADD(134a)의 출력을 선택한다.OP_SEL: Selects the output of ADD 134a.

WIN_PNT:'0'WIN_PNT: '0'

FB_SEL: 베럴쉬프터(136)의 출력을 선택FB_SEL: selects the output of the barrel shifter 136

REG_EN_Y: 1 클럭 동안 인에이블REG_EN_Y: Enable for 1 clock

[13] RAM(160)으로 부터 레지스터(X)(133a)로 R 을 읽어오기[13] Reading R from RAM 160 into Register (X) 133a

[1]단계와 같다.Same as step [1].

[14]계산시작[14] Calculation start

DIV_START: DIV(134d)에 제산의 시작알림DIV_START: Notifies start of division at DIV (134d)

[15]계산종료하고 결과를 레지스터(Y)에 입력[15] Compute and input the result to register (Y)

QUOT_EN: 제산결과를 MUX(135)에 결합QUOT_EN: Combine division results with MUX 135

OP_SEL: DIV(134d)의 출력을 선택한다.OP_SEL: Selects the output of the DIV 134d.

WIN_PNT:'0'WIN_PNT: '0'

FB_SEL: 베럴쉬프터(136)의 출력을 선택FB_SEL: selects the output of the barrel shifter 136

REG_EN_Y: 1 클럭동안 인에이블REG_EN_Y: Enable for 1 clock

[16] RAM(160)으로부터 레지스터(X)(133a)로를 읽어오기[16] RAM 160 to Register (X) 133a Read

[1]단계와 같다.Same as step [1].

[17]를 비교하고 큰것을 선택하여 RAM(160)에 저장한다.[17] Compare and select a large one to store in the RAM (160).

OP_SEL: 레지스터(X), 레지스터(Y)의 출력중 하나를 SUB(134b)의 출력의 MSB에 따라 선택한다.OP_SEL: Selects one of the outputs of register (X) and register (Y) according to the MSB of the output of SUB 134b.

WIN_PNT:'0'WIN_PNT: '0'

T0_RAM_SEL: 베럴쉬프터(136)의 출력을 선택T0_RAM_SEL: selects the output of the barrel shifter 136

ST_WR_ADRS: Ti를 쓸 어드레스ST_WR_ADRS: address to write T i

ST_WR_EN: RAM(160)의 라이팅 동작을 인에이블시킴ST_WR_EN: enable the writing operation of RAM 160

상술한 바와같은 과정을 하나씩 수행함으로써, 식 4A 의 Ti가 계산되는데 이는 가산, 승산, 제산, 비교연산과 RAM(160)으로 부터 데이타 가져오기, RAM(160)에 데이타 저장하기 등의 동작을 포함한다. 다른 식들도 유사한 방법으로 계산될 수 있다. 상기 식들의 결과를 얻음으로써 본 발명의 제어기(100)가 수행하는 세가지 작업이 수행된다.By performing the above processes one by one, T i of Equation 4A is calculated, which adds, multiplies, divides, compares and retrieves data from RAM 160 and stores data in RAM 160. Include. Other equations can be calculated in a similar way. By obtaining the result of the above equations, three tasks performed by the controller 100 of the present invention are performed.

Claims (10)

비디오 신호 부호화 시스템에 사용되는, 인터/인트라(Inter/Intra) 모드, 필드/프레인(Field/Frame)모드와 양자화 계수를 결정하는 제어기로서, 상기 비디오 신호는 다수의 GOP를 포함하고, 각 GOP 는 세가지 종류의 픽쳐로 나뉘어지고, 각 픽쳐는 다수개의 마스크블럭으로 나누어지고, 상기 부호화 시스템은 마크로블럭 단위로 비디오 신호를 부호화하되, 상기 제어기는: 현재 부호화되는 픽쳐의 종류와, 픽쳐의 시작을 나타내는 신호에 응답하여, 다수의 제어신호를 포함하는 제어시퀀스를 생성하는 스테이트 머신(state machine): 제어시퀀스에 응답하여, 현재 부호화되는 마크로블럭의 일련번호와 기설정된 초기상수값에 근거하여 기설정된 일련의 방정식을 계산함으로써, 픽쳐의 각 마크로블럭에 대해 일군의 제어값을 생성하는 산술유니트로서, 상기 일군의 제어값은 인터/인트라 모드, 필드,/프레임 모드, 양자화계수를 의미하는 산술유니트; 및 초기상수값을 저장하고, 초기상수값을 상기 산술유니트에 공급하고 상기 산술유니트에서 결정된 일군의 제어값을 저장하고, 비디오 부호화과정에 쓰이는 제어값을 제공하는 메모리 및 입출력 유니트를 포함하는 것을 특징으로 하는 제어기.A controller for determining an inter / intra mode, a field / frame mode and a quantization coefficient used in a video signal encoding system, wherein the video signal includes a plurality of GOPs, each GOP The picture is divided into three types of pictures, each picture is divided into a plurality of mask blocks, and the encoding system encodes a video signal in units of macroblocks, wherein the controller is configured to indicate the type of picture that is currently encoded and the start of the picture. A state machine for generating a control sequence including a plurality of control signals in response to a signal: a predetermined series based on a serial number and a predetermined initial constant value of a currently-encoded macroblock in response to the control sequence. An arithmetic unit that generates a group of control values for each macroblock of a picture by calculating an equation of. The value is an arithmetic unit meaning inter / intra mode, field, / frame mode, quantization coefficient; And a memory and an input / output unit for storing an initial constant value, supplying an initial constant value to the arithmetic unit, storing a group of control values determined in the arithmetic unit, and providing a control value used in a video encoding process. Controller. 제1항에 있어서, 상기 메모리 및 입출력 유니트는: 초기상수값과 제 어값이 저장되는 메모리 수단; 제어시퀀스에 응답하여 제어값들을 제공하는 읽기수단; 및 제어시퀀스에 응답하여 제어값들을 상기 메모리수단에 입력시키고 저장하는 쓰기 수단을 포함하는 것을 특징으로 하는 제어기.2. The apparatus of claim 1, wherein the memory and input / output unit comprises: memory means for storing an initial constant value and a control value; Reading means for providing control values in response to the control sequence; And write means for inputting and storing control values into said memory means in response to a control sequence. 제2항에 있어서, 상기 제어시퀀스는; 초기상수값과 제어값이 저장되는 메모리 수단의 위치를 나타내는 쓰기 어드레스 신호(write address signal); 초기상수값이나 제어값이 상기 메모리 수단에 저장될 때 액티브(active)상태로 되는 쓰기 인에이블 신호(write enable signal); 초기상수값과 제어값이 제공되는 상기 메모리 수단의 위치를 나타내는 읽기 어드레스 신호(read address signal)를 포함하는 것을 특징으로 하는 제어기.The method of claim 2, wherein the control sequence; A write address signal indicative of the position of the memory means in which the initial constant value and the control value are stored; A write enable signal that becomes active when an initial constant value or a control value is stored in the memory means; And a read address signal indicative of the position of said memory means provided with an initial constant value and a control value. 제2항에 있어서, 상기 산술유니트는, 기설정된 일련의 방정식을 계산하는 과정에서 얻은 임시값을 추가로 생성하고; 임시값이, 상기 메모리 수단에 추가로 저장되며; 상기 읽기수단이, 제어시퀀스에 응답하여 임시값을 추가로 제공하고; 상기 쓰기 수단이, 제어시퀀스에 응답하여 임시값들을 상기 메모리 수단에 추가로 입력시키고 저장하는 것을 특징으로 하는 제어기.The method of claim 2, wherein the arithmetic unit further comprises: generating a temporary value obtained in the process of calculating a predetermined series of equations; A temporary value is further stored in said memory means; The reading means further provides a temporary value in response to a control sequence; And said writing means further inputs and stores temporary values into said memory means in response to a control sequence. 제4항에 있어서, 상기 제어시퀀스는: 초기상수값, 제어값 임시값이 저장되는 상기 메모리 수단의 위치를 나타내는 쓰기 어드레스 신호(write address signal); 초기상수값, 제어값 또는 임시값이 메모리 수단에 저장될 때 액티브(active) 상태로 되는 쓰기 인에이블 신호(write enable signal); 및 초기상수값, 제어값, 임시값이 제공되는 상기 메모리 수단의 위치를 나타내는 읽기 어드레스 신호(read address signal)을 포함하는 것을 특징으로 하는 제어기.5. The apparatus of claim 4, wherein the control sequence comprises: a write address signal indicating an initial constant value, a position of the memory means in which a control value temporary value is stored; A write enable signal which becomes active when an initial constant value, a control value or a temporary value is stored in the memory means; And a read address signal indicative of the location of said memory means provided with an initial constant value, a control value and a temporary value. 제1항에 있어서, 상기 산술유니트는: 제1군의 입력값중에서 제1입력값을 선택하는 제1입력수단; 제2군의 입력값중에서 제2입력값을 선택하는 제2입력수단으로서, 상기 제2군은 상기 제1입력 수단에서 선택된 제1입력값을 포함하는 제2입력수단; 상기 제1입력값과 제2입력값을 각각 저장하는 제1레지스터와 제2레지스터; 상기 제1입력과 제2입력에 가산, 감산, 승산, 제산 비교연산을 행하여서, 가산결과, 감산결과, 승산결과, 제산결과 비교연산결과를 포함하는 일군의 계산결과를 제공하는 계산수단; 계산결과중 하나를 선택하는 선택수단; 및 선택된 계산결과나 제1입력을, 입력값중 하나로 상기 제2입력 수단에 제공하거나 메모리 및 입출력 수단에 제공하는 출력 수단을 포함하는 것을 특징으로 하는 제어기.2. The apparatus of claim 1, wherein the arithmetic unit comprises: first input means for selecting a first input value from among a first group of input values; Second input means for selecting a second input value from among a second group of input values, the second group including second input means including a first input value selected from the first input means; A first register and a second register for storing the first input value and the second input value, respectively; Calculation means for performing an addition, subtraction, multiplication, and division comparison operation on the first input and the second input to provide a group of calculation results including an addition result, a subtraction result, a multiplication result, and a division result comparison calculation result; Selecting means for selecting one of the calculation results; And output means for providing the selected calculation result or the first input to the second input means as one of the input values or to the memory and the input / output means. 제6항에 있어서, 상기 계산수단은: 상기 제1입력값과 제2입력값을 더함으로써 가산결과를 제공하는 가산수단; 상기 제1입력값에서 제2입력값을 뺌으로써, 부호화 절대값을 포함하는 감산결과를 제공하는 감산수단; 상기 제1입력값과 제2입력값을 곱함으로써, 상기 제1입력과 제2입력이 입력된지 기설정된 제1지연후에 승산결과를 제공하는 승산수단; 및 상기 제1입력값을 제2입력값으로 나눔으로써, 상기 제1입력과 제2입력이 입력된지 기설정된 제2지연후에 제산결과를 제공하는 제산수단을 포함하는 것을 특징으로 하는 제어기.7. The apparatus of claim 6, wherein the calculating means comprises: adding means for providing an addition result by adding the first input value and the second input value; Subtraction means for subtracting the second input value from the first input value to provide a subtraction result including an absolute coded value; Multiplication means for multiplying the first input value and a second input value to provide a multiplication result after a first delay set after the first input and the second input are input; And dividing means for dividing the first input value by a second input value to provide a division result after a predetermined second delay after the first input and the second input are input. 제3항에 있어서, 상기 산술유니트는: 제1군의 입력값중에서 제1입력값을 선택하는 제1입력수단; 제2군의 입력값중에서 제2입력값을 선택하는 제2입력수단으로서, 상기 제2군은 상기 제1입력수단에서 선택된 상기 제1입력값을 포함하는 제2입력수단; 상기 제1입력값과 제2입력값을 각각 저장하는 제1레지스터와 제2레지스터; 상기 제1입력과 제2입력에 가산, 감산, 승산, 제산 비교연산을 행하여서, 가산결과, 감산결과, 승산결과, 제산결과 비교연산결과를 포함하는 일군의 계산결과를 제공하는 계산수단; 계산결과중 하나를 선택하는 선택수단; 및 선택된 계산결과나 상기 제1입력을, 입력값중 하나로 상기 제2입력수단에 제공하거나 메모리 및 입출력 수단에 제공하는 출력수단을 포함하고, 상기 계산수단은: 상기 제1입력값과 제2입력값을 더함으로써 가산결과를 제공하는 가산수단; 상기 제1입력값에서 상기 제2입력값을 뺌으로써, 부호화 절대값을 포함하는 감산결과를 제공하는 감산수단; 상기 제1입력값과 제2입력값을 곱함으로써, 상기 제1입력과 제2입력이 입력된지 기설정된 제1지연후에 승산결과를 제공하는 승산수단; 상기 제1입력값을 제2입력값으로 나눔으로써, 상기 제1입력과 제2입력이 입력된지 기설정된 제2지연후에 제산결과를 제공하는 제산수단을 포함하는 것을 특징으로 하는 제어기.4. The apparatus of claim 3, wherein the arithmetic unit comprises: first input means for selecting a first input value from among a first group of input values; Second input means for selecting a second input value from among a second group of input values, the second group including second input means including the first input value selected from the first input means; A first register and a second register for storing the first input value and the second input value, respectively; Calculation means for performing an addition, subtraction, multiplication, and division comparison operation on the first input and the second input to provide a group of calculation results including an addition result, a subtraction result, a multiplication result, and a division result comparison calculation result; Selecting means for selecting one of the calculation results; And output means for providing the selected calculation result or the first input to the second input means as one of the input values or to the memory and the input / output means, wherein the calculation means comprises: the first input value and the second input; Adding means for providing an addition result by adding a value; Subtracting means for subtracting the second input value from the first input value to provide a subtraction result including an absolute coded value; Multiplication means for multiplying the first input value and a second input value to provide a multiplication result after a first delay set after the first input and the second input are input; And dividing means for dividing the first input value by a second input value to provide a division result after a predetermined second delay after the first input and the second input are input. 제8항에 있어서, 상기 제어시퀀스는: 제1입력선택신호와 제2입력선택신호에 각각 응답하여 제1군의 입력값과 제2군의 입력값중에서 제1입력값과 제2입력값이 선택되는, 제1입력 선택신호와 제2입력 선택신호; 제1레지스터 인에이블 신호와 제2레지스터 인에이블 신호에 응답하여 제1레지스터와 제2레지스터가 각각 제1입력값과 제2입력값을 저장하는 제1레지스터 인에이블 신호와 제2레지스터 인에이블 신호; 상기 가산수단이 가산결과에 1 을 추가로 더할지를 나타내는 가산 제어신호; 제산 시작신호에 응답하여 제산수단이 제산을 시작하는 제산 시작신호; 제산수단에서 제산이 종료된 때를 알리는 제산 종료신호; 동작선택 신호에 응답하여 선택수단이 계산결과중 하나를 선택하되, 비교연산결과가 선택되는 경우 선택수단은 동작 선택신호와 감산결과의 부호에 응답하여 제1입력 또는 제2입력을 선택하는, 동작 선택신호; 및 선택 신호에 응답하여 출력수단이 선택된 계산결과나 제1입력값을 입력값중 하나로 제2입력수단에 제공하거나 메모리 및 입출력 수단에 제공하는, 선택신호를 포함하는 것을 특징으로 하는 제어기.9. The method of claim 8, wherein the control sequence comprises: a first input value and a second input value of the first group of input values and the second group of input values in response to the first input selection signal and the second input selection signal, respectively; A first input selection signal and a second input selection signal selected; A first register enable signal and a second register enable signal in which the first register and the second register store the first input value and the second input value, respectively, in response to the first register enable signal and the second register enable signal; ; An addition control signal indicating whether the addition means adds one more to the addition result; A division start signal in which the division means starts division in response to the division start signal; A dividing end signal for notifying when dividing ends in the dividing means; The selecting means selects one of the calculation results in response to the operation selection signal, and when the comparison operation result is selected, the selection means selects the first input or the second input in response to the sign of the operation selection signal and the subtraction result. A selection signal; And a selection signal which, in response to the selection signal, provides the selected calculation result or the first input value to the second input means as one of the input values or to the memory and the input / output means in response to the selection signal. 비디오 신호 부호화 시스템에 사용되는, 인터/인트라(Inter/Intra) 모드, 필드/프레임(Field/Frame) 모드와 양자화 계수를 결정하는 제어기로서, 상기 비디오 신호는 다수의 GOP를 포함하고, 각 GOP는 세가지 종류의 픽쳐로 나뉘어지고, 각 픽쳐는 다수개의 마크로블럭으로 나누어지고, 상기 부호화 시스템은 마크로블럭 단위로 비디오 신호를 부호화하되, 상기 제어기는: 현재 부호화되는 픽쳐의 종류와, 픽쳐의 시작을 나타내는 신호와 마크로블럭의 시작을 나타내는 신호에 응답하여, 다수의 제어신호를 포함하는 제어시퀀스를 생성하고 현재 부호화되는 마크로블럭의 일련번호를 나타내는 신호를 제공하는 수단: 제어시퀀스에 응답하여, 현재 부호화되는 마크로블럭의 일련번호와 기설정된 초기상수값에 근거하여 기설정된 일련의 방정식을 계산함으로써, 픽쳐의 각 마크로블럭에 대해 일군의 제어값을 생성하는 산술유니트로서, 상기 일군의 제어값은 인터/인트라 모드, 필드,/프레임 모드, 양자화계수를 의미하는 산술유니트; 초기상수값을 저장하고, 초기상수값을 상기 산술유니트에 공급하고 상기 산술유니트에서 결정된 일군의 제어값을 저장하고, 비디오 부호화과정에 쓰이는 제어값을 제공하는 메모리 및 입출력 유니트를 포함하는 것을 특징으로 하는 제어기.A controller for determining an inter / intra mode, a field / frame mode and a quantization coefficient used in a video signal encoding system, wherein the video signal includes a plurality of GOPs, each GOP The picture is divided into three kinds of pictures, each picture is divided into a plurality of macroblocks, and the encoding system encodes a video signal in units of macroblocks, wherein the controller is configured to indicate the type of picture that is currently encoded and the start of the picture. Means for generating a control sequence comprising a plurality of control signals and providing a signal representing the serial number of the currently encoded macroblock in response to the signal and the signal indicative of the beginning of the macroblock: currently encoded in response to the control sequence By calculating a predetermined series of equations based on the macroblock serial number and a predetermined initial constant value, Of an arithmetic unit for generating a control value for a group, for each macroblock, the arithmetic unit for controlling the value of said set means the inter / intra mode, a field, / frame mode, the quantized coefficients; And a memory and an input / output unit for storing an initial constant value, supplying an initial constant value to the arithmetic unit, storing a group of control values determined in the arithmetic unit, and providing a control value used in a video encoding process. Controller.
KR1019960026177A 1996-06-29 1996-06-29 Controller for video signal coding system KR100209417B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960026177A KR100209417B1 (en) 1996-06-29 1996-06-29 Controller for video signal coding system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960026177A KR100209417B1 (en) 1996-06-29 1996-06-29 Controller for video signal coding system

Publications (2)

Publication Number Publication Date
KR980007736A KR980007736A (en) 1998-03-30
KR100209417B1 true KR100209417B1 (en) 1999-07-15

Family

ID=19464976

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960026177A KR100209417B1 (en) 1996-06-29 1996-06-29 Controller for video signal coding system

Country Status (1)

Country Link
KR (1) KR100209417B1 (en)

Also Published As

Publication number Publication date
KR980007736A (en) 1998-03-30

Similar Documents

Publication Publication Date Title
US5777680A (en) Video signal encoding system controller for deciding an inter/intra mode, a field/frame DCT mode, and a quantization parameter
US6008848A (en) Video compression using multiple computing agents
US6049629A (en) Coding apparatus for coding image data using one of an interpicture coding method and an interpicture motion-compensated coding method
EP0959627B1 (en) A motion video compression system with adaptive bit allocation and quantization
KR100355375B1 (en) Method and circuit for deciding quantizing interval in video encoder
US5956426A (en) Multi-coding apparatus
US5907374A (en) Method and apparatus for processing a compressed input bitstream representing an information signal
US6084636A (en) Video signal encoding method and apparatus employing an adaptive quantization technique
US8179969B2 (en) Method and apparatus for encoding or decoding frames of different views in multiview video using global disparity
JPH05145773A (en) Device and method of encoding video picture
US7460597B2 (en) Encoding apparatus and method
US5949488A (en) Video signal encoding system controller
KR100238622B1 (en) A motion video compression system with novel adaptive quantisation
KR100227298B1 (en) Code amount controlling method for coded pictures
JPH09322176A (en) Encoding mode selecting method, moving image encoding device, encoding method, recording method and transmitting method
US5751357A (en) Method and arrangement for coding and decoding a video data stream for all picture elements of the video data stream
KR100209417B1 (en) Controller for video signal coding system
JP3626779B2 (en) Image coding method and apparatus
KR100218424B1 (en) Method and apparatus for controlling alloted bit rate in moving picture encoder
JPH04336894A (en) Moving picture coder
KR100809013B1 (en) Apparatus for coding complexity-scalable moving image and method thereof
KR0185847B1 (en) The quantization step control system in video encoder
JPH11136678A (en) Coding method and coder
JP4582710B2 (en) Video encoding device
JPH04331592A (en) Moving image encoder

Legal Events

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

Payment date: 20120413

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20130401

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee