KR20010011309A - Algorithm and Implementation Method of a Low-Complexity Video Encoder - Google Patents

Algorithm and Implementation Method of a Low-Complexity Video Encoder Download PDF

Info

Publication number
KR20010011309A
KR20010011309A KR1019990030615A KR19990030615A KR20010011309A KR 20010011309 A KR20010011309 A KR 20010011309A KR 1019990030615 A KR1019990030615 A KR 1019990030615A KR 19990030615 A KR19990030615 A KR 19990030615A KR 20010011309 A KR20010011309 A KR 20010011309A
Authority
KR
South Korea
Prior art keywords
unit
motion
intra
video signal
inter
Prior art date
Application number
KR1019990030615A
Other languages
Korean (ko)
Other versions
KR100323235B1 (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 KR1019990030615A priority Critical patent/KR100323235B1/en
Publication of KR20010011309A publication Critical patent/KR20010011309A/en
Application granted granted Critical
Publication of KR100323235B1 publication Critical patent/KR100323235B1/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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
    • H04N19/513Processing of motion vectors

Abstract

PURPOSE: A device and a method for low complexity of motion picture encoder are provided to apply to various fields, and to substitute hardware for software to be easily implemented. CONSTITUTION: If a video signal through an NTSC(National Television Standards Committee) decoder(1) is converted with scanning by the block and delivered, an Inter/Inter decision unit(3) decides encoding to intra or inter for each macro block. A DCT(Discrete Cosine Transform) unit(4) converts a coefficient for conversion for the macro block into a frequency coordinate. A quantizer(5) transposes amplitude into a positive number value, for outputting. A variable length coder(6) outputs length proportioned to an algebra absolute value of appearance frequencies through a buffer in a compressed video signal. An Intra/Inter decision unit(10) decides encoding of Intra or Inter, for the macro block fed-back through a dequantizer(8) and an inverse DCT unit(9) from the quantizer(5). A motion estimation and compensation unit(12) estimate motion vector while storing the video signal in a frame memory by the one frame, and compensates the estimated motion vector. A motion compensation/motion non-compensation decision unit(13) decides whether to apply motion compensation for the video signal delivered to the motion estimation and compensation unit(12).

Description

저 복잡도의 동영상 인코더 장치 및 방법 {Algorithm and Implementation Method of a Low-Complexity Video Encoder}Low complexity video encoder device and method {Algorithm and Implementation Method of a Low-Complexity Video Encoder}

본 발명은 저 복잡도의 동영상 인코더 장치 및 구현 방법에 관한 것으로, 특히 많은 응용에 적용할 수 있으며 저가로 구현이 가능하도록 하고 소프트웨어적인 부분을 하드웨어로 대치함으로써 쉽게 구현할 수 있도록 설계한 저 복잡도의 동영상 인코더 장치 및 방법에 관한 것이다.TECHNICAL FIELD The present invention relates to a low complexity video encoder device and a method for implementing the same. In particular, a low complexity video encoder that can be applied to many applications, can be implemented at low cost, and designed to be easily implemented by replacing software parts with hardware. An apparatus and method are provided.

세계적으로 화상회의/전화, 디지털 VCR, DVD(Digital Video Disc), 디지털 카메라, 감시 및 보안시스템 등의 디지털 멀티미디어 시스템들의 연구개발이 활발히 진행되고 있는 이미 주지된 사실이다.It is well known that the research and development of digital multimedia systems such as video conferencing / telephone, digital VCR, digital video disc (DVD), digital camera, surveillance and security system are actively underway.

그리고 이러한 멀티미디어 시스템에서는 특히 신호의 전송에 소요되는 시간 및 경로를 줄이거나 비디오 신호를 저장할 때 그 용량을 줄이기 위하여는 비디오 신호의 압축(특히 인코더)의 구현 기술이 매우 중요하다.In such a multimedia system, in order to reduce the time and path required for signal transmission, or to reduce the capacity when storing a video signal, an implementation technique of compressing a video signal (especially an encoder) is very important.

비디오 신호의 압축 규격은 ISDN 망을 이용한 화상 회의용인 H.261, 일반 전화망(PSTN)을 이용한 화상 전화용인 H.263, CD-ROM과 같은 DSM(Digital Storage Media)을 이용한 멀티미디어용인 MPEG-1, 현행 TV 규격과 향후 HDTV 방송용인 MPEG-2 등의 표준화 작업이 완료되었다.Compression standards for video signals include H.261 for video conferencing using ISDN networks, H.263 for video telephony using PSTN, MPEG-1 for multimedia using digital storage media (DSM) such as CD-ROM, The standardization of the current TV standard and MPEG-2 for HDTV broadcasting is completed.

선진 외국에서는 이러한 추세에 따라 디지털 VCR, 디지털 카메라 등의 디지털 영상 가전제품들의 개발에 많은 투자를 하고 있다.In developed countries, according to this trend, a lot of investment is being made in the development of digital video appliances such as digital VCRs and digital cameras.

영상정보를 이용하여 도로의 교통흐름, 노면상태를 비롯한 각종상황을 제어하기 위한 ITS(Intelligent Transportation System)가 국내외적으로 활발히 개발 중에 있으며, 또한 일반 전화망(PSTN), 종합정보 통신망(ISDN), 광대역 통신망(B-ISDN) 등을 통한 화상회의/전화 시스템 및 영상 통신 시스템의 개발에 국내외적으로 박차를 가하고 있는 실정이다.ITS (Intelligent Transportation System) is actively being developed at home and abroad to control various traffic conditions including road traffic conditions and road conditions using visual information.In addition, PSTN, ISDN, Broadband The situation is being spurred at home and abroad to develop video conferencing / telephone system and video communication system through B-ISDN.

이러한 화상 관련 디지털 멀티미디어 시스템에는 비디오 신호 압축관련 부품, 특히 비디오 인코더가 필수적인데 지금까지는 국내외적으로 수상기에 적용하는 비디오 디코더 위주로 개발하였다.Video signal compression-related components, especially video encoders, are essential for such image-related digital multimedia systems. Until now, they have been developed mainly for video decoders applied to receivers at home and abroad.

최근에 외국의 유수 업체에서 MPEG-1 급의 비디오 인코더를 구현할 수 있는 DSP(Digital Signal Processor)를 개발하였는데 구현상의 난이도, 가격, 집적도면에서 보급화 되기에는 어려움이 많았다.Recently, a leading foreign company has developed a DSP (Digital Signal Processor) that can implement MPEG-1 video encoders, but it has been difficult to spread in terms of implementation difficulty, price, and integration.

그러므로 가능한 단일칩으로 구현되고, 여러 용도에 적용할 수 있는 비디오 인코더의 개발이 필요하여 미국의 C-Cube 사에서 비디오 인코더를 구현할 수 있는 프로세서(Processor)인 CL-4110을 선보였으며, 몇몇의 외국 기업에서 이를 이용한 MPEG-1 인코더(Encoder) 보드를 구현하여 상품화하였다.Therefore, it is necessary to develop a video encoder that can be implemented as a single chip and applicable to various purposes. Therefore, C-Cube Co., Ltd. introduced CL-4110, a processor that can implement a video encoder. The company implemented and commercialized the MPEG-1 Encoder board.

또한 미국의 Array사에서도 이와 비슷한 프로세서를 개발하여 상품화를 추진하고 있다.In addition, Array Inc. in the United States is developing a similar processor to promote commercialization.

그러나 상기와 같은 종래의 비디오 인코더를 구현하기 위한 칩들은 하드웨어를 동작시는 소프트웨어(Software)를 같이 개발해야 하기 때문에 구현상에 어려움이 많이 따르게 되는 단점이 있었다.However, the chips for implementing the conventional video encoder as described above have a disadvantage in that a lot of difficulties arise in implementation because software must be developed together when operating hardware.

따라서 본 발명은 많은 응용에 적용할 수 있으며 저가로 구현이 가능한 다목적용 저 복잡도의 동영상 인코더 장치 및 방법을 제공하는 것을 그 목적으로 한다.Accordingly, an object of the present invention is to provide a multipurpose low complexity video encoder device and method which can be applied to many applications and can be implemented at low cost.

또한 본 발명은 소프트웨어적인 부분을 하드웨어로 대치함으로써 쉽게 구현할 수 있도록 설계하는 것을 다른 목적으로 한다.It is another object of the present invention to design so that it can be easily implemented by replacing the software portion with hardware.

이와 같은 목적을 달성하기 위한 본 발명은 외부로부터 NTSC 디코더를 통한 비디오 신호가 포맷 변환부에서 블록 단위의 스캐닝으로 변환되어 전달되면 각 매크로 블록에 대해 인트라 또는 인터로의 인코딩을 결정하는 인트라/인터 선택부와,In order to achieve the above object, the present invention provides an intra / inter selection for determining the encoding of intra or inter for each macro block when a video signal from an external device is converted into a block-by-block scanning in the format converter. Wealth,

상기의 매크로 블록에 대해 변환을 위한 계수를 주파수 좌표로 변환하는 이산 코사인 변환부 및 진폭을 정수치로 치환하여 출력하는 양자화부를 통하여 전달받아 출현 빈도의 대수 절대값에 비례하는 길이를 가진 부호로 압축된 비디오 신호로 버퍼를 통해 출력하는 가변 길이 부호화부와,The macroblock is transformed into a code having a length that is proportional to the absolute value of the logarithm of the frequency of appearance received through a discrete cosine transform unit for transforming coefficients for transformation into frequency coordinates and a quantization unit for converting amplitudes into integer values. A variable length encoder for outputting a video signal through a buffer;

상기 양자화부에서 역양자화부 및 역이산 코사인 변환부를 통하여 귀환되는 매크로 블록에 대해 인트라 또는 인터의 인코딩을 결정하는 인트라/인터 선택부와,An intra / inter selector for determining an encoding of intra or inter with respect to a macroblock returned from the quantization unit through an inverse quantizer and an inverse discrete cosine transform unit;

상기의 비디오 신호를 1프레임 단위로 프레임 메모리에 저장하면서 움직임 벡터를 추정한 후 이에 대한 보상을 수행하는 움직임 추정 및 보상부와,A motion estimating and compensating unit for estimating a motion vector and compensating for the same while storing the video signal in a frame memory in units of one frame;

상기 움직임 추정 및 보상부에 전달되는 비디오 신호에 대해 움직임 보상의 사용 여부를 결정하는 움직임 보상/움직임 안보상 선택부들로 구성함으로써 많은 응용에 적용할 수 있으며 저가로 구현이 가능하도록 한 것이다.The motion compensation / motion security selectors that determine whether to use motion compensation for the video signal transmitted to the motion estimation and compensation unit can be applied to many applications and can be implemented at low cost.

도 1은 본 발명의 전체적인 구성을 나타낸 블럭도.1 is a block diagram showing the overall configuration of the present invention.

도 2는 본 발명의 포맷 변환부의 샘플링을 나타낸 개략도.2 is a schematic diagram showing sampling of a format conversion unit of the present invention.

도 3은 본 발명의 인트라/인터 선택부의 결정 기준을 나타낸 개략도.Figure 3 is a schematic diagram showing the determination criteria of the intra / inter selection unit of the present invention.

도 4는 본 발명의 MFSS의 예를 나타낸 개략도.4 is a schematic diagram showing an example of the MFSS of the present invention.

도 5는 본 발명의 움직임 보상/움직임 안보상의 결정기준을 나타낸 개략도.Figure 5 is a schematic diagram showing the determination criteria of the motion compensation / motion security of the present invention.

도 6은 본 발명의 실시예에 따른 전체적인 구성을 나타낸 블럭도.Figure 6 is a block diagram showing the overall configuration according to an embodiment of the present invention.

도 7은 본 발명의 실시예에 따른 DRAM 메모리의 구성을 나타낸 블럭도.7 is a block diagram showing a configuration of a DRAM memory according to an embodiment of the present invention.

도 8은 상기 DRAM 메모리의 동작을 나타내는 타임선도.8 is a timeline diagram illustrating operation of the DRAM memory.

도 9는 본 발명의 실시예에 따른 움직임 추정부의 구성을 나타낸 블럭도.9 is a block diagram showing a configuration of a motion estimation unit according to an embodiment of the present invention.

도 10은 본 발명 실시예에 따른 프로세서 엘리먼트의 구성을 나타낸 블럭도.10 is a block diagram illustrating a configuration of a processor element according to an exemplary embodiment of the present invention.

도 11은 본 발명 실시예에 따른 프로세서 어레이의 구성을 나타낸 블록도.11 is a block diagram showing a configuration of a processor array according to an embodiment of the present invention.

도 12는 본 발명의 실시예에 따른 움직임 보상부의 구성을 나타낸 블럭도.12 is a block diagram showing a configuration of a motion compensation unit according to an embodiment of the present invention.

도 13은 본 발명의 실시예에 따른 U/V 데이터의 움직임 보상부의 구성을 나타낸 블럭도.13 is a block diagram showing a configuration of a motion compensation unit of U / V data according to an embodiment of the present invention.

도 14는 본 발명의 실시예에 따른 움직임 보상을 수행하는 동작을 나타낸 타임선도.14 is a timeline diagram illustrating an operation of performing motion compensation according to an embodiment of the present invention.

도 15는 본 발명의 실시예에 따른 ITF부의 구성을 나타낸 블럭도.15 is a block diagram showing a configuration of an ITF unit according to an embodiment of the present invention.

도 16은 본 발명의 실시예에 따른 가변 길이 부호화부의 구성을 나타낸 블럭도.16 is a block diagram showing a configuration of a variable length encoder according to an embodiment of the present invention.

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

1, 21 : NTSC 디코더 2 : 포맷 변환부1, 21: NTSC decoder 2: format converter

3, 10 : 인트라/인터 선택부 4, 26 : 이산 코사인 변환부3, 10: intra / inter selector 4, 26: discrete cosine converter

5, 27 : 양자화부 6, 28 : 가변 길이 부호화부5, 27: quantizer 6, 28: variable length encoder

8,29 : 역양자화부 9, 30 : 역이산 코사인 변환부8,29: inverse quantization unit 9, 30: inverse discrete cosine transform unit

11 : 프레임 메모리 12, 25 : 움직임 추정 및 보상부11: frame memory 12, 25: motion estimation and compensation unit

22 : 인터페이스부 24 : ITF부22: interface unit 24: ITF unit

이하 본 발명을 첨부 도면에 의거 상세히 기술하면 다음과 같다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일실시예에 따른 동영상 부호화기의 전체적인 구성을 나타낸 것으로서,1 shows an overall configuration of a video encoder according to an embodiment of the present invention.

외부로부터 입력되는 NTSC의 비디오 신호의 조합에 대해 그 조합에 해당하는 신호를 출력하는 NTSC 디코더(1)와,An NTSC decoder 1 for outputting a signal corresponding to the combination with respect to a combination of NTSC video signals input from the outside,

상기 NTSC 디코더(1)로부터 입력되는 비디오 신호의 4:2:2 Y/U/V 포맷의 입력 영상을 4:2:0 Y/U/V 포맷으로 변환하면서 래스터 스캐닝의 입력을 8x8 이나 16x16 블록 단위의 스캐닝으로 변환하는 포맷 변환부(2)와,8x8 or 16x16 block input of raster scanning while converting the 4: 2: 2 Y / U / V format input image of the video signal input from the NTSC decoder 1 into 4: 2: 0 Y / U / V format A format converter 2 for converting the units to scanning;

상기의 포맷 변환부(2)로부터 GOP의 크기에 따라 I 픽처와 P 픽처만으로 구성되는 매크로 블록에 대해 인트라 또는 인터로의 인코딩을 결정하는 인트라/인터 선택부(Intra/Inter Decision)(3)와,Intra / Inter Decision (3), which determines the encoding of intra or inter for the macroblock consisting of only I pictures and P pictures according to the size of the GOP from the format converter 2; ,

상기 인트라/인터 선택부(3)로부터 비디오 신호의 매크로 블록에 대해 변환을 위한 계수를 코사인 함수의 값으로 용이하게 계산하여 주파수 좌표로 변환하는 이산 코사인 변환부(4)와,A discrete cosine transformer 4 for easily converting coefficients for transformation of the macroblock of the video signal from the intra / inter selector 3 into values of a cosine function and converting them into frequency coordinates;

상기 이산 코사인 변환부(4)로부터 전달되는 주파수 좌표로 변환된 비디오 신호에 대해 연속적인 곡선의 파형을 계단 파형으로 바꾸면서 진폭을 적당한 레벨을 단위로 하여 정수치로 치환하여 출력하는 양자화부(5)와,A quantization unit 5 for converting the waveform of a continuous curve into a stepped waveform for the video signal converted into the frequency coordinates transmitted from the discrete cosine transform unit 4 and converting the amplitude into an integer value in units of appropriate levels and outputting the result; ,

상기 양자화부(5)로부터 전달되는 계단 파형의 정수치에 대해 출현 빈도의 대수 절대값에 비례하는 길이를 가진 부호를 그 값에 할당하면서 압축된 비디오 신호로 버퍼(7)를 통해 출력하는 가변 길이 부호화부(6)와,A variable length that is output through the buffer 7 as a compressed video signal while allocating a code having a length proportional to the absolute value of the logarithm of the frequency of appearance of the stepped waveform transmitted from the quantization unit 5 to the value. The encoder 6,

상기 양자화부(5)에서 전달되는 레벨 단위의 정수치를 주파수 좌표의 비디오 신호로 환원시켜 출력하는 역양자화부(8)와,An inverse quantization unit 8 for reducing and outputting an integer value of a level unit transmitted from the quantization unit 5 to a video signal having frequency coordinates;

상기 역양자화부(8)로부터 전달되는 코사인 함수의 값인 주파수 좌표의 비디오 신호를 원래의 비디오 신호로 환원하는 역이산 코사인 변환부(9)와,An inverse discrete cosine transformer 9 for reducing the video signal of the frequency coordinate which is the value of the cosine function transmitted from the inverse quantizer 8 to the original video signal;

상기 역이산 코사인 변환부(9)로부터 전달되는 비디오 신호의 매크로 블록에 대해 인트라 또는 인터로의 인코딩을 결정하는 인트라/인터 선택부(10)와,An intra / inter selector 10 for determining the encoding of an intra or an inter for a macro block of a video signal transmitted from the inverse discrete cosine transform unit 9,

역이산 코사인 변환부(9)에서 인트라/인터 선택부(10)를 거쳐 전달되는 비디오 신호를 1프레임 단위로 저장하였다가 출력하는 프레임 메모리(11)와,A frame memory 11 for storing and outputting a video signal transmitted by the inverse discrete cosine converter 9 through the intra / inter selector 10 in units of one frame, and

상기 NTSC 디코더(1)에서 포맷 변환부(2)를 거쳐 입력되는 비디오 신호와 상기 프레임 메모리(11)에서 전달되는 1프레임 단위의 비디오 신호에 대해 움직임 벡터를 추정한 후 이에 대한 보상을 수행하여 상기의 인트라/인터 선택부(3)로 전달하는 움직임 추정 및 보상부(12)와,The NTSC decoder 1 estimates a motion vector with respect to the video signal input through the format converter 2 and the video signal transmitted in the frame memory 11 and then compensates for the motion vector. A motion estimating and compensating unit 12 for transmitting to the intra / inter selector 3 of

상기 움직임 추정 및 보상부(12)에 전달되는 비디오 신호에 대해 움직임 보상의 사용 여부를 결정하는 움직임 보상/움직임 안보상 선택부(13)들로 구성한다.The motion estimation / motion security compensation selectors 13 determine whether to use motion compensation for the video signal transmitted to the motion estimation and compensation unit 12.

일반적인 동영상 부호화기에서 압축 방법은 크게 손실 압축인 시간적, 공간적인 압축부와 무손실 압축인 가변 길이 부호화부로 나눌 수 있으며, 공간적 압축방법은 이산 코사인 변환부 및 양자화를 이용하여 공간적으로 존재하는 영상의 유사성을 제거하는 방법이고, 시간적 압축 방법은 시간적으로 인접한 영상간에는 서로의 시간차가 짧아 매우 유사성이 높으므로 이러한 유사성을 움직임 추정과 움직임 보상 방법을 이용하여 가장 유사한 영상을 찾아 그 영상의 차분치만 보내는 방법이다.In general video encoders, the compression method can be divided into temporal and spatial compression parts which are largely lossy compression and variable length encoding part which is lossless compression. The spatial compression method is similarity between spatially existing images using discrete cosine transform and quantization. In the temporal compression method, the temporal compression method is very similar because the time difference between two adjacent images is short. Therefore, the similarity is found using the motion estimation and the motion compensation method, and the difference is only transmitted. .

위의 두 가지 압축 방법에 가변 길이 부호화 방법을 사용하여 최종 압축된 영상을 출력하는데, 가변 길이 부호화는 데이터의 발생확률이 높은 값에는 짧은 부호를 할당하고 발생 확률이 낮은 값에 대해서는 긴 부호를 할당하여 평균 부호 길이를 줄이는 압축 방법이다.The final compressed image is output to the two compression methods by using the variable length coding method. In the variable length coding, a short code is assigned to a value having a high probability of generating data and a long code is assigned to a value having a low probability of occurrence. It is a compression method to reduce the average code length.

본 발명의 동영상 부호화기인 동영상 인코더에 NTSC 디코더(1)를 통하여 입력되는 4:2:2 Y/U/V 포맷의 입력 영상인 비디오 신호는 포맷 변환부(2)에서 도 2에 도시한 것과 같이 4:2:0 Y/U/V 포맷으로 변환되고, 또한 래스터 스캐닝의 입력을 8x8 혹은 16x16 블록 단위의 스캐닝으로 변환하게 된다.The video signal, which is an input image of 4: 2: 2 Y / U / V format, input to the video encoder which is the video encoder of the present invention through the NTSC decoder 1, is shown in FIG. It will convert to 4: 2: 0 Y / U / V format and also convert the input of raster scanning to scanning in 8x8 or 16x16 blocks.

이러한 변환된 입력은 인코딩 모드와 GOP(Group of Picture)의 크기에 따라 I와 P 픽처(Picture)만으로 구성이 되는 픽처의 타입이 결정된다.The converted input is determined by the encoding mode and the size of the GOP (Group of Picture). The type of the picture consisting of only I and P pictures is determined.

픽처의 타입이 인트라인 경우 픽처내의 모든 매크로블록은 인트라로 인코딩 되며 이산 코사인 변환, 양자화, 가변 길이 부화화의 과정을 통해 인코딩 된다.If the picture type is intra, all macroblocks in the picture are encoded intra and are encoded through discrete cosine transform, quantization, and variable length incubation.

픽처의 타입이 인터(P 픽처)인 경우 픽처내의 매크로블록은 인트라 또는 인터로 인코딩 될 수 있다.When the type of the picture is an inter (P picture), the macroblock in the picture may be encoded intra or inter.

우선 입력된 영상에 대해 움직임 추정에 의해 움직임 벡터를 계산한 후 움직임 보상을 사용한 경우와 사용하진 않은 경우에 대해 복원된 영상과 SAD(Sum of Absolute Difference)를 이용하여 움직임 보상의 사용 여부를 결정하고 그 결과에 대해 재구성된 블록의 분산과 인코딩하는 매크로블록의 분산을 비교하여 인트라 매크로블록으로 인코딩 할 것인지 비인트라 매크로블록으로 인코딩 할 것인지를 결정한다.First, after calculating the motion vector by the motion estimation for the input image, it is determined whether to use the motion compensation by using the reconstructed image and SAD (Sum of Absolute Difference). The result is compared with the variance of the reconstructed block and the variance of the encoding macroblock to determine whether to encode into an intra macroblock or a non-intra macroblock.

인트라 매크로블록 인 경우는 이산 코사인 변환, 양자화 및 가변 길이 부호화를 통해 인코딩하며 비인트라 매크로블록 인 경우는 이전 프레임의 참조 매크로블록과의 차분치를 이산 코사인 변환, 양자화 및 가변 길이 부호화를 이용하여 인코딩 한다.In case of intra macroblock, encoding is performed through discrete cosine transform, quantization, and variable length coding. In case of non-intra macroblock, difference between reference macroblock of previous frame is encoded using discrete cosine transform, quantization, and variable length coding. .

인코딩된 영상은 비인트라 픽처의 참조 영상으로 사용하기 위해 양자화부(5)에서 출력된 신호를 인코딩의 역순으로 디코딩하여 프레임 메모리(11)에 저장한다.The encoded image decodes the signal output from the quantization unit 5 in the reverse order of encoding and stores it in the frame memory 11 for use as a reference image of the non-intra picture.

B 픽처는 사용되지 않으므로 이전 한 프레임의 영상만을 저장하면 된다.Since the B picture is not used, only the image of the previous one frame needs to be stored.

가변 길이 부호화부(VLC)(6)는 MPEG 규격에서 정한 코드 북(code book)을 이용하여 코딩을 수행한다.The variable length encoder (VLC) 6 performs coding by using a code book defined in the MPEG standard.

상기의 포맷 변환부(2)로부터 포맷이 변환된 상태인 매크로 블록을 전달받는 인트라/인터 선택부(3)(10)에서는 P 픽처의 매크로블록을 인트라 또는 비인트라로 선택적으로 인코딩할 수 있으며, 움직임 추정 및 보상부(12)와 움직임 보상/움직임 안보상 선택부(13)에 의해 얻어진 결과와 인트라 매크로블록으로 인코딩 할 때와의 효율을 비교하여 코딩 효율이 높은 것을 선택하게 된다.Intra / inter selector (3) 10, which receives the macroblock in the format converted state from the format converter 2, can selectively encode the macroblock of the P picture intra or non-intra. The result obtained by the motion estimation and compensator 12 and the motion compensation / motion security compensation selector 13 is compared with the efficiency when encoding into an intra macroblock to select a higher coding efficiency.

본 실시예에서 사용한 방법은 현재 매크로블록의 분산과 현재 매크로블록과 이전 영상으로부터 움직임이 보상된 매크로블록과의 분산 값을 비교하여 결정하게 되는 것으로 도 3에 도시한 것과 같이 VAR 64까지는 모두 인터인 비 인트라(non intra)가 되며 VAR 64와 VAROR 64의 교차점에서 VAR 256과 VAROR 256의 교차점을 연결하는 사선이 인터와 인트라를 선택하는 기준선이 된다.The method used in this embodiment is determined by comparing the variance of the current macroblock with the variance value of the current macroblock and the motion-compensated macroblock from the previous image. As shown in FIG. The non-intra (non intra) and the diagonal line connecting the intersection of VAR 256 and VAROR 256 at the intersection of VAR 64 and VAROR 64 is the baseline for selecting inter and intra.

상기의 인트라/인터 선택부(3)로부터 선택적으로 인코딩되는 픽처를 전달받는 이산 코사인 변환부(DST : Discrete Cosine Transform)(4)와 역이산 코사인 변환부(IDST : Inverse Discrete Cosine Transform)(9)는 2차원 공간상의 중복성을 줄이도록 한다.Discrete Cosine Transform (DST) 4 and Inverse Discrete Cosine Transform (IDST) (9) for receiving a picture that is selectively encoded from the intra / inter selector (3). Reduces the redundancy in two-dimensional space.

상기 이산 코사인 변환부(4)는 2차원 축 변환을 통해서 데이터의 상관성을 제거하는 방법으로 픽처를 8 x 8 블록으로 나누어 수행하고, 이렇게 변환된 데이터들은 저주파 대역으로 편중되는데 이렇게 얻어진 데이터를 양자화부(5)에서 양자화하면서 고주파 성분을 제거하여 공간적 압축을 하게 된다.The discrete cosine transformer 4 divides a picture into 8 x 8 blocks by a method of removing correlation of data through two-dimensional axis transformation, and the converted data are biased into a low frequency band. In (5), spatial compression is performed by removing high frequency components while quantizing.

본 실시예에서 사용되는 이산 코사인 변환부(4)와 역이산 코사인 변환부(9)의 수식적 표현은 다음의 식 (1)과 같다.The formal expression of the discrete cosine transform unit 4 and the inverse discrete cosine transform unit 9 used in the present embodiment is expressed by the following equation (1).

상기의 이산 코사인 변환부(4)에서 얻어진 데이터는 저주파에 정보가 편중되어 있고, HVS(Human Visual System)의 특성이 고주파 성분보다는 저주파 성분에 민감하므로 양자화부(5)에서는 이런 특성을 이용하여 주파수 성분에 따라 서로 다른 가중치를 두어 나누어줌으로써 고주파 성분을 제거하여 적은 손실로서 큰 압축효과를 얻을 수 있게 된다.In the data obtained by the discrete cosine transform unit 4, information is centered on low frequency, and since the characteristics of the human visual system (HVS) are sensitive to low frequency components rather than high frequency components, the quantization unit 5 uses these characteristics to obtain frequency. By dividing different weights according to the components, high-frequency components can be removed and a large compression effect can be obtained with a small loss.

본 실시예에서 적용하는 양자화부(5)의 알고리즘은 다음과 같다.The algorithm of the quantization unit 5 applied in the present embodiment is as follows.

즉 매크로블록 타입이 인트라인 경우 양자화부(5)와 역양자화부(8)에서는 DC 계수와 AC 계수로 나누어 다음의 식(2)와 같이 수행한다.That is, when the macroblock type is intra, the quantization unit 5 and the inverse quantization unit 8 divide the DC coefficient and the AC coefficient and perform the following equation (2).

DC 계수는 화면의 평균 밝기를 나타내는 것으로서 사람의 눈에 가장 민감한 요소로 손실을 줄이기 위해 고정된 값 8로 양자화하며, AC 계수는 양자화 매트릭스와 양자화 스텝 값에 의해 양자화한다.The DC coefficient represents the average brightness of the screen and is the most sensitive to the human eye, and is quantized to a fixed value of 8 to reduce loss. The AC coefficient is quantized by a quantization matrix and a quantization step value.

인터(비인트라) 매크로블록의 경우는 움직임 보상된 영상과의 차에 대한 값이므로 DC 와 AC 계수에 관계없이 다음의 식 (3)과 같이 동일하게 수행한다.In the case of the inter (non-intra) macroblock, the value is a difference between the motion compensated image and the same operation is performed regardless of the DC and AC coefficients as shown in Equation (3) below.

여기서 w(i,j)는 양자화 매트릭스로 디폴트 양자화 매트릭스는 다음의 표와 같다.Where w (i, j) is the quantization matrix, and the default quantization matrix is shown in the following table.

디폴트 인트라 매트릭스의 특징을 보면 인트라의 경우 상대적으로 중요성이 적은 고주파 성분에 대해서는 큰 값을 부여하고 저주파 성분에 대해서는 작은 값을 부여하도록 구성되어 있으며 비인트라 매트릭스는 동일한 값으로 구성되어 있다.As for the characteristics of the default intra matrix, the intra is configured to give a large value for the high frequency component which is relatively insignificant and to give a small value for the low frequency component, and the non-intra matrix is composed of the same value.

본 실시예의 비디오 인코더는 디폴트 양자화 매트릭스만 사용한다.The video encoder of this embodiment uses only a default quantization matrix.

상기의 움직임 추정(Motion Estimation) 및 보상부(12)는 움직임이 있는 영상에서 시간적 정보의 중복성을 제거하기 위한 압축 방법으로 현재 매크로블록과 이전 영상에서 가장 잘 대응되는 블록에 대한 수평 수직성분의 움직임 벡터를 찾는 것이다.The motion estimation and compensation unit 12 is a compression method for eliminating redundancy of temporal information in a moving image. The motion of the horizontal vertical component with respect to the block that best matches the current macroblock and the previous image is obtained. Is to find a vector.

탐색 영역에서 현재 매크로블록에 가장 잘 대응되는 매크로블록을 찾는 방법으로는 블록 정합 알고리즘(BMA : Block Matching Algorithm)이 가장 많이 이용되고 있으며, 블록 정합 알고리즘에는 FS(Full Search), HS(Hierarchical Search), TSS(Three-Step Search), FSS(Four-Step Search) 등이 대표적으로 이용되고 있다.The Block Matching Algorithm (BMA) is most commonly used to find the macroblock that best matches the current macroblock in the search area.Full Search (FS) and Hierarchical Search (HS) are used for the Block Matching Algorithm. , TSS (Three-Step Search), FSS (Four-Step Search) and the like are typically used.

이중 FS는 가장 성능이 우수하지만 많은 연산량이 필요로 하므로 실시간 구현에 어려움이 있고, HS는 고속 알고리즘의 가장 이상적인 형태지만 역시 연산량이 많고 VLSI의 구조가 복잡하며, TSS는 통계적인 움직임 벡터를 고려하지 않고 모든 움직임 벡터의 가능성을 같게 보기 때문에 실제 적용에서는 비효율적인 면이 있다.Dual FS has the highest performance but requires a lot of computation, which makes it difficult to implement in real time. HS is the most ideal form of high-speed algorithm, but it is also computational and complex in VLSI, and TSS does not consider statistical motion vectors. In fact, there is an inefficiency in practical applications because all motion vectors are considered equally likely.

반면에 FSS는 FS만큼 많은 양의 연산을 요구하지 않으면서 TSS보다 높은 효율성을 갖는 것으로 알려져 있다.FSS, on the other hand, is known to have higher efficiency than TSS without requiring as much computation as FS.

그러므로 본 실시예에서는 기존의 FSS 알고리즘을 변형한 MFSS(Modified Four-Step Search) 알고리즘을 사용한다.Therefore, the present embodiment uses a Modified Four-Step Search (MFSS) algorithm, which is a modification of the existing FSS algorithm.

MFSS의 특징은 기존의 FSS보다 탐색점의 수는 다소 많지만, 각 단계에서 탐색점의 간격이 일정하고 9점으로 구성된 베이스 모듈(Base Module)의 단위 모듈로 이루어져 있기 때문에 하드웨어 구현이 용이하고 충분한 탐색점의 분포로 움직임이 많고 적음에 크게 영향을 받지 않으며 FS(Full Search)에 거의 근접한 성능을 나타낸다는 장점이 있는 것이다.The characteristics of MFSS is that the number of search points is slightly higher than that of the existing FSS, but the hardware is easy to implement and sufficient search is possible because it consists of unit modules of base module composed of 9 points with constant interval of search points in each stage. The point distribution has a merit of being much influenced by a lot of movement and littleness and showing a performance close to FS (Full Search).

MFSS의 알고리즘의 탐색 방법은 도 4에 도식적으로 도시한 것과 같이,The searching method of the algorithm of the MFSS is as shown schematically in FIG.

원점과 주위 8 개의 탐색점을 포함하여 9 점에 대해 최소 에러점을 찾는 단계와,Finding the minimum error point for nine points, including the origin and eight surrounding search points,

이전 스텝의 최소 에러점을 기준으로 3 점에 대해 최소 에러점을 구하는 단계와,Obtaining a minimum error point for three points based on the minimum error point of the previous step,

여기서 탐색점들의 분포는 기준점에서 좌측상단 쪽으로 3, 우측 하단으로 2의 범위내의 점들이 된다.Here, the distribution of the search points is a point in the range of 3 toward the upper left side of the reference point and 2 toward the lower right side.

이전 스텝의 최소 에러점을 기준으로 36 점에 대해 최소 에러점을 구하는 단계와,Obtaining a minimum error point for 36 points based on the minimum error point of the previous step,

여기서 탐색점의 분포는 분포의 중심에 있는 4 점 중에 탐색점의 분포가 원 점에서 멀어지는 방향으로 설정한다.Here, the distribution of the search point is set in a direction in which the distribution of the search point is far from the original point among four points at the center of the distribution.

이전 스텝의 최소 에러점을 기준으로 원점과 주위의 8개의 탐색점을 포함하는 9점에 대해 최소 에러점을 찾는 단계와,Finding a minimum error point for nine points including the origin and eight search points around the minimum error point of the previous step,

이때 찾아진 점과 원점과의 거리가 움직임 벡터가 된다.At this time, the distance between the found point and the origin becomes a motion vector.

상기의 움직임 추정 및 보상부(12)의 움직임 추정에 의해 얻어진 데이터를 전달받는 움직임 보상/움직임 안보상 선택부(Motion compensation / No motion compensation Decision)(13)는 상기의 움직임 추정에서 얻어진 데이터와 움직임 보상을 하지 않은 데이터와 인코딩의 효율을 비교하여 움직임 보상의 사용 여부를 결정한다.The motion compensation / no motion compensation decision unit 13, which receives data obtained by the motion estimation and the motion estimation of the compensation unit 12, moves the data and the motion obtained from the motion estimation. The use of motion compensation is determined by comparing the efficiency of the encoding with the data without compensation.

이것은 현재 매크로블록에 대하여 움직임 보상에 의해 재구성된 매크로블록과 움직임 보상을 사용하지 않고 재구성된 매크로블록(움직임 벡터가 0인 경우) 과의 에러를 비교하여 큰 차이가 없을 경우 움직임 보상을 사용하지 않고 인코딩함으로써 움직임 벡터의 전송에서 오는 비트 발생을 줄이도록 한다.This compares the error between the macroblock reconstructed by motion compensation and motion reconstruction for the current macroblock and the reconstructed macroblock (if the motion vector is 0) and does not use motion compensation if there is no significant difference. Encoding reduces the occurrence of bits from the transmission of the motion vector.

본 실시예에서 사용한 움직임 보상/움직임 안보상 선택부(MC / No MC)(13)의 결정은 SM3(Simulation Model 3)에서 제안한 방법을 하드웨어로 구현이 용이하도록 변형하여 사용한 것으로서,The determination of the motion compensation / motion security compensation selection unit (MC / No MC) 13 used in this embodiment is a modification of the method proposed by SM3 (Simulation Model 3) to be easily implemented in hardware.

에러의 비교 방법은 SAD를 이용하였으며, 도 5에 도시한 것과 같이 움직임 보상의 영역과 움직임 안보상의 영역이 x=1의 수직선과 y=2x의 사선과 x=1의 수직선 및 y=x의 사선들에 의해 구별되는 영역의 나뉘게 되는 특성을 갖는다.As an error comparison method, SAD was used, and as shown in FIG. 5, the area of motion compensation and the area of motion security included a vertical line of x = 1, an oblique line of y = 2x, a vertical line of x = 1, and an oblique line of y = x. It is characterized by the division of the area distinguished by them.

도 6은 본 발명의 실시예에 따른 비디오 인코더를 하나의 칩으로 구현한 상태를 나타낸 블록도로서,6 is a block diagram showing a state in which a video encoder is implemented in one chip according to an embodiment of the present invention.

NTSC 디코더(21)로부터 직접 디지털 영상 신호를 입력받는 인터페이스부(22)에서는 외부에 접속된 DRAM 메모리(23)에 저장하였다가 시스템 클럭의 속도로 동작에 필요한 비디오 포맷 형태인 8x8 및 16x16 블록 단위로 스캐닝하여 출력하고,In the interface unit 22 that receives the digital video signal directly from the NTSC decoder 21, it is stored in the DRAM memory 23 that is externally connected and then stored in 8x8 and 16x16 block units, which are video formats required for operation at a system clock speed. Scan and print,

여기서 동작에 따른 시간의 지연은 별도의 지연소자를 사용하는 것이 아니라, DRAM 메모리(23)에서 읽어내는 시간을 조절하여 필요로 하는 메모리의 용량을 최소화한다.The delay of time according to the operation is not to use a separate delay element, but to adjust the read time from the DRAM memory 23 to minimize the amount of memory required.

DRAM 메모리(23)로부터 입력되는 영상 신호는 ITF(Inter Frame Processor) 부(24)로 입력되어 인트라(Intra)/인터(Inter)의 모드를 결정하도록 하고,The image signal input from the DRAM memory 23 is input to the Inter Frame Processor (ITF) unit 24 to determine the mode of Intra / Inter.

여기서 GOP(Group of Picture)의 첫번째 프레임은 항상 인트라 프레임 모드가 된다.Here, the first frame of the GOP (Group of Picture) is always in the intra frame mode.

ITF부(24)에는 움직인 추정 및 보상부(25)로부터 움직임이 보상된 영상도 귀환되어 입력되므로 다음에 이산 코사인 변환부(26)와 양자화부(27)를 거치고 가변 길이 부호화부(28)를 거쳐 출력되도록 한다.Since the motion-compensated image from the moving estimation and compensation unit 25 is also fed back to the ITF unit 24, the variable length coding unit 28 passes through the discrete cosine transform unit 26 and the quantization unit 27. Output through

동시에 움직임 추정 및 보상을 위해 역이산 코사인 변환부(29), 역양자화부 (30)(Inverse Quantization)를 거쳐 복원된 영상은 다시 DARM 메모리(23)에 프레임 단위로 저장된다.At the same time, the image reconstructed through the inverse discrete cosine transform unit 29 and the inverse quantization unit 30 (Inverse Quantization) for motion estimation and compensation is stored in the DARM memory 23 frame by frame.

DRAM 메모리(23)에 저장된 복원 영상은 움직임 추정 및 보상부(25)로 귀환되어 움직임 추정의 과정을 거쳐 움직임 벡터를 찾은 다음 이를 이용하여 움직임 보상된 데이터를 ITF부(24)로 출력하도록 한다.The reconstructed image stored in the DRAM memory 23 is returned to the motion estimation and compensation unit 25 to find a motion vector through a process of motion estimation, and then output the motion compensated data to the ITF unit 24 using the motion vector.

도 7은 인터페이스부의 상세한 구성을 도시한 것으로서 DRAM 메모리(23)에 저장하는 데이터가 3가지이므로 이들을 각각 저장하기 위한 저장영역을 필요하게 되며 이들을 입/출력을 제어한다.FIG. 7 shows a detailed configuration of the interface unit. Since there are three types of data to be stored in the DRAM memory 23, a storage area for storing them is required, and these control input / output.

즉, NTSC 디코더(21)로부터 입력되는 영상신호를 블록 및 매크로 블록 포맷으로 변환하기 위해 필요한 프레임 메모리인 CFB(Current Frame Buffer)와 움직임 보상을 위해 복원된 영상을 저장하기 위한 RFB(Reconstructed Frame Buffer), 마지막으로 압축된 비트열의 저장을 위한 CB(Channel Buffer)의 3가지로 이루어진 데이터를 각각 저장하기 위하여 외부에 DRAM 메모리(23)를 구성한다.That is, CFB (Current Frame Buffer), which is a frame memory for converting video signals input from NTSC decoder 21 into block and macro block formats, and RFB (Reconstructed Frame Buffer) for storing reconstructed video for motion compensation. Finally, the DRAM memory 23 is externally configured to store three kinds of data of CB (Channel Buffer) for storing the compressed bit string.

이때 프레임 메모리는 읽기와 쓰기를 번갈아 수행해야 하므로 4 프레임을 저장할수 있는 메모리 용량이 필요하고 CB는 선입선출(FIFO)의 구조로 설계한다.In this case, since the frame memory has to read and write alternately, it needs memory capacity to store 4 frames, and CB is designed with a first-in first-out (FIFO) structure.

상기 인터페이스부(22)는 상기의 3가지 메모리를 효율적으로 입/출력하기 위하여 DRAM 메모리(23)를 제어하면서 필요한 동기 신호를 발생하여 인코더를 이루는 다른 모듈로 출력하여 동작의 주기가 일치하도록 하며, DRAM 메모리(23)를 운용할 때 다양한 영상 포맷을 지원하고 그에 맞게 제어한다.The interface unit 22 generates the necessary synchronization signal while controlling the DRAM memory 23 in order to efficiently input / output the above three memories, and outputs them to other modules constituting the encoder so that the periods of operation coincide. When operating the DRAM memory 23, various image formats are supported and controlled accordingly.

NTSC 디코더(21)로부터 비디오 신호(Video Signal)를 전달받는 콘트롤러(31)는 모드 신호(Mode Signal)와 클럭 신호(Clock)를 전달받으면서 동기 신호(Sync.)를 출력하여 내부의 안정된 동작이 가능하도록 하고,The controller 31, which receives the video signal from the NTSC decoder 21, outputs a synchronization signal (Sync.) While receiving the mode signal and the clock signal, thereby enabling stable internal operation. Let's do it,

상기 콘트롤러(31)의 제어를 받으면서 NTSC 디코더(21)로부터 비디오 신호(Video Signal)를 전달받아 일시 저장하는 CFWB(Current Frame Write Buffer) (32)는 블록 및 매크로 블록 포맷으로 변환하여 DRAM 메모리(23)에 블록 단위로 저장하기에 필요한 제어신호와 번지 값을 출력하도록 하고,Under the control of the controller 31, a CFWB (Current Frame Write Buffer) 32, which receives a video signal from the NTSC decoder 21 and temporarily stores it, converts the block and macro block formats into a DRAM memory 23. Output control signal and address value to save in block unit)

