KR100349058B1 - video compression and decompression Apparatus - Google Patents

video compression and decompression Apparatus Download PDF

Info

Publication number
KR100349058B1
KR100349058B1 KR1020000033062A KR20000033062A KR100349058B1 KR 100349058 B1 KR100349058 B1 KR 100349058B1 KR 1020000033062 A KR1020000033062 A KR 1020000033062A KR 20000033062 A KR20000033062 A KR 20000033062A KR 100349058 B1 KR100349058 B1 KR 100349058B1
Authority
KR
South Korea
Prior art keywords
compression
data
restoring
block
image data
Prior art date
Application number
KR1020000033062A
Other languages
Korean (ko)
Other versions
KR20010112806A (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 KR1020000033062A priority Critical patent/KR100349058B1/en
Publication of KR20010112806A publication Critical patent/KR20010112806A/en
Application granted granted Critical
Publication of KR100349058B1 publication Critical patent/KR100349058B1/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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]

Abstract

본 발명은 공중회선 교환 전화망(PSTN)과 같은 낮은 전송율을 갖는 선로를 통하여 디지털 영상 데이터 및 제어신호를 효과적으로 전송할 수 있도록 디지털 영상 데이터의 압축 및 복원을 행하는 영상압축복원장치에 관한 것으로, 특히, 외부에서 입력된 영상 데이터를 저장하는 제 1저장수단; 상기 제 1저장수단으로부터 입력된 영상데이터를 움직임 추정연산, 움직임 보상연산 및 데이터변환을 수행함에 의해 상기 입력된 영상데이터를 부호화 및 복호화하여 압축 및 복원하는 압축복원수단; 상기 입력된 영상 데이터의 압축을 위하여 상기 압축복원수단의 움직임 추정연산에 의해 판단된 압축모드에 따라 결과하는 데이터와, 상기 압축복원수단에 의해 양자화 및 역양자화된 데이터를 저장하는 제 2저장수단; 상기 입력된 영상 데이터의 복원을 위하여 상기 압축복원수단에서 가변길이 복호화된 데이터와, 역이산여현변환된 데이터를 저장하는 제 3저장수단; 및 상기 제 1저장수단 내지 제 3저장수단의 읽기 및 쓰기를 제어함과 동시에 상기 압축복원수단의 압축복원동작을 시분할로 제어하는 제어수단을 구비하며, 상기 제 1 내지 제 3저장수단과 압축복원수단은 제어수단을 중심으로 보조프로세서 형태로 결합되는 것을 특징으로 한다.The present invention relates to an image compression restoring apparatus for compressing and restoring digital image data so as to effectively transmit digital image data and control signals through a line having a low transmission rate such as a public switched telephone network (PSTN). First storage means for storing the input image data; Compression restoring means for encoding, decoding and compressing and restoring the input image data by performing motion estimation operation, motion compensation operation, and data conversion on the image data input from the first storage means; Second storage means for storing the resultant data according to the compression mode determined by the motion estimation operation of the compression restoring means and the quantized and dequantized data by the compression restoring means for compressing the input image data; Third storage means for storing variable length decoded data and inverse discrete cosine transformed data in the compression restoring means for restoring the input image data; And control means for controlling the reading and writing of the first to third storage means and controlling the compression restoring operation of the compression restoring means by time division, wherein the first to third storage means and the compression restoring are performed. The means are characterized in that they are coupled in the form of a coprocessor around the control means.

Description

영상압축복원장치{video compression and decompression Apparatus}Video compression and decompression Apparatus

본 발명은 영상압축복원장치에 관한 것으로서, 특히, 공중회선 교환 전화망(PSTN)과 같은 낮은 전송율을 갖는 선로를 통하여 디지털 영상 데이터 및 제어신호를 효과적으로 전송할 수 있도록 디지털 영상 데이터의 압축 및 복원을 행하는 영상압축복원장치에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an image compression restoration device, and more particularly, to an image that compresses and decompresses digital image data so that digital image data and control signals can be effectively transmitted through a line having a low data rate such as a public switched telephone network (PSTN). A compression restoring apparatus.

현재, 디지털 티브이, 영상 전화기 등을 포함하는 다양한 멀티미디어 시스템은 디지털 방식으로 데이터를 처리하기 때문에 모두 상당한 양의 동영상 데이터의 저장 및 처리를 필요로 한다. 이에 따라 동영상 데이터의 저장 및 처리를 효율적으로 하기 위해 압축 및 복원에 대한 다양한 표준들이 제정되어 왔다. 정지 영상의 경우에는 정지화상 전문가그룹(JPEG: Joint Picture Experts Group)에 의해 그리고 동영상의 경우에는 동화상 전문가그룹(MPEG: Moving Picture Experts Group)에 의해 주도되어 왔다.Currently, various multimedia systems, including digital TVs, video telephones, and the like, process data in a digital manner, and thus all require the storage and processing of a significant amount of video data. Accordingly, various standards for compression and decompression have been established to efficiently store and process moving image data. In the case of still images it has been led by the Joint Picture Experts Group (JPEG) and in the case of moving pictures by the Moving Picture Experts Group (MPEG).

MPEG 표준은 상당한 영상 데이터 처리능력을 요하는 표준으로서, 공중회선 교환 전화망(PSTN)과 같은 저 전송율을 갖는 선로를 이용해서 동영상을 전송하는 데에는 적합하지 않으므로, 이를 위해 ITU-T(국제전기통신연합-전기통신 표준화부문)에 의해 권고된 H.263 및 H.261이 부호화 표준으로 적용되고 있다.The MPEG standard is a standard that requires considerable image data processing capability and is not suitable for transmitting video using a low data rate line such as a public switched telephone network (PSTN). H.263 and H.261, recommended by the Telecommunication Standardization Sector, are applied as coding standards.

이러한 H.263 및 H.261 규격은 실시간의 부호화 및 복호화가 필요한 통신미디어를 이용대상으로 하는 것으로, 움직임 추정(Motion Estimation), 움직임 보상(Motion Compensation), 양자화(Quanization), 및 이산여현변환(DCT:Discrete Cosine Transform)을 근간으로 하는 블록 단위의 데이터 변환에 의해 동영상을 압축 및 복원하는 방법을 제시하고 있다.The H.263 and H.261 standards target communication media that require real-time encoding and decoding. Motion Estimation, Motion Compensation, Quantization, and Discrete Cosine Transformation A method of compressing and restoring moving images by block-based data transformation based on DCT: Discrete Cosine Transform is presented.

일반적으로, 동영상 처리를 위한 알고리즘을 구현하기 위해서는 기본적으로 움직임 보상, 움직임 추정 및 데이터 변환방법이 필요하고, 그리고 이를 하드웨어로 구현하기 위해서는 상기와 같은 다양한 알고리즘을 적절하게 조합 혹은 분리하여 별도의 기능 블록으로 구성한 후 프로그램에 의해 제어하는 방법이 이용된다.Generally, a motion compensation, motion estimation, and data conversion method is basically required to implement an algorithm for processing a video, and in order to implement it in hardware, a separate functional block can be appropriately combined or separated as described above. After the configuration is controlled by a program is used.

상기 동영상 처리를 위한 알고리즘에 있어서, H.261의 규격에 따른 대표적인 영상 복호화기는 도 1과 같은 구조를 갖는다.In the algorithm for processing a video, a representative video decoder according to the standard of H.261 has a structure as shown in FIG.

상기 영상 복호화기는, 도면에 도시된 바와 같이, 버퍼(10)와, 가변길이 디코더(11)와, 역양자화기(12)와, 역이산여현변환기(14)와, 예측메모리(16)와, 가산기(18)로 구성된다.As shown in the figure, the image decoder includes a buffer 10, a variable length decoder 11, an inverse quantizer 12, an inverse discrete cosine transformer 14, a prediction memory 16, The adder 18 is comprised.

상기와 같이 구성된 복호화기의 영상데이터 처리과정은 다음과 같다.The image data processing of the decoder configured as described above is as follows.

먼저, 외부로부터 입력되는 비트스트림(BS) 즉, 미리 정해진 소정의 비율로 부호화된 영상데이터는 버퍼(10)에 임시저장 된다. 이때, 버퍼(10)는 소정의 크기를 갖는 관계로 외부로부터 지속적으로 비트스트림을 입력 받을 수 없고 영상데이터가 복호화되는 비율에 맞추어 비트스트림을 저장한다.First, the bitstream BS input from the outside, that is, image data encoded at a predetermined predetermined ratio, is temporarily stored in the buffer 10. In this case, since the buffer 10 has a predetermined size and cannot receive the bit stream continuously from the outside, the buffer 10 stores the bit stream in accordance with the rate at which image data is decoded.

상기 버퍼(10)에 저장된 영상데이터는 가변길이 디코더(11)를 통해서 복호화되어 부호화되기 전의 데이터로 복원된 후 역양자화기(12)를 통해서 역양자화된다.The image data stored in the buffer 10 is decoded by the variable length decoder 11 and restored to data before being encoded, and then dequantized by the inverse quantizer 12.

그 다음, 역양자화기(12)에 의해 역양자화된 데이터는 역이산여현변환기(14)를 통해 역이산여현변환(IDCT)되고, 이것에 의해서 실제적인 영상데이터가 얻어진다.Then, the data dequantized by the inverse quantizer 12 is subjected to inverse discrete cosine transform (IDCT) through the inverse discrete cosine transformer 14, thereby obtaining actual image data.

상기 역이산여현변환(IDCT)에 의해 얻어진 데이터는 다음과 같은 2가지 형태를 갖게 된다.The data obtained by the inverse discrete cosine transform (IDCT) has two forms as follows.

첫 번째로, 현재 프레임이 인트라(Intra) 즉, 프레임내 부호화인 경우에는이전 프레임과의 관계가 전혀 없으며, 따라서 현재 프레임을 그대로 재현한 형태가 된다. 이 경우 역이산여현변환(IDCT)을 거친 데이터는 바로 현재 프레임의 데이터가 된다.First, if the current frame is intra, that is, intra-frame encoding, there is no relationship with the previous frame, and thus the present frame is reproduced as it is. In this case, data that has undergone inverse discrete cosine transform (IDCT) becomes data of the current frame.

두 번째로, 현재 프레임이 인터(Inter) 즉, 프레임간 부호화인 경우에는 현재 프레임이 이전 프레임과의 관계에 따라 일정한 움직임 벡터(MV:Motion Vector)를 포함하게 되고 압축 효율을 향상시키기 위해 이전 프레임과의 차분 값만이 전달된다.Secondly, if the current frame is Inter, that is, inter-frame encoding, the current frame includes a constant motion vector (MV: Motion Vector) according to the relationship with the previous frame, and the previous frame to improve the compression efficiency. Only the difference value is passed.

따라서, 현재 프레임이 인터(Inter)인 경우에는 역이산여현변환(IDCT)을 거친 결과가 바로 현재 프레임의 데이터가 되는 것이 아니라 예측메모리(16)에 기저장된 이전 프레임 데이터와의 움직임 보상과정을 거쳐야 한다. 이를 위해 역이산여현변환(IDCT)에 의해 얻어진 데이터는 가산기(16)에서 예측메모리(18)에 저장된 이전 프레임과의 차분 값에 의해 보상되어진다.Therefore, when the current frame is Inter, the result of the inverse discrete cosine transform (IDCT) is not the data of the current frame, but the motion compensation process with the previous frame data previously stored in the prediction memory 16. do. To this end, the data obtained by the inverse discrete cosine transform (IDCT) is compensated by the difference value with the previous frame stored in the prediction memory 18 in the adder 16.

이와 같은 과정은 모두 전체화면을 기본 단위인 블록으로 분할하여 단위 블록을 기준으로 이루어진다. 여기서 1블록은 88개의 화소로 구성된다.All of these processes are performed based on unit blocks by dividing the entire screen into blocks that are basic units. Where 1 block is 8 It consists of eight pixels.

한편, 동영상을 압축하여 전송하기 위한 부호화는 상술한 복호화와 상반된 과정을 거치게 되는데, 이를 설명하면 다음과 같다.Meanwhile, encoding for compressing and transmitting a video undergoes a process opposite to that of the above-described decoding, which will be described below.

먼저, 압축 전송하려는 현재의 프레임을 매크로 블록(Macro block)으로 나누고 이전 프레임의 영상 데이터를 이용하여 움직임 예측을 수행한다. 여기서, 1매크로 블록은 6개의 블록 즉, 밝기 성분을 포함하는 4개의 블록과 색성분을 포함하는 2개의 블록으로 구성되는 하나의 단위이다.First, a current frame to be compressed and transmitted is divided into a macro block and motion prediction is performed using image data of a previous frame. Here, one macro block is one unit composed of six blocks, that is, four blocks including brightness components and two blocks including color components.

상기 움직임 예측을 통해 현재 프레임의 해당 매크로 블록에 대한 움직임 벡터가 구해지면, 이를 이용하여 현재 전송하려는 매크로 블록이 인트라(Intra)인지 인터(Inter)인지를 판단한다.When the motion vector for the corresponding macroblock of the current frame is obtained through the motion prediction, it is determined whether the current macroblock to be transmitted is intra or inter.

상기의 판단결과, 인트라(Intra)일 경우 현재 매크로 블록은 이전 프레임의 영상데이터와는 직접적인 연관 관계가 없으므로, 현재 매크로 블록 데이터를 그대로 전송하도록 하고, 인터(Inter)일 경우 이전 프레임에서 해당되는 매크로 블록을 기준으로 영상 데이터의 차분 값만을 전송하도록 한다. 이때 전송되는 비크열에는 이전 프레임에서 해당 매크로 블록의 위치를 알 수 있는 움직임 벡터를 함께 보내서 부호화하는 과정중에 이용할 수 있도록 한다.As a result of the above determination, since the current macro block has no direct relation with the image data of the previous frame in case of Intra, the current macro block data is transmitted as it is, and in the case of Inter, the corresponding macro in the previous frame Only the difference value of the image data is transmitted based on the block. In this case, the transmitted beak string is sent with a motion vector that knows the position of the macroblock in the previous frame so that it can be used during the encoding process.

그 다음, 상기 현재 프레임 자체 혹은 이전 프레임과의 차분 값으로 구해진 영상 데이터는 이산여현변환(DCT)과정을 통해 시간영역에서 주파수 영역으로 변환되고, 이렇게 변환된 데이터는 양자화기를 통하여 양자화되고, 최종적으로 가변길이 부호화기(미도시)를 통하여 압축된 형태로 외부 출력단자를 통하여 전송됨으로써, 동영상 데이터의 압축과정이 완료된다.Then, the image data obtained as the difference value from the current frame itself or the previous frame is converted from the time domain to the frequency domain through a discrete cosine transform (DCT) process, and the converted data is quantized through a quantizer and finally The compressed data is transmitted through an external output terminal in a compressed form through a variable length encoder (not shown), thereby completing the compression process of the video data.

상술한 바와 같이, 압축하려는 현재의 프레임 데이터는 이전 프레임의 데이터를 필요로 하므로, 현재 부호화되는 데이터는 압축으로 완료되는 것이 아니라 압축 및 전송된 데이터를 이용하여 현재 프레임을 복원해야 한다. 이것은 다음과 같은 두 가지 목적을 가지고 수행된다.As described above, since the current frame data to be compressed requires data of a previous frame, the data to be currently encoded is not completed by compression, but the current frame should be restored using the compressed and transmitted data. This is done for two purposes:

