KR100282614B1 - Motion Predictor for Low Bit Rate Video Codecs - Google Patents
Motion Predictor for Low Bit Rate Video Codecs Download PDFInfo
- Publication number
- KR100282614B1 KR100282614B1 KR1019980052354A KR19980052354A KR100282614B1 KR 100282614 B1 KR100282614 B1 KR 100282614B1 KR 1019980052354 A KR1019980052354 A KR 1019980052354A KR 19980052354 A KR19980052354 A KR 19980052354A KR 100282614 B1 KR100282614 B1 KR 100282614B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- reference block
- intra
- value
- block
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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
- H04N19/423—Methods 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 characterised by memory arrangements
Abstract
본 발명은 저 전송률 비디오 코덱(H.261/H.263)에 적용할 수 있는 움직임 예측기를 제안한다. 본 발명에서 사용한 완전 탐색블록 정합 알고리즘은 움직임 예측을 통해 움직임 벡터를 추출하는 방법 중 가장 정확한 방법이나, 구현할 경우 계산시간이 많이 소요되고, 하드웨어의 비용이 많이 필요하게 된다. 본 발명에서 제안하는 병렬 구조와 메모리 구조를 통하여 시스템의 효율을 최대로하여 수행 시간을 단축함과 동시에 하드웨어의 비용도 줄였다. 또한 본 움직임 예측기에는 인코딩 연산 중의 마크로 블록이 인트라/인터(Intra/Inter) 블록을 결정하는 부분을 포함하고 있다. 인트라/인터 결정 연산에는 기준블록 데이터를 위한 별도의 메모리와 연산장치 및 제어장치가 필요하게 된다. 본 발명에서는 이 부분을 움직임 예측기에 있는 기준블록 데이터를 이용하여 연산하므로써 별도의 메모리를 줄이고, 인트라/인터 결정 부분을 움직임 예측기에서 이루어지도록 하여 코덱 전체 제어기의 부담을 줄이게 하였다.The present invention proposes a motion predictor applicable to a low bit rate video codec (H.261 / H.263). The full search block matching algorithm used in the present invention is the most accurate method of extracting the motion vector through motion prediction, but when implemented, it takes a lot of computation time and high hardware cost. The parallel structure and the memory structure proposed by the present invention maximize the efficiency of the system to reduce the execution time and reduce the hardware cost. In addition, the motion predictor includes a portion in which an macro block during encoding operation determines an intra / inter block. Intra / inter decision operation requires a separate memory for the reference block data, arithmetic unit and control unit. In the present invention, this part is calculated using the reference block data in the motion predictor to reduce the extra memory, and the intra / inter decision part is performed in the motion predictor to reduce the burden on the entire codec controller.
Description
본 발명은 저 전송률 비디오 코덱에 적용할 수 있는 움직임 예측기에 관한 것으로, 특히 기준블록의 인터/인트라 결정을 하는 부분을 움직임 예측기 내부에 두고, 탐색영역 데이터를 로드함에 있어 2포트 램을 사용하여 지역메모리의 크기를 줄이면서 연속적인 연산이 가능하도록 함으로써, 전체 비디오 코덱의 크기를 줄일 수 있도록 한 저 전송률 비디오 코덱을 위한 움직임 검출장치에 관한 것이다.The present invention relates to a motion predictor applicable to a low bit rate video codec. In particular, the present invention uses a two-port RAM to load search area data in a motion predictor with an inter / intra portion of a reference block inside the motion predictor. The present invention relates to a motion detection device for a low bit rate video codec that enables the continuous operation while reducing the size of the memory, thereby reducing the size of the entire video codec.
일반적으로 화상데이터 압축 시스템에서 영상블록의 프레임간 움직임을 보상하는 방법에 있어서, 현재블록(기준블록)과 실제적으로 동일한 정보를 갖는 한 프레임 이전 블록(탐색영역 블록)들로부터 현재 블록에 대한 움직임 벡터를 생성하고, 한 프레임 이전 블록과의 비교에 의해 발생한 현재 블록에 관한 움직임 벡터중에서 그 크기 및 방향이 현재 블록에 인접한 블록의 움직임 벡터와 가장 유사한 움직임 벡터를 검출하여 움직임을 추정하고 있다.In general, a method of compensating inter-frame motion of an image block in an image data compression system, comprising: a motion vector of a current block from a previous frame (search area block) having substantially the same information as the current block (reference block) Is generated, and motion is estimated by detecting a motion vector whose magnitude and direction are the most similar to the motion vector of a block adjacent to the current block among the motion vectors of the current block generated by comparison with the previous block.
그런데, 움직임 벡터를 생성하기 위한 탐색 영역 데이터를 한번에 로드시켜야 하므로 메모리 용량이 많이 필요하고, 움직임 벡터를 검출한 기준블록에 대하여 인트라(intra)/인터(inter) 결정을 위하여 별도의 하드웨어를 구성하여야 하므로 전체 시스템의 게이트 수가 많아지고 하드웨어가 커지는 문제점이 있다.However, since the search area data for generating the motion vector must be loaded at a time, a large memory capacity is required, and separate hardware must be configured for intra / inter determination on the reference block from which the motion vector is detected. Therefore, there is a problem that the gate count of the entire system increases and the hardware increases.
따라서, 본 발명에서는 움직임 예측 연산에 필요한 기준블록 데이터와 탐색영역 데이터를 모두 움직임 예측기의 지역 메모리(Local Memory)에 로드한 후 직접 움직임 예측 연산을 하지않고, 기준 블록은 16 x 16 한 마크로 블록을 로드하고, 탐색영역 데이터는 (탐색영역크기 x 16) 만큼을 초기에 로드한 후 연산 중에 필요한 데이터를 움직임 예측 연산에 영향을 미치지 않으면서 로드하여 지속적인 움직임 예측 연산이 가능하도록 하였다.Therefore, in the present invention, after loading both reference block data and search region data required for the motion prediction operation into the local memory of the motion predictor, the motion block does not directly perform the motion prediction operation. After loading the search area data as much as (search area size x 16), the data required during the operation was loaded without affecting the motion prediction operation to enable continuous motion prediction operation.
이는 탐색영역 데이터 저장 메모리를 2 포트 램(Two Port RAM)을 사용하여 읽기와 쓰기가 동시에 가능하도록 구현하였고, 이러한 설계는 초기에 탐색영역 데이터의 로드로 인한 시간을 줄이고, 데이터 로드 시점을 분산하므로써 전체 비디오 코덱 시스템의 외부 비디오 데이터 메모리 접근 스케슐링에 도움이 되고, 무엇보다 탐색영역 데이터를 모두 저장하는 것 보다 작은 메모리를 사용한다.This is implemented by using two-port RAM to simultaneously read and write the search area data storage memory. This design reduces the time due to the loading of the search area data and distributes the data loading time. It is helpful for scheduling external video data memory access of the entire video codec system, and above all, uses less memory than storing all search area data.
또한 비디오 코덱의 Intra/Inter 결정은 기준블록의 평균 화소값을 구하고 다시 기준 블록의 각 화소와 평균 화소값과의 차의 합을 구한 다음 움직임 벡터에서 선택된 후보 블록에서 얻은 최소 SAD값을 비교하여 해당 기준블록이 Intra인지 또는 Inter인지를 결정하는 부분이다. 이를 독립적으로 구성할 경우 기준블록을 비디오 메모리로부터 로드를 해야하고, 각각의 화소값을 읽어 그 평균값을 계산하며, 또한 평균값과 각 화소값과의 차의 절대치 값을 구해야하는 하드웨어가 필요하게된다.Intra / Inter determination of the video codec also calculates the average pixel value of the reference block, calculates the sum of the difference between each pixel of the reference block and the average pixel value, and then compares the minimum SAD values obtained from the candidate blocks selected from the motion vectors. This part determines whether the reference block is Intra or Inter. Independently configuring the hardware requires a reference block to be loaded from the video memory, reading each pixel value to calculate its average value, and calculating an absolute value of the difference between the average value and each pixel value.
본 발명에서는 이 부분을 움직임 예측기에 두어 독립적으로 구성될 경우에 비디오 코덱의 전체적인 설계에서 중복되는 기준블록의 로드에 따른 메모리, 연산을 위한 여러 덧셈기, 메모리에서 화소 데이터를 읽기 위한 주소 생성기 및 제어부분을 구성하는 하드웨어를 줄이고, 비디오 메모리에서 기준블록 데이터를 중복하여 읽지않아 시스템 전체의 메모리 대역폭을 낮추고, 추가되는 제어부분 역시 간소화하였다.In the present invention, when this part is placed independently of the motion predictor, the memory according to the load of overlapping reference blocks in the overall design of the video codec, various adders for calculation, an address generator for reading pixel data from the memory, and a control part The hardware that composes the system is reduced, the memory bandwidth of the entire system is lowered by not overlapping the reference block data in the video memory, and the added control part is also simplified.
도 1은 본 발명에 의한 움직임 예측장치의 전체적인 구조도.1 is an overall structural diagram of a motion prediction apparatus according to the present invention.
도 2는 본 발명에 의한 기준블록과 탐색영역 데이터의 구조 및 탐색영역 데이터의 슬라이스 구조도.2 is a diagram illustrating a structure of reference blocks and search area data and slice structure of search area data according to the present invention;
도 3은 본 발명의 탐색영역 데이터 저장을 위한 탐색영역 지역메모리 구조도.3 is a structure diagram of a search region local memory for storing search region data of the present invention.
도 4는 본 발명의 움직임 예측기의 연산중 데이터 흐름을 설명하기 위한 타이밍도.4 is a timing diagram for explaining the data flow during operation of the motion predictor of the present invention.
<도면의 주요 부분에 대한 부호의 설명><Description of the code | symbol about the principal part of drawing>
100 : 지역 메모리 101 : 기준블록 데이터 메모리100: local memory 101: reference block data memory
102 : 탐색영역 데이터 메모리 110 : 움직임 예측부102: search area data memory 110: motion prediction unit
111 : 연산기 어레이 112 : 부분합 저장 및 비교기111: Operator Array 112: Subtotal Store and Comparator
113 : 벡터생성 및 인트라/인터 결정부113: vector generation and intra / inter determination unit
120 : 인트라/인터 결정정보 제공부120: intra / inter decision information provider
121 : 평균 화소값 연산부 122 : 화소값 차의 합 연산부121: average pixel value calculator 122: sum of pixel value differences calculator
130 : 제어부 131 : 상태 카운터 및 상태 제어부130: control unit 131: state counter and state control unit
132 : DMA 및 IF부 133 : 쓰기 어드레스 제어부132: DMA and IF unit 133: write address control unit
134 : 읽기 어드레스 제어부 135 : 연산기 어레이 제어부134: read address control unit 135: operator array control unit
136 : 벡터생성 제어부136: vector generation control
이하, 본 발명의 실시예를 첨부된 도면을 참조해서 상세히 설명하면 다음과 같다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명에서 설계한 움직임 예측기의 전체 블록도이다.1 is an overall block diagram of a motion predictor designed in the present invention.
비디오 메모리(도시않됨)로부터 데이터를 입력받아 저장하여 현재 데이터에 대한 16 x 16 하나의 마크로 블록을 기준블록으로 로드하고, (탐색영역크기 x 16)의 탐색영역 데이터로서 로드시키는 지역 메모리(100)와, 상기 지역 메모리(100)로부터 현재 데이터인 기준블록 데이터를 입력받아 기준블록의 평균 화소값을 구하고 다시 기준 블록의 각 화소와 평균 화소값과의 차의 합을 구하여 인터/인트라 결정을 위한 정보로서 제공하는 인터/인트라 결정정보 제공부(120)와, 기준블록과 탐색영역 블록의 행단위로 입력받아 차의 절대치 합에 대한 부분합을 구하여 저장하고 부분합들을 누적하여 SAD 값들을 생성하고, 비교하여 가장 작은 SAD 값을 갖는 후보블록을 찾은 후, 현재의 SAD값과 비교하여 최소 SAD 값을 선택하고, 그 선택된 SAD값을 가지는 블록의 움직임 벡터값을 생성함과 아울러 상기 인터/인트라 결정정보 제공부에서 제공되는 현재 데이터에 따른 기준블록의 SAD값과 상기 움직임 벡터에서 선택된 후보 블록의 SAD값을 비교하여 해당 기준블록이 Intra인지 또는 Inter인지를 결정하는 움직임 벡터 예측부(110)와;Local memory 100 for receiving and storing data from a video memory (not shown) to load 16 x 16 one macroblocks for current data into a reference block and to load them as search area data of (search area size x 16). And receiving the reference block data, which is the current data, from the local memory 100 to obtain an average pixel value of the reference block, and again obtaining a sum of the difference between each pixel of the reference block and the average pixel value. The inter / intra decision information providing unit 120, which is provided as a unit, receives the sub-units of the absolute value sums of the difference between the reference block and the search area block, stores them, accumulates the sub-sums, generates SAD values, and compares them. After finding a candidate block with a small SAD value, select the minimum SAD value by comparing with the current SAD value, and then move the block having the selected SAD value. By generating a data value and comparing the SAD value of the reference block according to the current data provided by the inter / intra decision information providing unit with the SAD value of the candidate block selected from the motion vector, it is determined whether the reference block is Intra or Inter. A motion vector predictor 110 for determining;
상태 카운터 및 상태 제어부의 제어에 의거하여 상기 지역 메모리의 입/출력을 위한 어드레스와, 움직임 예측부의 부분합 연산을 위한 제어신호 및 상기 벡터 발생을 위한 제어신호 등을 제어하는 제어부(130)로 구성된다.The controller 130 is configured to control an address for input / output of the local memory, a control signal for subtotal operation of the motion prediction unit, a control signal for generating the vector, and the like under the control of the state counter and the state controller. .
상기 지역 메모리(100)는, 16 x 16의 하나의 마크로 블록 데이터를 기준블록 데이터(현재데이터)로 입력받아 저장하는 기준블록 데이터 메모리(101)와, (탐색영역크기 x 16) 탐색영역의 16개의 행으로 구성된 탐색영역 슬라이스 데이터를 입력받아 저장하고 홀수 행 데이터와 짝수 행 데이터별로 출력하는 탐색데이터 메모리(102)로 구성된다.The local memory 100 includes a reference block data memory 101 which receives one macro block data of 16 × 16 as reference block data (current data) and 16 of the search area (search area size x 16). And a search data memory 102 for receiving and storing search area slice data composed of two rows and outputting odd row data and even row data.
상기 움직임 예측부(110)는, 상기 지역 메모리(100)로부터 기준블록과 매 탐색영역 슬라이스의 홀수 행과 짝수 행을 입력받아 병렬 연산의 반복을 통하여 움직임 벡터 추출을 위한 기준블록과 후보 블록들간의 부분 차의 절대치 합(PSAD ; Partial Sum of Absolute Difference)을 연산하는 연산기 어레이(111)와, 그 연산기 어레이(111)에서 출력되는 부분 합의 누적합을 구하고 기준블록의 마지막 행과 한 슬라이스 데이터의 마지막 행에 대한 연산 값이 입력되면 한 탐색영역 슬라이스에 포함된 탐색 후보 블록들의 최종 SAD 값을 비교하여 최소의 SAD 값을 가지는 후보블록의 벡터와 해당 SAD 값을 출력하는 부분합 저장 및 비교기(112)와, 그 부분합 저장 및 비교기(112)에서 출력되는 후보블록의 SAD 값과 현재의 최소 SAD 값이 비교되어 전체 탐색영역에서 가장 작은 SAD 값과 해당 블록의 벡터값을 생성하고, 상기 인트라/인터 결정 정보 제공부(120)에서 제공되는 기준블록의 SAD값과 상기 최소 SAD값을 비교하여 해당 기준블록이 Intra인지 또는 Inter인지를 결정하는 벡터 생성 및 인트라/인터 결정부(113)로 구성된다.The motion predictor 110 receives a reference block, odd rows and even rows of every search region slice from the local memory 100, and performs a reference operation between the reference block and the candidate blocks for motion vector extraction by repeating parallel operations. The operator array 111 for calculating the partial sum of absolute difference (PSAD) and the cumulative sum of the partial sums output from the operator array 111 are obtained, and the last row of the reference block and the last of one slice data are obtained. When the operation value for the row is input, the subtotal storage and comparator 112 for comparing the final SAD values of the search candidate blocks included in one search region slice and outputting the vector and the corresponding SAD value of the candidate block having the smallest SAD value; The SAD value of the candidate block outputted from the subtotal storage and comparator 112 and the current minimum SAD value are compared to obtain the smallest SAD value and solution in the entire search area. Generating a vector value of the block and comparing the SAD value of the reference block provided by the intra / inter determination information providing unit 120 with the minimum SAD value to determine whether the reference block is Intra or Inter; It consists of the intra / inter determination part 113.
상기 인트라/인터 결정 정보 제공부(120)는, 지역 메모리(100)로부터 현재 데이터인 기준블록 데이터를 입력받아 기준블록의 평균 화소값을 구하는 평균화소값 연산부(121)와, 상기 기준 블록의 각 화소와 평균 화소값과의 차의 합을 구하는 부분합 연산부(122)로 구성되어 인터/인트라 결정을 위한 정보로서 제공하도록 구성된다.The intra / inter determination information providing unit 120 receives the reference block data which is current data from the local memory 100, and obtains an average pixel value calculator 121 for obtaining an average pixel value of the reference block, and each of the reference blocks. And a partial sum calculating unit 122 for calculating the sum of the difference between the pixel and the average pixel value, and is provided as information for inter / intra determination.
상기 제어부(130)는, 기준블록 데이터 및 탐색 영역 데이터의 입/출력과 연산 타이밍을 제어하기 위한 클럭을 카운트하는 상태 카운터 및 상태 제어부(131)와, DMA 및 IF제어부(132)와, 상기 상태 카운터 및 상태 제어부(131)의 출력에 의거하여 상기 지역메모리(100)의 쓰기 어드레스를 발생하는 쓰기 어드레스 발생기(133), 읽기 어드레스를 발생하는 읽기 어드레스 발생기(134), 상기 연산기 어레이(111)를 제어하는 연산기 어레이 제어부(135)와, 상기 벡터 생성 및 인트라/인터 결정부(113)를 제어하는 벡터발생 제어기(136)로 구성된다.The controller 130 includes a state counter and a state controller 131 for counting a clock for controlling input / output and operation timing of reference block data and search area data, a DMA and IF controller 132, and the state. The write address generator 133 for generating the write address of the local memory 100, the read address generator 134 for generating the read address, and the operator array 111 based on the output of the counter and the state controller 131. The operator array control unit 135 to control, and the vector generation controller 136 to control the vector generation and intra / inter determination unit 113.
도 2는 기준블록과 탐색영역 데이터의 모양을 나타낸 것이다.2 illustrates the shapes of the reference block and the search region data.
도 2의 기준블록 데이터는 현재의 입력 데이터로서, 모두 도 1의 기준블록 데이터 메모리(101)에 저장된다. 도 2에서 탐색영역의 16개의 행으로 구성된 부분을 탐색영역 슬라이스(221)라 한다. 도 1의 탐색영역 데이터 메모리(102)에는 한 개의 탐색영역 슬라이스가 저장된다.The reference block data of FIG. 2 is current input data, and all of them are stored in the reference block data memory 101 of FIG. In FIG. 2, a portion consisting of 16 rows of the search region is referred to as a search region slice 221. One search region slice is stored in the search region data memory 102 of FIG. 1.
본 발명의 움직임 예측부(110)는, 기준블록과 한 개의 탐색영역 슬라이스가 병렬연산의 반복을 통하여 움직임 벡터 추출연산이 이루어진다. 초기화된 데이터는 움직임 벡터의 추출을 위해 연산기 어레이(111)로 입력된다.In the motion prediction unit 110 of the present invention, a motion vector extraction operation is performed by repeating parallel operation of a reference block and one search region slice. The initialized data is input to the operator array 111 for extraction of the motion vector.
본 발명의 연산기 어레이(111)에 탐색영역 데이터는 매 탐색영역 슬라이스의 홀수 행과 짝수 행이 동시에 입력된다. 입력된 데이터에 의해 연산기 어레이(111)에서는 기준블록과 후보 블록들간의 부분 차의 절대치 합(PSAD(Partial Sum of Absolute Difference))이 부분합 저장 및 비교기(112)에 전달된다. 기준블록의 마지막 행과 한 슬라이스 데이터의 마지막 행이 입력되면 부분합 저장 및 비교기(112)에서는 한 탐색영역 슬라이스에 포함된 탐색 후보 블록들의 최종 SAD 값을 비교하여 최소의 SAD 값을 가지는 후보블록의 벡터와 해당 SAD 값을 벡터생성기 및 Intra/Inter 결정부(113)에 전달한다.Search area data is input to the operator array 111 of the present invention simultaneously with odd and even rows of every search area slice. In the operator array 111, an absolute sum (Partial Sum of Absolute Difference (PSAD)) of the partial difference between the reference block and the candidate blocks is transmitted to the partial sum storage and comparator 112 by the input data. When the last row of the reference block and the last row of one slice data are input, the subtotal storage and comparator 112 compares the final SAD values of the search candidate blocks included in one search region slice to obtain a vector of the candidate block having the minimum SAD value. And the corresponding SAD value to the vector generator and the Intra / Inter determiner 113.
이와 같은 연산이 마지막 탐색영역 슬라이스가 처리될 때 까지 반복되고 마지막 탐색영역 슬라이스 데이터가 입력되고 부분합 및 비교기(112)에서는 가장 마지막 슬라이스에서 가장 작은 SAD 값과 해당 벡터값이 벡터생성기 및 Intra/Inter 결정부(113)에 전달된다. 전달된 값은 지금까지의 최소 SAD 값과 비교되어 전체 탐색영역에서 가장 작은 SAD 값과 해당 벡터가 결정된다. 이와 같이 반복되는 기준 블록과 탐색영역 슬라이스와의 연산이 가능하도록 새로운 슬라이스 데이터가 연산중의 슬라이스 데이터가 모두 연산기 어레이(111)에 입력되기 전에 준비되어야 한다.This operation is repeated until the last search area slice is processed, the last search area slice data is input, and the subtotal and comparator 112 determines the smallest SAD value and the corresponding vector value of the last slice in the vector generator and Intra / Inter. It is transmitted to the unit 113. The passed value is compared with the minimum SAD value so far to determine the smallest SAD value and corresponding vector in the entire search area. The new slice data must be prepared before all the slice data under calculation are input to the operator array 111 so that the repeated reference block and the search region slice can be operated.
도 3은 도 1의 탐색영역 데이터 메모리로 한 개의 탐색영역 슬라이스를 저장하기 위한 탐색영역 메모리를 나타내고 있다. 도 3에서와 같이 탐색영역 데이터는 16개의 뱅크로 구성되며, 각 뱅크의 물리적 시작 주소는 탐색영역의 한 행의 최대 화소 수에 의해 정해지며, 그 데이터 폭은 16비트로 두개의 화소 데이터가 기억되므로 0, 24, 47, ..., 360이 된다. 한 뱅크에는 탐색영역 데이터의 한 행을 구성하는 데이터가 저장된다.FIG. 3 illustrates a search region memory for storing one search region slice as the search region data memory of FIG. 1. As shown in FIG. 3, the search area data is composed of 16 banks, and the physical start address of each bank is determined by the maximum number of pixels of one row of the search area, and the data width thereof is 16 bits so that two pixel data are stored. 0, 24, 47, ..., 360. One bank stores data constituting one row of search area data.
도 3에서는 탐색영역 범위는 탐색영역의 한 행에 포함된 데이터가 최대 48개가 되고, 만일 탐색영역이 이전 프레임의 가장자리일 경우는 32개가 되며, 이 경우 한 뱅크는 32개의 화소 데이터가 저장되고 나머지 뒤 부분은 데이터가 없는 상태가 된다. 이로써 초기에 로드되는 탐색영역 데이터는 움직임 예측 연산을 위한 1개의 탐색영역 슬라이스가 된다.In FIG. 3, the range of the search area is 48 data included in one row of the search area, and 32 if the search area is the edge of the previous frame. In this case, 32 pixel data are stored in one bank and the rest The latter part has no data. As a result, the search region data initially loaded becomes one search region slice for the motion prediction operation.
도 4는 상위에서 설명한 연산 과정을 데이터의 흐름으로 나타낸 것이다. 도 4에서 첫번째 탐색영역 슬라이스(221)에 해당되는 연산은 이미 초기화된 상태에서 시작된다. 즉 기준블록의 R0∼R15의 16개 행이 저장되고, 탐색영역 데이터는 탐색영역 데이터중 첫번째 슬라이스를 구성하는 S0∼S15 까지가 로드되어 각각의 뱅크(Bank)0∼뱅크(Bank)15에 한 행씩 저장된다.4 illustrates the operation process described above as a flow of data. In FIG. 4, the operation corresponding to the first search region slice 221 starts with an already initialized state. That is, 16 rows of R0 to R15 of the reference block are stored, and the search area data is loaded from S0 to S15 constituting the first slice of the search area data, so that each bank 0 to bank 15 is loaded. It is stored line by line.
기준 블록 데이터의 첫번째 행(R0)과 첫번째 탐색영역 슬라이스 데이터의 첫번째 행(S0) 데이터, 즉 Bank0 데이터가 각각 연산기 어레이(111)로 입력되고, 기준블록의 두번째 행이 입력되는 시점과 같이 탐색영역 슬라이스의 두번째 행(S1)이 입력된다. 이때 두개의 탐색영역 데이터는 각각 홀수 행과 짝수 행 데이터 경로를 통해서 연산기 어레이(111)로 입력된다. 슬라이스의 첫번째 홀수 행은 Bank0에 있는 데이터가 되고, 첫번째 짝수 행은 Bank1에 있는 데이터가 된다. Bank0 데이터가 모두 입력되고 난 다음 계속해서 같은 경로를 통해 Bank2 데이터가 입력된다. 이 시점부터 Bank0에 저장되어 있던 데이터는 더 이상 사용하지 않게 된다. 본 발명에서는 이 시점부터 다음 슬라이스(222)의 가장 마지막 행이 될 S16이 첫번째 탐색영역 슬라이스에 대한 연산이 끝날 때까지 Bank0에 로드된다.Search area as shown when the first row (R0) of the reference block data and the first row (S0) data of the slice data, that is, Bank0 data, are respectively input to the operator array 111 and the second row of the reference block is input. The second row S1 of the slice is input. In this case, the two search area data are input to the operator array 111 through odd and even row data paths, respectively. The first odd row of the slice is the data in Bank0, and the first even row is the data in Bank1. After all Bank0 data has been entered, Bank2 data is continuously entered through the same path. From this point on, the data stored in Bank0 is no longer used. In the present invention, S16, which is the last row of the next slice 222 from this point, is loaded into Bank0 until the operation for the first search region slice is completed.
도 4에서 첫번째 탐색영역 슬라이스에 대한 연산이 끝난 후 두번째 탐색영역 슬라이스(222)는 Bank1 ∼ Bank15, Bank0 데이터로 구성되고, Bank1, Bank3, ... 데이터는 홀수 행 경로를 통해서 입력되고, Bank2, Bank4, ... 데이터는 짝수 행 경로를 통해서 연산기 어레이에 입력된다.In FIG. 4, after the operation for the first search region slice is finished, the second search region slice 222 is composed of Bank1 to Bank15 and Bank0 data, and Bank1, Bank3, ... data are input through an odd row path, Bank2, Bank4, ... data is entered into the operator array via an even row path.
이와 같은 반복된 연산은 탐색영역 데이터를 구성하는 슬라이스의 개수 만큼 반복된다. 위의 설명에서와 같이 본 발명의 움직임 예측부는 연산중 데이터 로드를 통하여 연속적인 연산이 가능하여 연산기의 효율을 최대로 하였고, 탐색영역 데이터 저장을 위한 메모리를 줄였다.This repeated operation is repeated by the number of slices constituting the search area data. As described above, the motion predictor of the present invention enables continuous operation through data loading during operation, thereby maximizing the efficiency of the operator and reducing the memory for storing the search area data.
본 발명 움직임 예측부(110)로 한 기준블록에 대해서 움직임 벡터를 추출하기 위해서는 탐색영역 슬라이스의 개수만큼 기준블록을 반복해서 지역 메모리(100)에서 읽게된다. 본 발명에서는 이렇게 반복해서 기준블록을 읽는 것을 이용하여 Intra/Inter 결정 정보 제공부(120)를 움직임 예측기에 두어 해당 연산을 한다.In order to extract a motion vector from a reference block by the motion predictor 110, the reference block is repeatedly read in the local memory 100 by the number of search region slices. In the present invention, by repeatedly reading the reference block, the Intra / Inter decision information providing unit 120 is placed in the motion predictor to perform a corresponding operation.
도 1에서 첫번째 기준블록 데이터를 읽을 때 이 기준블록 데이터를Intra/Inter 결정 정보 제공부(120)에도 입력하여 기준블록의 평균화소 값 계산부(121)에서 계산하고, 두번째 기준블록을 읽을때 각 화소값과 평균 화소 값과의 차의 절대치 합 연산부(122)를 통해 연산을 하도록 설계하였다. 그런 다음 최종 움직임 예측 연산이 종료되어 움직임 벡터와 해당 벡터의 SAD 값이 결정되면, 벡터 생성 및 Intra/Inter 결정부(113)에 입력되어 해당 기준블록의 Intra/Inter 여부를 결정한다.When the first reference block data is read in FIG. 1, the reference block data is also input to the intra / inter decision information providing unit 120 to calculate the average pixel value calculation unit 121 of the reference block. The calculation is performed through the absolute sum calculator 122 of the difference between the pixel value and the average pixel value. Then, when the final motion prediction operation is completed and the SAD values of the motion vector and the corresponding vector are determined, the vector generation and the Intra / Inter determiner 113 are input to determine whether the reference block is Intra / Inter.
한편, 상기한 연산의 제어는, 제어부(130)의 상태 카운터와 상태 제어부(131)에 의해 쓰기/읽기 어드레스 발생부(133, 134)가 상기 기준 메모리(100)의 쓰기 읽기 어드레스를 발생시키고, 연산기 어레이 제어부(135)가 상기 연산기 어레이(111)의 어드레스를 제어하며, 벡터 발생 제어기(136)가 상기 벡터 발생 및 인트라/인터 결정부(113)의 벡터 발생 타이밍을 제어하게 된다.On the other hand, in the control of the above operation, the write / read address generators 133 and 134 generate the write read address of the reference memory 100 by the state counter of the controller 130 and the state controller 131, The operator array controller 135 controls the address of the operator array 111, and the vector generation controller 136 controls the vector generation timing of the vector generation and the intra / inter determination unit 113.
이상에서 상세히 설명한 바와 같이, 본 발명에서는 움직임 예측기의 움직임 예측을 위한 연산에 필요한 탐색영역 데이터를 로드함에 있어 2포트램을 사용하여 지역메모리의 크기를 줄이면서 연속적인 연산이 가능하도록 하여 전체 비디오 코덱의 크기(Gate 개수)를 줄였다.As described in detail above, in the present invention, in loading the search area data required for the motion prediction operation of the motion predictor, the entire video codec is made possible by reducing the size of the local memory by using 2 ports. Reduced the size of the number of gates.
본 발명에서는 Intra/Inter 결정 부분을 움직임 예측기 내부에 두어 중복되는 기준블록의 저장 메모리와 별도의 데이터를 메모리에서 읽기위한 주소 생성부분과 제어부분이 필요하지 않게되어 비디오 코덱 전체적인 제어를 간소화하였으며, 비디오 코덱의 크기를 줄었다.In the present invention, the Intra / Inter decision part is placed inside the motion estimator, thereby simplifying the overall control of the video codec by eliminating the need for an address generation part and a control part for reading the redundant memory and separate data from the memory. Reduced the size of the codec.
본 발명은 상위 두 방법으로 저 전송률 비디오 코덱에 적합한 움직임 예측기를 구현하였다.The present invention implements a motion predictor suitable for a low bit rate video codec using the top two methods.
Claims (6)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019980052354A KR100282614B1 (en) | 1998-12-01 | 1998-12-01 | Motion Predictor for Low Bit Rate Video Codecs |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019980052354A KR100282614B1 (en) | 1998-12-01 | 1998-12-01 | Motion Predictor for Low Bit Rate Video Codecs |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20000037705A KR20000037705A (en) | 2000-07-05 |
KR100282614B1 true KR100282614B1 (en) | 2001-02-15 |
Family
ID=19560844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019980052354A KR100282614B1 (en) | 1998-12-01 | 1998-12-01 | Motion Predictor for Low Bit Rate Video Codecs |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100282614B1 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100549919B1 (en) * | 2000-12-15 | 2006-02-06 | 주식회사 케이티 | Apparatuses for a Clock Cycle Reducing of VLSI |
KR20030024411A (en) * | 2001-09-18 | 2003-03-26 | 엘지전자 주식회사 | Coding method for b picture in h.26l |
KR20040039809A (en) * | 2002-11-05 | 2004-05-12 | 엘지전자 주식회사 | Moving picture encoder and method for coding using the same |
KR100634453B1 (en) | 2005-02-02 | 2006-10-16 | 삼성전자주식회사 | Method for deciding coding mode about auto exposured image |
KR101848078B1 (en) * | 2017-04-28 | 2018-04-11 | 주식회사 마루이엔지 | Scheduler for Digital Broadcast and Transmission Method of Data using thereof |
-
1998
- 1998-12-01 KR KR1019980052354A patent/KR100282614B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR20000037705A (en) | 2000-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0896300B1 (en) | Device and method for motion vector detection | |
US5838828A (en) | Method and apparatus for motion estimation in a video signal | |
US20050238102A1 (en) | Hierarchical motion estimation apparatus and method | |
JP4338654B2 (en) | Motion vector detection apparatus and method, and image coding apparatus capable of using the motion vector detection apparatus | |
KR100273629B1 (en) | Motion vector estimating appparatus with high speed and method of destmating motion vector | |
US20010028681A1 (en) | Motion estimator | |
US20060002472A1 (en) | Various methods and apparatuses for motion estimation | |
US4800425A (en) | System for displacement vector searching during digital image analysis | |
US8064523B2 (en) | Motion vector search apparatus | |
US6169766B1 (en) | Method and apparatus for detecting motion vector and image coding apparatus | |
KR100282614B1 (en) | Motion Predictor for Low Bit Rate Video Codecs | |
KR101014637B1 (en) | Method and Apparatus for Processing Image Data and Semiconductor Storage Device | |
US20040247032A1 (en) | Motion vector detection device and motion vector detection method | |
US6584212B1 (en) | Apparatus for motion estimation with control part implemented by state transition diagram | |
US5548665A (en) | Vector correlation detecting circuit | |
US6901027B2 (en) | Apparatus for processing data, memory bank used therefor, semiconductor device, and method for reading out pixel data | |
KR0178302B1 (en) | Motion estimation processor based on the bidirectional parallel pipe line structure | |
US20040120402A1 (en) | Motion estimation apparatus for image data compression | |
KR100359091B1 (en) | Motion estimation device | |
US6968011B2 (en) | Motion vector detecting device improved in detection speed of motion vectors and system employing the same devices | |
WO2000064182A1 (en) | Motion estimation | |
JP2000165883A (en) | Motion vector detector | |
KR100926440B1 (en) | Block matching motion estimation apparatus for picture coding | |
CN111787333B (en) | Motion search method and device for video coding | |
WO1998030016A2 (en) | Method and apparatus for half pixel sad generation |
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: 20071024 Year of fee payment: 8 |
|
LAPS | Lapse due to unpaid annual fee |