KR101188453B1 - Apparatus and Method for memory access of video decoder - Google Patents

Apparatus and Method for memory access of video decoder Download PDF

Info

Publication number
KR101188453B1
KR101188453B1 KR1020110017840A KR20110017840A KR101188453B1 KR 101188453 B1 KR101188453 B1 KR 101188453B1 KR 1020110017840 A KR1020110017840 A KR 1020110017840A KR 20110017840 A KR20110017840 A KR 20110017840A KR 101188453 B1 KR101188453 B1 KR 101188453B1
Authority
KR
South Korea
Prior art keywords
window
data
pixel
reference image
size
Prior art date
Application number
KR1020110017840A
Other languages
Korean (ko)
Other versions
KR20120098110A (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 KR1020110017840A priority Critical patent/KR101188453B1/en
Publication of KR20120098110A publication Critical patent/KR20120098110A/en
Application granted granted Critical
Publication of KR101188453B1 publication Critical patent/KR101188453B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence

Landscapes

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

Abstract

비디오 디코더의 메모리 액세스 장치 및 방법이 개시된다. 메모리 액세스 장치는 움직임 보상을 수행할 매크로 블록 내의 각 파티션의 크기와 움직임 벡터를 확인하여, 파티션의 크기에 따라 하나 이상의 파티션을 포함하는 윈도우의 사용 여부를 결정하는 확인부, 윈도우를 설정하고, 윈도우의 크기에 따라 버스트 모드를 설정하는 설정부 및 윈도우 단위로 외부 메모리로부터 참조 영상 데이터를 획득하는 액세스부를 포함한다.Disclosed are a memory access apparatus and a method of a video decoder. The memory access device checks the size and the motion vector of each partition in the macroblock to perform motion compensation, and sets a checker and window for determining whether to use a window including one or more partitions according to the size of the partition, and sets the window. And a setting unit for setting the burst mode according to the size of and a access unit for obtaining the reference image data from the external memory in units of windows.

Description

비디오 디코더의 메모리 액세스 장치 및 방법{Apparatus and Method for memory access of video decoder}Apparatus and Method for memory access of video decoder

본 발명은 비디오 디코더에 관한 것으로서, 보다 상세하게는 비디오 디코더의 메모리 액세스 장치 및 방법에 관한 것이다.
The present invention relates to a video decoder, and more particularly, to a memory access apparatus and method of a video decoder.

영상이나 음향이 디지털 데이터로 전환될 경우, 전환되는 디지털 데이터의 양은 상당히 크다. 디지털 데이터의 압축이 이루어지지 않을 경우 디지털 데이터는 저장공간을 많이 차지한다. 그래서, 디지털 데이터의 양을 줄이는 압축기술이 필요하게 되었고, 압축기술을 이용하여 저장공간 활용 및 네트워크를 통한 전송기능이 향상될 수 있다. 예를들면, 이미지 압축방식은 GIF, JPEG등의 포맷이 있으며, 영상 및 음향압축방식은 MPEG, H.263, H.264 등이 있다. 이 중에서 H.264 기술은 새로운 비디오 압축 코딩 표준으로 ITU와 국제표준화기구/국제전자기술위원회(ISO/IEC)가 공동 결성한 조인트비디오팀(JVT)에 의해 개발된 것으로, ISO/IEC 14496 10 어드밴스드 비디오 코딩이라고도 불리며, 급변하는 무선 환경 및 인터넷 환경 등을 고려하여 오류 강인성 및 네트워크에 친숙한 방식을 고려한 비디오 압축 표준이다.When an image or sound is converted into digital data, the amount of digital data converted is quite large. If the digital data is not compressed, the digital data takes up a lot of storage space. Therefore, there is a need for a compression technique for reducing the amount of digital data, and by utilizing the compression technique, storage space utilization and transmission over a network can be improved. For example, image compression methods include GIF, JPEG, and video and audio compression methods such as MPEG, H.263, and H.264. Among these, H.264 technology is a new video compression coding standard developed by the Joint Video Team (JVT) jointly formed by the ITU and the International Organization for Standardization / ISO (IEC). Also called video coding, it is a video compression standard considering error robustness and network-friendly method in consideration of rapidly changing wireless environment and Internet environment.

H.264 비디오 시스템에서, 영상 데이터의 코딩 또는 디코딩은 매크로 블록(macro block : MB) 단위로 수행되며, 입력 비디오 스트림과 움직임 보상을 위한 프레임들을 저장하기 위한 외부 메모리가 존재한다. 입력 비디오 스트림은 GOP(Group Of Pictures)라는 일련의 픽쳐 내지 프레임의 군들로 나뉘어진다. 각각의 GOP는 다수의 픽쳐를 포함하고, 각각의 픽쳐는 다수의 슬라이스로 나뉘어진다. 각각의 슬라이스는 다수의 매크로 블록을 포함하며, 각각의 매크로블록은 4개의 8×8 휘도(luminance) 블록과 2개의 8×8 색상(chrominance) 블록을 갖는다. 그리고, 한GOP내에 2가지 종류의 픽쳐가 나타날 수 있는데, 하나는 인트라(INTRA) 모드 픽쳐(또는 I-픽쳐)이고 다른 하나는 예측 움직임 보상된 픽쳐(P-픽쳐)이다. I-픽쳐에서는 모든 매크로블럭이 인트라 모드로, 움직임 보상을 고려하지 않고 디코딩된다. P-픽쳐는 이전의 한 프레임을 이용하여 압축된 것으로, 각 매크로블럭이 움직임 보상을 이용하는 인터(INTER) 모드로 디코딩될 수 있다.In the H.264 video system, coding or decoding of image data is performed in units of macro blocks (MB), and there is an external memory for storing an input video stream and frames for motion compensation. The input video stream is divided into a series of pictures or groups of frames called a group of pictures (GOP). Each GOP includes a number of pictures, and each picture is divided into a number of slices. Each slice contains a number of macro blocks, each macro block having four 8x8 luminance blocks and two 8x8 chrominance blocks. In addition, two kinds of pictures may appear in one GOP, one is an intra mode picture (or I-picture) and the other is a predictive motion compensated picture (P-picture). In an I-picture, all macroblocks are in intra mode and decoded without considering motion compensation. The P-picture is compressed using one previous frame, and each macroblock can be decoded in an INTER mode using motion compensation.

비디오 디코더는 움직임 보상 부분과 디스플레이 부분에서 요구되는 메모리 액세스가 그 대부분을 차지한다. 최근 새로운 동영상 부호화 국제 표준으로 제안된 H.264의 경우 움직임 추정 및 보상 방법이 종래의 기술에 비해 훨씬 복잡해짐으로써 움직임 보상시 요구되는 메모리 액세스량이 종래에 비해 훨씬 증가되었다. 따라서, 비디오 디코더에서 효율적인 메모리 액세스 방법이 요구된다.
In the video decoder, the memory access required in the motion compensation part and the display part occupies most of them. In the case of H.264, which has recently been proposed as a new international standard for video encoding, the motion estimation and compensation method is much more complicated than in the prior art, so the amount of memory access required for motion compensation is much higher than in the related art. Therefore, there is a need for an efficient memory access method in a video decoder.

본 발명은 비디오 디코더에서 움직임 보상시 요구되는 메모리 액세스 빈도를 최소화하는 것이다.
The present invention minimizes the frequency of memory access required for motion compensation in a video decoder.

본 발명의 일 측면에 따르면, 움직임 보상을 위한 비디오 디코더의 메모리 액세스 장치가 개시된다.According to one aspect of the present invention, a memory access apparatus of a video decoder for motion compensation is disclosed.

본 발명의 실시예에 따른 메모리 액세스 장치는 상기 움직임 보상을 수행할 매크로 블록 내의 각 파티션의 크기와 움직임 벡터를 확인하여, 상기 파티션의 크기에 따라 하나 이상의 파티션을 포함하는 윈도우의 사용 여부를 결정하는 확인부, 상기 윈도우를 설정하고, 상기 윈도우의 크기에 따라 버스트 모드를 설정하는 설정부 및 상기 윈도우 단위로 외부 메모리로부터 참조 영상 데이터를 획득하는 액세스부를 포함한다.The memory access device according to an embodiment of the present invention determines the size and motion vector of each partition in the macroblock to perform the motion compensation, and determines whether to use a window including one or more partitions according to the size of the partition. And a setting unit for setting the window, setting a burst mode according to the size of the window, and an access unit for obtaining reference image data from an external memory in units of the window.

여기서, 상기 참조 영상 데이터는 휘도 데이터 또는 색차 데이터 중 하나 이상을 포함하는 화소 데이터이다.Here, the reference image data is pixel data including at least one of luminance data and color difference data.

여기서, 상기 움직임 벡터가 정수 화소가 아닌 반화소 또는 1/4화소를 나타내면, 상기 참조 영상 데이터에 대하여 보간(Interpolation)을 수행하는 보간부를 더 포함한다.The interpolation unit may further include an interpolation unit performing interpolation on the reference image data when the motion vector represents a half pixel or a quarter pixel instead of an integer pixel.

여기서, 상기 설정부는 가로축 움직임 벡터 중에서 가장 왼쪽을 가로 방향의 시작점으로 설정하고, 가로 길이는 하나의 매크로 블록에서 읽어야 하는 가로 화소 데이터 개수에 상응하고, 세로 길이는 설정된 가로 길이의 범위 내에 속한 블록을 포함할 수 있도록 설정하여 상기 윈도우를 설정한다.Here, the setting unit sets the leftmost of the horizontal motion vectors as the starting point in the horizontal direction, the horizontal length corresponds to the number of horizontal pixel data to be read in one macro block, and the vertical length corresponds to a block belonging to the set horizontal length range. Set the window to include it.

여기서, 상기 액세스부는 상기 윈도우를 미사용하는 경우, 상기 파티션 단위로 상기 참조 영상 데이터를 획득한다.Here, when the window is not used, the access unit obtains the reference image data in units of partitions.

본 발명의 다른 측면에 따르면, 비디오 디코더의 메모리 액세스 장치가 움직임 보상을 위하여 메모리를 액세스하는 방법이 개시된다.According to another aspect of the invention, a method is disclosed in which a memory access device of a video decoder accesses a memory for motion compensation.

본 발명의 실시예에 따른 메모리 액세스 방법은 상기 움직임 보상을 수행할 매크로 블록 내의 각 파티션의 크기와 움직임 벡터를 확인하는 단계, 상기 파티션의 크기에 따라 하나 이상의 파티션을 포함하는 윈도우의 사용 여부를 결정하는 단계, 상기 윈도우를 설정하고, 상기 윈도우의 크기에 따라 버스트 모드를 설정하는 단계 및 상기 윈도우 단위로 외부 메모리로부터 참조 영상 데이터를 획득하는 단계를 포함한다.According to an embodiment of the present invention, a memory access method includes identifying a size and a motion vector of each partition in a macroblock to perform motion compensation, and determining whether to use a window including one or more partitions according to the size of the partition. And setting a window, setting a burst mode according to the size of the window, and acquiring reference image data from an external memory in units of the window.

여기서, 상기 참조 영상 데이터는 휘도 데이터 또는 색차 데이터 중 하나 이상을 포함하는 화소 데이터이다.Here, the reference image data is pixel data including at least one of luminance data and color difference data.

여기서, 상기 움직임 벡터가 정수 화소가 아닌 반화소 또는 1/4화소를 나타내면, 상기 참조 영상 데이터에 대하여 보간(Interpolation)을 수행하는 단계를 더 포함한다.Here, if the motion vector represents a half pixel or a quarter pixel instead of an integer pixel, the method further includes interpolating the reference image data.

여기서, 상기 윈도우는 가로축 움직임 벡터 중에서 가장 왼쪽을 가로 방향의 시작점으로 설정하고, 가로 길이는 하나의 매크로 블록에서 읽어야 하는 가로 화소 데이터 개수에 상응하고, 세로 길이는 설정된 가로 길이의 범위 내에 속한 블록을 포함할 수 있도록 설정된다.Here, the window sets the leftmost of the horizontal motion vectors as the starting point in the horizontal direction, the horizontal length corresponds to the number of horizontal pixel data to be read in one macro block, and the vertical length corresponds to a block within the set horizontal length range. It is set to include.

여기서, 상기 윈도우를 미사용하는 경우, 상기 파티션 단위로 상기 참조 영상 데이터를 획득하는 단계를 더 포함한다.
The method may further include obtaining the reference image data in units of partitions when the window is not used.

본 발명은 비디오 디코더에서 움직임 보상시 요구되는 메모리 액세스 빈도를 최소화하여 메모리 액세스 효율을 높일 수 있다.The present invention can increase memory access efficiency by minimizing the frequency of memory access required for motion compensation in a video decoder.

또한, 본 발명은 메모리 액세스 횟수를 감소시켜 메모리 액세스시 소모되는 전력량을 최소화할 수 있다.
In addition, the present invention can minimize the amount of power consumed when the memory access by reducing the number of memory access.

도 1은 H.264의 다양한 예측 모드를 나타낸 도면.
도 2는 비디오 디코더의 구성을 개략적으로 예시한 구성도.
도 3은 비디오 디코더의 메모리 액세스 장치의 구성을 개략적으로 예시한 구성도.
도 4는 외부 메모리에서 화소 데이터를 개별적으로 읽어오는 경우를 예시한 도면.
도 5는 윈도우 설정을 예시한 도면.
도 6 및 도 7은 보간 방법을 설명하기 위한 도면.
도 8은 비디오 디코더의 메모리 액세스 장치의 구조를 예시한 도면.
도 9는 메모리맵을 예시한 도면.
도 10은 비디오 디코더의 메모리 액세스 장치가 외부 메모리를 액세스하는 방법을 나타낸 흐름도.
1 illustrates various prediction modes of H.264.
2 is a configuration diagram schematically illustrating a configuration of a video decoder.
3 is a configuration diagram schematically illustrating a configuration of a memory access apparatus of a video decoder.
4 is a diagram illustrating a case where pixel data is separately read from an external memory.
5 illustrates window settings.
6 and 7 are diagrams for explaining the interpolation method.
8 is a diagram illustrating a structure of a memory access apparatus of a video decoder.
9 illustrates a memory map.
10 is a flowchart illustrating a method of accessing an external memory by a memory access device of a video decoder.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.The present invention may be variously modified and have various embodiments, and specific embodiments will be illustrated in the drawings and described in detail with reference to the accompanying drawings. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to the accompanying drawings. In addition, numerals used in the description of the present invention are merely an identifier for distinguishing one component from another.

또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.Also, in this specification, when an element is referred to as being "connected" or "connected" with another element, the element may be directly connected or directly connected to the other element, It should be understood that, unless an opposite description is present, it may be connected or connected via another element in the middle.

이하, 본 발명의 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면 번호에 상관없이 동일한 수단에 대해서는 동일한 참조 번호를 사용하기로 한다.
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description of the present invention, the same reference numerals will be used for the same means regardless of the reference numerals in order to facilitate the overall understanding.

도 1은 H.264의 다양한 예측 모드를 나타낸 도면이다.1 illustrates various prediction modes of H.264.

도 1을 참조하면, 매크로 블록 파티션은 하나의 매크로 블록에서 16X16 샘플 하나, 16X8 샘플 두개, 8X16 샘플 두개 또는 8X8 샘플 네 개로 구성될 수 있다. 8X8 모드가 선택되면, 매크로 블록 내에 있는 4개의 8X8 매크로 블록 파티션 각각은 다시 4개의 형태로 나뉠 수 있다. 이렇게 나뉜 각 영역은 매크로 블록 서브 파티션이라 한다. 매크로 블록 서브 파티션은 도 1에 도시된 바와 같이, 매크로 블록 파티션에서 8X8 샘플 하나, 8X4 샘플 두개, 4X8 샘플 두개 또는 4X4 샘플 네 개로 구성될 수 있다.Referring to FIG. 1, a macro block partition may include one 16 × 16 sample, two 16 × 8 samples, two 8 × 16 samples, or four 8 × 8 samples in one macro block. When the 8x8 mode is selected, each of the four 8x8 macroblock partitions in the macroblock may be divided into four types again. Each divided area is called a macroblock subpartition. As shown in FIG. 1, the macro block subpartition may include one 8 × 8 sample, two 8 × 4 samples, two 4 × 8 samples, or four 4 × 4 samples in the macro block partition.

이러한 파티션들과 서브파티션들은 각 매크로 블록내에서 다양한 조합들로 구성될 수 있다. 또한, 각 파티션 또는 서브파티션에 대해 별도의 움직임 벡터가 요구된다. 일반적으로, 프레임의 균일한 영역(homogeneous area)에는 큰 파티션 사이즈가 적절하고, 세부적인 영역(detailed area)에는 작은 파티션 사이즈가 적절하다.
These partitions and subpartitions may be composed of various combinations within each macro block. In addition, a separate motion vector is required for each partition or subpartition. In general, large partition sizes are appropriate for homogeneous areas of the frame, and small partition sizes are suitable for detailed areas.

도 2는 비디오 디코더의 구성을 개략적으로 예시한 구성도이다.2 is a configuration diagram schematically illustrating a configuration of a video decoder.

도 2를 참조하면, 비디오 디코더는 가변장 복호부(10), 역양자화부(20), 역변환부(30), 예측부(40), 필터(50) 및 외부 메모리(60)를 포함한다.2, the video decoder includes a variable length decoder 10, an inverse quantizer 20, an inverse transformer 30, a predictor 40, a filter 50, and an external memory 60.

가변장 복호부(10)는 압축된 비트스트림을 입력받아 비트 스트림을 가변장 복호한다.The variable length decoder 10 receives the compressed bitstream and variably decodes the bitstream.

역양자화부(20)는 가변장 복호된 비트스트림을 역양자화하고, 역변환부(30)는 역양자화된 비트스트림을 역변환한다.The inverse quantizer 20 inversely quantizes the variable-length decoded bitstream, and the inverse transformer 30 inversely transforms the inverse quantized bitstream.

예측부(40)는 영상의 압축 방식이 인트라 예측 또는 인터 예측인지에 따라 인트라 예측 또는 인터 예측을 수행한다.The prediction unit 40 performs intra prediction or inter prediction according to whether an image compression method is intra prediction or inter prediction.

즉, 예측부(40)는 인트라 예측부(41) 및 움직임 보상부(43)를 포함한다. 인트라 예측부(41)는 인트라 예측을 수행하며, 움직임 보상부(43)는 영상의 압축 방식이 인터 예측인 경우에 외부 메모리(60)에 저장된 참조 영상을 읽어와 움직임 보상을 수행한다. 여기서, 참조 영상은 용량이 크기 때문에 외부 메모리(60)에 저장되며, 움직임 보상부(43)의 메모리 액세스 장치(100)는 파티션 또는 윈도우 단위로 참조 영상을 획득한다. 메모리 액세스 장치(100)는 참조 영상의 매크로 블록의 파티션의 크기에 따라 하나 이상의 파티션을 포함하는 윈도우를 설정하고, 설정된 윈도우에 따라 정해지는 양만큼의 데이터를 외부 메모리(60)에서 읽어온다. 메모리 액세스 장치(100)에 대해서는 도 3을 참조하여 상세히 설명한다.That is, the predictor 40 includes an intra predictor 41 and a motion compensator 43. The intra predictor 41 performs intra prediction, and the motion compensator 43 performs motion compensation by reading a reference image stored in the external memory 60 when the image compression method is inter prediction. Here, the reference image is stored in the external memory 60 because of its large capacity, and the memory access device 100 of the motion compensator 43 obtains the reference image in units of partitions or windows. The memory access device 100 sets a window including one or more partitions according to the size of the partition of the macro block of the reference image, and reads data from the external memory 60 in an amount corresponding to the set window. The memory access device 100 will be described in detail with reference to FIG. 3.

필터(50)는 비트스트림의 복원시 발생할 수 있는 매크로 블록간의 블록킹 현상을 감소시키는 디블록킹 필터(Deblocking filter : DF)가 될 수 있다. 디블록킹 필터는 디블록킹 필터링을 수행하는 엔진(미도시) 및 외부 메모리에 데이터를 저장하기 위한 DMA(Direct Memory Access)(미도시)를 포함할 수 있다.The filter 50 may be a deblocking filter (DF) that reduces blocking between macroblocks that may occur when the bitstream is restored. The deblocking filter may include an engine (not shown) that performs deblocking filtering and a direct memory access (DMA) (not shown) for storing data in an external memory.

도 3은 비디오 디코더의 메모리 액세스 장치의 구성을 개략적으로 예시한 구성도이다.3 is a configuration diagram schematically illustrating a configuration of a memory access apparatus of a video decoder.

도 3을 참조하면, 메모리 액세스 장치(100)는 확인부(110), 설정부(120), 액세스부(130), 내부 메모리(140) 및 보간부(150)를 포함한다.Referring to FIG. 3, the memory access device 100 includes a confirmation unit 110, a setting unit 120, an access unit 130, an internal memory 140, and an interpolation unit 150.

확인부(110)는 매크로 블록 내의 각 파티션의 크기와 움직임 벡터를 확인한다. 확인부(110)는 파티션의 크기에 따라 윈도우 설정 여부를 결정한다. 예를 들어, 확인부(110)는 파티션의 크기가 8X16, 8X8, 8X4, 4X8, 4X4인 경우에 윈도우를 사용하고, 16X16, 16X8인 경우에 윈도우를 미사용하는 것으로 결정할 수 있다.The identification unit 110 confirms the size and motion vector of each partition in the macro block. The identification unit 110 determines whether to set a window according to the size of the partition. For example, the checker 110 may determine that the window is used when the partition size is 8x16, 8x8, 8x4, 4x8, and 4x4, and the window is not used when the size of the partition is 16x16 or 16x8.

도 4는 외부 메모리에서 화소 데이터를 개별적으로 읽어오는 경우를 예시한 도면이다. 도 4를 참조하면, 비디오 디코더가 외부 메모리(60)에서 화소 데이터를 개별적으로 읽어오는 경우, sram0과 sram1과 같이 화소 데이터가 중복되어 읽는 현상이 발생할 수 있다. 여기서, 좌측 및 상측의 2개, 우측 및 하측의 3개 화소는 보간을 위하여 필요한 영역이다. 또한, 메모리는 고유의 지연시간(latency)을 가지기 때문에, 비디오 디코더가 외부 메모리(60)에서 화소 데이터를 개별적으로 읽어오는 경우, 사이클 소요가 크다. 이에 따라, 한 번에 가져오는 데이터양은 적고, 액세스 횟수는 매우 많아 메모리 액세스 효율이 떨어진다. 그래서, 액세스 효율을 높이기 위하여 본 명세서에서는 윈도우를 이용한 메모리 액세스 방법을 제안한다.4 is a diagram illustrating a case where pixel data is separately read from an external memory. Referring to FIG. 4, when the video decoder separately reads pixel data from the external memory 60, a phenomenon in which the pixel data is read, such as sram0 and sram1, may occur. Here, two pixels on the left side and an upper side, and three pixels on the right side and the lower side, are regions necessary for interpolation. In addition, since the memory has an inherent latency, when the video decoder reads pixel data from the external memory 60 individually, the cycle time is large. As a result, the amount of data to be fetched at a time is small and the number of accesses is very large, resulting in low memory access efficiency. Thus, in order to improve access efficiency, the present specification proposes a memory access method using a window.

설정부(120)는 확인부(110)에 의하여 윈도우를 사용하는 것으로 결정된 경우, 윈도우 및 버스트(burst) 모드를 설정한다. 즉, 설정부(120)는 움직임 벡터를 이용하여 윈도우의 시작점, 크기(가로 및 세로의 길이)를 설정하고, 가로의 길이에 상응하는 버스트 모드를 설정할 수 있다. 여기서, 버스트 모드(연속 기록/재생 방법)는 DMA(Direct Memory Access)를 통해 외부 버퍼에서 한번에 많은 양의 데이터를 읽음으로써 버스의 사용 효율을 향상시키는 방법이다. 예를 들어, 도 5에 도시된 바와 같이 윈도우를 설정할 수 있다.When it is determined by the checker 110 to use the window, the setting unit 120 sets the window and the burst mode. That is, the setting unit 120 may set the starting point, the size (the length and the length of the window) of the window using the motion vector, and set the burst mode corresponding to the length of the window. Here, the burst mode (continuous recording / reproducing method) is a method of improving the use efficiency of the bus by reading a large amount of data at once from an external buffer through direct memory access (DMA). For example, as shown in FIG. 5, a window may be set.

도 5는 윈도우 설정을 예시한 도면이다.5 is a diagram illustrating window setting.

도 5를 참조하면, 파티션 또는 서브 파티션에 상관없이 매크로 블록 내의 모든 움직임 벡터를 4X4 단위로 나타낸다고 가정하면, 설정부(120)는 가로축 움직임 벡터 중에서 가장 왼쪽을 가로 방향의 시작점으로 설정할 수 있다. 이때, 0번 블록의 움직임 벡터가 정수 화소가 아닌 반화소 또는 1/4 화소를 나타내면, 설정부(120)는 시작점을 좌측 및 하측으로 2화소 이동시킬 수 있다. 이것은 보간을 위하여 블록 주변의 화소 데이터를 획득하기 위한 것이다.Referring to FIG. 5, assuming that all motion vectors in a macro block are expressed in units of 4 × 4 regardless of partitions or sub-partitions, the setting unit 120 may set the leftmost of the horizontal motion vectors as a horizontal starting point. At this time, if the motion vector of the block 0 represents a half pixel or a quarter pixel instead of an integer pixel, the setting unit 120 may move the starting point two pixels to the left and the bottom. This is to obtain pixel data around the block for interpolation.

윈도우의 가로 길이는 버스트 8로 한 번 읽어올 수 있는 데이터 양에 해당하는 32 화소가 될 수 있다. 버스트 4는 한 번에 16개의 화소 데이터를 읽을 수 있으나, 4X4 파티션들이 인접한 경우 하나의 매크로 블록에서 읽어야 하는 가로 화소 데이터 개수는 2+16+3=21개이므로, 버스트 4는 충분하지 않고, 이와는 반대로 버스트 16은 충분하지만 필요 이상의 화소 데이터를 읽으므로 비효율적이다.The width of the window may be 32 pixels corresponding to the amount of data that can be read once in burst 8. Burst 4 can read 16 pixel data at a time, but when 4x4 partitions are adjacent, the number of horizontal pixel data that should be read in one macro block is 2 + 16 + 3 = 21, so burst 4 is not enough. Burst 16, on the other hand, is sufficient but inefficient because it reads more pixel data than necessary.

윈도우의 세로 길이는 설정된 가로 길이의 범위 내에 속한 블록을 포함할 수 있도록 시작점 및 크기가 설정될 수 있다. The vertical length of the window may be set to a starting point and a size so as to include a block belonging to a range of the set horizontal length.

만약, 설정된 윈도우가 매크로 블록 내의 모든 4X4 블록을 포함하지 못하면, 설정부(120)는 도 5에 도시된 바와 같이 재차 윈도우를 설정한다. 즉, 설정부(120)는 포함되지 못한 블록 중 가장 왼쪽을 기준으로 윈도우를 다시 설정할 수 있다.If the set window does not include all 4 × 4 blocks in the macro block, the setting unit 120 sets the window again as shown in FIG. 5. That is, the setting unit 120 may reset the window based on the leftmost of the blocks not included.

액세스부(130)는 윈도우 사용 여부에 따라 윈도우 또는 파티션 단위로 참조 영상 데이터를 외부 메모리(60)로부터 가져오고, 외부 메모리(60)로부터 가져온 참조 영상 데이터를 내부 메모리(140)에 저장한다. The access unit 130 obtains reference image data from the external memory 60 in units of windows or partitions according to whether a window is used, and stores the reference image data obtained from the external memory 60 in the internal memory 140.

보간부(150)는 움직임 벡터가 정수 화소가 아닌 반화소 또는 1/4화소를 나타내면, 내부 메모리(140)에 저장된 참조 영상 데이터에 대하여 보간(Interpolation)을 수행한다.The interpolator 150 performs interpolation on the reference image data stored in the internal memory 140 when the motion vector indicates a half pixel or a quarter pixel instead of an integer pixel.

도 6 및 도 7은 보간 방법을 설명하기 위한 도면이다.6 and 7 are diagrams for explaining the interpolation method.

도 6을 참조하면, 보간이 필요한 경우 즉, 움직임 벡터가 정수 화소가 아닌 반화소 또는 1/4 화소를 나타내는 경우, 선택된 4X4 블록 주변의 화소 데이터가 필요하다. 즉, 좌측 및 상측으로 2개의 화소 데이터가 필요하고, 우측 및 하측으로 3개의 화소 데이터가 필요하다. 이에 따라 보간 연산을 위한 총 화소 데이터는 블록 크기가 xXy로 가정하면, (2+x+3)X(2+y+3)개가 필요하다. 하지만, 움직임 벡터가 정수 화소를 나타내는 경우, 보간 연산을 수행하지 않아도 되므로 블록 주변의 화소 데이터는 필요하지 않다.Referring to FIG. 6, when interpolation is required, that is, when a motion vector represents a half pixel or quarter pixel instead of an integer pixel, pixel data around a selected 4 × 4 block is required. In other words, two pixel data are required on the left side and the upper side, and three pixel data are required on the right side and the lower side. Accordingly, the total pixel data for the interpolation operation requires (2 + x + 3) X (2 + y + 3) assuming that the block size is xXy. However, when the motion vector represents an integer pixel, the pixel data around the block is not necessary since the interpolation operation does not need to be performed.

도 7을 참조하면, 도 7은 보간의 개념을 나타낸다. 도 7에 도시된 바와 같이 움직임 벡터가 정수(1,1)인 경우, 보간은 수행되지 않고, 움직임 벡터가 정수가 아닌 반화소 또는 1/4 화소(0.75, 0.5)를 나타내는 경우, 보간이 수행된다. 도 7에 파란색으로 도시된 화소 데이터는 실제 존재하지 않으며, 움직임 벡터에 따라 주변 화소 데이터를 보간하여 획득된다.Referring to FIG. 7, FIG. 7 illustrates the concept of interpolation. As shown in FIG. 7, when the motion vector is an integer (1, 1), interpolation is not performed. When the motion vector represents a non-integer half pixel or quarter pixel (0.75, 0.5), interpolation is performed. do. Pixel data shown in blue in FIG. 7 does not actually exist, and is obtained by interpolating surrounding pixel data according to a motion vector.

화소 데이터는 휘도 데이터 또는 색차 데이터를 포함한다. 메모리 액세스 장치(100)는 휘도 데이터 및 색차 데이터에 대하여 각각 상술한 바와 같은 동작을 수행할 수 있다.The pixel data includes luminance data or color difference data. The memory access apparatus 100 may perform the above-described operations on the luminance data and the color difference data, respectively.

예를 들어, 색차 데이터는 Cb 및 Cr 데이터로 구성될 수 있으며, Cb 및 Cr 데이터가 인터리브(interleave)된 경우, 윈도우 사용시 효율적인 사용이 가능하다. 다음 표 1은 색차 데이터의 매모리맵을 나타낸 것이다.For example, the color difference data may be composed of Cb and Cr data. When the Cb and Cr data are interleaved, efficient use of the window may be possible. Table 1 below shows a memory map of the color difference data.

CbCb 0,00,0 Cr0.0 Cr 0.0 CbCb 1,01,0 Cr1.0 Cr 1.0 CbCb 2,02.0 Cr2.0 Cr 2.0 ... CbCb 0,10,1 Cr0.1 Cr 0.1 CbCb 1,11,1 Cr1.1 Cr 1.1 CbCb 2,12,1 Cr2.1 Cr 2.1 ... CbCb 0,20,2 Cr0.2 Cr 0.2 CbCb 1,21,2 Cr1.2 Cr 1.2 CbCb 2,22.2 Cr2.2 Cr 2.2 ... ... ... ... ... ... ... ...

도 8은 비디오 디코더의 메모리 액세스 장치의 구조를 예시한 도면이다.8 is a diagram illustrating a structure of a memory access apparatus of a video decoder.

도 8을 참조하면, 메모리 액세스 장치는 FMAC(프레임 메모리 접근 제어기), FREG(Full-Pel Register, 정화소 저장용 레지스터), FBUF(Full-pel Buffer, 정화소 저장용 메모리 버퍼), HQBUF(Half/Quarter-pel Buffer, 반화소 및 1/4화소 저장 메모리 버퍼)와 인터폴레이터로 구성된다.Referring to FIG. 8, the memory access device may include a frame memory access controller (FMAC), a full-pel register (FREG), a full-pel register (FBU), a full-pel buffer (FBU), a memory buffer for septic storage, and a HQBUF (Half / Quarter). -pel Buffer, half-pixel and quarter-pixel storage memory buffers) and interpolator.