상기 콘트롤러(31)의 제어를 받는 CFRB(Current Frame Read Buffer)(33)는 블록 및 매크로 블록 포맷으로 DRAM 메모리(23)에 저장되었던 비디오 신호(Video Signal)를 읽기에 필요한 제어신호와 번지 값을 출력하도록 하고,The current frame read buffer (CFRB) 33 under the control of the controller 31 controls a control signal and a address value for reading a video signal stored in the DRAM memory 23 in block and macro block formats. Output it,

상기 콘트롤러(31)의 제어를 받으면서 역이산 코사인 변환부(29)로부터 복원된 프레임 단위의 비디오 신호(Video Signal)를 전달받아 일시 저장하는 RFWB (Reconstructed Frame Write Buffer)(34)는 움직임 보상을 위해 복원된 프레임의 영상을 DRAM 메모리(23)에 저장하기 위한 제어신호 및 번지 값을 발생하고,Reconstructed Frame Write Buffer (RFWB) 34 receiving and temporarily storing a video signal of a frame unit restored from the inverse discrete cosine transform unit 29 while being controlled by the controller 31 is used for motion compensation. Generating a control signal and a address value for storing the restored frame image in the DRAM memory 23,

상기 콘트롤러(31)의 제어를 받는 RFRB(Reconstructed Frame Read Buffer) (35)는 프레임 단위로 DRAM 메모리(23)에 저장되었던 비디오 신호(Video Signal)를 읽기에 필요한 제어신호와 번지 값을 출력하도록 하고,The Reconstructed Frame Read Buffer (RFRB) 35 under the control of the controller 31 outputs a control signal and a address value for reading a video signal stored in the DRAM memory 23 on a frame basis. ,