첫 번째로, 현재 압축된 데이터를 이용하여 현재 프레임을 복원함으로써, 다음 프레임에서 참조하는 데이터로 사용될 수 있도록 하는 것이며,First, by reconstructing the current frame using the current compressed data, it can be used as the data referenced in the next frame,

두 번째로, 압축 전송된 데이터를 받아서 복원하는 복호화기측에서 수행하는 과정을 그대로 재현함으로써, 수신측과 주고받는 데이터 사이의 오차가 최소화되도록 하는 것이다.Secondly, the process performed by the decoder that receives and restores the compressed data is reproduced as it is, thereby minimizing an error between the receiver and the data exchanged.

상술한 바와 같은 복호화 및 부호화에 의한 동영상 처리 과정을 수행하기 위해서 크게 다음과 같은 두 가지 방법이 사용될 수 있다.In order to perform the video processing by decoding and encoding as described above, the following two methods can be used.

첫 번째로, 상기 복호화 및 부호화 과정 모두를 프로그램화 하여 고속의 디지털 신호 프로세서(DSP)의 기능을 포함하는 프로세서에서 수행시키는 소프트웨어적인 방법이고,First, it is a software method for programming both the decoding and encoding processes to be performed in a processor including a function of a high speed digital signal processor (DSP),

두 번째로, 상기 복호화 및 부호화 과정중 특정 블록들을 하드웨어로 구현하여 그 처리속도를 높이는 하드웨어적 방법이다.Second, a hardware method of increasing the processing speed by implementing specific blocks in hardware during the decoding and encoding processes.

이러한 응용 방법은 상기의 알고리즘이 적용되는 시스템에 따라서 적절하게 사용될 수 있다.This application method can be suitably used depending on the system to which the above algorithm is applied.

그러나, 상술한 바와 같은 동영상 처리 알고리즘을 적용하여 실제의 시스템을 구현하는 데에는 다음과 같은 문제점이 따른다.However, the following problems occur in implementing the actual system by applying the video processing algorithm as described above.

먼저, 상기 동영상 처리 알고리즘 프로그램에 의해 구현하는 경우 실시간에 처리하기 위해서는 고성능의 프로세서가 필요하고, 또한 실시간 처리라는 한계를 극복하기 위해서는 불필요한 자원이 사용되는 데, 이는 시스템의 원가상승을 초래한다.First, when implemented by the video processing algorithm program, a high performance processor is required to process in real time, and unnecessary resources are used to overcome the limitation of real time processing, which leads to a cost increase of the system.

다음으로, 상기 동영상 처리 알고리즘을 그대로 하드웨어로 구현할 경우 움직임 추정, 움직임 보상, 이산여현변환, 역이산여현변환 등의 전용 기능 블록의 설계를 위해 많은 하드웨어 자원이 필요하게 되므로, 하드웨어 규모에 비하여 동영상 데이터 처리 성능의 효율이 저하된다.Next, when the video processing algorithm is implemented in hardware, a lot of hardware resources are required for the design of dedicated functional blocks such as motion estimation, motion compensation, discrete cosine transform, inverse discrete cosine transform, and so on. The efficiency of the processing performance is lowered.

상기 문제점을 해결하기 위해 본 발명의 목적은 이미지 데이터 프로세서 및 관련 메모리들을 마이크로 시이퀀서를 중심으로 보조프로세서 형식으로 연결시킴으로써, 간이한 하드웨어 구조를 갖는 동시에 개별적인 기능블록들의 효과적인 운영에 의해 동영상 데이터를 효과적으로 압축 및 복원할 수 있는 영상압축복원장치를 제공하는 데 있다.In order to solve the above problems, an object of the present invention is to connect an image data processor and related memories in a coprocessor format based on a micro sequencer, thereby effectively moving video data by effectively operating individual functional blocks while having a simple hardware structure. An object of the present invention is to provide an image compression restoring apparatus that can be compressed and restored.

상기 목적을 달성하기 위해 본 발명의 영상압축복원장치는 외부에서 입력된 영상 데이터를 저장하는 제 1저장수단; 상기 제 1저장수단으로부터 입력된 영상데이터를 움직임 추정연산, 움직임 보상연산 및 데이터변환을 수행함에 의해 상기 입력된 영상데이터를 부호화 및 복호화하여 압축 및 복원하는 압축복원수단; 상기 입력된 영상 데이터의 압축을 위하여 상기 압축복원수단의 움직임 추정연산에 의해 판단된 압축모드에 따라 결과하는 데이터와, 상기 압축복원수단에 의해 양자화 및 역양자화된 데이터를 저장하는 제 2저장수단; 상기 입력된 영상 데이터의 복원을 위하여 상기 압축복원수단에서 가변길이 복호화된 데이터와, 역이산여현변환된 데이터를 저장하는 제 3저장수단; 및 상기 제 1저장수단 내지 제 3저장수단의 읽기 및 쓰기를 제어함과 동시에 상기 압축복원수단의 압축복원동작을 시분할로 제어하는 제어수단을 구비하며, 상기 제 1 내지 제 3저장수단과 압축복원수단은 제어수단을 중심으로 보조프로세서 형태로 결합되는 것을 특징으로 한다.In order to achieve the above object, the image compression restoring apparatus of the present invention comprises: first storage means for storing image data input from the outside; Compression restoring means for encoding, decoding and compressing and restoring the input image data by performing motion estimation operation, motion compensation operation, and data conversion on the image data input from the first storage means; Second storage means for storing the resultant data according to the compression mode determined by the motion estimation operation of the compression restoring means and the quantized and dequantized data by the compression restoring means for compressing the input image data; Third storage means for storing variable length decoded data and inverse discrete cosine transformed data in the compression restoring means for restoring the input image data; And control means for controlling the reading and writing of the first to third storage means and controlling the compression restoring operation of the compression restoring means by time division, wherein the first to third storage means and the compression restoring are performed. The means are characterized in that they are coupled in the form of a coprocessor around the control means.

상기 목적을 달성하기 위하여 본 발명의 영상압축복원방법은 입력된 영상데이터를 압축할것인지 또는 복원할것이지를 판단하는 단계; 상기의 판단단계의 결과 압축으로 판단될 경우 움직임 추정과 움직임 보상과 이산여현변환과 양자화와 가변길이 부호화의 압축과정을 단계적으로 수행하는 단계; 상기 판단단계의 결과 복원으로 판단될 경우 가변길이 복호화와 역양자화와 역이산여현변환과 움직임 보상의 복원과정을 단계적으로 수행하는 단계; 상기 압축과정을 수행할 시 매 압축과정마다 복원이 유용한지를 검사하고, 상기 검사결과로 복원이 유용할 경우 다음의 압축과정을 보류하고 상기 유용한 복원과정을 먼저 수행하고, 복원이 유용하지 않을 경우 상기 보류된 다음의 압축과정을 수행하는 단계; 및 상기 복원과정을 수행할 시 매 복원과정마다 압축이 유용한지를 검사하고, 상기 검사결과로 압축이 유용할 경우 다음의 복원과정을 보류하고 상기 유용한 압축과정을 먼저 수행하고, 압축이 유용하지 않을 경우 상기 보류된 다음의 복원과정을 수행하는 단계를 구비하여 영상데이터를 시분할로 압축복원하는 것을 특징으로 한다.In order to achieve the above object, the image compression restoration method of the present invention comprises the steps of: determining whether to compress or restore the input image data; Performing step compression of motion estimation, motion compensation, discrete cosine transform, quantization, and variable length coding when it is determined that the result of the determination step is compression; Performing step reconstruction of variable length decoding, inverse quantization, inverse discrete cosine transform, and motion compensation when it is determined that the result of the determination step is restored; When performing the compression process, it is checked whether the restoration is useful for each compression process, and if the restoration is useful as a result of the check, the next compression process is suspended, and the useful restoration process is first performed. Performing the next compression process that is suspended; And checking whether compression is useful for each restoration process when performing the restoration process, and if the compression is useful as a result of the check, suspend the next restoration process and perform the useful compression process first, and when compression is not useful. And performing the next restoring process held by the block, and compressing and restoring image data by time division.

도 1은 종래의 영상데이터 복호화기를 나타낸 블록도.1 is a block diagram showing a conventional image data decoder.

도 2는 본 발명의 실시예에 따른 영상압축복원장치를 나타낸 블록도.Figure 2 is a block diagram showing an image compression restoration apparatus according to an embodiment of the present invention.

도 3은 본 발명의 실시예에 따른 영상압축복원장치의 압축복원방법을 설명하기 위한 플로우 챠트.Figure 3 is a flow chart for explaining a compression restoration method of the image compression restoration apparatus according to an embodiment of the present invention.

도 4는 본 발명의 실시예에 따른 움직임 추정 알고리즘을 설명하기 위한 흐름도.4 is a flowchart illustrating a motion estimation algorithm according to an embodiment of the present invention.

* 도면의 주요 부분에 대한 부호의 설명* Explanation of symbols for the main parts of the drawings

100: 제 1저장부 110: 압축복원부100: first storage unit 110: compression recovery unit

120: 제 2저장부 140: 제 3저장부120: second storage unit 140: third storage unit

160: 제어부 DB1, DB2: 데이터 버스160: control unit DB1, DB2: data bus

AB: 어드레스 버스AB: address bus

이하, 본 발명의 구체적인 실시예를 첨부한 도면을 참조하여 상세히 살펴보고자 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명의 실시예에 따른 영상압축복원장치를 나타낸 블록도로서, 도시된 바와 같이, 크게 제 1저장부(100)와, 압축복원부(110)와, 제 2저장부(120)와, 제 3저장부(140)와, 제어부(160)로 구성되며, 각 블록들 즉, 제 1저장부(100)와, 압축복원부(110)와, 제 2저장부(120)와, 제 3저장부(140)는 제어부(160)를 중심으로 모두 별도의 보조프로세서의 형태로 겹합되어 별도의 블록처럼 독립적으로 그리고 병렬로 해당되는 기능을 수행하며, 제어부(160)로부터 명령을 받아 수행되는 모든 동작의 시작과 종료에 관한 처리가 이루어지도록 구성된다.2 is a block diagram illustrating an image compression restoration apparatus according to an embodiment of the present invention. As shown in the drawing, the first storage unit 100, the compression restoration unit 110, and the second storage unit 120 are largely shown. And a third storage unit 140 and a control unit 160, each block, that is, the first storage unit 100, the compression restorer 110, the second storage unit 120, The third storage unit 140 is superimposed in the form of a separate coprocessor around the control unit 160 to perform functions corresponding independently and in parallel as a separate block, and receives a command from the control unit 160. Processing relating to the start and end of all operations that are performed.

제 1저장부(100)는 본 발명의 실시예에 따라 휘발성 메모리인 디램(DRAM: Dynamic Random Access Memory)으로 구성되어 외부 카메라로부터 입력되는 동영상 데이터, 외부 디스플레이 장치로 출력되는 출력되는 동영상 데이터, 압축되기 이전의 동영상 데이터, 압축된 동영상 데이터 등 실시간으로 처리되는 모든 동영상 데이터를 저장하며, 제어부(160)의 제어단자(ctrl4)로부터 읽기 및 쓰기 제어신호를 입력받고, 상기 읽기 제어 제어신호에 의해 엑세스되어 저장된 동영상 데이터를 데이터 버스(DB1)를 통해 제어부(160)로 전송한다.The first storage unit 100 is composed of a dynamic random access memory (DRAM), which is a volatile memory, according to an embodiment of the present invention, video data input from an external camera, video data output to an external display device, and compression. Stores all video data processed in real time, such as video data and compressed video data before it is received, receives a read and write control signal from the control terminal ctrl4 of the controller 160, and accesses the read control signal. The stored video data is transmitted to the controller 160 through the data bus DB1.

압축복원부(110) 즉, 이미지 데이터 프로세서는 H.263 규격을 만족하는 각종 영상처리 알고리즘을 수행 연산블록으로서, 데이터 버스(DB2)와, 어드레스 버스(AB)를 통해 제 2저장부(120)와 제 3저장부(140)를 엑세스하며, 제어부(160)의 제어단자(ctrl2)를 통해 제 1저장부(100)에 저장된 동영상 데이터를 제공받는다.The compression restoring unit 110, that is, the image data processor performs various image processing algorithms satisfying the H.263 standard as a calculation block, and the second storage unit 120 through the data bus DB2 and the address bus AB. And access the third storage unit 140 and receive video data stored in the first storage unit 100 through the control terminal ctrl2 of the controller 160.

통상적으로, 동영상의 압축 복원에는 공통되는 연산블록들이 사용되므로, 본 발명의 실시예에 따른 압축복원부(110)는 부호화 및 복호화용 전용 블록을 별도로 설계할 필요가 없이 공통되는 블록을 효과적으로 운용하여 실시간에 압축복원을 수행할 수 있도록 움직임 추정 연산블록(미도시)과 움직임 보상 연산블록(미도시)과 데이터 변환블록(미도시)을 포함한다.In general, since a common operation block is used to decompress a video, the compression restoration unit 110 according to an embodiment of the present invention effectively operates a common block without separately designing a dedicated block for encoding and decoding. A motion estimation calculation block (not shown), a motion compensation calculation block (not shown), and a data conversion block (not shown) are included to perform compression restoration in real time.

상기 움직임 추정 연산블록(미도시)은 현재 프레임에서 영상 압축과정에 의해 처리중인 매크로 블록에 대한 영상 데이터를 저장하는 제 1메모리와, 움직임 추정을 위해 이전 프레임의 동일한 위치를 중심으로 상,하,좌,우 각각 8화소 만큼 확장된 영역의 영상 데이터를 저장하는 제 2메모리와, 현재 및 이전 데이터의 각 화소에 대한 상대적 위치를 선택하기 위한 멀티플렉서와, 움직임 추정을 위해 현재 프레임의 데이터와 이전 프레임의 데이터를 이용하여 감산 및 누산을 수행하는 연산요소들과, 현재 및 이전 프레임을 이용하여 구한 차분 데이터 값에 대한 최종적인 판단 즉, 현재 처리중인 영상의 모드를 결정하기 위한 판단을 내리기 위한 비교기를 구비하며, 현재 프레임에서 처리하려는 매크로 블록과 가장 유사한 부분을 이전 프레임으로부터 찾아내고, 그에 따른 움직임 벡터를 계산하여 그 결과하는 데이터를 상기 움직임 보상 연산블록에서 이용할 수 있도록 한다. 그러나 상기 움직임 추정 연산블록은 동영상 인코딩을 위해서만 사용되는 블록이므로 디코딩 과정에서는 사용되지 않도록 한다.The motion estimation arithmetic block (not shown) includes a first memory for storing image data of a macroblock being processed by an image compression process in a current frame, and a top, bottom, center of the same position of a previous frame for motion estimation. A second memory for storing image data of an area extended by 8 pixels each for left and right, a multiplexer for selecting a relative position of each pixel of current and previous data, a data of the current frame and a previous frame for motion estimation Comparator for making the final decision about the difference data calculated using the current and previous frame, that is, the calculation element to subtract and accumulate using the data of And find the most similar part of the macro block to be processed in the current frame from the previous frame. Calculates a motion vector and makes the resulting data available to the motion compensation calculation block. However, the motion estimation arithmetic block is used only for video encoding, so it is not used in the decoding process.