FMAC는 비트스트림으로부터 움직임벡터를 분석하고, SDC(SDRAM 콘트롤러)를 통하여 SDRAM으로부터 그 움직임 벡터에 해당되는 정화소 데이터를 읽어와서 FREG에 임시 저장하고, 읽어 들여온 데이터를 FBUF로 분배하는 기능을 수행한다. 이하, SDRAM의 데이터 폭은 32비트로 가정하나, 다양한 데이터 폭의 SDRAM에 적용 가능하다.FMAC analyzes the motion vector from the bitstream, reads the refinery data corresponding to the motion vector from the SDRAM through the SDC (SDRAM controller), temporarily stores it in the FREG, and distributes the read data to the FBUF. Hereinafter, although the data width of the SDRAM is assumed to be 32 bits, it is applicable to SDRAM having various data widths.

SDRAM은 버스트 8로만 엑세스가 되고, FREG는 그 버스트 8로 읽어온 데이터가 저장되는 임시 레지스터이다. FBUF는 각 16개 서브블럭에 해당하는 16개의 전용 버퍼로 구성되어 있다. 만약, 움직임 벡터가 반화소 또는 1/4화소에 해당하면, FBUF로부터의 데이터는 인터폴레이터로 입력되며, 이 작업은 각 4*4 서브 블록 별로 16개 서브 블록에 순차적으로 적용된다.SDRAM is accessed only in burst 8, and FREG is a temporary register that stores the data read in burst 8. The FBUF consists of 16 dedicated buffers corresponding to each of the 16 subblocks. If the motion vector corresponds to half pixel or quarter pixel, data from the FBUF is input to the interpolator, and this operation is sequentially applied to 16 sub blocks for each 4 * 4 sub block.