움직임 추정 및 보상부(25)에서 움직임의 보상이 완료되어 가변 길이 부호화부(28)로부터 압축된 비트열을 저장하였다가 순차적으로 출력하는 CB(Channel Buffer)(36)는 원하는 속도로 읽어 출력하기 위한 제어신호 및 번지 값을 출력하도록 한다.After the motion compensation is completed in the motion estimation and compensation unit 25, the CB (Channel Buffer) 36, which sequentially stores the compressed bit strings from the variable length encoder 28 and sequentially outputs them, reads them at a desired speed and outputs them. It outputs control signal and address value.

상기 콘트롤러(31), CFWB(32), CFRB(33), RFWB(34), RFRB(35) 및 CB(36)로부터 제어신호와 번지값에 해당하는 정보를 전달받는 인터페이스(37)는 다양한 형태의 모드에 따라 원하는 기능을 수행하도록 제어하면서 DRAM 메모리(23)에 직접 접속할 수 있는 제어신호(Address, Data, RAS, CAS, OEN, WEN 등)를 출력한다.The interface 37 receiving information corresponding to the control signal and the address value from the controller 31, the CFWB 32, the CFRB 33, the RFWB 34, the RFRB 35, and the CB 36 has various forms. A control signal (Address, Data, RAS, CAS, OEN, WEN, etc.) that can be directly connected to the DRAM memory 23 is output while controlling to perform a desired function in accordance with the mode of.