상기와 같이 구성된 움직임 추정 연산블록의 움직임 추정 과정을 설명하면 다음과 같다.The motion estimation process of the motion estimation calculation block configured as described above is as follows.

먼저, 현재 프레임에서 처리하려고 하는 매크로 블록에 대한 영상 데이터를 외부의 제 1저장부(100)로부터 읽어들여 움직임 추정 연산블록 내의 국부메모리인 제 1메모리(미도시)에 저장하고, 현재 프레임 데이터와 비교하기 위해 필요한 이전 프레임 데이터의 해당되는 영역을 외부의 제 1저장부(100)로부터 읽어들여 움직임 추정 연산블록 내의 국부메모리인 제 2메모리(미도시)에 저장한다.First, image data of a macro block to be processed in a current frame is read from an external first storage unit 100 and stored in a first memory (not shown), which is a local memory in a motion estimation calculation block, and The corresponding area of the previous frame data required for comparison is read from the external first storage unit 100 and stored in a second memory (not shown) which is a local memory in the motion estimation calculation block.

이와 같은 상태에서, 상기 제 1및 제 2메모리(미도시)에 저장된 데이터를 이용하여 정수화소(Integer pel) 단위의 움직임 추정 연산을 수행한다.In this state, a motion estimation operation of an integer pixel unit is performed using data stored in the first and second memories (not shown).

상기의 움직임 추정 연산결과로 근사적으로 가장 적은 오차를 갖는 정수화소 단위의 움직임 벡터가 얻어지는 데, 이 값을 중심으로 다시 반정수화소(Half pel) 단위의 움직임 추정연산을 수행한다.As a result of the motion estimation operation, a motion vector of an integer pixel unit having the least error is obtained. The motion estimation operation of a half pel unit is performed again based on this value.

상기 반정수화소(Half pel) 단위의 움직임 추정 연산이 완료되면, 그 연산결과를 이용하여 현재 처리중인 매크로 블록의 모드를 인트라(Intra)로 할것인지 혹은 인터(Inter)로 할 것인지를 결정하고, 상기 반정수화소(Half pel) 단위의 움직임 추정 연산결과에 따른 움직임 백터와 현재 매크로 블록의 모드를 다음에 이어지는 압축과정에서 이용할 수 있도록 움직임 보상 연산블록으로 전달한다.When the motion estimation operation in units of half pels is completed, the operation result is used to determine whether the mode of the macroblock currently being processed is intra or inter. The motion vector and the mode of the current macroblock according to the motion estimation operation result of the half pel unit are transferred to the motion compensation calculation block so that the compression vector can be used in the subsequent compression process.

상기 움직임 보상 연산블록(미도시)은 영상의 압축 및 복원과정에서 이전 프레임에 대한 움직임 보상을 수행하는 블록으로, 프로그램에 의해 다음과 같은 3가지 기능을 수행한다.The motion compensation calculation block (not shown) is a block that performs motion compensation on a previous frame in the process of compressing and restoring an image, and performs three functions as follows by a program.

첫 째로, 압축된 영상 데이터의 복원 시에 외부로부터 입력되는 데이터가 가변길이 부호화(VLC)와 역이산여현변환(IDCT)을 거치게 되면 해당되는 블록의 모든 계수와 움직임 벡터가 얻어지는 데, 이때 얻어지는 계수들이 인터 모드의 데이터인 경우에 이전 프레임과의 차분 값에 해당되므로, 영상 복원을 위해 다시 이전 프레임의 데이터를 이용한 움직임 보상을 수행한다.First, when the data input from the outside is subjected to variable length coding (VLC) and inverse discrete cosine transform (IDCT) when the compressed image data is restored, all coefficients and motion vectors of the corresponding block are obtained. When the data are in the inter mode, they correspond to difference values from the previous frame, and thus, motion compensation using the data of the previous frame is performed again to restore an image.

두 번째로, 영상 압축과정에서 현재 프레임의 해당되는 매크로 블록이 인터 모드로 처리되어야 할 경우 상기 움직임 추정 연산블록에서의 연산결과에 따른 움직임 벡터를 이용하여 현재 프레임의 매크로 블록으로부터 이전 프레임의 해당되는매크로 블록 데이터 값을 빼주어 그 차분 값을 구한다.Second, when the corresponding macroblock of the current frame is to be processed in the inter mode during image compression, the corresponding frame of the previous frame from the macroblock of the current frame is obtained by using the motion vector according to the operation result of the motion estimation calculation block. The difference value is obtained by subtracting the macroblock data value.

세 번째로, 영상 압축과정에서 모든 압축이 완료된 이후, 최종 연산을 마친 데이터를 역양자화 및 역이산여현변환(IDCT)하고, 이로 부터 얻어지는 데이터를 이용하여 압축되기 이전의 현재 프레임 데이터를 복원하여 다음 프레임의 압축시에 사용될 수 있도록 한다.Third, after all compression is completed in the image compression process, inverse quantization and inverse discrete cosine transform (IDCT) of the data after the final operation is performed, and the current frame data before compression is restored by using the data obtained therefrom. It can be used when compressing frames.

상기 데이터 변환블록(미도시)은 이산여현변환기 및 역이산여현변환기와, 양자화기 및 역양자화기와, 가변길이 부호화기 및 가변길이 복호화기를 포함하며, 영상의 압축 및 복원을 위해 전처리 혹은 후처리를 거친 시간영역의 데이터를 주파수 영역의 데이터로 또는 그 반대로 변환시키고, 이렇게 변환된 데이터를 최종적으로 압축 혹은 복원하는 과정을 담당한다.The data conversion block (not shown) includes a discrete cosine transformer and an inverse discrete cosine transformer, a quantizer and an inverse quantizer, a variable length encoder and a variable length decoder, and have undergone pre- or post-processing to compress and decompress an image. It is responsible for converting the data in the time domain to the data in the frequency domain and vice versa, and finally compressing or restoring the converted data.

상기 이산여현변환기는 외부 카메라 등으로부터 입력되는 시간영역상의 데이터를 주파수영역의 데이터로 변환하는 기능을 수행하고, 상기 역이산여현변환기는외부로부터 입력되는 압축된 데이터 즉, 주파수영의 데이터를 시간영역의 데이터로 변환하는 기능을 수행한다.The discrete cosine transformer converts the data in the time domain input from an external camera to the frequency domain data, and the inverse discrete cosine transformer converts the compressed data input from the outside, that is, the data of frequency domain Performs a function that converts data into data.

상기 양자화기는 상기 이산여현변환기의 통해 변환된 데이터의 전송 효율을 높이기 위하여 특정 값에 의해 양자화하는 기능을 수행하고, 상기 역양자화기는 상기 역이산여현변환기를 통해 변환된 데이터의 최초 값을 복원하기 위해 특정 값에 의해 역양자화하는 기능을 수행한다.The quantizer performs a function of quantizing by a specific value in order to increase the transmission efficiency of the data converted through the discrete cosine transformer, and the inverse quantizer is used to restore the original value of the data converted by the inverse discrete cosine transformer. Dequantizes by a specific value.

상기 가변길이 부호화기는 양자화가 완료된 데이터에 대하여 최종적으로 데이터를 압축하는 기능을 수행하고, 상기 가변길이 복호화기는 역양자화가 완료된데이터에 대하여 최종적으로 데이터를 복원하는 기능을 수행한다. 이들 가변길이 부호화기 및 가변길이 복호화기 블록은 모든 동작을 H.263 혹은 H.261에서 이미 정해진 코드 테이블을 이용하여 연산하므로, 이 코드 데이블만 바꾸면 다양한 방법으로 압축 및 복원하는 가능하게 된다.The variable length coder performs a function of finally compressing data on the quantized data, and the variable length decoder performs a function of finally restoring the data on the dequantized data. Since these variable length encoders and variable length decoder blocks operate all operations using a code table already defined in H.263 or H.261, it is possible to compress and restore them in various ways by changing only these code tables.

한편, 제 2저장부(120) 즉, 인코딩 메모리는 압축저장부(110)가 부호화를 수할 때에 사용되는 영상 압축용 공통 메모리로서, 4비트 어드레스 버스(AB)와 32비트 데이터 버스(DB2)에 의해 엑세스된다. 따라서, 크기는 16워드36비트이다.On the other hand, the second storage unit 120, that is, the encoding memory is a common memory for image compression used when the compression storage unit 110 performs encoding, and is provided on the 4-bit address bus AB and the 32-bit data bus DB2. Is accessed by. Therefore, the size is 16 words 36 bits.

통상적으로, 동영상 처리 알고리즘에서 모든 화상압축은 단위 블록 혹은 매크로 블록을 기준으로 수행된다. 보다 상세하게 설명하면, 전체 프레임은 88화소로 구성되는 단위 블록의 모임으로 분할되어 모든 데이터 처리를 수행하는 데 이용된다. 움직임 추정의 경우 단위 블록이 4개 모인 매크로 블록단위로 수행되고, 움직임 보상의 경우에는 단위 블록을 기준으로 수행된다.In general, all image compression in a moving picture processing algorithm is performed based on a unit block or a macro block. In more detail, the entire frame is 8 It is divided into a group of 8 blocks, which is used to perform all data processing. In the case of motion estimation, four unit blocks are performed in macroblock units, and motion compensation is performed based on unit blocks.

따라서, 제 2저장부(120)는 단위 블록의 움직임 보상만 해주면 되므로, 상기한 바와 같이 16워드36비트 정도의 크기를 가지며, 성능향상을 위하여 2읽기 및 2쓰기 포트를 가지는 듀얼 포트 메모리로 구성되는 것이 바람직하다.Therefore, since the second storage unit 120 only needs to compensate for the motion of the unit block, 16 words as described above. It is preferably composed of dual port memory having a size of about 36 bits and having two read and two write ports for performance.

한편, 제 3저장부(140) 즉, 디코딩 메모리는 압축저장부(110)가 부호화를 수할 때에 사용되는 영상 복원용 공통 메모리로서, 4비트 어드레스 버스(AB)와 32비트 데이터 버스(DB2)에 의해 엑세스되고, 상기 디코딩 메모리와 유사하게 상기의 16워드36비트 정도의 크기를 가지며, 성능향상을 위하여 2읽기, 2쓰기 포트를가지는 듀얼 포트 메모리로 구성되는 것이 바람직하다.Meanwhile, the third storage unit 140, that is, the decoding memory, is a common memory for image restoration used when the compression storage unit 110 performs encoding, and is provided on the 4-bit address bus AB and the 32-bit data bus DB2. Accessed by the 16 words, similar to the decoding memory It is preferably composed of dual port memory having a size of about 36 bits and having two read and two write ports for performance.

한편, 제어부(160) 즉, 마이크로 시이퀀서는 제 1저장부 내지 제 3저장부(100,120,140)와 내부 메모리의 읽기 및 쓰기를 제어하고, 압축복원부(110)의 각 블록에 대한 동작모드지정 및 데이터 흐름을 제어하고, 압축 혹은 복원되는 영상 데이터의 비트 처리율에 대한 계산을 수행하고, 압축복원부(110)의 각 블록에서 발생되는 인터럽트를 처리하고, 움직임 벡터를 연산하고, 압축복원부(110)의 각 블록에서 연산되는 데이터들의 영상 매핑(Mapping)을 수행하고, 압축저장부(110)의 부호화와 복호화를 시분할로 제어한다.Meanwhile, the controller 160, that is, the micro sequencer, controls reading and writing of the first to third storage units 100, 120, and 140 and the internal memory, and specifies an operation mode for each block of the compression restoring unit 110. Control the data flow, perform calculations on the bit rate of the image data being compressed or reconstructed, process interrupts generated in each block of the compression restorer 110, calculate motion vectors, and perform compression restorer 110. Image mapping of the data calculated in each block of) is performed, and the coding and decoding of the compression storage unit 110 are controlled by time division.

본 발명의 실시예에 따른 압축복원장치의 동작을 설명하면 다음과 같다.Referring to the operation of the compression restorer according to an embodiment of the present invention.

먼저, 본 발명의 실시예에 따른 압축과정을 설명하면, 카메라와 같은 외부장치에서 입력되는 동영상 데이터는 압축과정을 거치기 전에 제 1저장부(100)의 지정된 영역에 복사된다. 이렇게 하는 이유는 외부에서 입력되는 데이터의 전송율과 프로세서 내부에서 압축과정을 수행하는 비율에 차이가 나므로, 입력되는 동영상 데이터를 바로 처리할 수 없기 때문이다.First, the compression process according to an embodiment of the present invention, video data input from an external device such as a camera is copied to the designated area of the first storage unit 100 before the compression process. The reason for this is that the difference between the transmission rate of the data input from the outside and the rate of performing the compression process inside the processor, it is not possible to process the input video data immediately.

이때, 제 1저장부(100)에 저장되는 영상 데이터의 형태는 H.263에서 규정하고 있는 픽쳐 포맷에 따라 QCIF(Quarter Common Intermediate Format), CIF(Common Intermediate Format)의 형태가 된다.At this time, the form of the image data stored in the first storage unit 100 is in the form of QCIF (Quarter Common Intermediate Format) or CIF (Common Intermediate Format) according to the picture format defined in H.263.

제 1저장부(100)에 저장되는 영상 데이터는 제어부(160)의 제어단자(ctrl2)를 통해 압축복원부(110)에 제공되고, 여기서 그 프레임의 형태가 결정된다. 이를 위해 압축저장부(110)는 움직임 추정에 의한 판단 과정을 수행한다.The image data stored in the first storage unit 100 is provided to the compression restoring unit 110 through the control terminal ctrl2 of the controller 160, where the shape of the frame is determined. To this end, the compression storage unit 110 performs a determination process based on motion estimation.

주지한 바와 같이, 움직임 추정은 현재 프레임에서 압축하려는 매크로 블록과 이전 프레임의 동일한 위치의 매크로 블록을 이용하여 이루어진다. 즉, 현재 프레임에서 처리중인 매크로 블록의 데이터와 그 위치를 기준으로 이전 프레임의 동일한 위치를 중심으로 -8 - +8개 화소 만큼 화장된 영역에 대하여 각 화소 단위의 차분계산에 의해서 이루어진다. 이는 현재 매크로 블록인 1616화소 각각의 값을 이전 프레임의 동일 위치 매크로 블록을 포함하는 3232로 확장된 영역의 화소 값들과 차분 값을 구함을 의미한다.As is known, motion estimation is performed using a macroblock to be compressed in the current frame and a macroblock at the same position of the previous frame. That is, a difference calculation is performed for each pixel unit for regions that are made up by -8-+8 pixels based on the data of the macroblock being processed in the current frame and the position thereof, based on the same position of the previous frame. This is the current macro block of 16 Each of the 16 pixels contains 32 values of the same-position macro block of the previous frame. The difference between the pixel values and the difference value of the region extended to 32 is obtained.