FREG의 데이터를 FBUF에 쓰는 동안, FREG의 데이터의 overwrite 문제가 야기된다. 두 버스트 억세스 간 간격은 16 사이클 보다 적은 11사이클이기 때문이다. 이를 해결하기 위하여 도 9에 도시된 바와 같은 메모리맵을 가지는 FBUF가 이용될 수 있다. 즉, FBUF가 2개의 SRAM으로 나누어 구성되면, 8사이클 만에 Write가 완료되어 overwrite 문제가 해결될 수 있다. While writing the data of the FREG to the FBUF, an overwrite problem of the data of the FREG is caused. This is because the interval between two burst accesses is 11 cycles less than 16 cycles. In order to solve this problem, an FBUF having a memory map as shown in FIG. 9 may be used. That is, if the FBUF is divided into two SRAMs, the write is completed in eight cycles, and the overwrite problem can be solved.

인터폴레이터는 6-탭 FIR 필터로, 설계의 주안점은 작은 회로 크기 및 메모리 크기로 계산에 소요 되는 사이클 수를 최대한 줄이는 것이다. 인터폴레이터의 설계 방법은 크게 1-D, 2-D 및 separated 1-D(1-D 필터를 수직/수평 방향 분리 적용)가 있다. 1-D 인터폴레이터는 가장 간단한 방법이나 계산 시간이 오래 걸린다는 단점이 있다. 2-D 인터폴레이터는 계산 시간이 가장 짧으나, 회로의 크기가 커진다는 단점이 있다. separated 1-D 인터폴레이터는 회로 크기 및 계산 시간 측면에서 효율적으로, 최근의 연구들은 이 방법에 기초하고 있다. 인터폴레이터의 핵심은 필터에 공급 될 정화소들을 저장할 메모리의 데이터 구조이다. The interpolator is a 6-tap FIR filter. The design focuses on the smallest circuit size and memory size to minimize the number of cycles required for calculation. The design methods of the interpolator are largely 1-D, 2-D, and separated 1-D (1-D filter with vertical / horizontal separation). The 1-D interpolator is the simplest method but takes the long time to calculate. The 2-D interpolator has the shortest calculation time, but has the disadvantage of increasing the circuit size. Separated 1-D interpolators are efficient in terms of circuit size and computation time, and recent studies are based on this method. At the heart of the interpolator is a data structure in memory that stores the septics to be supplied to the filter.