여기서 DRAM 메모리(23)는 입력되는 비디오 포맷에 따라 메모리 맵핑(Memory Mapping)이 달라지는데, 앞에서 설명한 데이터들을 지원하기 위해 Time-Sharing을 통해 DRAM 메모리(23)를 액세스(Access)할 수 있는 대역폭을 나누어 사용하였다.Here, the memory mapping of the DRAM memory 23 varies according to the input video format. In order to support the data described above, the DRAM memory 23 divides the bandwidth for accessing the DRAM memory 23 through time-sharing. Used.

이때 DRAM 메모리(23)의 이용 효율성을 높이기 위해 DRAM 메모리(23)의 지원 모드 중에서 Fast Page / Hyper Page Mode를 사용하였고 CFWB(32), CFRB(33), RFWB(34), RFRB(35) 및 CB(36)의 동작은 시분할 처리하였고, 도 8에는 인터페이스 (37)에서 DRAM 메모리(23)로 출력되는 제어신호(Address, RAS, LCAS, UCAS, WEN, OEN, wData, rData)들의 타임 선도를 나타내었다.At this time, Fast Page / Hyper Page Mode was used among the supported modes of the DRAM memory 23 in order to increase the utilization efficiency of the DRAM memory 23, and the CFWB 32, CFRB 33, RFWB 34, RFRB 35 and The operation of the CB 36 is time-divided, and FIG. 8 shows time diagrams of control signals (Address, RAS, LCAS, UCAS, WEN, OEN, wData, rData) output from the interface 37 to the DRAM memory 23. FIG. Indicated.

여기서 CB(36)를 위한 타이밍은 영상 데이터가 유효하지 않은 블랭킹 (Blanking) 기간 동안에 RFWB(34)와 RFRB(36)의 타이밍을 이용한다.Here, the timing for the CB 36 uses the timing of the RFWB 34 and the RFRB 36 during the blanking period in which the image data is not valid.

도 9는 전술한 MFSS 알고리즘을 적용한 움직임 추정부에 대한 전체적인 구조에 나타낸 블록도로서,9 is a block diagram showing an overall structure of a motion estimation unit to which the MFSS algorithm described above is applied.

탐색 영역의 데이터를 저장하는 SW 메모리(41)와,A SW memory 41 for storing data of a search area,

기준 매크로 블록의 데이터를 저장하는 DB 메모리(42)와,DB memory 42 for storing data of the reference macro block,

상기 SW 메모리(41) 및 DB 메모리(42)의 데이터 입출력을 제어하는 메모리 제어부(43)와,A memory controller 43 which controls data input / output of the SW memory 41 and the DB memory 42;

9 개의 탐색점으로 구성되는 베이스 모듈(Base Module)에 대한 SAD(Sum of Absolute Difference) 값을 계산하기 위해 9 개의 제어 엘리먼트(Process Element)로 구성되는 제어 어레이(Processor Array)(44)와,A processor array 44 comprising nine process elements for calculating a sum of absolute difference (SAD) value for a base module consisting of nine search points,

상기 제어 어레이(44)에 의해 구해진 9 개의 SAD값 중 최소값의 위치를 구하는 PMVG(45),PMVG 45 for obtaining the position of the minimum value among the nine SAD values obtained by the control array 44,