이와 같은 방법에 의해서 3232화소 영역 가운데서 가장 작은 차분 값을 갖는 위치를 구해내고, 이를 이용하여 현재 프레임에서 처리 중에 있는 매크로 브록에 대하여 움직임 벡터를 구한다. 여기서, 움직임 벡터는 차후에 움직임 보상에 사용되는 값이다.By this method 32 The position having the smallest difference value in the 32 pixel area is obtained, and the motion vector is obtained for the macro block currently being processed in the current frame. Here, the motion vector is a value used for motion compensation later.

그 다음, 상기 움직임 벡터를 기준으로 현재 프레임을 어떤 모드로 전송할 것인가를 판단한다. 즉, 현재 매크로 블록을 인트라의 형태로 압축할 것인지 혹은 인터의 형태로 압축할 것인지를 결정하며, 그 결과에 따라 제 2저장부(120)에 저장되는 데이터의 형태가 달라지게 된다.Next, it is determined in which mode to transmit the current frame based on the motion vector. That is, it is determined whether to compress the current macro block in the form of intra or in the form of inter, and the shape of data stored in the second storage unit 120 is changed according to the result.

만일, 인트라의 형태로 압축할 것이라면, 현재 프레임은 이전 프레임과의 연관성이 전혀 없으므로, 움직임 벡터는 "0"의 값을 갖게 된다. 이 경우 입력된 영상 데이터는 어떠한 조작없이 그대로 제 2저장부(120)에 저장된다.If it is to be compressed in the form of intra, since the current frame has no association with the previous frame, the motion vector has a value of "0". In this case, the input image data is stored in the second storage unit 120 without any manipulation.

만일, 인터의 형태로 압축할 것이라면, 현재의 위치에서 움직임 벡터를 더한위치의 매크로 블록이 현재 처리하려는 매크로 블록과 매우 유사한 상관을 가지므로, 움직임 벡터는 일정한 값을 갖게 된다. 이 경우 압축효율을 높이기 위해 현재의 매크로 블록의 데이터를 그대로 모두 압축하는 것이 아니고, 움직임 벡터에 따른 위치의 매크로 블록과의 차분 값만을 압축하는 방법이 사용되며, 제 2저장부(120)에는 현재의 매크로 블록과 이전 프레임의 해당 매크로 블록과의 차분 값이 저장된다.If it is to be compressed in the form of an inter, the motion vector has a constant value since the macroblock at the current position plus the motion vector has a very similar correlation with the macroblock to be processed. In this case, in order to increase the compression efficiency, a method of compressing all the data of the current macro block as it is, instead of compressing only the difference value with the macro block of the position according to the motion vector is used, and the second storage unit 120 The difference value between the macroblock of and the corresponding macroblock of the previous frame is stored.

그 다음, 매크로 블록의 압축모드에 따라 인트라 혹은 인터의 형태로 저장된 제 2저장부(120) 내부의 데이터는 시간영역의 데이터이므로, 압축복원부(110)의 내부 블록인 이산여현변환기에 의해 주파수 영역의 데이터로 변환된다. 이렇게 변환된 데이터는 압축복원부(110)의 내부 블록인 양자화기에서 양자화 과정을 거친 후 제 2저장부(120)로 저장됨과 동시에 압축복원부(110)의 내부 블록인 가변길이 부호화기에 입력되어 가변길이 부호화된 후 외부로 송신된다.Next, since the data in the second storage unit 120 stored in the form of intra or inter according to the compression mode of the macro block is data in the time domain, the frequency is determined by a discrete cosine transformer, which is an internal block of the compression restoring unit 110. Converted to data in the area. The converted data is stored in the second storage unit 120 after being quantized by the quantizer, which is an internal block of the compression restoring unit 110, and is input to the variable length encoder which is an internal block of the compression restoring unit 110. After variable length coding, it is transmitted to the outside.

현재 처리된 매크로 블록의 압축모드가 인트라인 경우 상술한 바와 같은 압축과정으로 모든 작업이 완료되나, 인터 모드인 경우에는 추가적인 과정이 필요하다. 주지한 바와 같이, 인터인 경우 현재 압축 및 전송된 데이터는 현재 프레임의 완전한 데이터가 아니라 이전 프레임과의 차분 값만이 전송된 것이므로, 송신측에서 원래의 프레임을 복원하기 위해서는 이전 프레임에 대한 데이터가 필요하게 된다.If the compression mode of the currently processed macro block is intra, all the operations are completed by the compression process as described above, but in the inter mode, an additional process is required. As is well known, in case of inter, the current compressed and transmitted data is not the complete data of the current frame but only the difference value from the previous frame. Therefore, the data for the previous frame is needed to restore the original frame. Done.

따라서, 상기와 같은 압축과정이 완료된 이후에 압축된 데이터를 다시 복원하는 과정이 필요하게 된다.Therefore, after the above compression process is completed, a process of restoring the compressed data again is necessary.

이를 위해 본 발명의 실시예에서는 제 2저장부(120)에 저장된 이산여현변환과 양자화만을 거친 데이터를 이용하여 다시 한번 복원과정을 수행한다.To this end, in the embodiment of the present invention, a reconstruction process is performed once again using data that has undergone only discrete cosine transform and quantization stored in the second storage unit 120.

상기 압축된 데이터를 다시 복원하기 위해 압축복원부(110)의 내부 블록인 역양자화기와 역이산여현변환기는 제 2저장부(120)를 엑세스하여 최종 압축되기 이전의 데이터 즉, 주파수 영역의 데이터를 시간 영역의 데이터로 복원하고, 이렇게 복원된 데이터를 다시 제 2저장부(120)에 저장한다.In order to restore the compressed data again, the inverse quantizer and the inverse discrete cosine transformer, which are internal blocks of the compression restoring unit 110, access the second storage unit 120 to recover data before the final compression, that is, data in the frequency domain. The data is restored to the time domain, and the restored data is stored in the second storage unit 120 again.

그 다음, 압축복원부(110) 내부의 움직임 보상 블록은 제 2저장부(120)에 저장된 시간영역으로 변환된 데이터를 엑세스하여 원래의 영상 데이터로 복원한다. 이전 프레임 데이터는 압축복원부(110) 내부의 움직임 추정 블록에서 구한 움직임 벡터를 이용하여 찾아내고, 현재 데이터는 제 2저장부(120)에 저장된 시간영역으로 변환된 데이터를 이용한다.Next, the motion compensation block inside the compression restoring unit 110 accesses the data converted into the time domain stored in the second storage unit 120 and restores the original image data. The previous frame data is found using the motion vector obtained from the motion estimation block inside the compression restoring unit 110, and the current data uses the data converted into the time domain stored in the second storage unit 120.

상기 움직임 보상 블록에서 복원된 영상 데이터는 현재 프레임에 대한 압축이 모두 완료된 후 제 1저장부(100)의 특정 영역에 저장되며, 다음 프레임의 압축을 위해 참조할 프레임 데이터로 사용된다.The image data reconstructed in the motion compensation block is stored in a specific region of the first storage unit 100 after all compression on the current frame is completed and used as frame data for reference for compression of the next frame.

본 발명의 실시예에 따른 복원과정을 설명하면, 먼저, 외부로부터 입력되는 압축된 동영상 데이터는 제 1저장부(100)의 특정 영역에 저장되고, 복원시 제어부(160)의 제어단자(ctrl2)를 통해 압축복원부(110)에 입력되고, 내부의 가변길이 복호화기에서 복호화된 후 제 3저장부(140)의 지정된 영역에 저장된다.Referring to the restoration process according to an embodiment of the present invention, first, the compressed video data input from the outside is stored in a specific area of the first storage unit 100, and the control terminal (ctrl2) of the control unit 160 during restoration The data is input to the compression restoring unit 110 and decoded by an internal variable length decoder and stored in a designated area of the third storage unit 140.

그 다음, 압축복원부(110)는 제 3저장부(140)를 엑세스하여 저장된 부호화 데이터를 독출하며, 그 독출된 데이터 즉, 주파수 영역의 데이터를압축복원부(110)의 내부 블록인 역이산여현변환기와 역양자화기에서 각각 역이산여현변환과 역양자화하여 시간 영역의 데이터로 변환한다. 이렇게 변환된 데이터는 다시 제 2저장부(140)의 지정된 영역에 저장된다.Next, the compression restoring unit 110 accesses the third storage unit 140 to read the stored encoded data, and inversely discretely decodes the read data, that is, data in the frequency domain, as an internal block of the compression restoring unit 110. In the cosine transformer and the inverse quantizer, the inverse discrete cosine transform and inverse quantization are converted into data in the time domain. The converted data is again stored in the designated area of the second storage unit 140.

상기 역이산여현변환된 동영상 데이터는 압축복원부(110) 내부의 움직임 보상 블록에서 그 프레임의 모드에 따라 그리고 현재 처리하고 있는 매크로 블록의 모드에 따라 해당되는 움직임 보상 과정을 거치게 된다.The inverse discrete cosine transformed video data undergoes a corresponding motion compensation process according to the mode of the frame and the mode of the macroblock currently being processed in the motion compensation block inside the compression restoring unit 110.

만일, 현재 처리되고 있는 매크로 블록이 인트라의 형태이면, 현재 매크로 블록의 최종적인 복원을 위해서는 별도로 이전 프레임이 필요없게 된다. 따라서. 현재 처리 중인 매크로 블록은 그 자체만으로도 완전한 동영상을 포함하고 있으므로, 별도의 움직임 보상이 필요없이 단지 역이산여현변환과 역양자화 과정을 거쳐서 제 3저장부(140)에 저장되어 있던 데이터가 바로 외부의 제 1저장부(100)로 전송되어 저장된다.If the macro block currently being processed is in the form of intra, the previous frame is not necessary separately for the final restoration of the current macro block. therefore. Since the macro block currently being processed contains a complete video by itself, the data stored in the third storage unit 140 through the inverse discrete cosine transform and inverse quantization without any motion compensation is required. The data is transmitted to and stored in the first storage unit 100.

본 발명의 실시예에 따른 영상의 압축 및 복원에는 기본적으로 압축과정과 복원과정으로 분리하여 제어하는 방법이 사용되며, 영상 압축을 위해 움직임 추정과, 움직임 보상과, 이산여현변환과, 양자화와, 가변길이 부호화의 과정을 거치고, 영상 복원을 위해 가변길이 복호화와, 역양자화와, 역이산여현변환과, 움직임 보상의 과정을 거치게 된다.In the compression and reconstruction of an image according to an embodiment of the present invention, a method of controlling and separating the image into a compression process and a reconstruction process is basically used. Motion compression, motion compensation, discrete cosine transform, quantization, Variable length coding is performed, and variable length decoding, inverse quantization, inverse discrete cosine transform, and motion compensation are performed for image reconstruction.

도 3은 본 발명의 실시예에 따른 영상압축복원장치의 압축복원방법을 설명하기 위한 플로우 챠트이다. 동도면에서 encoding이라고 표시된 부분(ST200)은 입력되는 동영상 데이터를 압축하는 플로우를 나타내며, decoding이라고 표시된부분(ST300)은 압축된 영상 데이터를 복원하기 위한 플로우를 나타내며, 본 발명의 실시예에 따른 압축과 복원과정은 각각 ENC pole(ST400)과 DEC pole(ST500)이라는 단계를 통해서만 천이할 수 있다.3 is a flowchart illustrating a compression restoration method of an image compression restoration apparatus according to an embodiment of the present invention. In the figure, a portion ST200 denoted encoding represents a flow for compressing input video data, and a portion ST300 denoted decoding represents a flow for restoring compressed image data, and according to an embodiment of the present invention, compression is performed. The and recovery process can only be transitioned through the steps of ENC pole (ST400) and DEC pole (ST500), respectively.

상기 ENC pole은 압축의 각 단계를 수행하다가 현 단계가 완료되면 다음 압축 단계로 넘어가기 전에 항상 수행되는 단계이다. 상기 ENC pole에서는 먼저 복원단계가 유용한지 혹은 유용하지 않은지 즉, 디코더가 인에이블되었는지 혹은 디스에이블되었는지를 검사하고, 만일 이용가능하다면 해당되는 복원단계로 천이하고, 이용 가능하지 않다면 다음 압축단계를 계속해서 진행하도록 한다.The ENC pole performs each stage of compression and is always performed after the current stage is completed before moving on to the next compression stage. The ENC pole first checks whether the reconstruction step is useful or not useful, i.e. whether the decoder is enabled or disabled, transitions to the reconstruction step if available, and continues with the next compression step if not available. Let's proceed.

본 발명의 실시예에 따라 제어부(160) 내부에는 복원이 유용한가를 나타내는 플래그가 존재하는 바, 복원단계로의 천이유무는 상기 플래그의 상태를 검사함으로서 판단된다. 그리고, 복원단계로 천이하기 전에 반드시 현재의 압축 상태를 컨트롤 레지스터(R1)에 저장하는 데, 이는 특정 복원단계가 완료된 이후에 정확히 현재 진행중이던 압축단계로 되돌아올 수 있게 한다.According to an embodiment of the present invention, there is a flag indicating whether the restoration is useful in the controller 160, and whether or not the transition to the restoration step is determined by examining the state of the flag. In addition, the current compression state is stored in the control register R1 before the transition to the restoration step, which allows the user to return to the compression step that is currently in progress after the specific restoration step is completed.

상기 DEC pole은 복원의 각 단계를 수행하다가 현 단계가 완료되면 다음 복원 단계로 넘어가기 전에 항상 수행되는 단계이다. 상기 DEC pole에서는 먼저 압축단계가 유용한지 혹은 유용하지 않은지 즉, 인코더가 인에이블되었는지 혹은 디스에이블되었는지를 검사하고, 만일 이용가능하다면 해당되는 압축단계로 천이하고, 이용 가능하지 않다면 다음 복원단계를 계속해서 진행하도록 한다.The DEC pole is a step that is always performed after each step of recovery and before the current step is completed, before moving on to the next recovery step. The DEC pole first checks whether the compression step is useful or not useful, i.e. whether the encoder is enabled or disabled, transitions to the corresponding compression step if it is available, and if not available, continues with the next reconstruction step. Let's proceed.

본 발명의 실시예에 따라 제어부(160) 내부에는 압축이 유용한가를 나타내는 플래그가 존재하는 바, 압축단계로의 천이유무는 상기 플래그의 상태를 검사함으로서 판단된다. 그리고, 압축단계로 천이하기 전에 반드시 현재의 복원 상태를 컨트롤 레지스터(R2)에 저장하는 데, 이는 특정 압축단계가 완료된 이후에 정확히 복원단계로 되돌아올 수 있게 한다.According to an embodiment of the present invention, there is a flag indicating whether compression is useful in the control unit 160. The presence or absence of a transition to the compression step is determined by checking the state of the flag. Then, before the transition to the compression step, the current recovery state is stored in the control register R2, which allows the user to return to the recovery step exactly after the specific compression step is completed.

이하, 본 발명의 실시예에 따른 영상압축복원장치의 압축복원방법을 도 3의 플로우 챠트를 인용하여 설명한다.Hereinafter, a compression restoration method of an image compression restoration apparatus according to an embodiment of the present invention will be described with reference to the flowchart of FIG. 3.