대부분의 separated 1-D 인터폴레이터는 외부 메모리에서 데이터를 입력 받는다. 인터폴레이터의 독립적인 검증을 위해서는 가능한 방법이나, 실제로 상용 코덱 칩은 외부 메모리로 SDRAM 혹은 DDR SDRAM이 사용되며, 화소 데이터의 임시 저장을 위한 내부 메모리로 SRAM을 사용한다.Most separated 1-D interpolators accept data from external memory. Independent verification of the interpolator is possible, but in practice, commercial codec chips use SDRAM or DDR SDRAM as external memory, and SRAM as internal memory for temporary storage of pixel data.

하지만, 인터폴레이터의 성능을 최대한 내기 위해 제한된 데이터 폭의 SRAM이 사용되지 않고, 9 바이트(=72비트)의 데이터 폭이 사용된다. 그 이유는 FREG와 RBUF간 데이터 전송 시 가장 효율적인 데이터 폭이기 때문이다. 이에 따라, separated 1-D 인터폴레이터가 하나의 매크로블록을 보간하는데 걸리는 사이클 수는 144 사이클이 된다.However, to maximize the performance of the interpolator, a limited data width SRAM is not used, and a data width of 9 bytes (= 72 bits) is used. This is because the data width is the most efficient in data transmission between FREG and RBUF. Accordingly, the number of cycles for the separated 1-D interpolator to interpolate one macroblock is 144 cycles.

