KR100973083B1 - Motion vector extractor based array and method thereof - Google Patents
Motion vector extractor based array and method thereof Download PDFInfo
- Publication number
- KR100973083B1 KR100973083B1 KR1020080138130A KR20080138130A KR100973083B1 KR 100973083 B1 KR100973083 B1 KR 100973083B1 KR 1020080138130 A KR1020080138130 A KR 1020080138130A KR 20080138130 A KR20080138130 A KR 20080138130A KR 100973083 B1 KR100973083 B1 KR 100973083B1
- Authority
- KR
- South Korea
- Prior art keywords
- frame data
- sad
- block
- motion vector
- previous frame
- Prior art date
Links
Images
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/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/43—Hardware specially adapted for motion estimation or compensation
- H04N19/433—Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
-
- 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/436—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 using parallelised computational arrangements
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명의 움직임 벡터 추출기는 프레임 데이터를 입력받기 위하여 외부 메모리와 인터페이스싱하는 인터페이스/라우터 블록과, 읽기와 쓰기 동작이 동시에 수행되는 내부 메모리 및 레지스터 어댑터를 포함한다. 이러한 본 발명에 의하면, 움직임 추정을 수행하기 위해 필요한 프레임 데이터를 보다 속도가 빠른 내부 메모리로 복사함과 동시에 SAD(Sum of Absolute Difference) 연산을 하기 위한 프레임 데이터를 내부 메모리에서 Register 어댑터로 복사한다. 따라서 메모리의 읽기 동작 및 쓰기 동작에 의한 지연시간을 최소화함으로써, 연산효율을 향상시킬 수 있다. 또한, 각 연산 블록에 가변적으로 제어되는 파이프라인 레지스터를 구비함으로써, 기존의 일관된 파이프라인 구조에 따른 전력 소모량을 줄일 수 있다.The motion vector extractor includes an interface / router block for interfacing with an external memory to receive frame data, and an internal memory and a register adapter to simultaneously perform read and write operations. According to the present invention, the frame data required for performing the motion estimation is copied to a faster internal memory, and the frame data for a SAD (Sum of Absolute Difference) operation is copied from the internal memory to the register adapter. Therefore, the operational efficiency can be improved by minimizing the delay time caused by the read and write operations of the memory. In addition, by providing a pipeline register that is variably controlled in each operation block, it is possible to reduce the power consumption according to the existing consistent pipeline structure.
Description
본 발명은 움직임 벡터 추출기에 관한 것으로서, 보다 자세하게는 유니버설 미디어 서비스를 위한 신축형 비디오 코딩(scalable video coding, SVC)의 실시간 부호화를 위한 어레이 기반의 움직임 벡터 추출기 및 그 방법에 관한 것이다. The present invention relates to a motion vector extractor, and more particularly, to an array-based motion vector extractor and a method for real-time coding of scalable video coding (SVC) for universal media services.
최근 방송 미디어와 통신 미디어가 점차로 융합되어 가는 추세에서 디지털 TV 및 디지털 STB(Set-Top Box)는 방송 콘텐츠, 상용 콘텐츠(통신, 인터넷 등) 및 자작 콘텐츠를 통합하는 홈 미디어 서버로서 기능이 부각되고 있는 실정이다. In the recent trend of convergence of broadcasting media and communication media, digital TV and digital set-top boxes (STBs) are emerging as home media servers that integrate broadcasting contents, commercial contents (communications, internet, etc.) and home-grown contents. There is a situation.
특히, 최근 사회 전반에 걸친 유비쿼터스 시대로의 급속한 전환이 방송통신 미디어 서비스 산업의 컨버전스화를 가속화시키고 있기 때문에, 이에 능동적으로 대응하기 위해서는 방송통신 미디어 콘텐츠의 호환성, 미디어 콘텐츠의 접근 용이성, 미디어 콘텐츠 분배의 적응성 및 안전성 등이 가능한 디지털 TV를 기반으로 한 유니버설 미디어 서비스 산업의 핵심 기술 및 융합 기술 개발이 절실히 요구된다. In particular, the rapid transition to the ubiquitous era of the entire society is accelerating the convergence of the broadcasting and telecommunications media service industry. Therefore, in order to proactively cope with this, the compatibility of broadcasting and telecommunication media contents, the accessibility of media contents, and the distribution of media contents There is an urgent need for the development of core and convergence technologies in the universal media services industry based on digital TV, which is adaptable and safe.
또한, 방송통신 네트워크를 연계하는 홈 네트워크의 보급과 방송통신 미디어를 통합하는 미디어 정보기기의 확산으로 가정 내외에서 방송과 통신 미디어 산업 의 경계가 무너지고 있기 때문에 향후 미디어 서비스 산업의 발전은 사용자 입장에서 다양한 미디어 기기를 통해서 언제 어디서라도 원하는 미디어 콘텐츠를 서비스 받을 수 있도록 전개되어야 한다.In addition, the boundaries of the broadcasting and communication media industries are breaking down within and outside the home due to the spread of home networks linking broadcast communication networks and the proliferation of media information devices integrating broadcast communication media. It should be deployed to receive desired media contents anytime and anywhere through various media devices.
하지만, 기존의 미디어 서비스는 방송 콘텐츠, 인터넷 미디어 콘텐츠 그리고 정보기기용 콘텐츠 등의 미디어들이 서로 다른 미디어 포맷, 전송 그리고 서비스 방식 측면에서 상호 호환성을 확보하지 못하고 있기 때문에 유비쿼터스 및 방송통신 융합 미디어 서비스 환경에 대한 대응이 미흡한 실정이다.However, in the existing media services, media such as broadcast contents, internet media contents, and information device contents do not have mutual compatibility in terms of different media formats, transmissions, and service methods. The response to the situation is insufficient.
도 1에 도시된 바와 같이 기존의 미디어 코덱들은 디지털 방송, HDTV 및 DVD 등에 사용되는 MPEG-2, 인터넷 스트리밍, 동영상 파일(DviX, Xvid 등)에 이용되는 MPEG-4와 WMV9, 그리고 최근에 DMB, DVB-H, HD-DVD 등에 채택된 MPEG-4 AVC/H.264 등이 존재한다. As shown in FIG. 1, existing media codecs are MPEG-2 used for digital broadcasting, HDTV and DVD, Internet streaming, MPEG-4 and WMV9 used for video files (DviX, Xvid, etc.), and recently DMB, MPEG-4 AVC / H.264 and the like adopted in DVB-H, HD-DVD, and the like exist.
이들 미디어 코덱들은 대부분 특정 목적에 맞는 규격을 갖고 있기 때문에 상호 호환이 어렵고, 또한 다양한 네트워크 및 이기종 단말기 등의 범용적인 환경에 직접적으로 적용하기 어렵다.Since most of these media codecs have a standard for a specific purpose, they are difficult to interoperate with each other, and it is difficult to directly apply them to general environments such as various networks and heterogeneous terminals.
또한, 디지털 방송, 인터넷 등의 다양한 미디어 규격, 다양한 무선 단말기 그리고 다양한 미디어 코덱 등과 같이 복합적으로 혼재된 기존의 환경에서 디지털 TV에서는 다양한 이종의 미디어 규격들을 통합하고 사용자로 하여금 보다 쉽게 미디어에 접근할 수 있도록 요구되고 있는 실정이다.In addition, in the existing mixed environment such as various media standards such as digital broadcasting, Internet, various wireless terminals, and various media codecs, digital TV integrates various heterogeneous media standards and enables users to access media more easily. It is required to be.
한편, 인터넷, 모바일 단말기, 무선 통신 기술의 발전으로 PDA, PMP, 핸드폰 등에서 동영상 서비스가 가능하게 됨에 따라 다양한 네트워크 및 이기종 단말기 등 에 끊김 없는 동영상 서비스를 제공하기 위해서 기존의 코덱 기술 간의 트랜스코딩 기술을 적용하는 솔루션이 개발되었으나, 이 솔루션은 기존 코덱 간의 트랜스코딩에 따른 화질의 열화뿐만 아니라 동적인 네트워크 환경에 적용하기 위해 반드시 실시간 트랜스코딩이 요구되기 때문에 극히 일부 응용 제품에만 적용되고 있는 실정이다.Meanwhile, with the development of the Internet, mobile terminals, and wireless communication technologies, video services are available in PDAs, PMPs, mobile phones, and the like, so that transcoding technologies between existing codec technologies are used to provide seamless video services to various networks and heterogeneous terminals. Although a solution has been developed, this solution is applied to only a few applications because real-time transcoding is required to be applied to dynamic network environments as well as degradation of image quality due to transcoding between existing codecs.
따라서, 기존 코덱들 및 솔루션이 갖고 있는 한계를 극복하고 동시에 방송통신의 미디어 융합이 가능하며 언제, 어디서나,어떠한 기기에서도 다양한 네트워크 환경에 공유하는 유비쿼터스 환경에 적합한 유니버설 미디어 서비스를 제공할 수 있는 유니버설 미디어 코덱 기술의 개발이 절실하다.Therefore, it is possible to overcome the limitations of existing codecs and solutions, and at the same time, media convergence of broadcasting communication is possible, and universal media that can provide universal media service suitable for ubiquitous environment shared in various network environments at any time, anywhere and any device. Development of codec technology is urgently needed.
따라서, 상기의 종래 문제점을 해결하기 위해 개발되어지고 있는 신축형 비디오 코딩(Scalable Video Coding, SVC) 기술을 이용한 인코더(encoder)의 경우, 최대 HD급의 영상을 실시간으로 부호화하기 위해서 동작 주파수를 올리고, 이에 따르는 파이프라인 구조 및 병렬화 구조를 사용하여 구현되고 있지만, 이 경우 일관된 파이프라인 구조에 따른 전력 소모량이 증가하고 영상 소스에 따른 성능 차이에 따라 실시간 처리가 안되는 경우도 발생하게 된다. Therefore, in the case of an encoder using a scalable video coding (SVC) technology that has been developed to solve the above-mentioned problems, the operating frequency is raised to encode a maximum HD level image in real time. In this case, power consumption due to a consistent pipeline structure is increased and in some cases, real-time processing may not be performed due to performance differences of video sources.
이와 함께 과도한 프레임 메모리 사용으로 집적화의 효율성이 떨어지고, 메모리의 읽기 동작 및 쓰기 동작에 의한 지연시간이 오히려 실시간 연산에 영향을 주게 되기 때문에, 이의 효과적으로 처리하는 방법이 요구된다.In addition, since the efficiency of integration decreases due to excessive use of frame memory, and delay time caused by read and write operations of the memory affects real-time operation, a method of effectively processing the same is required.
본 발명의 목적은 상술한 바와 같은 종래의 문제점을 해결하기 위한 것으로서, 유니버설 미디어 서비스(Universal Media Service, UMS)를 위한 신축형 비디오 코딩(scalable video coding, SVC)의 실시간 부호화를 하는 어레이 기반의 움직임 벡터 추출기 및 그 방법을 제공하는 것이다. Disclosure of Invention An object of the present invention is to solve the conventional problems as described above, an array-based motion for real-time coding of scalable video coding (SVC) for Universal Media Service (UMS) A vector extractor and its method are provided.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일면에 따른 움직임 추출기는 특정 블록 단위로 분할된 이전 프레임 데이터를 병렬적으로 입력받아서 저장하는 내부 메모리 블록과, 상기 저장된 특정 블록 단위로 분할된 이전 프레임 데이터를 병렬적으로 입력받아서 동시에 출력하는 파이프라인 구조의 레지스터 어댑터과, 병렬적으로 구성되어 현재 프레임 데이터와 상기 레지스터 어댑터로부터 제공되는 이전 프레임 데이터를 각각 입력받아서 SAD(Sum of Absolute difference) 연산을 각각 수행하는 다수의 SAD 트리 블록을 포함하는 SAD 연산부와, 병렬적으로 구성되어 상기 다수의 SAD 트리 블록 중 해당 SAD 트리 블록으로부터 출력되는 현재의 SAD 값을 입력받아서 기존에 계산된 SAD 값과 상기 현재의 SAD 값을 각각 비교하는 다수의 비교기를 포함하는 비교 연산부 및 상기 다수의 비교기로부터의 비교 결과치들에 근거하여 각 픽셀의 모션 벡터(motion vector) 값을 병합하여 정렬하는 움직임 벡터 병합기를 포함한다. In order to achieve the above object, a motion extractor according to an aspect of the present invention is an internal memory block for receiving and storing previous frame data divided in units of specific blocks in parallel, and the previous frame divided in units of the stored specific blocks. Performs SAD (Sum of Absolute Difference) operation by receiving register data of parallel structure and receiving parallel output of data, and parallel frame configured to receive current frame data and previous frame data provided from the register adapter. A SAD operation unit including a plurality of SAD tree blocks, and configured in parallel to receive a current SAD value output from a corresponding SAD tree block among the plurality of SAD tree blocks, and a previously calculated SAD value and the current SAD. A comparison year that includes a number of comparators, each comparing a value Portion and include a motion vector merging arranged to merge the motion vector (motion vector) values for each pixel based upon the comparison results received from the plurality of comparators.
본 발명의 다른 일면에 따른 움직임 추출기는 외부 메모리와 인터페이싱하는 인터페이스/라우터와, 상기 인터페이스/라우터 블록을 통해 상기 외부 메모리에 저장된 프레임 데이터를 상기 이전 프레임 데이터로서 전달받는 읽기와 쓰기 동작이 동시에 수행되는 내부 메모리와, 상기 SAD 연산을 수행하기 위해 상기 내부 메모리에 저장된 상기 이전 프레임 데이터를 복사해오는 레지스터 그룹을 이루어진 레지스터 어댑터 및 상기 인터페이스/라우터, 상기 내부 메모리 및 상기 레지스터 어댑터의 전반적인 동작을 제어하는 컨트롤러를 포함한다. According to another aspect of the present invention, a motion extractor includes an interface / router for interfacing with an external memory and a read and write operation for receiving frame data stored in the external memory as the previous frame data through the interface / router block. A register adapter and a controller for controlling the overall operation of the interface / router, the internal memory and the register adapter having an internal memory and a register group for copying the previous frame data stored in the internal memory to perform the SAD operation. Include.
본 발명의 또 다른 일면에 따른 움직임 벡터 추출방법은 외부 메모리로부터 프레임 데이터를 입력받아서, 이전 프레임에 대응하는 상기 프레임 데이터(이하, 이전 프레임 데이터)를 특정 블록 단위로 분할하는 단계와, 특정 블록 단위로 분할된 이전 프레임 데이터를 병렬적으로 입력받아서 저장하는 단계와, 상기 저장된 특정 블록 단위로 분할된 이전 프레임 데이터를 병렬적으로 입력받아서 파이프라인 구조의 레지스터 어댑터에 저장하는 단계와, 병렬적으로 구성된 다수의 SAD 트리 블록을 통해 현재 프레임에 대응하는 현재 프레임 데이터(이하 현재 프레임 데이터)와 상기 이전 프레임 데이터를 각각 입력받아서 SAD(Sum of Absolute difference) 연산을 각각 수행하는 단계와, 병렬적으로 구성된 다수의 비교기를 통해 상기 SAD 연산된 결과치인 현재의 SAD 값과 기존에 계산된 SAD 값을 각각 비교하는 단계 및 상기 다수의 비교기로부터의 비교 결과치들에 근거하여 각 픽셀의 모션 벡터(motion vector) 값을 병합하여 정렬하는 단계를 포함한다. According to another aspect of the present invention, there is provided a method of extracting a motion vector, by receiving frame data from an external memory, dividing the frame data (hereinafter, referred to as previous frame data) corresponding to a previous frame into a specific block unit, and Receiving and storing the previous frame data divided into parallel in parallel; receiving the previous frame data divided into the stored specific block units in parallel and storing the same in the pipelined register adapter; Performing a sum of absolute difference (SAD) operation by receiving current frame data (hereinafter, referred to as current frame data) and previous frame data corresponding to a current frame through a plurality of SAD tree blocks, respectively; The current SAD value that is the result of the SAD operation through the comparator of And a step of comparing the SAD value computed for each of the existing and aligning and merging the motion vector (motion vector) values for each pixel based upon the comparison results received from the plurality of comparators.
본 발명에 의하면, 본 발명의 움직임 벡터 추출기는 프레임 데이터를 입력받 기 위하여 외부 메모리와 인터페이스싱하는 인터페이스/라우터 블록과, 읽기와 쓰기 동작이 동시에 수행되는 내부 메모리 및 레지스터 어댑터를 포함한다. 이러한 본 발명에 의하면, 움직임 추정을 수행하기 위해 필요한 프레임 데이터를 보다 속도가 빠른 내부 메모리로 복사함과 동시에 SAD(Sum of Absolute Difference) 연산을 하기 위한 프레임 데이터를 내부 메모리에서 Register 어댑터로 복사한다. 따라서 메모리의 읽기 동작 및 쓰기 동작에 의한 지연시간을 최소화함으로써, 연산효율을 향상시킬 수 있다. 또한, 각 연산 블록에 가변적으로 제어되는 파이프라인 레지스터를 구비함으로써, 기존의 일관된 파이프라인 구조에 따른 전력 소모량을 줄일 수 있다.According to the present invention, the motion vector extractor of the present invention includes an interface / router block for interfacing with an external memory to receive frame data, and an internal memory and a register adapter simultaneously performing read and write operations. According to the present invention, the frame data required for performing the motion estimation is copied to a faster internal memory, and the frame data for a SAD (Sum of Absolute Difference) operation is copied from the internal memory to the register adapter. Therefore, the operational efficiency can be improved by minimizing the delay time caused by the read and write operations of the memory. In addition, by providing a pipeline register that is variably controlled in each operation block, it is possible to reduce the power consumption according to the existing consistent pipeline structure.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부한 도면을 참조하여 상세하게 설명한다. 또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention. In addition, in describing this invention, the same code | symbol is attached | subjected and the repeated description is abbreviate | omitted.
먼저, 본 발명의 실시예에 대한 설명에 앞서 적응적 비트스트림 생성을 위한 신축형 비디오 코딩의 구조에 대한 설명을 한다.First, before describing the embodiment of the present invention, a description will be given of a structure of flexible video coding for adaptive bitstream generation.
도 2는 적응적 비트스트림을 생성을 위한 신축형 비디오 코딩을 위한 전체 코어 인코더를 보여주는 블록도이다.2 is a block diagram showing an entire core encoder for flexible video coding for generating an adaptive bitstream.
유니버설 미디어 코딩(Universal Media Coding, UMC) 인코더는 다양한 미디어 컨텐츠와 다양한 형태의 미디어 기기를 통해 유니버설 미디어 서비스(Universal Media Service, UMS)를 제공하기 위한 비디오 스트림을 생성한다.Universal Media Coding (UMC) encoder generates a video stream for providing Universal Media Service (UMS) through various media contents and various types of media devices.
다양한 상황에 대해 적응적(adaptive) 비트스트림을 제공하기 위해 UMC 인코더는 신축형 비디오 코딩(Scalable Video Coding, SVC) 기술을 기반으로 UMS 서비스에 적합한 특징을 중점적으로 적용하였다.In order to provide adaptive bitstreams for various situations, the UMC encoder focused on features suitable for UMS services based on scalable video coding (SVC) technology.
도 2에 도시한 바와 같이, 상기 신축형 비디오 코딩은 시간축 신축성(Temporal Scalability)를 위해 Hierarchical P/B 구조를 사용한다. 디지털 방송 서비스를 기반으로 하고 다중의 단말로 UMS 서비스를 제공할 필요가 있기 때문에 최고 HD급의 영상을 서비스해야 하고 그 이하의 다양한 해상도를 지원할 필요가 있다.As shown in FIG. 2, the flexible video coding uses a Hierarchical P / B structure for temporal scalability. Since it is necessary to provide UMS service to multiple terminals based on digital broadcasting service, it is necessary to service the highest HD video and support various resolutions below it.
또한, 현재 표준화된 SVC 표준에서 정한 프로파일(profile)에 보면 이동 단말들에 대한 프로파일로는 svc baseline profile로서 H.264/AVC baseline profile을 기반으로 한다. 그래서, 단말들을 위한 SD급 이하의 UMC 코딩에는 I/P-slice만으로 부호화하고, HD급 영상에만 I/B/P-slice로 부호화는 방식을 채택하여 Hier. P/B 혼용 구조를 적용하게 된다.In addition, in the profile defined by the current standardized SVC standard, the profile for mobile terminals is based on the H.264 / AVC baseline profile as the svc baseline profile. Therefore, the UMC coding of the SD or lower for the terminal is encoded only by I / P-slice, and only the HD-class video is encoded by I / B / P-slice by adopting Hier. P / B mixed structure is applied.
이하 아래에서는 상술한 바와 같은 유니버셜 미디어 코덱의 실시간 부호화를 위한 어레이 기반의 움직임 벡터 추출기에 대해 상세히 설명하기로 한다.Hereinafter, the array-based motion vector extractor for real-time encoding of the universal media codec as described above will be described in detail.
도 3는 본 발명의 실시예에 따른 어레이 기반의 움직임 벡터 추출기의 블록도이다.3 is a block diagram of an array based motion vector extractor according to an embodiment of the present invention.
이미지 압축에서 움직임 추정(motion estimation)과정은 압축(compression) 효율을 증가시키는 과정에서 연산의 복잡성(computational complexity)이 증가한 다. 이러한 증가된 연산량을 적절한 시간 안에 처리하고 구현상의 복잡성(complexity)를 감소시키기 위해 일반적으로 prediction을 두 개의 과정으로 구분하여 구현한다. 즉 정수 추정(integer estimation)과 분수 추정(fractional estimation)으로 구분된다. 먼저, 정수 추정 과정을 통해서 대략적인 추정을 수행하고 fractional motion estimation을 통해서 더욱 정교한 추정이 수행된다. The motion estimation process in image compression increases computational complexity in the process of increasing the compression efficiency. In order to process this increased amount of computation in a timely manner and to reduce implementation complexity, prediction is generally divided into two processes. That is, it is divided into integer estimation and fractional estimation. First, rough estimation is performed through the integer estimation process, and more sophisticated estimation is performed through fractional motion estimation.
도 3에 도시된 움직임 벡터 추출기(10)는 상기 정수 추정과정을 처리하는 처리 유닛으로서, 기존의 SAD(Sum of Absolute difference) Tree 기반의 병렬화 된 구조를 이용하여 인코딩(encoding)과정에서의 critical path를 application에 따라서 적절하게 분배한다. 따라서, 발명의 실시예에 따른 어레이 기반의 움직임 벡터 추출기(100)는 메모리의 읽고 쓰는 지연시간에 의한 HD급의 영상이 실시간으로 부호화되지 못하는 점을 해결한다. 이를 위하여 본 발명의 실시예에 따른 어레이 기반의 움직임 벡터 추출기(100)는 외부 메모리(External Memory)와의 인터페이싱하는 인터페이스/라우터(Interface and Router) 블록(10)과, 내부 메모리 블록(12) 및 레지스터 어댑터(Register adapter) 블록(14)을 포함하는 것을 특징으로 한다. The
보다 구체적으로는, 본 발명의 실시예에 따른 어레이 기반의 움직임 벡터 추출기(100)는 상기한 블록들(10, 12, 14) 외에 레퍼런스 어레이 블록(16, Ref.array)과, 커런트 어레이 블록(28, Cur.array), 다수의 SAD 트리 블록(18), 다수의 비교기 블록(20), 움직임 벡터 병합기(22, Motion vector merger), 어드레스 생성기(24, Address generator), 데이터 버퍼(26, Data buffer) 및 컨트롤러(30)를 더 포함한다. More specifically, the array-based
인터페이스/라우터 블록(10)은 HD급 또는 SD급의 YUV(YCbCr/YPbPr) 데이터를 입력받기 위하여 상기 외부 메모리(예컨대, 프레임 버퍼)의 컨트롤러의 역할 즉, 인터페이싱 역할을 수행한다. The interface /
구체적으로, 상기 인터페이스/라우터 블록(10) 상기 외부 메모리로부터 YUV 데이터(이하 프레임 데이터)를 프레임 단위로 입력받고, 상기 이전 프레임에 대응하는 프레임 데이터(이전 프레임 데이터)를 특정 블록 단위(예컨대, 4x4 크기의 블록 단위)로 분할하여, 특정 블록 단위로 분할된 각 이전 프레임 데이터를 1차적으로 상기 내부 메모리 블록(12)에 일시적으로 분산 저장한다. 동시에 상기 인터페이스/라우터 블록(10)은 현재 프레임에 대응하는 프레임 데이터(현재 프레임 데이터)를 데이터 버퍼(26)에 일시적으로 저장한다.In detail, the interface /
내부 메모리 블록(12)은 병렬적으로 구성된 다수의 에스램(SRAM)으로 구현될수 있으며, 내부 메모리 블록(12)이 다수의 에스램으로 구현되는 경우, 각 에스램은 어드레스 생성기(24)에 의해 생성된 어드레스 값에 응답하여 특정 블록 단위로 분할된 이전 프레임 데이터를 1차적으로 각각 분산 저장한다. 여기서, 각 에스램은 리드 타임(read time)과 라이트 타임(write time)에 따른 지연 시간을 최소화하기 위하여 듀얼 포트 에스램(Dual port SRAM)으로 구현되는 것이 바람직하다. 싱글 포트 에스램(Single port SRAM)의 경우, 데이터의 읽기 동작과 쓰기 동작이 동시에 일어 날수 없지만, 듀얼 포트 에스램의 경우, 읽기 동작과 쓰기 동작의 두 동작이 동시에 가능하기 때문에 메모리의 읽기 동작과 쓰기 동작에 따른 지연시간을 최소화할 수 있다.The
레지스터 어댑터 블록(14)은 파이프라인(pipeline)을 위한 레지스터 군(register group)으로서, 상기 내부 메모리 블록(12)에 특정 블록 단위로 분할된 이전 프레임 데이터를 입력받아서 상기 컨트롤러(30)의 제어에 따라 레퍼런스 어레이 블록(16)에 전달한다. 이때, 상기 데이터 버퍼(26)는 상기 컨트롤러(30)의 제어에 따라 저장된 현재 프레임 데이터를 커런트 어레이 블록(28)에 전달한다. The
레퍼런스 어레이 블록(16)은 상기 레지스터 어댑터 블록(14)으로부터 전달받은 이전 프레임 데이터를 저장하는 일종의 메모리 역할을 수행하며, 컨트롤러(30)의 제어에 따라 저장된 이전 프레임 데이터를 다수의 SAD 트리 블록(18)으로 전달한다. The
커런트 어레이 블록(28)은 상기 데이터 버퍼로부터 전달받은 현재 프레임 데이터를 저장하는 일종의 메모리 역할을 수행하며, 상기 컨트롤러(30)의 제어에 따라 저장된 현재 프레임 데이터를 기준 프레임 데이터로서 상기 다수의 SAD 트리 블록(18)으로 전달한다. The
다수의 SAD 트리 블록(18)은 병렬적으로 구성되어, 각각은 상기 레퍼런스 어레이 블록(28)과 상기 커런트 어레이 블록(28)으로부터 각각 전달받은 이전 프레임 데이터와 현재 프레임 데이터를 매크로 블록 단위로 SAD 연산하고, 연산된 결과치 중 최소값을 현재의 SAD 값으로서 출력한다. The plurality of SAD tree blocks 18 are configured in parallel, and each of the SAD tree blocks 18 performs SAD operations on macro frame units from previous frame data and current frame data received from the
다수의 비교기 블록(20)은 병렬적으로 구성되어, 상기 다수의 SAD 트리 블록(18)의 개수와 동일한 개수로 구성된다. 각 비교 블록(20)은 해당 SAD 트리 블록으로부터 출력되는 현재의 SAD 값을 입력받아서 기존에 계산된 SAD 값과 상기 현재 의 SAD 값을 비교하고, 비교 결과치를 움직임 벡터 병합기(22)로 전달한다. The plurality of comparator blocks 20 are configured in parallel, the same number as the number of the plurality of SAD tree blocks 18. Each
이와 같이, 본 실시예에서는 병렬적으로 각각 구성된 다수의 SAD 트리 블록(18)과 다수의 비교기 블록(20)에 의해 한 프레임에 대응하는 모든 픽셀을 매크로 블록 단위로 병렬로 계산한다. 이때, 컨트롤러(30)는 모든 SAD 트리 블록들과 비교기 블록들을 동시에 제어한다. 즉, 입력 영상의 해상도 및 복잡도에 따라 일괄적으로 제어된다. 한편, SD급의 TV의 경우, 상기 다수의 SAD 트리 블록(18)과 상기 다수의 비교기 블록은 각각 16개씩 구현된다.As described above, in the present embodiment, all the pixels corresponding to one frame are calculated in macroblock units by the plurality of SAD tree blocks 18 and the plurality of comparator blocks 20 respectively configured in parallel. At this time, the
움직임 벡터 병합기(22)는 상기 다수의 비교기 블록(20)으로부터 전달된 비교 결과치에 근거하여 각 픽셀의 모션 벡터(motion vector)값을 하나의 프레임과 같이 데이터를 병합하여 정렬한다. 여기서, 모셔 벡터 값이란 현재의 매크로 블록과 가장 유사한 매크로 블록까지의 거리를 의미한다. The
컨트롤러(30)는 상술한 바와 같이, 각 블록들(10, 12, 14, 16, 18, 20, 22, 24, 26, 28)을 제어한다. 특히 컨트롤러(30)는 SAD 트리의 매크로 블록의 구성(configuration)을 제어한다. The
또한, 본 실시예에서는 SAD 트리 블록(18), 비교기 블록(20), 움직임 벡터 병합기(22)의 각 블록의 종단(또는 출력단)에 인에이블 컨트롤러 레지스터(또는 파이프라인 레지스터)가 설계된다. 컨트롤러(30)가 상기 설계된 인에이블 컨트롤러 레지스터를 제어하여, 파이프라인 스테이지를 가변적으로 조절한다. In addition, in this embodiment, an enable controller register (or pipeline register) is designed at the end (or output end) of each block of the
결과적으로, 본 발명의 실시예에 따른 움직임 벡터 추출기(100)는 컨트롤러에 의해 각 연산 블록(18, 20, 22)마다 설계된 파이프라인 레지스터를 제어함으로 써, 파이프라인을 가변적으로 제어함으로써, 연산 효율성을 극대화시키고, 일관된 파이프라인의 구조에 따른 전력 소모를 줄일 수 있다.As a result, the
위의 정수 추정 기법에 따라 움직임 벡터를 추출하는 본 발명의 실시예에 따른 움직임 벡터 추출기는 SAD(Sum of Absolute difference) Tree 기반의 병렬화 된 구조를 이용하여 인코딩(encoding)과정에서의 critical path를 application에 따라서 적절하게 분배한다. 만일 본 발명의 실시예에 따른 움직임 벡터 추출기가 SD급의 TV에 적용되는 경우, 16개의 SAD 트리 및 비교 경로(comparator path)를 통해서 움직임 벡터(motion vector)를 결정하게 된다.The motion vector extractor according to an embodiment of the present invention extracts a motion vector according to the above integer estimation technique by using a parallel structure based on a Sum of Absolute difference (SAD) tree to apply a critical path in the encoding process. Distribute accordingly. If the motion vector extractor according to the embodiment of the present invention is applied to an SD TV, a motion vector is determined through 16 SAD trees and a comparator path.
이상, 본 발명자에 의해서 이루어진 발명을 상기 실시예에 따라 구체적으로 설명하였지만, 본 발명은 상기 실시예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다. As mentioned above, although the invention made by this inventor was demonstrated concretely according to the said Example, this invention is not limited to the said Example and can be variously changed in the range which does not deviate from the summary.
도 1은 차세대 DTV에서 요구되는 각종 미디어 코덱을 보여주는 도면이다.1 is a view showing various media codecs required in the next generation DTV.
도 2는 적응적 비트스트림을 생성을 위한 신축형 비디오 코딩을 위한 전체 코어 인코더를 보여주는 블록도이다.2 is a block diagram showing an entire core encoder for flexible video coding for generating an adaptive bitstream.
도 3는 본 발명의 실시예에 따른 어레이 기반의 움직임 벡터 추출기의 블록도이다.3 is a block diagram of an array based motion vector extractor according to an embodiment of the present invention.
Claims (12)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080138130A KR100973083B1 (en) | 2008-12-31 | 2008-12-31 | Motion vector extractor based array and method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080138130A KR100973083B1 (en) | 2008-12-31 | 2008-12-31 | Motion vector extractor based array and method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100079597A KR20100079597A (en) | 2010-07-08 |
KR100973083B1 true KR100973083B1 (en) | 2010-07-29 |
Family
ID=42640671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080138130A KR100973083B1 (en) | 2008-12-31 | 2008-12-31 | Motion vector extractor based array and method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100973083B1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010076707A (en) * | 2000-01-27 | 2001-08-16 | 윤종용 | Motion estimator |
KR20060046730A (en) * | 2004-07-26 | 2006-05-17 | 닛본 덴끼 가부시끼가이샤 | Vector processing apparatus, information processing apparatus, and vector precessing method |
KR20060106953A (en) * | 2005-04-07 | 2006-10-12 | 주식회사 텔레칩스 | Motion estimation device and method suitable hardware implementation |
KR20080091651A (en) * | 2007-04-09 | 2008-10-14 | 아주대학교산학협력단 | Method and circuit operation for motion estimation of deverse multimedia codec |
-
2008
- 2008-12-31 KR KR1020080138130A patent/KR100973083B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010076707A (en) * | 2000-01-27 | 2001-08-16 | 윤종용 | Motion estimator |
KR20060046730A (en) * | 2004-07-26 | 2006-05-17 | 닛본 덴끼 가부시끼가이샤 | Vector processing apparatus, information processing apparatus, and vector precessing method |
KR20060106953A (en) * | 2005-04-07 | 2006-10-12 | 주식회사 텔레칩스 | Motion estimation device and method suitable hardware implementation |
KR20080091651A (en) * | 2007-04-09 | 2008-10-14 | 아주대학교산학협력단 | Method and circuit operation for motion estimation of deverse multimedia codec |
Also Published As
Publication number | Publication date |
---|---|
KR20100079597A (en) | 2010-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7368414B2 (en) | Image prediction method and device | |
TWI686076B (en) | Enhanced multiple transforms for prediction residual | |
CN110460858B (en) | Information processing apparatus and method | |
EP4277269A2 (en) | An encoder, a decoder and corresponding methods for intra prediction | |
JP7068501B2 (en) | Methods, equipment and computer programs for intramode coding | |
CN110944185B (en) | Video decoding method and device, computer equipment and storage medium | |
JP7332703B2 (en) | Method and apparatus for affine-based inter-prediction of chroma sub-blocks | |
CN111416976B (en) | Video decoding method, video encoding method, device, equipment and storage medium | |
US10291934B2 (en) | Modified HEVC transform tree syntax | |
CN113557741B (en) | Method and apparatus for adaptive streaming of point clouds | |
JP7018447B2 (en) | Systems and methods for signaling motion constraint tile sets for virtual reality applications | |
CN115665408B (en) | Filtering method and apparatus for cross-component linear model prediction | |
JP2022501978A (en) | Video encoders, video decoders, and corresponding methods | |
JP7314300B2 (en) | Method and apparatus for intra prediction | |
CN118118693A (en) | Method and apparatus for decoding or encoding video data | |
KR20210024164A (en) | System and method for signaling a picture order count value for a picture included in a coded video | |
CN101945285A (en) | Embedded interactive application service transcoding and encoding system | |
CN114556942A (en) | Quantizer for lossless and near-lossless compression | |
CN115380306A (en) | Method and device for encoding and decoding video | |
CN111953987B (en) | Video transcoding method, computer device and storage medium | |
CN113545055A (en) | Video coding and decoding method and device | |
KR100973083B1 (en) | Motion vector extractor based array and method thereof | |
CN112640460B (en) | Apparatus and method for boundary partitioning | |
Garrido-Cantos et al. | H. 264/AVC-to-SVC temporal video transcoder for video broadcasting in wireless networks | |
Garrido-Cantos et al. | Low-complexity transcoding algorithm from H. 264/AVC to SVC using data mining |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
J201 | Request for trial against refusal decision | ||
AMND | Amendment | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130621 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20140708 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20150626 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20160725 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20190715 Year of fee payment: 10 |