먼저, 아이들 루프(idle_loop)는 입력된 영상데이터를 압축할것인지 복원할것이지를 판단하는 단계(ST100)이다.First, the idle loop (idle_loop) determines whether to compress or restore the input image data (ST100).

보다 상세하게 설명하면, 상기 아이들 루프(idle loop)는 하드웨어적으로 압축 혹은 복원을 수행할 준비가 되었는가를 판단하고 데이터 처리의 시작을 알리는 부분이다. 즉, 제어부(160) 내부의 컨트롤 레지스터(R1,R2)를 이용하여 내부적으로 혹은 외부적으로 강제로 압축과 복원을 제어할 수 있는 데, 이 단계에서는 컨트롤 레지스터(R1,R2)의 값을 지속적으로 검사함으로써 압축할 것인지 혹은 복원할 것인지를 판단하고 그 판단에 따른 과정을 진행한다.In more detail, the idle loop is a part that determines whether the hardware is ready to perform compression or restoration and notifies the start of data processing. That is, by using the control registers R1 and R2 inside the control unit 160, it is possible to forcibly control compression and restoration internally or externally. In this step, the values of the control registers R1 and R2 are continuously maintained. In this case, it determines whether to compress or restore and proceeds according to the judgment.

상기 제 100단계(ST100)의 판단 결과 압축으로 판단될 경우 컨트롤 레지스터(R)의 값이 "0"으로 설정되고, 움직임 추정과 움직임 보상과 이산여현변환과 양자화와 가변길이 부호화의 압축 과정이 단계적으로 수행된다(ST200).When it is determined that the compression results in the 100th step (ST100), the value of the control register (R) is set to "0", and the compression process of the motion estimation, the motion compensation, the discrete cosine transform, the quantization, and the variable length coding is phased. It is performed (ST200).

본 발명의 실시예에 따라 상기 제 200단계(ST200)에서는 상기 압축 과정으로 ENC0, Wait CCD, ENC1, ENC2, ENC3, Encode reset의 단계를 순차적으로 수행한다.According to an embodiment of the present invention, in step 200, steps of ENC0, Wait CCD, ENC1, ENC2, ENC3, and Encode reset are sequentially performed as the compression process.

상기 ENC0 단계는 최초 압축이 시작되는 부분으로 아이들 루프(idle loop)에서 압축으로 혹은 복원의 처리여부를 결정한 이후에 인코딩이 유용한 경우 시작하는 단계로 컨트롤 레지스터(R1)를 "4"로 설정한다. 따라서, 복원을 수행하고 되돌아 올때에 컨트롤 레지스터(R1)를 참조함으로써, 다음에 이어지는 Wait CCD단계부터 수행할 수 있게 된다.In the ENC0 step, the control register R1 is set to "4" as a starting point when encoding is useful after determining whether to perform compression or restoration in an idle loop as a part of initial compression. Therefore, by performing the restoration and returning to the control register R1, it is possible to perform the next Wait CCD step.

상기 Wait CCD 단계는 시스템 외부에 연결된 화상표시장치인 CCD로부터 입력되는 신호를 압축복원부(110)에서 처리할 수 있는가에 대해 판단하는 단계이다. 만일 CCD가 유효하다면 압축과정을 계속진행하고, 그렇지 않다면 CCD가 유효할 때까지 계속 기다리게 된다.The wait CCD step is a step of determining whether the compression restoring unit 110 can process a signal input from a CCD which is an image display device connected to the outside of the system. If the CCD is valid, the compression process continues, otherwise it waits until the CCD is valid.

상기 ENC1 단계는 다음과 같은 기능을 수행한다.The ENC1 step performs the following functions.

먼저, 해당 프레임의 픽쳐 헤더에 해당되는 부분만을 인코딩하기 위해 가변길이 부호화기를 통해 압축을 수행하고, 양자화를 위해 현재까지 인코딩된 전체 비트열의 수를 계산하고, 이를 기초로 양자화 값을 계산한다.First, compression is performed through a variable length encoder to encode only a portion corresponding to a picture header of a corresponding frame, a total number of bit strings encoded to date for quantization is calculated, and a quantization value is calculated based on this.

그 다음, 현재 입력된 영상 데이터에 대한 모드 즉, 인트라 혹은 인터를 결정하기 위해 움직임 추정연산을 수행한다. 이때에는 압축복원부(100) 내부의 움직임 추정 연산블록이 사용되는데 움직임 연산과정은 많은 시간이 소요되는 부분이므로 각각의 매크로 블록들을 압축할 때마다 이 과정을 수행하는 것은 비효율적이다. 특히, 움직임 추정 과정은 압축시에만 되용되므로 움직임 보상 블록이나 이산여현변환 블록 및 역이산여현변환 블록들과 같이 복원과정과의 시분할에 따른 문제가 없고, 압축 플로우에서도 쓰이는 경우가 1매크로 블록을 코딩할 때 한 번씩뿐이라는 점을 고려하면, 이 과정은 다른 기능블록들과의 연산과정과 병렬로 진행될 수 있다.Next, a motion estimation operation is performed to determine a mode, i.e., intra or inter for the currently input image data. In this case, the motion estimation calculation block inside the compression restoring unit 100 is used. Since the motion calculation process is a time-consuming part, it is inefficient to perform this process every time each macro block is compressed. In particular, since the motion estimation process is used only during compression, there is no problem of time division with the reconstruction process, such as a motion compensation block, a discrete cosine transform block, and an inverse discrete cosine transform block. Considering that this is only once, this process can be performed in parallel with the operation with other functional blocks.

따라서, 상기 과정은 매크로 블록의 위치에 따라 다음과 같이 차별적으로 앞서 언급한 움직임 추정의 모든 단계를 처리해 주고 다음 단계로 넘어간다. 일단 첫 번째 매크로 블록에 대한 움직임 추정이 완료되면, 다음으로 이어지는 이 매크로 블록의 6개 블록에 대한 압축과정을 처리하는 동안에 병렬로 현재 처리중인 매크로 블록 다음으로 오는 매크로 블록의 데이터를 외부의 제 1저장부(100)로부터 읽어와서 움직임 추정 연산블록 내의 국부메모리인 제 1메모리(미도시)에 저장하는 기능을 수행한다,Therefore, the above process differentially processes all the steps of the above-mentioned motion estimation according to the position of the macro block and proceeds to the next step. Once the motion estimation for the first macro block is completed, the data of the macro block that comes after the macro block currently being processed in parallel is processed in parallel during the subsequent compression process for the next six blocks of the macro block. Reads from the storage unit 100 and stores in a first memory (not shown) which is a local memory in the motion estimation calculation block.

그 다음, 움직임 추정 블록에 의해 연산된 움직임 벡터를 이용하여 현재 프레임의 매크로 블록에서 가장 근사적인 차분값을 갖는 부분을 이전 프레임에서 찾아내고 이 두가지 데이터를 이용하여 움직임 보상 과정을 수행한다.Next, using the motion vector calculated by the motion estimation block, the portion having the most similar difference value in the macro block of the current frame is found in the previous frame, and the motion compensation process is performed using these two data.

상기 움직임 보상과정이 완료되면, 상기 과정에 의에 출력되는 결과 즉, 현재 프레임의 데이터와 이전 프레임 데이터와의 차분값을 이용하여 이산여현변환 및 양자화를 수행한다.When the motion compensation process is completed, discrete cosine transform and quantization are performed by using the difference output between the data of the current frame and the previous frame data.

상기 과정이 모두 완료되면 ENC pole을 통해 복원과정의 수행여부를 판단하게 되고, 만일 복원단계로 천이하게 되면 컨트롤 레지스터(R1)를 "2"로 설정하여 복원과정을 수행하고 되돌아 올때에 ENC2단계부터 다시 시작할 수 있도록 한다.When the above process is completed, it is determined whether the restoration process is performed through the ENC pole, and if the transition to the restoration step is performed, the control register R1 is set to "2" to perform the restoration process. Allow it to start again.

상기 ENC2단계는 ENC1단계에서 이산여현변환 및 양자화과정을 거친 데이터에 대하여 압축복원부(110) 내부의 가변길이부호기를 통하여 압축된 코드를 얻는다.In step ENC2, a compressed code is obtained through a variable length encoder inside the compression restoring unit 110 for data that has undergone a discrete cosine transform and quantization process in step ENC1.

이와 같이 얻어진 압축된 코드는 이전 프레임과의 차분값에 기초한 데이터로다시 원래의 프레임 데이터로 복원되어야 하므로, 역이산여현변화된 후 역양자화된다.The compressed code thus obtained is data based on the difference value with the previous frame, and thus needs to be restored to the original frame data.

또한, 상기 ENC2단계에서는 현재 처리하려는 매크로 블록이 해당 프레임의 첫번째가 아닌 경우에 이전 프레임에서 현재 처리 중인 매크로 블록 다음으로 오는 매크로 블록의 위치를 기준으로 상,하,좌,우 방향으로 각각 8만큼씩 확장된 영역을 계산하고, 이 영역의 데이터를 외부의 제 1저장부(100)로부터 읽어와서 움직임 추정 연산블록 내의 국부메모리인 제 2메모리(미도시)에 저장하는 과정을 수행한다.In addition, in the ENC2 step, when the macroblock to be processed is not the first of the frame, each of 8 blocks in the up, down, left, and right directions based on the position of the macroblock next to the macroblock currently being processed in the previous frame is used. The expanded area is calculated and the data of the area is read from the external first storage unit 100 and stored in a second memory (not shown) which is a local memory in the motion estimation calculation block.

상기 과정이 모두 완료되면 ENC pole을 통해 복원과정의 수행여부를 판단하게 되고, 만일 복원단계로 천이하게 되면 컨트롤 레지스터(R1)를 "3"으로 설정하여 복원과정을 수행하고 되돌아 올때에 ENC3단계부터 다시 시작할 수 있도록 한다.When all the above processes are completed, it is determined whether the restoration process is performed through the ENC pole. If the transition to the restoration step is performed, the control register R1 is set to "3" to perform the restoration process. Allow it to start again.

상기 ENC3단계는 ENC2단계를 거쳐서 복원된 영상 데이터와 이전 프레임 데이터를 이용하여 움직임 보상연산을 수행하고, 현재 처리하려는 매크로 블록이 첫 번째가 아닌 경우에 현재 처리중인 매크로 블록 다음으로 오는 매크로 블록 데이터를 이용하여 움직임 추정 연산과정을 수행한다. 이때 결과하는 각종 데이터 즉, 매크로 블록 형태의 움직임 벡터는 다음 매크로 블록에 대한 ENC1 내지 ENC3단계에 이르는 과정을 수행할 때 시간적 지연없이 바로 이용될 수 있도록 한다.In step ENC3, a motion compensation operation is performed using the image data and previous frame data reconstructed in step ENC2, and when the macroblock to be processed is not the first, the macroblock data that comes after the current macroblock is processed. The motion estimation operation is performed by using In this case, the resulting various data, that is, the motion vector in the form of a macro block, can be used immediately without time delay when performing the process of the steps ENC1 to ENC3 for the next macro block.

상기 과정이 모두 완료되면, ENC pole을 통해 복원과정의 수행여부를 판단하게 되고, 만일 복원단계로 천이하게 되면 컨트롤 레지스터(R1)를 "4"로 설정하여 복원과정을 수행하고 되돌아 올때에 Encoder reset단계부터 다시 시작할 수 있도록 한다.When the above process is completed, it is determined whether the restoration process is performed through the ENC pole, and if the transition to the restoration phase is performed, the control register (R1) is set to "4" to perform the restoration process and return to Encoder reset. Allow you to start over.

상기 Encoder reset단계는 1프레임에 대한 인코딩이 완료된 후 혹은 압축하려는 모든 시이퀀스가 종료되어 압축과정이 더이상 유효하지 않을 경우에 수행되는 단계로 압축과정을 인에이블시키고 다음단계로 넘어간다. 이 단계는 종료되면, ENC pole단계를 통해 압축의 수행여부를 판단하게 되고, 이때 복원단계로 천이하게 되면 컨트롤 레지스터(R1)를 "0"으로 설정하여 복원을 수행하고 되돌아 올때에 ENC0단계부터 다시 시작할 수 있도록 한다.The encoder reset step is a step performed after the encoding for one frame is completed or when all the sequences to be compressed are terminated and the compression process is no longer valid. The compression process is enabled and the process proceeds to the next step. When this step is finished, it is determined whether to perform compression through the ENC pole step. If the transition to the recovery step is performed at this time, the control register R1 is set to "0" to restore and then return from the ENC0 step. Get started.

한편, 상기 제 100단계(ST100)의 판단 결과 복원을 수행해야 할 경우 가변길이 복호화와 역양자화와 역이산여현변환과 움직임 보상의 복원과정을 단계적으로 수행한다(ST200).On the other hand, if it is necessary to restore the determination result of the 100th step (ST100), the variable length decoding, inverse quantization, inverse discrete cosine transform, and the restoration of motion compensation are performed step by step (ST200).

본 발명의 실시예에 따라 상기 제 300단계(ST300)에서는 상기 복원과정으로 DEC0, Wait LCD, DEC prestage1, DEC prestage2, DEC prestage3의 단계를 순차적으로 수행하고, 처리하려는 영상데이터의 모드에 따라 DEC1, DEC2, DEC3, DEC4의 단계를 수행하고, 마지막으로 Decoder reset의 단계를 수행한다.According to an embodiment of the present invention, in step 300, the steps of DEC0, Wait LCD, DEC prestage1, DEC prestage2, and DEC prestage3 are sequentially performed as the restoration process, and DEC1, Perform the steps of DEC2, DEC3, and DEC4, and finally perform the steps of Decoder reset.

상기 DEC0단계는 최초 복원과정이 시작되는 단계로서 상기 아이들 루프(idle loop)에서 압축 혹은 복원의 처리 여부를 결정한 이후에 복원이 유용한 경우 시작하는 단계이다. 이 단계에서는 컨트롤 레지스터(R5)를 "5"로 설정함으로써, 현 단계 즉, DEC0단계를 완료한 후 압축을 수행하고 다시 복원과정으로 되돌아 올 때에 다음에 이어지는 Wait LCD단계부터 연속해서 수행할 수 있도록 한다.The DEC0 step is a step in which an initial restoration process is started. If the restoration is useful after determining whether to process compression or restoration in the idle loop, it starts. In this step, the control register R5 is set to " 5 " so that compression can be performed after completing the current step, that is, the DEC0 step, and then resumed from the next Wait LCD step. do.

상기 Wait LCD단계는 시스템 외부에 연결된 화상표시장치인 LCD로부터 복원된 신호를 처리할 수 있는가를 판단하는 단계이다. 만일 LCD가 유효하다면 복원과정을 계속 진행하게 되고, 유효하지 않다면 LCD가 유효할 때까지 계속 기다리게 된다.The wait LCD step is a step of determining whether it is possible to process a signal restored from the LCD which is an image display device connected to the outside of the system. If the LCD is valid, the restoration process will continue. If not, the LCD will continue to wait until the LCD is valid.