도 10은 비디오 디코더의 메모리 액세스 장치가 외부 메모리를 액세스하는 방법을 나타낸 흐름도이다.10 is a flowchart illustrating a method of accessing an external memory by a memory access device of a video decoder.

S1010 단계에서, 메모리 액세스 장치(100)는 매크로 블록 내의 각 파티션의 크기와 움직임 벡터를 확인한다. In operation S1010, the memory access device 100 checks the size and the motion vector of each partition in the macroblock.

S1020 단계에서, 메모리 액세스 장치(100)는 파티션의 크기에 따라 윈도우 사용 여부를 판단한다. 예를 들어, 확인부(110)는 파티션의 크기가 8X16, 8X8, 8X4, 4X8, 4X4인 경우에 윈도우를 사용하고, 16X16, 16X8인 경우에 윈도우를 미사용하는 것으로 결정할 수 있다.In operation S1020, the memory access device 100 determines whether to use a window according to the size of a partition. For example, the checker 110 may determine that the window is used when the partition size is 8x16, 8x8, 8x4, 4x8, and 4x4, and the window is not used when the size of the partition is 16x16 or 16x8.

S1030 단계에서, 메모리 액세스 장치(100)는 윈도우를 사용하는 것으로 판단한 경우, 윈도우 및 버스트(burst) 모드를 설정한다. 즉, 메모리 액세스 장치(100)는 움직임 벡터를 이용하여 윈도우의 시작점, 크기(가로 및 세로의 길이)를 설정하고, 가로의 길이에 상응하는 버스트 모드를 설정할 수 있다.In operation S1030, when it is determined that the window is used, the memory access device 100 sets the window and the burst mode. That is, the memory access device 100 may set the starting point, the size (the length and the length of the window) of the window using the motion vector, and set the burst mode corresponding to the length of the window.