상기 메모리 제어부(43)와 제어 어레이(Processor Array)(44) 및 PMVG(45)의 내부 동작을 제어하면서 최종 움직임 벡터를 구하는 MEP 콘트롤러(46)들로 구성하였다.The memory controller 43, the processor array 44, and the MEP controllers 46 which obtain final motion vectors while controlling the internal operations of the PMVG 45 are configured.

상기 메모리 제어부(43)에는 탐색 영역의 데이터 입력인 SW, 기준 매크로 블록의 데이터 입력인 DB, 움직임 추정의 시작 신호인 START가 입력되며,The memory controller 43 is input with SW, which is a data input of a search region, DB, which is a data input of a reference macro block, and START, a start signal of motion estimation.

상기 메모리 제어부(43)와 MEP 콘트롤러(46)에는 상기 SW와 DB의 입력 동기신호인 NNEX가 동시에 입력되고,The memory control unit 43 and the MEP controller 46 simultaneously input NNEX, which is an input synchronization signal of the SW and DB,

상기 MEP 콘트롤러(46)에는 탐색 영역이 화면 가장자리에 걸쳐 있음을 나타내는 BND_SIG와 클럭(CLK)와 리세트(RESET)가 입력된다.The MEP controller 46 receives a BND_SIG, a clock CLK, and a reset RESET indicating that the search area spans the screen edge.

도 10은 움직임 추정을 위한 연산이 32비트, 즉 4화소를 동시에 연산하는 방법을 적용하기 위한 9개의 제어 엘리먼트의 구성을 나타낸 것으로서,FIG. 10 is a diagram showing the configuration of nine control elements for applying a method for the motion estimation to compute 32 bits, that is, four pixels simultaneously.

제 1 지연소자(50)를 통하여 전달되는 바로 전의 프레임 데이터와 현재의 데이터에 대해 제 2 지연 소자(51)로부터의 인에이블 신호(PE-E)를 전달받으면 절대 오차(Absolute Difference)를 구하는 오차 검출부(52)(53)(54)(55)와,An error that obtains an absolute difference when the enable signal PE-E is received from the second delay element 51 with respect to the previous frame data transmitted through the first delay element 50 and the current data. Detectors 52, 53, 54, 55,

상기 오차 검출부(52,53)(54,55)의 오차값을 합하는 가산부(56)(57)와,Adders 56 and 57 that sum the error values of the error detectors 52 and 53 and 54 and 55,

상기 가산부(56)(57)의 가산치를 더하는 가산부(58)와,An adder 58 that adds the added values of the adders 56, 57, and

상기 가산부(58)의 가산치를 누적하여 제어 엘리먼트 출력값(PEOUT)를 출력하는 누적기(59)들로 구성한다.The accumulator 59 accumulates the addition value of the adder 58 and outputs a control element output value PEOUT.

도 11은 9개의 제어 엘리먼트(Process Element)로 구성되는 제어 어레이 (Processor Array)의 구성을 나타낸 것으로서,FIG. 11 is a diagram illustrating a configuration of a processor array including nine control elements.

제 1 내지 제 9 단위 제어 엘리먼트(PE0)∼(PE8)들의 제어 엘리먼트 출력값 (PEOUT0)∼(PEOUT8)을 멀티플렉서(MUX)에서 혼합하여 SAD를 출력하도록 한다.The control element output values PEOUT0 to PEOUT8 of the first to ninth unit control elements PE0 to PE8 are mixed in the multiplexer MUX to output the SAD.

여기서 제어 어레이(44)를 9개의 단위 제어 엘리먼트(PE0)∼(PE8)들로 구성되는 이유는 MFSS 알고리즘을 구성하는 탐색점이 9개 단위로 분할되기 때문이다.The reason why the control array 44 is composed of nine unit control elements PE0 to PE8 is that the search points constituting the MFSS algorithm are divided into nine units.

이렇게 9개의 단위 제어 엘리먼트(PE0)∼(PE8)에서 SAD값이 계산되면 비교되는 순서에 맞게 SAD값을 출력하기 위해 멀티플렉서(MUX)가 각 단위 제어 엘리먼트 (PE0)∼(PE8)들의 출력단에 연결된다.When the SAD values are calculated in the nine unit control elements PE0 to PE8, the multiplexer MUX is connected to the output terminals of the unit control elements PE0 to PE8 in order to output the SAD values in the order of comparison. do.

MEP 콘트롤러(46)에서 움직임 추정기의 전체적인 동작을 제어하는데 그 중 중요한 일을 몇 가지로 요약하면 다음과 같다.MEP controller 46 controls the overall operation of the motion estimator. Some of the important tasks are summarized as follows.

첫째, 베이스 모듈(Base Module)을 구성하는 9 개의 탐색점에 대한 최소 에러점을 계산하기 위한 SW, DB의 데이터를 읽어오기 위해 메모리 제어부(43)에 데이터 읽기 시작신호와 SW의 읽기 시작 어드레스를 생성한다.First, the data read start signal and the read start address of the SW are input to the memory controller 43 to read the SW and DB for calculating the minimum error points for the nine search points constituting the base module. Create

둘째, 9개의 단위 제어 엘리먼트(PE0)∼(PE8)들의 최종 출력 위치를 알려주는 신호를 생성한다.Second, a signal indicating the final output position of the nine unit control elements PE0 to PE8 is generated.

세째, PMVG가 9개의 출력 값에 대해 최소값을 비교하기 위한 동기 신호를 생성한다.Third, PMVG generates a synchronization signal for comparing the minimum value for the nine output values.

이렇게 하여 움직임 추정의 최종단계를 거쳐 움직임 벡터가 계산되면 움직임 추정 동기 신호(mc_sync)와 제어 신호(mvx, mvy)를 출력하게 된다.In this way, when the motion vector is calculated through the final stage of motion estimation, the motion estimation synchronization signal mc_sync and the control signals mvx and mvy are output.

전체적으로 MEP 콘트롤러(46)의 동작 제어는 내부 카운터로 이루어지는데 start 신호에 동기를 맞춰 시작되고 최종 움직임 벡터가 출력되면 리세트된다.As a whole, the operation control of the MEP controller 46 consists of an internal counter, which starts in synchronization with the start signal and is reset when the final motion vector is output.

전체적인 동작 순서는 MFSS 알고리즘의 스텝에 맞게 스텝 카운터(step_ counter)가 0부터 3까지 증가하고 각 스텝 카운터 값에 대해 다시 베이스 모듈 단위 연산을 하기 위해 서브 스텝 카운터가 0부터 3까지 증가하도록 되어 있다.The overall operation sequence is to increase the step counter from 0 to 3 according to the steps of the MFSS algorithm, and to increase the sub step counter from 0 to 3 to perform the base module unit operation for each step counter value.

상기 서브 스텝 카운터가 변할 때마다 베이스 모듈에서의 최소 에러값들을 비교하고 메모리 제어부(43)로 읽어낼 데이터의 시작 어드레스를 알려준다.Each time the substep counter changes, the minimum error values in the base module are compared and the memory control section 43 informs the start address of the data to be read.

도 12는 움직임 보상부의 내부 구성을 도시한 것으로서,12 illustrates an internal configuration of a motion compensator,

Y 영상에 대해 움직임 보상하는 MC_Y(Motion Compensation_Y)(61)와,Motion Compensation_Y (MC_Y) 61 for motion compensation on the Y image,

U와 V에 대해 움직임 보상하는 부분인 MC_UV(62)와,MC_UV 62 which is a motion compensation portion for U and V,

상기 MC_Y(61) 및 MC_UV(62)로부터 출력되는 움직임이 보상된 데이터(MCed)를 출력하는 MC_MUX(63)들로 구성한다.The MC_MUX 63 outputs data MCed compensated for the motion output from the MC_Y 61 and the MC_UV 62.

상기 MC_Y(61)에는 Y에 대한 보상 데이터(SWY0, SWY1, SWY2, SWY3)들이 입력되며, MC_UV(62)에는 U, V 영상에 대한 SW 데이터 입력으로 SW, 움직임 벡터 출력의 동기 신호인 MV_SYNC, 움직임 벡터인 MVX와 MVY, 움직임 보상 시작을 알리는 START들이 입력되고,The compensation data SWY0, SWY1, SWY2, and SWY3 for Y are input to the MC_Y 61, and MV_SYNC, which is a synchronization signal for outputting SW and motion vectors, is input to the SW data input for U and V images to the MC_UV 62. MVX and MVY, the motion vectors, and STARTs indicating the start of motion compensation are inputted.

상기 MC_Y(61)MC_UV(62)에서 보상된 데이터를 전달받는 MC_MUX(63)에서는 마지막으로 움직임 보상된 데이터(Mced)를 출력한다.The MC_MUX 63 receiving the data compensated by the MC_Y 61 and MC_UV 62 outputs the last motion compensated data Mced.

여기서 Y에 대한 움직임 보상은 움직임 추정부의 마지막 Step의 마지막 탐색점에 해당하는 매크로블럭의 데이터가 움직임 보상된 영상이기 때문에 이를 입력받아 출력 포맷을 조정하여 출력한다.Here, since the motion compensation for Y is the data of the macroblock corresponding to the last search point of the last step of the motion estimator, the motion compensation image is received and the output format is adjusted and output.

컬러 영상은 명암정보(Y : Luminance)와 색깔정보(U, V : Chrominance)로 구성되는데 움직임 추정에서는 Y성분에 대해서만 적용하였다.The color image is composed of contrast information (Y: Luminance) and color information (U, V: Chrominance). In motion estimation, only the Y component is applied.

그것은 당연히 명암정보가 움직이면 그에 따른 색깔정보도 같이 움직이기 때문에 U, V에 대해서는 할 필요는 없다.Of course, it does not need to be done for U and V because contrast information moves with it.

하지만 움직임 보상에서는 Y, U, V 영상에 대해 각기 적용되어야 하는데 Y,U,V가 4:2:0으로 샘플링 되었을 경우 그에 따른 움직임 벡터의 적용도 다를 수 있다.However, motion compensation should be applied to Y, U, and V images respectively. If Y, U, and V are sampled at 4: 2: 0, the application of motion vectors may be different.

즉, 영상의 4:2:0 구성은 화면 내에서 Y 화소가 4개 있으면 그에 대해 색깔 정보로 U, V가 각각 2개씩 있음을 의미하고, 이를 움직임 벡터에 적용해보면 U, V에서의 움직임 벡터는 Y의 움직임 벡터의 절반이 되야 한다는 것을 알 수 있다.That is, the 4: 2: 0 configuration of an image means that if there are four Y pixels in the screen, there are two U and V colors for color information, and when applied to a motion vector, the motion vectors in U and V are applied. It can be seen that must be half of the motion vector of Y.

따라서 U, V의 움직임 보상에는 움직임 벡터를 2로 나누어 사용하면 된다.Therefore, the motion vectors of U and V may be divided by two.

움직임 추정 및 보상부(25)의 움직임 보상은 크게 Y에 대한 움직임 보상 방법과 U와 V의 움직임 보상 방법이 동일하기 때문에 같은 구조를 서로 공유하는 형태를 가지고 있다.The motion compensation of the motion estimation and compensation unit 25 has a form in which the same structure is shared with each other since the motion compensation method for Y and the motion compensation method for U and V are the same.

도 13은 U와 V에 대한 움직임 보상 방법의 실시예에 따른 구성을 나타낸 것으로서,13 shows a configuration according to an embodiment of a motion compensation method for U and V,

U 영상의 데이터를 저장하는 U_SW 메모리(64)와,U_SW memory 64 for storing data of U video,

V 영상의 데이터를 저장하는 V_SW 메모리(65)와,A V_SW memory 65 that stores data of a V video,

U, V 영상에 대해 움직임 보상하기 위해 읽기를 제어하는 MCUV_R(Motion Compensation Read Control of U, V)(66)와,MCUV_R (Motion Compensation Read Control of U, V) 66, which controls reading to compensate motion for U and V images,

U, V 영상에 대해 움직임 보상하기 위해 쓰기를 제어하는 MCUV_W(Motion Compensation Write Control of U, V)(67)와,MCUV_W (Motion Compensation Write Control of U, V) 67 which controls writing to compensate for motion on U and V images,

상기 MCUV_R(66) 및 MCUV_W(67)로부터의 제어 신호에 대해 상기의 U_SW 메모리(64) 및 V_SW 메모리(65)의 데이터를 입출력하면서 신호의 보간을 구하면서 움직임이 보상된 데이터(MCed)를 출력하는 MCUV_NFT(68)들로 구성한다.Outputs data MCed whose motion is compensated while interpolating signals while inputting / outputting data of the U_SW memory 64 and the V_SW memory 65 to the control signals from the MCUV_R 66 and the MCUV_W 67. MCUV_NFT (68).