상기 DEC prestage1단계에서는 외부의 제 1저장부(100)로부터 입력되는 압축된 영상데이터를 받아서 1비트 단위로 검색을 진행하며, 프레임의 최초 시작코드 즉, PSC(Picture Start Code)를 찾는다. 이때에는 압축복원부(110) 내부의 가변길이 복호화기가 사용되며, 상기 PSC를 찾을 때까지 압축된 데이터를 계속 읽어들이면서 진행된다.In the DEC prestage1 step, the compressed image data received from the external first storage unit 100 is received and searched in units of 1 bit, and the first start code of the frame, that is, PSC (Picture Start Code) is found. In this case, a variable length decoder inside the compression restoring unit 110 is used, and the compressed data is continuously read until the PSC is found.

또한, 상기 DEC prestage1단계에서는 외부로부터 읽어들이는 압축된 영상데이터가 부족할 경우 즉, 입력 버퍼가 비어있는 경우와 원하는 PSC코드를 찾은 경우 중 한 가지라도 만족하면 현 단계를 종료하고, 상기 DEC pole에 의해 압축과정의 수행여부를 판단한다. 만일 압축과정으로 천이하게 된다면, 전자의 경우 컨트롤 레지스터(R2)를 "6"으로 설정하여 압축을 수행하고 되돌아올때 다시 현 단계를 시작하여 PSC코드를 찾을 수 있도록 하고, 후자의 경우 컨트롤 레지스터(R2)를 "7"로 설정하여 압축을 수행하고 되돌아올때 다음에 이어지는 DEC prestage2단계부터 연속해서 수행할 수 있도록 한다.In the DEC prestage step 1, if the compressed image data read from the outside is insufficient, that is, if the input buffer is empty or one of the desired PSC codes is found, the current step is terminated. It is determined whether the compression process is performed. If the transition to the compression process occurs, the former sets the control register (R2) to "6" to perform compression and, upon returning, to start the current step again to find the PSC code, and in the latter case the control register (R2). ) Is set to "7" so that compression can be performed consecutively from the next DEC prestage2 on return.

상기 DEC prestage2단계에서는 외부의 제 1저장부(100)로부터 입력되는 압축된 영상데이터를 받아서 1비트 단위로 검색을 진행하며, 프레임의 GOB(Group of block) 혹은 MB(Macro Block)헤더를 찾는다. 이때에는 압축복원부(110) 내부의 가변길이 복호화기가 사용되며, 헤더부분을 찾을 때까지 압축된 영상 데이터를 계속 읽어들이면서 진행된다.In the DEC prestage2 step, the compressed image data input from the external first storage unit 100 is received and searched in units of 1 bit, and the GOB (Group of Block) or MB (Macro Block) header of the frame is found. In this case, the variable length decoder inside the compression restoring unit 110 is used, and the compressed image data is continuously read until the header portion is found.

또한, 상기 DEC prestage2단계에서는 외부로부터 읽어들이는 압축된 영상데이터가 부족할 경우 즉, 입력버퍼가 비어있는 경우와 원하는 헤더부분을 찾는경우중 한 가지라도 만족하면 현 단계를 종료하고, 상기 DEC pole에 의해 압축과정의 수행여부를 판단한다. 이때, 압축과정으로 천이하게 된다면, 전자의 경우 컨트롤 레지스터(R2)를 "7"로 설정하여 압축을 수행하고 되돌아올 때 다시 현 단계부터 시작할 수 있도록 하고, 후자의 경우 컨트롤 레지스터(R2)를 "8"로 설정하여 압축을 수행하고 되돌아올 때 다음에 이어지는 DEC prestage3단계부터 순차적으로 수행할 수 있도록 한다.In the DEC prestage2 step, if the compressed image data read from the outside is insufficient, that is, if the input buffer is empty or one of the desired header parts is satisfied, the current step is terminated and the DEC pole is terminated. It is determined whether the compression process is performed. At this time, if the transition to the compression process, in the former case the control register (R2) is set to "7" to perform the compression and return to start again from the current step, and in the latter case the control register (R2) " Set it to 8 "so that compression can be performed sequentially when the next time it comes back.

상기 DEC prestage3단계에서는 외부의 제 1저장부(100)로부터 입력되는 압축된 영상데이터를 받아서 1비트 단위로 검색을 진행하며, 프레임의 최소 단위인 블록에 대한 데이터 즉, 각 블록내 64개 화소에 대한 계수값들을 찾아 제 3저장부(140)에 저장한다. 이 과정에서 압축복원부(110) 내부의 가변길이 부호화기가 사용되며 블록 단위의 검색이 진행된다.In the DEC prestage 3 step, the compressed image data input from the external first storage unit 100 is received and searched in units of 1 bit, and the data for the block that is the minimum unit of the frame, that is, 64 pixels in each block The coefficient values are found and stored in the third storage unit 140. In this process, the variable length encoder inside the compression restoring unit 110 is used, and a block unit search is performed.

그 다음, 상기 DEC prestage3단계에서는 상기 가변길이 복호화기로부터 받아들인 블록 단위의 데이터가 어떤 모드에서 압축된 것인가를 판단한다. 즉, H.263에서 규정하는 매크로 블록의 형태 중 어떤 범주에 속하는가를 판단하여 해당하는 복원 알고리즘을 적용할 수 있도록 하고, 그 판단결과에 따라 역이산여현변환 및 역양자화를 수행한 후 가변길이 복호화기에 의해 해석되어 받아들인 움직임 벡터를 이용하여 최종적인 움직임 벡터를 계산한다.Next, in the DEC prestage 3 step, it is determined in which mode the block data received from the variable length decoder is compressed. In other words, it is possible to apply the corresponding reconstruction algorithm by judging which category among the types of macro blocks specified in H.263, and performing inverse discrete cosine transform and inverse quantization according to the determination result and then variable length decoding. The final motion vector is calculated using the motion vectors interpreted and accepted by the machine.

상기 DEC prestage3단계에서 다음 단계로 넘어갈 수 있는 경우의 동작을 설명하면 다음과 같다.The operation in the case where it is possible to proceed to the next step in the DEC prestage 3 step is as follows.

첫째, 외부로부터 읽어들이는 압축된 영상데이터가 부족할 경우 즉, 입력버퍼가 비어있는 경우 현 단계를 종료하고, 상기 DEC pole에 의해 압축과정의 수행여부를 판단한다. 이때, 압축과정으로 천이하게 된다면, 컨트롤 레지스터(R2)를 "8"로 설정하여 압축을 수행하고 되돌아올 때 다시 현 단계부터 연속해서 시작할 수 있도록 한다.First, when the compressed image data read from the outside is insufficient, that is, the input buffer is empty, the current step is terminated, and it is determined whether the compression process is performed by the DEC pole. At this time, if the transition to the compression process, the control register (R2) is set to "8" to perform the compression and return to continue from the current step again when returning.

둘째, 블록에 대한 정보를 분석한 결과 매크로 블록의 형태가 코드화되지 않은 상태(not coded)인 경우, 즉 현재 처리중인 블록에 대한 계수 값이 전혀 없는 경우 이전 프레임의 동일한 위치의 매크로 블록 데이터를 그대로 이용함과 아울러 현 단계를 종료하고, 상기 DEC pole에 의해 압축과정의 수행여부를 판단한다. 이때, 압축과정으로 천이하게 된다면, 컨트롤 레지스터(R2)를 "1"로 설정하여 압축을 수행하고 되돌아올 때 다음의 DEC1단계부터 연속해서 시작할 수 있도록 한다.Second, when the information on the block is analyzed and the form of the macro block is not coded, that is, when there is no count value for the block currently being processed, the macro block data at the same position of the previous frame is retained. In addition, the current step is terminated, and the DEC pole determines whether the compression process is performed. At this time, if the transition to the compression process, the control register (R2) is set to "1" to perform the compression and return to start from the next DEC1 step in succession.

셋째, 상기 블록에 대한 정보를 분석한 결과 매크로 블록의 형태가 계수가 없는 형태인 경우, 즉 이전 프레임중에서 움직임 벡터에 의해 지정되는 부분의 매크로 블록을 그대로 사용하는 경우 현단계를 종료하고, 상기 DEC pole에 의해 압축과정의 수행여부를 판단한다. 이때, 압축과정으로 천이하게 된다면, 컨트롤 레지스터(R2)를 "2"로 설정하여 압축을 수행하고 되돌아올 때 다음의 DEC2단계부터 연속해서 시작할 수 있도록 한다.Third, when the information on the block is analyzed and the macroblock has no coefficient, that is, when the macroblock of the part designated by the motion vector in the previous frame is used as it is, the current step ends, and the DEC The pole determines whether the compression process is performed. At this time, if the transition to the compression process, the control register (R2) is set to "2" to perform the compression and return from the next DEC2 step to start continuously.

넷째, 상기 블록에 대한 정보를 분석한 결과 모든 계수 값이 존재하여 역이산여현변환이 필요한 경우 압축복원부(110) 내부의 블록인 역이산여현변환기 및 역양자화기를 이용하여 데이터 변환을 수행한 후 현단계를 종료하고, 상기 DEC pole에 의해 압축과정의 수행여부를 판단한다. 이때, 압축과정으로 천이하게 된다면, 컨트롤 레지스터(R2)를 3으로 설정하여 압축을 수행하고 되돌아올 때 다음의 DEC3단계부터 시작할 수 있도록 한다.Fourth, if the result of analyzing the information on the block is that all the coefficient values are present and the inverse discrete cosine transform is required, data conversion is performed using an inverse discrete cosine transformer and inverse quantizer, which are blocks inside the compression restoring unit 110. After the current step, it is determined whether the compression process is performed by the DEC pole. At this time, if the transition to the compression process, the control register (R2) is set to 3 so that the compression can be started from the next DEC3 step when returning.

한편, 상기 DEC1단계는 가변길이 복호화기를 통해 얻어진 움직임 벡터를 이용하여 블록단위의 움직임보상을 한다. 이때 사용되는 움직임 벡터는 이미 상기 DEC prestage3단계를 통해 구해졌으므로, 이 단계에서는 그 연산된 움직임 벡터를 이용하여 이전 프레임에서 해당되는 블록의 위치를 찾아 외부의 제 1저장부(100)로부터 읽어들이고, 압축복원부(110) 내부의 움직임 보상블록을 통하여 최종적인 현재 프레임 데이터를 복원하게 된다.Meanwhile, the DEC1 step compensates for the motion of each block by using the motion vector obtained through the variable length decoder. At this time, since the motion vector to be used has already been obtained through the DEC prestage 3 step, in this step, the position of the block corresponding to the previous frame is found and read from the external first storage unit 100 using the calculated motion vector. The final current frame data is restored through the motion compensation block inside the compression restoring unit 110.

그리고, 상기 DEC1단계를 수행할 수 있는 경우는 현재 진행하는 블록이 인터 형태인 동시에 코드화되지 않은 상태(not coded)일 때이다.The case where the DEC1 step can be performed is when the current block is in an inter form and is not coded.

이에 반해서, 상기 DEC1단계를 종료하는 경우는 1매크로 블록에 포함되는 6개의 블록을 모두 처리한 후 또는 6개의 블록을 모두 처리하지 못한 때로 구분된다. 전자의 경우 상기 DEC prestage2단계로 넘어가서 다음 매크로 블록에 대한 데이터를 가변길이 부호화기를 통해 입력받을 수 있도록 하고, 후자의 경우 나머지 블록들을 처리해야 하므로, 종료 후 상기 DEC pole에 의해 압축과정의 수행여부를 판단하고, 이때, 압축과정으로 천이하게 된다면, 컨트롤 레지스터(R2)를 "1"로 설정하여 압축을 수행하고 되돌아올 때 현 단계를 다시 시작할 수 있도록 한다.On the contrary, when the DEC1 step is completed, it is divided into when all six blocks included in one macro block are processed or when all six blocks are not processed. In the former case, the process proceeds to the DEC prestage2 step so that the data for the next macro block can be input through the variable length encoder, and in the latter case, the remaining blocks must be processed. After completion, the compression process is performed by the DEC pole. In this case, if a transition to the compression process occurs, the control register R2 is set to "1" so that the current step can be restarted when the compression is performed and returned.

상기 DEC2단계는 상기 DEC1단계와 동일한 기능을 수행하나 단지 이 단계를수행할 수 있는 경우는 상기 DEC prestage3단계에서 해석한 매크로 블록의 형태가 인터인 동시에 인코딩된 형태가 "0"인 경우 즉, 코디드 블록 패턴(CBP:Coded Block Pattern)이 "0"인 경우이다. 이 단계를 종료할 수 있는 경우는 상기 DEC prestage3과 동일하므로 이하 그 상세한 설명은 생략하기로 한다.The DEC2 step performs the same function as the DEC1 step, but can only perform this step, when the macroblock type interpreted in the DEC prestage3 is inter and the encoded form is "0". The coded block pattern (CBP) is "0". If this step can be terminated is the same as the DEC prestage 3 will be omitted below.

상기 DEC3단계는 상기 DEC1단계와 동일한 기능을 수행하나 단지 이 단계를 수행할 수 있는 경우는 상기 DEC prestage3단계에서 해석한 매크로 블록의 형태가 인트라이거나 인터이면서 코디드 블록 패턴(CBP:Coded Block Pattern)이 "1"인 경우이다. 이 단계가 종료되면, 상기 DEC pole단계에 의해 압축과정의 수행여부를 판단하고, 이때, 압축과정으로 천이하게 된다면, 컨트롤 레지스터(R2)를 "4"로 설정하여 압축을 수행하고 되돌아올 때 DEC4단계부터 다시 시작할 수 있도록 한다.The DEC3 step performs the same function as the DEC1 step, but if only this step can be performed, the coded block pattern (CBP: Coded Block Pattern (CBP)) is an intra or inter form of the macroblock interpreted in the DEC prestage3 step. Is "1". When this step is finished, it is determined whether or not the compression process is performed by the DEC pole step. At this time, if it is transitioned to the compression process, the control register R2 is set to "4" to perform compression and return. Allow you to start over.

상기 DEC4단계는 상기 DEC3단계에서 수행한 결과를 가지고 최종적으로 움직임 보상을 수행한다. 이 단계를 종료하는 경우는 6개의 블록을 모두 처리한 때 또는 6개의 블록을 모두 처리하지 못한 때로 구분된다. 전자의 경우 상기 DEC prestage2단계로 넘어가서 다음 매크로 블록에 대한 데이터를 가변길이 복호화기를 통해 입력받을 수 있도록 하고, 후자의 경우 나머지 블록들을 처리해야 하므로, 상기 DEC prestage3단계로 넘어가서 다음 블록에 대한 데이터를 가변길이 복호화기를 통해 입력받을 수 있도록 한다.The DEC4 step finally performs motion compensation with the result of the DEC3 step. The end of this step is divided into when all six blocks are processed or when all six blocks are not processed. In the former case, the process proceeds to the DEC prestage2 step so that the data for the next macro block can be input through the variable length decoder, and in the latter case, the remaining blocks must be processed. To be input through the variable-length decoder.