만약, 윈도우를 미사용하면, S1060 단계로 진입한다.If the window is not used, step S1060 is entered.

S1060 단계에서, 메모리 액세스 장치(100)는 파티션을 이용하는 것으로 결정하고, 각 파티션의 위치 및 크기를 확인한다. 이때, 메모리 액세스 장치(100)는 파티션의 크기에 상응하는 버스트 모드를 설정할 수 있다. In operation S1060, the memory access device 100 determines to use a partition, and checks the location and size of each partition. In this case, the memory access device 100 may set a burst mode corresponding to the size of a partition.

S1040 단계에서, 메모리 액세스 장치(100)는 윈도우 사용 여부에 따라 윈도우 또는 파티션 단위로 참조 영상 데이터를 외부 메모리(60)로부터 읽어와 저장한다.In operation S1040, the memory access device 100 reads and stores the reference image data from the external memory 60 in units of windows or partitions according to whether a window is used.

S1050 단계에서, 메모리 액세스 장치(100)는 움직임 벡터가 정수 화소가 아닌 반화소 또는 1/4화소를 나타내면, 내부 메모리(140)에 저장된 참조 영상 데이터에 대하여 보간(Interpolation)을 수행한다.
In operation S1050, when the motion vector indicates a half pixel or a quarter pixel instead of an integer pixel, the memory access device 100 performs interpolation on the reference image data stored in the internal memory 140.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the invention as defined in the appended claims. It will be understood that the invention may be varied and varied without departing from the scope of the invention.