상기 MCUV_R(66)에는 움직임 벡터 출력의 동기 신호인 MV_SYNC, 움직임 벡터인 MVX와 MVY, 움직임 보상 시작을 알리는 START들이 입력되고,The MCUV_R 66 receives MV_SYNC, which is a synchronization signal of a motion vector output, MVX and MVY, which are motion vectors, and STARTs for starting motion compensation,

MCUV_W(67)에는 움직임 보상 시작을 알리는 START와 제어 신호 MCU_W_ST가 입력되며,The MCUV_W 67 receives a START signal indicating the start of motion compensation and a control signal MCU_W_ST.

상기 MCUV_R(66) 및 MCUV_W(67)에서 제어 신호를 전달받으면서 보간에 의한 보상을 수행하는 MCUV_NTF(68)에서는 마지막으로 움직임 보상된 데이터(Mced)를 출력한다.The MCUV_NTF 68 performing compensation by interpolation while receiving control signals from the MCUV_R 66 and the MCUV_W 67 outputs the last motion compensated data Mced.

한편 상기의 움직임 보상을 위한 동작은 도 14에 타임도로 도시한 것과 같이 Y 영상 데이터를 출력한 후 U, V 영상 데이터를 입력받고 U 영상 데이터를 출력한 다음에 다시 Y 영상 데이터를 출력하는 과정을 반복하도록 한다.On the other hand, the motion compensation operation is a process of outputting Y image data after outputting Y image data and outputting U image data after outputting Y image data as shown in FIG. Repeat this.

그리고 이들 동작을 위한 제어 신호(STSRT, MCU_W_ST, MCU_ST, MCV_ST)들이 각각 입력되는 시점에 동작이 바뀌도록 한다.The operation is changed when the control signals (STSRT, MCU_W_ST, MCU_ST, MCV_ST) for these operations are input.

그리고 U/V의 움직임 보상은 SW에 데이터를 저장하고 움직임 보상을 위해 읽는 시간이 겹치지 않는 시간에 수행되도록 하였기 때문에 메모리의 크기를 반으로 줄이게 된다.U / V motion compensation reduces the size of the memory by half because the data is stored in SW and the reading time for motion compensation does not overlap.

도 15는 도 6을 통해 설명되었던 ITF부의 구성을 나타낸 것으로서,FIG. 15 illustrates a configuration of the ITF unit described with reference to FIG. 6.

움직임이 보상되어 입력되는 8x8 블록 단위의 Predicted Frame과 DRAM 메모리(23)로부터 입력되는 8x8 블록 단위의 Current frame을 전달받는 인트라/인터 선택부(71)에서 Intra-Frame 모드와 Inter-Frame 모드 중에서 매크로블럭 단위로 모드를 결정한다.Intra-frame mode and inter-frame mode are used in the intra-inter mode and inter-frame mode in the intra / inter selector 71 that receives the 8x8 block-predicted frame inputted with motion compensation and the current frame inputted in the DRAM memory 23. Determine the mode in blocks.

인트라/인터의 선택(Decision)을 위해서는 1 매크로블럭 기간이 필요하게 되는데, 이러한 지연은 제 1 선입선출 버퍼(FIFO1)(72)와 제 2 선입선출 버퍼 (FIFO2)(73)를 통해 각각 보상된다.One macroblock period is required for intra / inter decision, which is compensated for through the first-in first-out buffer (FIFO1) 72 and the second-in first-out buffer (FIFO2) 73, respectively. .

상기의 지연이 보상된 입력 영상은 인트라-프레임(Intra-Frame) 모드인 경우에는 MUX_SUB(74)에서 Current Frame 데이터를 출력하고 인터-프레임(Inter-Frame) 모드인 경우에는 두 입력의 차를 이산 코사인 변환부(DCT)(26)로 출력하게 된다.The input image compensated for the delay outputs current frame data from the MUX_SUB 74 in the intra-frame mode and discretely divides the difference between the two inputs in the inter-frame mode. The cosine transform unit (DCT) 26 outputs the result.

또한 역이산 코사인 변환부(30)로부터 입력되는 영상과 Predicted Frame 영상의 지연을 역시 제 3 선입선출 버퍼(FIFO3)(75)과 제 4 선입선출 버퍼(FIFO4) (76)를 통해 보상한 후 MUX_ADD(77)에 입력된다.In addition, MUX_ADD after compensating for the delay of the image inputted from the inverse discrete cosine transform unit 30 and the predicted frame image through the third first-in first-out buffer (FIFO3) 75 and the fourth first-in-first-out buffer (FIFO4) 76. It is input to 77.

인트라 프레임 모드인 경우 역이산 코사인 변환부(30)로부터 입력되는 영상을 출력하고 인트라 프레임 모드인 경우에는 두 입력 영상의 합을 통해 보상된 영상은 DRAM 메모리(23)의 Reconstructed Frame Buffer로 출력한다.In the intra frame mode, the image input from the inverse discrete cosine transform unit 30 is output. In the intra frame mode, the image compensated by the sum of the two input images is output to the reconstructed frame buffer of the DRAM memory 23.

도 16은 가변 길이 부호화부의 구성을 도시한 것으로서,16 illustrates a configuration of a variable length encoder.

도 6의 양자화부(27)로부터 전달되는 이산 코사인 변환 계수(DCT Coefficients)들의 런(Run)과 랭쓰(Length)를 계산하기 위해서는 8x8 블록 시간이 필요한데, 이러한 지연의 보상을 위한 제 5 선입선출 버퍼(FIFO5)(81)와,In order to calculate the run and length of the discrete cosine transform coefficients (DCT Coefficients) transmitted from the quantization unit 27 of FIG. 6, an 8x8 block time is required. (FIFO 5) 81,

상기의 런(Run)과 랭쓰(Length)를 계산하는 런 랭쓰 코더(Run Length Coder) (82)와,A run length coder 82 for calculating the above run and length,

상기의 계수(Coefficients) 이외에 다른 Syntax Data 및 Header 등을 발생하는 헤더 코더(Header Coder)(83)와,A header coder 83 for generating other Syntax Data, Header, etc. in addition to the above coefficients;

상기 계수(Coefficients)의 런 및 랭쓰(Run, Length)와 기타 Header를 선택하는 멀티플렉서(MUX)(84)와,A multiplexer (MUX) 84 for selecting run and length of the coefficients and other headers,

상기의 정보로부터 롬(ROM)(86)에 저장된 코드 북(Codebook) 정보를 읽어내어 최종 코드를 발생하는 가변 길이 부호 코드 발생부(VLC Code Generator)(85)와,A variable length code code generator (VLC Code Generator) 85 for reading codebook information stored in a ROM 86 from the above information and generating a final code;

발생된 가변길이의 코드를 32 비트 단위로 묶어서 출력해주는 32-Bit 파커 (Packer)(87)와,32-Bit Parker (87) that bundles the generated variable-length code in 32-bit units, and

상기의 런 랭쓰 코더(82)와 헤더 코더(83) 및 멀티플렉서(84)의 동작을 제어하면서 데이터의 처리가 MPEG Syntax 구조에 맞도록 다중화를 조절하는 콘트롤러 (88)들로 구성한다.It consists of controllers 88 that control the multiplexing so that the processing of data conforms to the MPEG Syntax structure while controlling the operations of the run length coder 82, the header coder 83, and the multiplexer 84.

여기서 특히 시퀸스(Sequence), GOP, 픽처(Picture) 수준의 상위 계층의 헤더 신호들은 수직 브랭킹(Vertical Blanking) 기간 동안에 코드를 발생하여 다중화한다.In particular, the header signals of the upper layer of the sequence, the GOP, and the picture level generate and multiplex the code during the vertical blanking period.

슬라이스(Slice) 계층의 헤더(Header) 정보들은 수평 블랭킹(Horizontal Blanking) 기간 동안에 코드를 발생하여 다중화 하고, 매크로 블록 단위의 헤더 정보(Quant, Motion Vector, MBA, CBP,..)들은 매크로 블록의 기간을 7개의 8x8 블록 기간을 할당하여 1 블록의 블랭킹 기간 동안에 처리하도록 한다.The header information of the slice layer is generated and multiplexed during the horizontal blanking period, and the header information (Quant, Motion Vector, MBA, CBP, ..) of macro block units is the macro block. The period is allocated seven 8x8 block periods to be processed during the blanking period of one block.

주요 코드 북은 롬(86)에 룩업 테이블(lookup Table)로 저장하게 되는데, 저장되는 포맷은 각기 다른 코드 북을 분리하여 저장한 후에 코딩하기 위한 데이터의 어드레스(Address)가 입력되면 롬(86)에서 출력되는 코드 북에 대한 정보는 다음과 같이 저장된다.The main codebook is stored as a lookup table in the ROM 86. The format to be stored is to separate and store different codebooks, and then input an address of data for coding. Information about the codebook output from is stored as follows.

16 비트 폭을 갖는 롬(86)을 이용할 경우, 16 비트는 각 6 비트와 10비트로 나뉘어 구분된다.When using the ROM 86 having a width of 16 bits, the 16 bits are divided into 6 bits and 10 bits, respectively.

이때 6 비트는 코드의 길이를 알려주는 (Code Length) 정보이고 나머지 10 비트는 실제 코드 정보이다.In this case, 6 bits are code length information indicating a code length, and the remaining 10 bits are actual code information.

모든 코드는 길이가 5 비트 이상이면, 항상 앞 코드의 앞부분은 0으로 시작하게 되므로 롬(86)에서 읽어온 16 비트를 이용하여 먼저 코드의 길이를 해석 한 다음 코드의 길이가 10 비트를 넘어 갈 경우에는 앞에다 0을 부족한 만큼 채우면 된다.If all codes are 5 bits or more in length, the first part of the preceding code always starts with 0. Therefore, the code length is first interpreted using 16 bits read from ROM 86, and then the code length exceeds 10 bits. In that case, just fill in with zeros before it.

바로 이러한 작업을 가변 길이 부호 코드 발생기(85)에서 수행하게 된다.This is exactly what the variable length code code generator 85 does.

가변 길이 부호 발생기(85)에서 출력되는 코드의 길이는 32 비트가 최대이고 가변적이기 때문에 32 Bit 파커(87)에서는 32 비트 단위로 채워서 항상 32 비트 단위로 출력하는 역할을 수행한다.Since the length of the code output from the variable length code generator 85 is 32 bits maximum and variable, the 32-bit parker 87 fills in 32-bit units and always outputs in 32-bit units.

이와 같은 본 발명의 저 복잡도의 동영상 인코더 장치 및 방법에 의하여서는 외부로부터 NTSC 디코더를 통한 비디오 신호가 포맷 변환부에서 블록 단위의 스캐닝으로 변환되어 전달되면 인트라/인터 선택부에서 각 매크로 블록에 대해 인트라 또는 인터로의 인코딩을 결정하고,According to the low complexity video encoder device and method of the present invention, when the video signal from the outside is converted into a block-by-block scanning in the format converter and transmitted from the outside, the intra / inter selector is configured to perform intra for each macro block. Or determine the encoding of the interle,

상기의 매크로 블록에 대해 변환을 위한 계수를 주파수 좌표로 변환하는 이산 코사인 변환부 및 진폭을 정수치로 치환하여 출력하는 양자화부를 통하여 전달받는 가변 길이 부호화부에서 출현 빈도의 대수 절대값에 비례하는 길이를 가진 부호로 압축된 비디오 신호로 버퍼를 통해 출력하고,For a macroblock, the length is proportional to the absolute value of the logarithm of the frequency of appearance in a discrete cosine transform unit for transforming coefficients for transformation into frequency coordinates and a quantization unit for outputting by converting an amplitude into an integer value. Is a video signal compressed with a

상기 양자화부에서 역양자화부 및 역이산 코사인 변환부를 통하여 귀환되는 매크로 블록에 대해 인트라/인터 선택부에서 인트라 또는 인터의 인코딩을 결정하도록 하고,The intra / inter selector determines the encoding of intra or inter for the macro block fed back through the inverse quantization unit and the inverse discrete cosine transform unit in the quantization unit.

상기의 비디오 신호에 대해 움직임 추정 및 보상부에서 움직임 보상/움직임 안보상 선택부의 결정에 의해 1프레임 단위로 프레임 메모리에 저장하면서 움직임 벡터를 추정한 후 이에 대한 보상을 수행하도록 함으로써 많은 응용에 적용할 수 있으며 저가로 구현이 가능하도록 한 것이다.The motion estimation and the compensation unit for the video signal is stored in the frame memory in units of one frame by the decision of the motion compensation / motion security compensation unit. It can be implemented at low cost.

Claims (7)