본 발명의 실시예에 따른 Decoder reset단계는 1프레임에 대한 압축이 완료된 이후, 혹은 복원하려는 모든 시이퀀스가 종료되어 복원과정이 더 이상 이용되지 않는 경우에 수행되는 단계로 복원과정을 인에이블시키고 다음 단계로 넘어간다.이 단계가 종료되면 상기 DEC pole을 통해 압축의 수행여부를 판단하게 되고, 이때 압축단계로 천이하게 되면, 컨트롤 레지스터(R2)를 "0"로 설정하여 압축을 수행하고 되돌아올 때 다시 상기 DEC0단계부터 연속해서 시작할 수 있도록 한다.Decoder reset step according to an embodiment of the present invention is a step performed after the completion of the compression for one frame, or when all of the sequence to be restored is finished and the restoration process is no longer used. After the completion of this step, it is determined whether the compression is performed through the DEC pole. If the transition to the compression step occurs, the control register R2 is set to "0" to perform compression and return. When starting again from the DEC0 step can be continued.

상기 제 200단계(ST200)를 수행할 시 상술한 바와 같이, 매 압축과정마다 ENC pole단계를 거쳐 복원이 유용한지를 검사하고, 그 검사결과로 복원이 유용할 경우 다음의 압축과정을 보류하고 상기 복원과정을 먼저 수행하고, 복원이 유용하지 않을 경우 상기 보류된 다음의 압축과정을 수행한다(ST400).As described above, when performing the 200th step (ST200), it is checked whether the restoration is useful through the ENC pole step every compression process, and if the restoration is useful as the result of the inspection, the next compression process is suspended and the restoration is performed. The process is first performed, and if the restoration is not useful, the next compression process is performed (ST400).

한편, 상기 제 300단계(ST300)를 수행할 시 상술한 바와 같이, 매 복원과정마다 DEC pole단계를 거쳐 압축이 유용한지를 검사하고, 그 검사결과로 압축이 유용할 경우 다음의 복원과정을 보류하고 해당하는 압축과정을 먼저 수행하고, 복원이 유용하지 않을 경우 상기 보류된 다음의 복원과정을 수행한다(ST400).On the other hand, as described above when performing the 300 step (ST300), it is checked whether the compression is useful through the DEC pole step in each restoration process, and if the compression is useful as a result of the inspection, the next restoration process is suspended. The corresponding compression process is first performed, and if the restoration is not useful, the next restoration process is held (ST400).

본 발명의 실시예에 따라 상술한 바와 같은 압축과정과 복원과정은 각각이 데이터의 처리를 신속하게 하기 위해 파이프라인화 된다.In accordance with an embodiment of the present invention, the compression and decompression processes as described above are each pipelined to speed up the processing of the data.

본 발명의 실시예에 따라 상기 압축과정의 파이프라인은 움직임 추정 연산과 픽쳐 헤더에 대하여 가변길이 부호화를 수행하는 단계와, 움직임 보상과 이산여현변환 연산을 수행하는 단계와, 각 매크로 블록의 계수들에 대하여 가변길이 부호화 및 역이산여현변환 연산을 수행하는 단계와, 움직임 보상과 가변길이 부호화를 수행하는 단계로 구분된다.According to an embodiment of the present invention, the pipeline of the compression process may include performing variable length coding on a motion estimation operation and a picture header, performing motion compensation and discrete cosine transform operations, and coefficients of each macro block. Performing variable length coding and inverse discrete cosine transform operation, and performing motion compensation and variable length coding.

한편, 본 발명의 실시예에 따라 상기 복원과정의 파이프라인은 프레임의 최초 시작코드를 찾는 단계와, 픽처 헤더를 복원하는 단계와, 매크로 블럭의 모드를복원하는 단계와, 매크로 블록내의 각 블록에 대한 정보를 복원하는 단계와, 현 매크로 블록이 인터형태이면서 코드화 되지 않는 경우를 처리하는 단계와, 현 매크로 블록이 인터형태이면서 코디드 블록 패턴이 "0"인 경우를 처리하는 단계와, 현 매크로 블록이 인트라이거나 혹은 인터이면서 코드블록패턴이 "1"인 경우를 처리하는 단계와, 외부 표시장치의 사용가능여부를 검검하는 단계로 구분된다.Meanwhile, according to an embodiment of the present invention, the pipeline of the reconstruction process may include: finding an initial start code of a frame, restoring a picture header, restoring a mode of a macro block, and restoring each block in the macro block. Restoring information about the current macroblock; processing a case in which the current macroblock is inter-shaped and not coded; processing a case in which the current macroblock is inter-shaped and the coded block pattern is "0"; It is divided into a process of processing a case in which the block is intra or inter and the code block pattern is "1", and checking whether the external display device can be used.

도 4는 본 발명의 실시예에 따른 움직임 추정 알고리즘을 설명하기 위한 흐름도이다.4 is a flowchart illustrating a motion estimation algorithm according to an embodiment of the present invention.

통상적으로 사용되는 움직임 추정블록은 압축과정시에 매 매크로 블록이 처리될 때 마다 한번씩만 수행되고, 다음 매크로 블록이 처리될 때까지 사용되지 않는 특징이 있다. 즉, 움직임 추정블록은 현재 처리중인 매크로 블록 내부의 6개 블록을 모두 처리한 이후에 다음 매크로 블록에 대한 움직임 추정을 수행한다.A commonly used motion estimation block is characterized in that it is performed only once every macroblock is processed in the compression process, and is not used until the next macroblock is processed. That is, the motion estimation block performs motion estimation on the next macro block after processing all six blocks inside the macro block currently being processed.

따라서, 본 발명의 실시예에서는 상기의 한계를 극복하고 하드웨어에 대한 사용 효율을 높이기 위해 움직임 추정블록을 다른 블록들과 병렬로 동작할 수 있도록 설계하였고, 또한 움직임 추정블록의 전체 과정을 3단계로 분리하여 수행하도록 함으로써, 각 단계별로 병렬동작이 가능하도록 하였다.Therefore, in the embodiment of the present invention, the motion estimation block is designed to operate in parallel with other blocks in order to overcome the above limitations and to increase the efficiency of use of the hardware, and also the entire process of the motion estimation block in three steps. By performing separate, it was possible to parallel operation in each step.

도 4를 인용하여 움직임 추정 과정을 설명하면 다음과 같다.Referring to FIG. 4, the motion estimation process will be described below.

먼저, 현재 압축하려는 매크로 블록이 해당 프레임의 첫번째 매크로 블록이라면, 병렬 수행되는 부분이 없이 현재 매크로 블록에 대한 움직임 추정과정을 모두 수행한다(ST600). 이때 수행되는 움직임 추정과정은 움직임 추정 블록에 대한 상세한 설명에서 사용한 방식으로 수행되므로, 이하 그 상세한 설명은 생략한다.First, if the current macroblock to be compressed is the first macroblock of the frame, all the motion estimation processes for the current macroblock are performed without the parallel execution part (ST600). The motion estimation process performed at this time is performed in the manner used in the detailed description of the motion estimation block, and thus the detailed description thereof will be omitted.

상기 제 600단계(ST600)가 완료되면, 압축하려는 영상데이터에 대하여 움직임 보상과정을 수행한다(ST610). 상기 제 610단계(ST610)는 입력된 영상 데이터 즉, 현재 프레임에서 처리하려는 매크로 블록과 움직임 추정연산을 통해 얻어진 벡터에 기초하여 구한 이전 프레임의 해당되는 매크로 블록과의 차분 값을 구하는 것이다.When the 600th step ST600 is completed, a motion compensation process is performed on the image data to be compressed (ST610). In operation 610, the difference value between the macroblock to be processed in the current frame and the corresponding macroblock of the previous frame obtained based on the vector obtained through the motion estimation operation is calculated.

상기 제 610단계(ST610)에서의 차분 값으로 구해진 영상데이터를 주파수 영역으로 변환하기 위해 이산여현변환을 수행한다(ST640). 이때, 움직임 추정블록에서는 현재 프레임에서 처리중인 매크로 블록다음으로 오는 매크로 블록에 대한 제 1저장부(100)상의 위치를 병렬로 찾아내고, 이에 따른 해당 영상데이터를 움직임 블록 내부의 메모리로 읽어들이는 동작을 수행하고(ST620), 이어서 복원과정의 수행여부를 판단한다(ST630).A discrete cosine transform is performed to convert the image data obtained by the difference value in step 610 into the frequency domain (ST640). At this time, in the motion estimation block, the position on the first storage unit 100 is found in parallel with respect to the macroblock next to the macroblock being processed in the current frame, and the corresponding image data is read into the memory inside the motion block. The operation is performed (ST620), and then it is determined whether the restoration process is performed (ST630).

상기 제 640단계(ST640)에서 이산여현변환을 완료한 데이터에 대해서 블록단위의 가변길이 부호화를 수행하여 압축된 데이터를 생성하고(ST650), 이어서, 현재 프레임의 복원을 위해 다시 역이산여현변환을 수행한다(ST660). 이때 움직임 추정 블록에서는 병렬로 제 1저장부(100)로부터 이전 프레임의 데이터를 읽어들인다(ST670). 즉, 현재 처리하려는 매크로 블록을 기준으로 상,하,좌,우로 각각 8화소 만큼씩 확장된 영역에 대한 위치를 이전 프레임으로부터 찾아내고, 이를 이용하여 제 1저장부(100)로부터 해당되는 데이터를 움직임 추정블록의 내부 메모리로 읽어들이는 과정을 수행한다.In step 640, the variable length coding is performed on the data on which the discrete cosine transform is completed to generate compressed data (ST650), and then the inverse discrete cosine transform is performed again to restore the current frame. To perform (ST660). At this time, the motion estimation block reads data of a previous frame from the first storage unit 100 in parallel (ST670). That is, based on the macro block to be processed, the position of the region extended by 8 pixels each up, down, left, and right is found from the previous frame, and the corresponding data is stored from the first storage unit 100 using the same. The process of reading into the internal memory of the motion estimation block is performed.

상기 제 670단계(ST670)가 완료되면, 움직임 추정블록에서는 내부 메모리로읽혀진 현재의 매크로 블록 데이터와 이전 프레임의 매크로 블록 데이터를 이용하여 최종적인 움직임 추정연산을 수행한다(ST680). 이 단계(ST680)는 상기 제 660단계(ST660)와 병렬로 수행된다.Upon completion of step 670 (ST670), the motion estimation block performs a final motion estimation operation using current macroblock data read into the internal memory and macroblock data of a previous frame (ST680). This step ST680 is performed in parallel with the 660th step ST660.

상기 제 680단계(ST680)가 완료되면, 복원과정이 유용한지를 검사하여 그 천이여부를 판단하고(ST690), 압축과정이 유용할 시 상기 제 680단계(ST680)에서 움직임 추정연산된 데이터 즉, 역이산여현변환 연산에 의해 시간영역으로 복원된 데이터는 현재 프레임 데이터로 최종 복원되기 위해서 이전 프레임 데이터를 이용한 움직임 보상과정을 거치게 된다(ST700). 이때, 움직임 추정블록에서는 이미 병렬로 처리되어 내부 메모리로 읽혀진 현재 매크로 블록과 이전 프레임의 매크로 블록 데이터를 이용하여 최종적인 움직임 추정 연산을 수행하고, 이를 통해 움직임 벡터를 산출하게 된다.Upon completion of the step 680 (ST680), it is determined whether the restoration process is useful to determine whether the transition is useful (ST690). When the compression process is useful, the data estimated by the motion estimation operation in the step 680 (ST680), ie, inverse Data reconstructed in the time domain by the discrete cosine transform operation undergoes a motion compensation process using previous frame data in order to be finally reconstructed into the current frame data (ST700). In this case, the motion estimation block performs a final motion estimation operation by using the current macro block that has already been processed in parallel and read into the internal memory and the macro block data of the previous frame, and calculates a motion vector.

그 다음, 제 710단계(ST710)에서는 블록의 개수에 의해 현재 움직임 추정 블록에서 수행중인 움직임 벡터의 최종 계산 여부를 결정하는 데, 블록의 개수가 6개일 경우에는 상술한 바와 같이 움직임 벡터를 산출하고, 블록의 개수가 6이하일 경우 제 610단계(ST610)의 움직임 보상단계로 복귀한다.Next, in step 710 (ST710) it is determined whether the final calculation of the motion vector being performed in the current motion estimation block by the number of blocks. If the number of blocks is six, the motion vector is calculated as described above. If the number of blocks is 6 or less, the process returns to the motion compensation step of step 610 (ST610).

상기 제 710단계(ST710)를 거쳐 움직임 보상된 데이터는 가변길이 부호화 단계(ST720)을 거쳐서 최종적으로 압축된다.The motion compensated data through the step 710 (ST710) is finally compressed through a variable length encoding step (ST720).

이렇게 함으로써, 본 발명의 실시예에서는 현재 매크로 블록에 대한 압축을 수행하는 동시에 다음에 오는 매크로 블록에 대한 움직임 추정 과정을 모두 함께 완료하게 되고, 다음 매크로 블록을 압축할 때에는 다시 움직임 추정과정을 수행할필요없이 단지 이전의 움직임 추정과정에 의해 결과한 데이터를 이용하면 된다.By doing so, in the embodiment of the present invention, the current macroblock is compressed and simultaneously the motion estimation process for the next macroblock is completed together. When the next macroblock is compressed, the motion estimation process is performed again. It is not necessary to just use the data resulting from the previous motion estimation process.

이상에서 설명한 바와 같이, 본 발명에서는 이미지 데이터 프로세서 및 관련 메모리들을 마이크로 시이퀀서를 중심으로 보조프로세서 형식으로 연결시킴으로써, 개별 기능 블록들이 마이크로 시이퀀서와는 별개인 독립 프로세서로 병렬동작이 가능하게 되고, 차후의 기능블록에 대한 추가 및 수정이 용이하고, 모든 기능 블록들이 마이크로 시이퀀서의 프로그램에 의해 동작될 수 있으므로 적용분야에 따른 하드웨어의 유연성이 보장되는 효과가 있다.As described above, in the present invention, by connecting the image data processor and related memories in the form of a coprocessor around the micro sequencer, individual functional blocks can be operated in parallel with an independent processor separate from the micro sequencer. It is easy to add and modify future functional blocks, and all functional blocks can be operated by a program of a micro sequencer, thereby ensuring the flexibility of hardware according to an application.

또한, 본 발명에서는 부호화 및 복호화를 시분할 방식으로 수행하도록 함으로써, 부호화 및 복호화에 중복되어 사용되는 블록의 하드웨어 이용도를 높일 수 있는 다른 효과가 있다.In addition, in the present invention, by performing the encoding and decoding in a time division manner, there is another effect that can increase the hardware utilization of the blocks used for encoding and decoding.

또한, 본 발명에서는 움직임 추정 블록이 다른 기능블록과 병렬로 수행되도록 함으로써, 부호화시 각 매크로 블록마다 한 번씩만 수행되는 움직임 추정 블록으 기능을 최대한으로 이용할 수 있는 또 다른 효과가 있다.In addition, in the present invention, the motion estimation block is performed in parallel with other functional blocks, thereby enabling another function of maximizing the function of the motion estimation block to be performed only once for each macroblock during encoding.

Claims (12)