10: 가변장 복호부
20: 역양자화부
30: 역변환부
40: 예측부
50: 필터
60: 외부 메모리
10: variable length decoder
20: Inverse quantization department
30: inverse transform unit
40: prediction unit
50: filter
60: external memory

Claims (10)

움직임 보상을 위한 비디오 디코더의 메모리 액세스 장치에 있어서,
상기 움직임 보상을 수행할 매크로 블록 내의 각 파티션의 크기와 움직임 벡터를 확인하여, 상기 파티션의 크기에 따라 하나 이상의 파티션을 포함하는 윈도우의 사용 여부를 결정하는 확인부;
상기 윈도우를 설정하고, 상기 윈도우의 크기에 따라 버스트 모드를 설정하는 설정부; 및
상기 윈도우 단위로 외부 메모리로부터 참조 영상 데이터를 획득하는 액세스부를 포함하되,
상기 설정부는 가로축 움직임 벡터 중에서 가장 왼쪽을 가로 방향의 시작점으로 설정하고, 가로 길이는 하나의 매크로 블록에서 읽어야 하는 가로 화소 데이터 개수에 상응하고, 세로 길이는 설정된 가로 길이의 범위 내에 속한 블록을 포함할 수 있도록 설정하여 상기 윈도우를 설정하는 것을 특징으로 하는 메모리 액세스 장치.
In the memory access device of the video decoder for motion compensation,
A checking unit to check a size and a motion vector of each partition in the macroblock to perform the motion compensation, and determine whether to use a window including one or more partitions according to the size of the partition;
A setting unit which sets the window and sets a burst mode according to the size of the window; And
An access unit for acquiring reference image data from an external memory in units of windows,
The setting unit sets the leftmost of the horizontal motion vectors as the starting point in the horizontal direction, and the horizontal length corresponds to the number of horizontal pixel data to be read in one macro block, and the vertical length includes a block belonging to the set horizontal length range. And setting the window by setting the window so as to enable the memory access device.
제1항에 있어서,
상기 참조 영상 데이터는 휘도 데이터 또는 색차 데이터 중 하나 이상을 포함하는 화소 데이터인 것을 특징으로 하는 메모리 액세스 장치.
The method of claim 1,
And the reference image data is pixel data including at least one of luminance data and chrominance data.
제1항에 있어서,
상기 움직임 벡터가 정수 화소가 아닌 반화소 또는 1/4화소를 나타내면, 상기 참조 영상 데이터에 대하여 보간(Interpolation)을 수행하는 보간부를 더 포함하는 메모리 액세스 장치.
The method of claim 1,
And an interpolation unit for performing interpolation on the reference image data when the motion vector indicates a half pixel or a quarter pixel instead of an integer pixel.
삭제delete 제1항에 있어서,
상기 액세스부는 상기 윈도우를 미사용하는 경우, 상기 파티션 단위로 상기 참조 영상 데이터를 획득하는 것을 특징으로 하는 메모리 액세스 장치.
The method of claim 1,
And the access unit acquires the reference image data in units of partitions when the window is not used.
비디오 디코더의 메모리 액세스 장치가 움직임 보상을 위하여 메모리를 액세스하는 방법에 있어서,
상기 움직임 보상을 수행할 매크로 블록 내의 각 파티션의 크기와 움직임 벡터를 확인하는 단계;
상기 파티션의 크기에 따라 하나 이상의 파티션을 포함하는 윈도우의 사용 여부를 결정하는 단계;
상기 윈도우를 설정하고, 상기 윈도우의 크기에 따라 버스트 모드를 설정하는 단계; 및
상기 윈도우 단위로 외부 메모리로부터 참조 영상 데이터를 획득하는 단계를 포함하되,
상기 윈도우는 가로축 움직임 벡터 중에서 가장 왼쪽을 가로 방향의 시작점으로 설정하고, 가로 길이는 하나의 매크로 블록에서 읽어야 하는 가로 화소 데이터 개수에 상응하고, 세로 길이는 설정된 가로 길이의 범위 내에 속한 블록을 포함할 수 있도록 설정되는 것을 특징으로 하는 메모리 액세스 방법.
In the memory access device of the video decoder to access the memory for motion compensation,
Identifying a size and a motion vector of each partition in the macroblock to perform the motion compensation;
Determining whether to use a window including one or more partitions according to the size of the partition;
Setting the window and setting a burst mode according to the size of the window; And
Acquiring reference image data from an external memory on a window basis;
The window sets the leftmost of the horizontal motion vectors as the starting point in the horizontal direction, the horizontal length corresponds to the number of horizontal pixel data to be read in one macro block, and the vertical length includes a block belonging to the set horizontal length range. Memory access method characterized in that it is set to.
제6항에 있어서,
상기 참조 영상 데이터는 휘도 데이터 또는 색차 데이터 중 하나 이상을 포함하는 화소 데이터인 것을 특징으로 하는 메모리 액세스 방법.
The method according to claim 6,
And the reference image data is pixel data including at least one of luminance data and chrominance data.
제6항에 있어서,
상기 움직임 벡터가 정수 화소가 아닌 반화소 또는 1/4화소를 나타내면, 상기 참조 영상 데이터에 대하여 보간(Interpolation)을 수행하는 단계를 더 포함하는 메모리 액세스 방법.
The method according to claim 6,
And performing interpolation on the reference image data when the motion vector represents a half pixel or a quarter pixel rather than an integer pixel.
삭제delete 제6항에 있어서,
상기 윈도우를 미사용하는 경우, 상기 파티션 단위로 상기 참조 영상 데이터를 획득하는 단계를 더 포함하는 메모리 액세스 방법.
The method according to claim 6,
If the window is not used, acquiring the reference image data in units of partitions.
KR1020110017840A 2011-02-28 2011-02-28 Apparatus and Method for memory access of video decoder KR101188453B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110017840A KR101188453B1 (en) 2011-02-28 2011-02-28 Apparatus and Method for memory access of video decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110017840A KR101188453B1 (en) 2011-02-28 2011-02-28 Apparatus and Method for memory access of video decoder

Publications (2)

Publication Number Publication Date
KR20120098110A KR20120098110A (en) 2012-09-05
KR101188453B1 true KR101188453B1 (en) 2012-10-08

Family

ID=47109216

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110017840A KR101188453B1 (en) 2011-02-28 2011-02-28 Apparatus and Method for memory access of video decoder

Country Status (1)

Country Link
KR (1) KR101188453B1 (en)

Also Published As

Publication number Publication date
KR20120098110A (en) 2012-09-05

Similar Documents

Publication Publication Date Title
KR102657850B1 (en) Video decoding method and computer readable redording meduim for performing intra prediction using adaptive filter
KR100695141B1 (en) Memory access apparatus and method, data write/read apparatus and method for use in image processing system
US8743972B2 (en) Coding adaptive deblocking filter and method for use therewith
CN111373755A (en) Image encoding/decoding method and apparatus, and recording medium storing bit stream
US20120189064A1 (en) Adaptive loop filtering using multiple filter shapes
US20060133504A1 (en) Deblocking filters for performing horizontal and vertical filtering of video data simultaneously and methods of operating the same
KR20190038371A (en) Method and apparatus for encoding/decoding image and recording medium for storing bitstream
US20060262990A1 (en) Dual-mode high throughput de-blocking filter
US8036269B2 (en) Method for accessing memory in apparatus for processing moving pictures
US20120087412A1 (en) Method for Determining Boundary Strength
CN114208178A (en) Quadratic transforms for video encoding and decoding
CN112703732A (en) Local illumination compensation for video encoding and decoding using stored parameters
WO2020096898A1 (en) Video encoding or decoding using block extension for overlapped block motion compensation
JP4735471B2 (en) Decoding processing device, decoding processing method, and decoding processing program
US9473782B2 (en) Loop filtering managing storage of filtered and unfiltered pixels
KR101188453B1 (en) Apparatus and Method for memory access of video decoder
GB2459567A (en) Video signal edge filtering
TWI520618B (en) Video data process method and video process apparatus
CN114143548B (en) Coding and decoding of transform coefficients in video coding and decoding
TW202209889A (en) Method and device to finely control an image encoding and decoding process
KR100556341B1 (en) Vedeo decoder system having reduced memory bandwidth
KR101205998B1 (en) Two stage deblocking filtering apparatus based on macroblock
CN114175653B (en) Method and apparatus for lossless codec mode in video codec
RU2797393C2 (en) Position-dependent intra prediction combination for wide-angle intra prediction
KR100621942B1 (en) Mobile multimedia data processing method

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160905

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170904

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180831

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190830

Year of fee payment: 8