외부로부터 입력되는 비디오 신호를 NTSC 디코더(1)를 통해 조합에 해당하는 신호로 입력받아 4:2:2 Y/U/V 포맷의 입력 영상을 4:2:0 Y/U/V 포맷으로 변환하면서 래스터 스캐닝의 입력을 8x8 이나 16x16 블록 단위의 스캐닝으로 변환하는 포맷 변환부(2)와,Receives a video signal input from the outside as a signal corresponding to the combination through the NTSC decoder (1) and converts the 4: 2: 2 Y / U / V format input image to 4: 2: 0 Y / U / V format A format converter 2 for converting the raster scanning input into 8x8 or 16x16 block unit scanning; 상기의 포맷 변환부(2)로부터 GOP의 크기에 따라 I 픽처와 P 픽처만으로 구성되는 매크로 블록에 대해 VAR 64까지는 모두 인터인 비 인트라(non intra)가 되며 VAR 64와 VAROR 64의 교차점에서 VAR 256과 VAROR 256의 교차점을 연결하는 사선이 인터와 인트라를 선택하는 기준선이 되도록 인트라 또는 인터로의 인코딩을 결정하는 인트라/인터 선택부(Intra/Inter Decision)(3)와,According to the size of the GOP from the format converter 2, all of the VAR 64 is inter intra, up to VAR 64 for the macro block including only the I picture and the P picture, and VAR 256 at the intersection of VAR 64 and VAROR 64. An Intra / Inter Decision (3) for determining the encoding of the intra or the inter such that an oblique line connecting the intersection point of the VAROR 256 and the base line selects the inter and the intra; 상기 인트라/인터 선택부(3)로부터 비디오 신호의 매크로 블록에 대해 변환을 위한 계수를 코사인 함수의 값으로 용이하게 계산하면서 2차원 축 변환을 통해서 데이터의 상관성을 제거하는 방법으로 픽처를 8 x 8 블록으로 나누어 수행하는 이산 코사인 변환부(4)와,The 8/8 picture is removed in such a manner as to remove the correlation of the data through the 2-D axis transformation while easily calculating the coefficient for transformation of the macroblock of the video signal from the intra / inter selector 3 as the value of the cosine function. A discrete cosine transform unit 4 which is divided into blocks and performed; 상기 이산 코사인 변환부(4)로부터 전달되는 주파수 좌표로 변환된 비디오 신호에 대해 연속적인 곡선의 파형을 고주파 성분을 제거하면서 계단 파형으로 바꾸어 진폭을 적당한 레벨 단위의 정수치로 치환하여 출력하는 양자화부(5)와,A quantization unit for converting the waveform of the continuous curve for the video signal converted to the frequency coordinates transmitted from the discrete cosine converter 4 into a stepped waveform while removing the high frequency components, and outputs the amplitude by substituting an integer value of an appropriate level unit ( 5) with, 상기 양자화부(5)로부터 전달되는 이산 코사인 변환 계수들을 지연시키면서 런과 랭쓰를 계산하여 계수의 런 및 랭쓰와 기타 Header를 선택하여 부호 코드 발생부에서 롬(86)에 저장된 코드 북 정보를 읽어내어 최종 코드를 발생한 후 파커(87)에 의해 32 비트 단위로 묶이도록 한 후 압축된 비디오 신호로 버퍼(7)를 통해 출력하는 가변 길이 부호화부(6)와,Compute the run and length by delaying the discrete cosine transform coefficients delivered from the quantization unit 5, select the run and length and other headers of the coefficients, and read the codebook information stored in the ROM 86 by the code code generator. After the final code is generated by the parker 87 is bound in 32-bit units and the variable length encoder 6 for outputting through the buffer (7) as a compressed video signal, 상기 양자화부(5)에서 전달되는 레벨 단위의 정수치를 주파수 좌표의 비디오 신호로 환원시켜 출력하는 역양자화부(8)와,An inverse quantization unit 8 for reducing and outputting an integer value of a level unit transmitted from the quantization unit 5 to a video signal having frequency coordinates; 상기 역양자화부(8)로부터 전달되는 코사인 함수의 값인 주파수 좌표의 비디오 신호를 원래의 비디오 신호로 환원하는 역이산 코사인 변환부(9)와,An inverse discrete cosine transformer 9 for reducing the video signal of the frequency coordinate which is the value of the cosine function transmitted from the inverse quantizer 8 to the original video signal; 상기 역이산 코사인 변환부(9)로부터 전달되는 비디오 신호의 매크로 블록에 대해 인트라 또는 인터로의 인코딩을 결정하는 인트라/인터 선택부(10)와,An intra / inter selector 10 for determining the encoding of an intra or an inter for a macro block of a video signal transmitted from the inverse discrete cosine transform unit 9, 상기 NTSC 디코더(1)에서 포맷 변환부(2)를 거쳐 입력되는 비디오 신호와 상기 프레임 메모리(11)에서 전달되는 1프레임 단위의 비디오 신호에 대해 탐색점의 간격이 일정하고 9점으로 구성된 베이스 모듈(Base Module)의 단위 모듈로 움직임 벡터를 추정한 후 이에 대한 보상을 수행하는 MFSS(Modified Four-Step Search) 알고리즘에 의한 보상을 하여 상기의 인트라/인터 선택부(3)로 전달하는 움직임 추정 및 보상부(12)와,The base module is composed of nine points with a constant interval between search points for the video signal input from the NTSC decoder 1 through the format converter 2 and the video signal transmitted from the frame memory 11 in units of 1 frame. Estimating a motion vector with a unit module of a (Base Module) and compensating with a Modified Four-Step Search (MFSS) algorithm that performs compensation for the motion vector to be delivered to the intra / inter selector 3. Compensation unit 12, 상기 움직임 추정 및 보상부(12)에 전달되는 비디오 신호에 대해 움직임 보상의 사용 여부를 결정하는 움직임 보상/움직임 안보상 선택부(13)들로 구성됨을 특징으로 하는 저 복잡도의 동영상 인코더 장치.And a motion compensation / motion security selector (13) for determining whether to use motion compensation for the video signal transmitted to the motion estimation and compensation unit (12). 상기의 움직임 추정 및 보상부(12)는 원점과 주위 8 개의 탐색점을 포함하여 9 점에 대해 최소 에러점을 찾는 단계와,The motion estimation and compensator 12 finds a minimum error point with respect to nine points, including the origin and eight surrounding search points, 이전 스텝의 최소 에러점을 기준으로 기준점에서 좌측상단 쪽으로 3, 우측 하단으로 2의 범위내의 3 점에 대해 최소 에러점을 구하는 단계와,Obtaining a minimum error point for three points within the range of 3 from the reference point to the top left and 2 from the bottom right to the minimum error point of the previous step; 이전 스텝의 최소 에러점을 기준으로 분포의 중심에 있는 4 점 중에 탐색점의 분포가 원 점에서 멀어지는 방향으로 설정되는 36 점에 대해 최소 에러점을 구하는 단계와,Obtaining a minimum error point for 36 points among the four points at the center of the distribution based on the minimum error point of the previous step, in which the distribution of the search points is set away from the origin point; 이전 스텝의 최소 에러점을 기준으로 원점과 주위의 8개의 탐색점을 포함하는 9점에 대해 최소 에러점을 찾아 찾아진 점과 원점과의 거리를 움직임 벡터로 추정하는 단계에 의해 MFSS 알고리즘을 수행함을 특징으로 하는 저 복잡도의 동영상 인코더 장치.The MFSS algorithm is performed by estimating the distance between the found point and the origin as a motion vector by finding the minimum error point for 9 points including the origin and the eight search points around the minimum error point of the previous step. Low complexity video encoder device characterized in that the. 제 1 항에 있어서, 상기 비디오 인코더를 NTSC 디코더(21)로부터 직접 디지털 영상 신호를 입력받는 인터페이스부(22)에서는 외부에 접속된 DRAM 메모리(23)에 저장하였다가 시스템 클럭의 속도로 동작에 필요한 비디오 포맷 형태인 8x8 및 16x16 블록 단위로 스캐닝하여 출력하도록 하고,The apparatus of claim 1, wherein the video encoder receives the digital video signal directly from the NTSC decoder 21, and stores the video encoder in an externally connected DRAM memory 23, and is required for operation at a system clock speed. Scan and output in 8x8 and 16x16 block units, which are video format, 상기의 DRAM 메모리(23)로부터 입력되는 영상 신호는 ITF부(24)로 입력되어 인트라/인터의 모드를 결정하도록 하고,The video signal input from the DRAM memory 23 is input to the ITF unit 24 to determine the intra / inter mode. 상기 ITF부(24)에는 움직인 추정 및 보상부(25)로부터 움직임이 보상된 영상도 귀환 입력받아 다음에 이산 코사인 변환부(26)와 양자화부(27)를 거치고 가변 길이 부호화부(28)를 거쳐 출력하도록 하고,The ITF unit 24 receives a motion-compensated image from the moving estimation and compensation unit 25 and then receives a discrete cosine transform unit 26 and a quantization unit 27 and then a variable length encoder 28. Output via 상기의 움직임 추정 및 보상을 위해 역이산 코사인 변환부(29), 역양자화부 (30)(Inverse Quantization)를 거쳐 복원된 영상이 다시 DARM 메모리(23)에 프레임 단위로 저장되도록 하고,For the motion estimation and compensation, the image reconstructed through the inverse discrete cosine transform unit 29 and the inverse quantization unit 30 (Inverse Quantization) is again stored in the DARM memory 23 frame by frame, 상기 DRAM 메모리(23)에 저장된 복원 영상은 움직임 추정 및 보상부(25)로 귀환되어 움직임 추정의 과정을 거쳐 움직임 벡터를 찾은 다음 이를 이용하여 움직임 보상된 데이터를 ITF부(24)로 출력하도록 하는 하나의 칩으로 구성한 저 복잡도의 동영상 인코더 장치.The reconstructed image stored in the DRAM memory 23 is returned to the motion estimation and compensation unit 25 to find a motion vector through a process of motion estimation, and then output the motion compensated data to the ITF unit 24 using the motion vector. Low complexity video encoder device composed of one chip. 제 3 항에 있어서, 상기 인터페이스부는 NTSC 디코더(21)로부터 비디오 신호를 전달받는 콘트롤러(31)는 모드 신호와 클럭 신호를 전달받으면서 동기 신호를 출력하여 내부의 안정된 동작이 가능하도록 하고,The controller 31 of claim 3, wherein the interface unit 31 receives the video signal from the NTSC decoder 21 and outputs a synchronization signal while receiving a mode signal and a clock signal, thereby enabling internal stable operation. 상기 콘트롤러(31)의 제어를 받으면서 NTSC 디코더(21)로부터 비디오 신호를 전달받아 일시 저장하는 CFWB(32)는 블록 및 매크로 블록 포맷으로 변환하여 DRAM 메모리(23)에 블록 단위로 저장하기 위한 제어신호와 번지 값을 출력하도록 하고,The CFWB 32, which receives the video signal from the NTSC decoder 21 and temporarily stores it under the control of the controller 31, converts it into a block and macro block format and stores it in the DRAM memory 23 in block units. And the address number 상기 콘트롤러(31)의 제어를 받는 CFRB(33)는 블록 및 매크로 블록 포맷으로 DRAM 메모리(23)에 저장된 비디오 신호를 읽기 위한 제어신호와 번지 값을 출력하도록 하고,The CFRB 33 under the control of the controller 31 outputs a control signal and a address value for reading a video signal stored in the DRAM memory 23 in block and macro block formats. 상기 콘트롤러(31)의 제어를 받으면서 역이산 코사인 변환부(29)로부터 복원된 프레임 단위의 비디오 신호를 전달받아 일시 저장하는 RFWB(34)는 움직임 보상을 위해 복원된 프레임의 영상을 DRAM 메모리(23)에 저장하기 위한 제어신호 및 번지 값을 발생하고,Under the control of the controller 31, the RFWB 34 receiving and temporarily storing a video signal of a frame unit restored from the inverse discrete cosine transform unit 29 stores the image of the restored frame for motion compensation in the DRAM memory 23. Generate control signal and address value to save) 상기 콘트롤러(31)의 제어를 받는 RFRB(35)는 프레임 단위로 DRAM 메모리 (23)에 저장된 비디오 신호를 읽기 위한 제어신호와 번지 값을 출력하도록 하고,The RFRB 35 under the control of the controller 31 outputs a control signal and a address value for reading a video signal stored in the DRAM memory 23 on a frame basis. 움직임 추정 및 보상부(25)에서 움직임의 보상이 완료되어 가변 길이 부호화부(28)로부터 압축된 비트열을 저장하였다가 순차적으로 출력하는 CB(36)는 원하는 속도로 읽어 출력하기 위한 제어신호 및 번지 값을 출력하도록 하고,The motion estimation and compensation unit 25 completes the motion compensation and stores the bit stream compressed from the variable length encoder 28 and sequentially outputs the control signal for reading and outputting at a desired speed. Output the address, 상기 콘트롤러(31), CFWB(32), CFRB(33), RFWB(34), RFRB(35) 및 CB(36)로부터 제어신호와 번지 값에 해당하는 정보를 전달받는 인터페이스(37)는 다양한 형태의 모드에 따라 원하는 기능을 수행하도록 제어하면서 DRAM 메모리(23)에 직접 접속할 수 있는 제어신호(Address, Data, RAS, CAS, OEN, WEN)를 출력하도록 하고,The interface 37 receiving information corresponding to the control signal and the address value from the controller 31, the CFWB 32, the CFRB 33, the RFWB 34, the RFRB 35, and the CB 36 has various forms. Output control signals (Address, Data, RAS, CAS, OEN, WEN) that can be directly connected to the DRAM memory 23 while controlling to perform a desired function according to the mode of 입력되는 비디오 포맷에 따라 메모리 맵핑이 달라지는 상기 DRAM 메모리(23)에 모든 데이터들을 지원하고 이용 효율성을 높이기 위해 지원 모드 중에서 Fast Page / Hyper Page Mode를 사용한 저 복잡도의 동영상 인코더 장치.A low complexity video encoder device using Fast Page / Hyper Page Mode among supported modes to support all the data in the DRAM memory 23 whose memory mapping is different according to the input video format and to increase the use efficiency. 제 3 항에 있어서, 상기 움직임 추정 및 보상부에서 매크로 블록 단위의 에러를 계산하는 각각의 단위 제어 엘리먼트는 제 1 지연소자(50)를 통하여 전달되는 바로 전의 프레임 데이터와 현재의 데이터에 대해 제 2 지연 소자(51)로부터의 인에이블 신호(PE-E)를 전달받는 오차 검출부(52)∼(55)에서 절대 오차(Absolute Difference)를 구하도록 하고,The method of claim 3, wherein each unit control element for calculating the error in the macro block unit in the motion estimation and compensation unit is a second to the previous frame data and the current data transmitted through the first delay element (50) Absolute Difference is obtained by the error detectors 52 to 55 that receive the enable signal PE-E from the delay element 51. 상기 오차 검출부(52,53)(54,55)의 오차값을 가산부(56)(57)와 가산부(58)에서 합한 후 누적기(59)에서 가산치를 누적하여 제어 엘리먼트 출력값(PEOUT)를 출력하도록 하고,The error values of the error detectors 52, 53, 54, 55 are added by the adders 56, 57 and 58, and the accumulator 59 accumulates the added values to control element output value PEOUT. To print 제 1 내지 제 9 단위 제어 엘리먼트(PE0)∼(PE8)들의 제어 엘리먼트 출력값 (PEOUT0)∼(PEOUT8)을 멀티플렉서(MUX)에서 혼합하여 SAD를 출력하도록 하고,The control element output values PEOUT0 to PEOUT8 of the first to ninth unit control elements PE0 to PE8 are mixed in the multiplexer MUX to output the SAD. 움직임 보상부는 Y 신호는 움직임 추정부로부터 마지막 스텝의 마지막 탐색점에 대한 매크로블럭을 입력하여 메모리에 저장후 출력 포맷으로 변환하여 보상하고, U/V는 Y에 대해 추정된 움직임 벡터를 이용하여 탐색영역으로부터 움직임 보상을 수행하도록 한 저 복잡도의 동영상 인코더 장치.The motion compensator compensates for the Y signal by inputting the macroblock for the last search point of the last step from the motion estimator, storing it in memory, converting it to an output format, and searching the U / V using the motion vector estimated for Y. A low complexity video encoder device for performing motion compensation from an area. 제 3 항에 있어서, 상기 ITF는 움직임이 보상되어 입력되는 8x8 블록 단위의 Predicted Frame과 DRAM 메모리(23)로부터 입력되는 8x8 블록 단위의 Current frame을 전달받는 인트라/인터 선택부(71)에서 Intra-Frame 모드와 Inter-Frame 모드 중에서 매크로블럭 단위로 모드를 결정하도록 하고,4. The Intra-inter selector 71 of claim 3, wherein the ITF receives a Predicted Frame in 8x8 block units inputted with motion compensation and a Current frame in 8x8 block units input from the DRAM memory 23. Determine the mode in macroblock unit between Frame mode and Inter-Frame mode, 상기 인트라/인터의 선택을 위한 1 매크로 블럭의 기간을 제 1 선입선출 버퍼(FIFO1)(72)와 제 2 선입선출 버퍼(FIFO2)(73)를 통해 보상하도록 하고,The period of one macro block for the selection of intra / inter is compensated by the first-in-first-out buffer (FIFO1) 72 and the second-in-first-out buffer (FIFO2) 73, 상기의 입력 영상은 인트라-프레임 모드인 경우 MUX_SUB(74)에서 Current Frame 데이터를 출력하면서 인터-프레임 모드인 경우 두 입력의 차를 이산 코사인 변환부(DCT)(26)로 출력하도록 하고,The input image outputs current frame data from the MUX_SUB 74 in the intra-frame mode and outputs the difference between the two inputs to the discrete cosine transform unit (DCT) 26 in the inter-frame mode. 역이산 코사인 변환부(30)로부터 입력되는 영상과 Predicted Frame 영상의 지연을 역시 제 3 선입선출 버퍼(FIFO3)(75)과 제 4 선입선출 버퍼(FIFO4)(76)를 통해 보상한 후 MUX_ADD(77)에 입력되도록 하고,The delay of the image inputted from the inverse discrete cosine transform unit 30 and the predicted frame image is also compensated through the third-in-first-out buffer (FIFO3) 75 and the fourth-in-first-out buffer (FIFO4) 76 and then MUX_ADD ( 77), 인트라 프레임 모드인 경우 역이산 코사인 변환부(30)로부터 입력되는 영상을 출력하고 인트라 프레임 모드인 경우에는 두 입력 영상의 합을 통해 보상된 영상은 DRAM 메모리(23)의 Reconstructed Frame Buffer로 출력하도록 한 저 복잡도의 동영상 인코더 장치.In the case of intra frame mode, an image input from the inverse discrete cosine transform unit 30 is output. In the case of intra frame mode, an image compensated by the sum of two input images is output to the reconstructed frame buffer of the DRAM memory 23. Low complexity video encoder device. 제 3 항에 있어서, 상기 가변 길이 부호화부는 양자화부(27)로부터 전달되는 이산 코사인 변환 계수(DCT Coefficients)들의 런(Run)과 랭쓰(Length)를 계산하기 위한 8x8 블록의 지연을 위한 제 5 선입선출 버퍼(FIFO5)(81)와,4. The method of claim 3, wherein the variable length encoder is fifth preemptive for delay of an 8x8 block for calculating run and length of discrete cosine transform coefficients transmitted from the quantization unit 27. An election buffer (FIFO5) 81, 상기의 런(Run)과 랭쓰(Length)를 계산하는 런 랭쓰 코더(82)와,A run length coder 82 for calculating the above Run and Length, 상기의 계수 이외에 다른 Syntax Data 및 Header 등을 발생하는 헤더 코더 (83)와,A header coder 83 for generating other Syntax Data, Header, etc. in addition to the above coefficients, 상기 계수의 런 및 랭쓰와 기타 Header를 선택하는 멀티플렉서(84)와,A multiplexer 84 for selecting the run and length of the coefficient and other headers, 상기의 정보로부터 롬(86)에 저장된 코드 북 정보를 읽어내어 최종 코드를 발생하는 가변 길이 부호 코드 발생부(85)와,A variable length code code generator 85 for reading the codebook information stored in the ROM 86 from the above information and generating a final code; 발생된 가변길이의 코드를 32 비트 단위로 묶어서 출력하는 32-Bit 파커 (Packer)(87)와,32-Bit Parker (87) which bundles the generated variable-length code in 32-bit units and outputs it, 상기의 런 랭쓰 코더(82)와 헤더 코더(83) 및 멀티플렉서(84)의 동작을 제어하면서 데이터의 처리가 MPEG Syntax 구조에 맞도록 다중화를 조절하는 콘트롤러 (88)들로 구성하여 전체 코드의 길이가 10비트 이상일 경우 앞부분의 0을 제외하고 10비트 이하로 줄여 저장하고, 32 비트 이하의 가변길이 코드를 입력하여 32 비트가 다 채워지면 한번씩 32 비트씩 출력하도록 구성한 저 복잡도의 동영상 인코더 장치.The length of the entire code is composed of controllers 88 that control the multiplexing so that the processing of data conforms to the MPEG Syntax structure while controlling the operations of the run length coder 82, the header coder 83, and the multiplexer 84. Is less than 10 bits except 10 at the beginning, and saves, and inputs 32-bit variable length code and outputs 32 bits once when 32 bits are filled.
KR1019990030615A 1999-07-27 1999-07-27 Algorithm and Implementation Method of a Low-Complexity Video Encoder KR100323235B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990030615A KR100323235B1 (en) 1999-07-27 1999-07-27 Algorithm and Implementation Method of a Low-Complexity Video Encoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990030615A KR100323235B1 (en) 1999-07-27 1999-07-27 Algorithm and Implementation Method of a Low-Complexity Video Encoder