외부에서 입력된 영상 데이터를 저장하는 제 1저장수단;First storage means for storing externally input image data; 상기 제 1저장수단으로부터 입력된 영상데이터를 움직임 추정연산, 움직임 보상연산 및 데이터변환을 수행함에 의해 상기 입력된 영상데이터를 부호화 및 복호화하여 압축 및 복원하는 압축복원수단;Compression restoring means for encoding, decoding and compressing and restoring the input image data by performing motion estimation operation, motion compensation operation, and data conversion on the image data input from the first storage means; 상기 입력된 영상 데이터의 압축을 위하여 상기 압축복원수단의 움직임 추정연산에 의해 판단된 압축모드에 따라 결과하는 데이터와, 상기 압축복원수단에 의해 양자화 및 역양자화된 데이터를 저장하는 제 2저장수단;Second storage means for storing the resultant data according to the compression mode determined by the motion estimation operation of the compression restoring means and the quantized and dequantized data by the compression restoring means for compressing the input image data; 상기 입력된 영상 데이터의 복원을 위하여 상기 압축복원수단에서 가변길이 복호화된 데이터와, 역이산여현변환된 데이터를 저장하는 제 3저장수단; 및Third storage means for storing variable length decoded data and inverse discrete cosine transformed data in the compression restoring means for restoring the input image data; And 상기 제 1저장수단 내지 제 3저장수단의 읽기 및 쓰기를 제어함과 동시에 상기 압축복원수단의 압축복원동작을 시분할로 제어하는 제어수단을 구비하며, 상기 제 1 내지 제 3저장수단과 압축복원수단은 제어수단을 중심으로 보조프로세서 형태로 결합되는 것을 특징으로 하는 영상압축복원장치.Control means for controlling the read and write of the first to third storage means and controlling the compression restore operation of the compression restore means by time division, wherein the first to third storage means and the compression restore means Image compression restoring apparatus, characterized in that coupled to the coprocessor form around the control means. 청구항 1에 있어서,The method according to claim 1, 상기 제 1 저장수단은 다이내믹 램으로 구성되는 것을 특징으로 하는 영상압축복원장치.And the first storage means comprises a dynamic RAM. 청구항 1에 있어서,The method according to claim 1, 상기 압축복원수단은 현재 프레임과 이전 프레임간의 움직임 백터를 계산하는 움직임 추정 연산블록과, 이전 프레임과의 움직임 보상을 수행하는 움직임 보상연산블록과, 이산여현부와 역이산여현부와 양자화부와 역양자화부와 가변길이 부호화부와 가변길이 복호화부를 포함하여 압축 또는 복원과정을 수행하는 데이터 변환블록을 포함하는 것을 특징으로 하는 영상압축복원장치.The compression restoring means includes a motion estimation calculation block for calculating a motion vector between a current frame and a previous frame, a motion compensation calculation block for performing motion compensation with a previous frame, a discrete cosine and inverse discrete cosine, and a quantization unit. And a data conversion block including a quantization unit, a variable length encoder, and a variable length decoder to perform a compression or reconstruction process. 청구항 3에 있어서,The method according to claim 3, 상기 제 2 저장수단은 2읽기 포트와 2쓰기 포트를 갖는 듀얼포트 메모리로 구성되며, 상기 움직임 추정 연산블록과 상기 데이터 변환블록의 이산여현변환부와 상기 데이터 변환블록의 가변길이 부호화부와 상기 움직임 보상 연산블록과 상기 제어수단에 의해 공통으로 사용되는 것을 특징으로 하는 영상압축복원장치.The second storage means comprises a dual port memory having two read ports and two write ports, wherein the motion estimation arithmetic block, the discrete cosine transform unit of the data transform block, the variable length encoder of the data transform block, and the motion An image compression restoring apparatus, which is commonly used by a compensation operation block and the control means. 청구항 1에 있어서,The method according to claim 1, 상기 제 3 저장수단은 2읽기 포트와 2쓰기 포트를 갖는 듀얼포트 메모리로 구성되며, 상기 움직임 보상 연산블록과 상기 데이터 변환블록의 역이산여현부와 상기 데이터 변환블록의 가변길이 복호화부와 상기 제어수단에 의해 공통으로 사용되는 것을 특징으로 하는 영상압축복원장치.The third storage means comprises a dual port memory having two read ports and two write ports, an inverse discrete cosine of the motion compensation operation block and the data conversion block, a variable length decoder of the data conversion block, and the control. An image compression restoring apparatus which is commonly used by means. 입력된 영상데이터를 압축할것인지 또는 복원할것인지를 판단하는 단계;Determining whether to compress or restore the input image data; 상기의 판단단계의 결과 압축으로 판단될 경우 움직임 추정과 움직임 보상과 이산여현변환과 양자화와 가변길이 부호화의 압축과정을 단계적으로 수행하는 단계;Performing step compression of motion estimation, motion compensation, discrete cosine transform, quantization, and variable length coding when it is determined that the result of the determination step is compression; 상기 판단단계의 결과 복원으로 판단될 경우 가변길이 복호화와 역양자화와 역이산여현변환과 움직임 보상의 복원과정을 단계적으로 수행하는 단계;Performing step reconstruction of variable length decoding, inverse quantization, inverse discrete cosine transform, and motion compensation when it is determined that the result of the determination step is restored; 상기 압축과정을 수행할 시 매 압축과정마다 복원이 유용한지를 검사하고, 상기 검사결과로 복원이 유용할 경우 다음의 압축과정을 보류하고 상기 유용한 복원과정을 먼저 수행하고, 복원이 유용하지 않을 경우 상기 보류된 다음의 압축과정을 수행하는 단계; 및When performing the compression process, it is checked whether the restoration is useful for each compression process, and if the restoration is useful as a result of the check, the next compression process is suspended, and the useful restoration process is first performed. Performing the next compression process that is suspended; And 상기 복원과정을 수행할 시 매 복원과정마다 압축이 유용한지를 검사하고, 상기 검사결과로 압축이 유용할 경우 다음의 복원과정을 보류하고 상기 유용한 압축과정을 먼저 수행하고, 압축이 유용하지 않을 경우 상기 보류된 다음의 복원과정을 수행하는 단계를 구비하여 영상데이터를 시분할로 압축복원하는 것을 특징으로 하는 영상압축복원방법.When performing the restoration process, it is checked whether compression is useful for every restoration process. If the compression is useful as a result of the check, the next restoration process is suspended, and the useful compression process is first performed. And restoring the suspended next restoring process, and compressing and restoring the image data by time division. 청구항 6에 있어서,The method according to claim 6, 상기 압축과정은 외부의 영상출력장치가 복원된 신호를 처리할 수 있는지를 판단하는 단계를 더 포함하는 것을 특징으로 하는 영상압축복원방법.The compression process further comprises the step of determining whether the external image output device can process the restored signal. 청구항 6에 있어서,The method according to claim 6, 상기 복원과정은 외부의 영상입력장치로부터 입력되는 신호를 압축할 수 있는지를 판단하는 단계를 더 포함하는 것을 특징으로 하는 영상압축복원방법.The restoring process may further include determining whether a signal input from an external image input apparatus can be compressed. 청구항 6에 있어서,The method according to claim 6, 상기 움직임 추정와 움직임 보상과 이산여현변환과 역이산여현변환의 과정은 병렬로 수행되는 것을 특징으로 하는 영상압축복원방법.And the motion estimation, motion compensation, discrete cosine transform and inverse discrete cosine transform are performed in parallel. 청구항 6에 있어서,The method according to claim 6, 상기 압축과정과 복원과정은 각각이 데이터의 처리를 신속하게 하기 위해 파이프라인화 되는 것을 특징으로 하는 영상압축복원방법.And the compression process and the restoration process are each pipelined to speed up the processing of the data. 청구항 10에 있어서, 상기 압축과정의 파이프라인은The method of claim 10, wherein the pipeline of the compression process 움직임 추정 연산과 픽쳐 헤더에 대하여 가변길이 부호화를 수행하는 단계와,Performing variable length coding on the motion estimation operation and the picture header; 움직임 보상과 이산여현변환 연산을 수행하는 단계와,Performing motion compensation and discrete cosine transform operations; 각 매크로 블록의 계수들에 대하여 가변길이 부호화 및 역이산여현변환 연산을 수행하는 단계와,Performing variable length coding and inverse discrete cosine transform on the coefficients of each macro block; 움직임 보상과 가변길이 부호화를 수행하는 단계로 구성되는 것을 특징으로 하는 영상압축복원방법.And a method for performing motion compensation and variable length coding. 청구항 10에 있어서, 상기 복원과정의 파이프라인은The method of claim 10, wherein the pipeline of the restoration process 프레임의 최초 시작코드를 찾는 단계와,Finding the initial start code of the frame, 픽처 헤더를 복원하는 단계와,Restoring the picture header; 매크로 블럭의 모드를 복원하는 단계와,Restoring the mode of the macroblock; 매크로 블록내의 각 블록에 대한 정보를 복원하는 단계와,Restoring information about each block in the macro block; 현 매크로 블록이 인터형태이면서 코드화 되지 않는 경우를 처리하는 단계와,Dealing with the case where the current macroblock is intertype and not coded, 현 매크로 블록이 인터형태이면서 코디드 블록 패턴이 "0"인 경우를 처리하는 단계와,Processing a case in which the current macroblock is an intertype and the coded block pattern is "0"; 현 매크로 블록이 인트라이거나 혹은 인터이면서 코드블록패턴이 "1"인 경우를 처리하는 단계와,Processing a case in which the current macroblock is intra or inter and the code block pattern is "1"; 외부 표시장치의 사용가능여부를 검검하는 단계로 구성되는 것을 특징으로 하는 영상압축복원방법.And determining whether or not the external display device is usable.
KR1020000033062A 2000-06-15 2000-06-15 video compression and decompression Apparatus KR100349058B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000033062A KR100349058B1 (en) 2000-06-15 2000-06-15 video compression and decompression Apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000033062A KR100349058B1 (en) 2000-06-15 2000-06-15 video compression and decompression Apparatus

Publications (2)

Publication Number Publication Date
KR20010112806A KR20010112806A (en) 2001-12-22
KR100349058B1 true KR100349058B1 (en) 2002-08-21

Family

ID=19672102

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000033062A KR100349058B1 (en) 2000-06-15 2000-06-15 video compression and decompression Apparatus

Country Status (1)

Country Link
KR (1) KR100349058B1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7088776B2 (en) 2002-07-15 2006-08-08 Apple Computer, Inc. Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding
US8254461B2 (en) 2002-07-24 2012-08-28 Apple Inc. Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding with reduced requirements for division operations
US6728315B2 (en) 2002-07-24 2004-04-27 Apple Computer, Inc. Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding with reduced requirements for division operations
KR100531895B1 (en) 2004-02-26 2005-11-29 엘지전자 주식회사 Apparatus and method for concealing block error of image in mobile communication system
KR100604986B1 (en) * 2004-07-26 2006-07-28 삼성전자주식회사 Variable length coding method with 4 stage pipeline and variable length coder using the same

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06339018A (en) * 1993-05-31 1994-12-06 Canon Inc Picture processor
JPH0846974A (en) * 1994-07-29 1996-02-16 Matsushita Electric Ind Co Ltd Encoding device and decoding device for compensating motion of moving picture
JPH08195960A (en) * 1994-08-15 1996-07-30 General Instr Corp Of Delaware Method and apparatus for effectively addressing dram in video decompression processor
JPH09214963A (en) * 1996-01-22 1997-08-15 Lucent Technol Inc Method for coding image signal and encoder
JPH10178644A (en) * 1996-12-18 1998-06-30 Sharp Corp Moving image decoding device
US5874995A (en) * 1994-10-28 1999-02-23 Matsuhita Electric Corporation Of America MPEG video decoder having a high bandwidth memory for use in decoding interlaced and progressive signals
US6049629A (en) * 1992-03-23 2000-04-11 Canon Kabushiki Kaisha Coding apparatus for coding image data using one of an interpicture coding method and an interpicture motion-compensated coding method

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6049629A (en) * 1992-03-23 2000-04-11 Canon Kabushiki Kaisha Coding apparatus for coding image data using one of an interpicture coding method and an interpicture motion-compensated coding method
JPH06339018A (en) * 1993-05-31 1994-12-06 Canon Inc Picture processor
JPH0846974A (en) * 1994-07-29 1996-02-16 Matsushita Electric Ind Co Ltd Encoding device and decoding device for compensating motion of moving picture
JPH08195960A (en) * 1994-08-15 1996-07-30 General Instr Corp Of Delaware Method and apparatus for effectively addressing dram in video decompression processor
US5874995A (en) * 1994-10-28 1999-02-23 Matsuhita Electric Corporation Of America MPEG video decoder having a high bandwidth memory for use in decoding interlaced and progressive signals
JPH09214963A (en) * 1996-01-22 1997-08-15 Lucent Technol Inc Method for coding image signal and encoder
JPH10178644A (en) * 1996-12-18 1998-06-30 Sharp Corp Moving image decoding device

Also Published As

Publication number Publication date
KR20010112806A (en) 2001-12-22

Similar Documents

Publication Publication Date Title
EP0585051B1 (en) Image processing method and apparatus
US8311088B2 (en) Method and system for image processing in a microprocessor for portable video communication devices
EP1689187A1 (en) Method and system for video compression and decompression (CODEC) in a microprocessor
KR20070028404A (en) Method of storing pictures in a memory using compression coding and cost function including power consumption
US20080123748A1 (en) Compression circuitry for generating an encoded bitstream from a plurality of video frames
JP2004080786A (en) Motion estimating method and device referring to discrete cosine transformation coefficient
KR101392349B1 (en) Method and apparatus for video decoding
JPH10271516A (en) Compression coder, coding method, decoder and decoding method
KR20010083718A (en) Method and apparatus for transformation and inverse transformation of image for image compression coding
KR100349058B1 (en) video compression and decompression Apparatus
KR100598093B1 (en) Apparatus and method with low memory bandwidth for video data compression
US6097843A (en) Compression encoding apparatus, encoding method, decoding apparatus, and decoding method
CN101360237A (en) Reference frame processing method, video decoding method and apparatus
KR20130006578A (en) Residual coding in compliance with a video standard using non-standardized vector quantization coder
JP2009528751A (en) Differential encoding
US5751357A (en) Method and arrangement for coding and decoding a video data stream for all picture elements of the video data stream
JP2006191642A5 (en)
US6205250B1 (en) System and method for minimizing clock cycles lost to overhead data in a video decoder
KR100497760B1 (en) Moving-Picture Coding System And Method For Mobile Communication Terminal
KR100522595B1 (en) MPEG video decoding methods and MPEG video decoders
JPH08242446A (en) Image processing method and image processor
KR0174443B1 (en) Method and apparatus for encoding still image using adaptive vector quantization
WO2005115007A1 (en) Systems and methods of encoding moving pictures for mobile communication terminals
JPH09294268A (en) Image coding device
JPH06276512A (en) Picture communication equipment

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: 20120806

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20130722

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20140728

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20150803

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20160801

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20170801

Year of fee payment: 16

FPAY Annual fee payment

Payment date: 20180801

Year of fee payment: 17

FPAY Annual fee payment

Payment date: 20190801

Year of fee payment: 18