Publications (2)

Publication Number Publication Date
KR20010011309A true KR20010011309A (en) 2001-02-15
KR100323235B1 KR100323235B1 (en) 2002-02-19

Family

ID=19605005

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990030615A KR100323235B1 (en) 1999-07-27 1999-07-27 Algorithm and Implementation Method of a Low-Complexity Video Encoder

Country Status (1)

Country Link
KR (1) KR100323235B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100390813B1 (en) * 2001-05-29 2003-07-12 주식회사 하이닉스반도체 Apparatus of video decoder for digital television having half-sized hard ware memory and method of the same
US6867714B2 (en) * 2002-07-18 2005-03-15 Samsung Electronics Co., Ltd. Method and apparatus for estimating a motion using a hierarchical search and an image encoding system adopting the method and apparatus
KR100654436B1 (en) * 2004-07-07 2006-12-06 삼성전자주식회사 Method for video encoding and decoding, and video encoder and decoder
KR100713400B1 (en) * 2004-04-30 2007-05-04 삼성전자주식회사 H.263/mpeg video encoder for controlling using average histogram difference formula and its control method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100750110B1 (en) 2003-04-22 2007-08-17 삼성전자주식회사 4x4 intra luma prediction mode determining method and apparatus

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100390813B1 (en) * 2001-05-29 2003-07-12 주식회사 하이닉스반도체 Apparatus of video decoder for digital television having half-sized hard ware memory and method of the same
US6867714B2 (en) * 2002-07-18 2005-03-15 Samsung Electronics Co., Ltd. Method and apparatus for estimating a motion using a hierarchical search and an image encoding system adopting the method and apparatus
KR100713400B1 (en) * 2004-04-30 2007-05-04 삼성전자주식회사 H.263/mpeg video encoder for controlling using average histogram difference formula and its control method
KR100654436B1 (en) * 2004-07-07 2006-12-06 삼성전자주식회사 Method for video encoding and decoding, and video encoder and decoder

Also Published As

Publication number Publication date
KR100323235B1 (en) 2002-02-19

Similar Documents

Publication Publication Date Title
JP3268306B2 (en) Image coding method
KR100400538B1 (en) Image sequence coding method and decoding method
JP4092734B2 (en) Digital signal conversion method and digital signal conversion apparatus
JP3358620B2 (en) Image encoding method and image encoding device
US5796434A (en) System and method for performing motion estimation in the DCT domain with improved efficiency
JP4223571B2 (en) Image coding method and apparatus
US5731850A (en) Hybrid hierarchial/full-search MPEG encoder motion estimation
US5768537A (en) Scalable MPEG2 compliant video encoder
KR100340369B1 (en) Encoding method
KR960006762B1 (en) 2-dimensional data scanning selecting circuit for image coding
EP0585051B1 (en) Image processing method and apparatus
US5963222A (en) Multi-format reduced memory MPEG decoder with hybrid memory address generation
JPH10145791A (en) Digital video decoder and method for decoding digital video signal
JPH06189281A (en) Video signal encoding device using compression of adaptive frame/field format
US5748240A (en) Optimal array addressing control structure comprising an I-frame only video encoder and a frame difference unit which includes an address counter for addressing memory addresses
KR19990036188A (en) Method and apparatus for decoding encoded digital video signal
US5606372A (en) Video signal decoding apparatus capable of reducing blocking effects
US20080123748A1 (en) Compression circuitry for generating an encoded bitstream from a plurality of video frames
JP3707118B2 (en) Image coding method and apparatus
JPH09182087A (en) Method for encoding digital video signal and device therefor
KR100323235B1 (en) Algorithm and Implementation Method of a Low-Complexity Video Encoder
US5614953A (en) Image signal decoding apparatus having an encoding error compensation
JPH0918873A (en) Image encoding method and device and image recording medium
KR0134505B1 (en) Image coder with adaptive motion detection function
JPH07107464A (en) Picture encoding device and decoding device

Legal Events

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

Payment date: 20070122

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee