KR20170052143A - Loop filter based on memory applied in video decoder - Google Patents
Loop filter based on memory applied in video decoder Download PDFInfo
- Publication number
- KR20170052143A KR20170052143A KR1020150154229A KR20150154229A KR20170052143A KR 20170052143 A KR20170052143 A KR 20170052143A KR 1020150154229 A KR1020150154229 A KR 1020150154229A KR 20150154229 A KR20150154229 A KR 20150154229A KR 20170052143 A KR20170052143 A KR 20170052143A
- Authority
- KR
- South Korea
- Prior art keywords
- filtering
- internal memory
- memory
- loop filter
- pixel data
- Prior art date
- Legal status (The legal status 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 status listed.)
- Withdrawn
Links
- 230000015654 memory Effects 0.000 title claims abstract description 84
- 238000001914 filtration Methods 0.000 claims abstract description 66
- 238000000034 method Methods 0.000 claims abstract description 18
- 230000003139 buffering effect Effects 0.000 claims description 3
- 230000002093 peripheral effect Effects 0.000 abstract description 9
- 239000000872 buffer Substances 0.000 description 10
- 238000013139 quantization Methods 0.000 description 10
- 230000006835 compression Effects 0.000 description 9
- 238000007906 compression Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
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/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/117—Filters, e.g. for pre-processing or post-processing
-
- 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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- 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/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- 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/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 동영상 디코더에 적용되는 메모리 기반의 루프 필터에 관한 것이다.
본 발명은 루프 필터링(loop filtering) 연산에 필요한 루프 필터링 파라미터와 픽셀 데이터를 로드(load)하여 내부 메모리에 저장하는 로드 데이터 제어기, 상기 내부 메모리에 저장된 픽셀 데이터에 대하여 가로 경계 필터링(horizontal edge filtering)과 세로 경계 필터링(vertical edge filtering)을 수행하는 단일 코어 필터 및 상기 가로 경계 필터링과 상기 세로 경계 필터링이 수행된 출력 데이터의 출력을 제어하는 출력 데이터 제어기를 포함하여 구성된다.
본 발명에 따르면, 하나의 슈퍼 블록의 데이터를 더블 버퍼링된 내부 메모리에 순차적으로 저장함으로써, 요구되는 내부 메모리의 용량을 줄일 수 있고, 가로 경계 필터링과 세로 경계 필터링 단계를 하나의 코어 필터에서 모두 처리함으로써, 하드웨어 리소스를 줄일 수 있고, 더블 버퍼링된 내부 메모리와 단일 코어 필터를 사용하여 루프 필터의 연산 단계를 세분화하여 파이프라인 구조를 갖도록 함으로써, VP9 디코더의 주변 장치의 시간 손실을 최소화할 수 있다.The present invention relates to a memory-based loop filter applied to a motion picture decoder.
A load data controller for loading loop filtering parameters and pixel data necessary for a loop filtering operation and storing the loop filtering parameters and the pixel data in an internal memory; horizontal edge filtering for pixel data stored in the internal memory; A single core filter for performing vertical edge filtering, and an output data controller for controlling the output of the horizontal border filtering and the output data on which the vertical border filtering is performed.
According to the present invention, since the data of one super block is sequentially stored in the double buffered internal memory, the capacity of the required internal memory can be reduced, and the processes of the horizontal border filtering and the vertical border filtering are all processed in one core filter Thus, it is possible to reduce the hardware resources and minimize the time loss of the peripheral device of the VP9 decoder by using a double buffered internal memory and a single core filter to divide the operation steps of the loop filter into a pipeline structure.
Description
본 발명은 동영상 디코더에 적용되는 메모리 기반 루프 필터에 관한 것이다. 보다 구체적으로, 본 발명은 4K급 VP9 디코더를 위한 메모리 기반 루프 필터의 하드웨어 구조에 관한 것으로서, 하나의 슈퍼 블록의 데이터를 더블 버퍼링된 내부 메모리에 순차적으로 저장하며, 가로 경계 필터링과 세로 경계 필터링 단계를 하나의 코어 필터에서 모두 처리하여 하드웨어 리소스를 줄인 메모리 기반의 루프 필터에 관한 것이다.The present invention relates to a memory based loop filter applied to a motion picture decoder. More particularly, the present invention relates to a hardware structure of a memory-based loop filter for a 4K class VP9 decoder, in which data of one super block is sequentially stored in a double buffered internal memory, and horizontal and vertical boundary filtering Based loop filter that processes all of the data in one core filter to reduce hardware resources.
VPx는 미국의 On2 Technologies사에 의해 개발된 동영상 압축 코덱 제품들로서, 이전세대에 공개된 VP8 코덱이 H.264와 경쟁하는 코덱이었다면 VP9는 H.265와 경쟁할 목적으로 제작된 저용량 고화질 지향의 동영상 압축 코덱이라고 할 수 있다.VPx is a video compression codec product developed by On2 Technologies of USA. If the VP8 codec released in previous generation was a codec that compete with H.264, VP9 is a low-capacity, high-quality video Compression codec.
스마트폰이나 태블릿이 풀 HD 이상의 해상도를 지원하고, PC용 모니터도 4K급이 나오는 등 풀HD 이상의 고해상도 콘텐츠에 대한 수요가 점점 높아지고 있다. 지만 해상도가 높아짐에 따라, 파일 크기가 커져 데이터 사용량에 무리가 가는 것도 사실이다. VP9를 이용하면 대역폭은 기존 동영상 압축 코덱의 절반 이하로 줄어들며 더 부드럽게 고해상도 동영상을 재생할 수 있게 된다.There is a growing demand for high-definition content such as full-HD content such as smartphones and tablets that support resolutions greater than full HD and PC monitors for 4K. However, it is also true that as the resolution increases, the file size becomes larger and the data usage becomes more difficult. With VP9, bandwidth is reduced to less than half that of existing video compression codecs, enabling smooth playback of high-definition video.
만일 영화를 촬영 카메라가 사용한 포맷 그대로 스트리밍 재생한다면 4K 화질의 경우, 1만 8,000Mbps, 즉, 18Gbps 대역폭을 쓴다. 이런 이유로 동영상 압축 코덱을 써서 대역폭 사용을 가급적 줄여 고화질 동영상을 스트리밍 재생할 수 있게 하려는 것이다. VP9는 VP8을 잇는 코덱으로 기본 원리는 동일하지만, VP9는 더 높은 품질을 유지하면서도, 비트레이트(bitrate)는 VP8의 절반까지 떨어뜨릴 수 있다.If the movie is streaming in the format used by the camera, use 18,000 Mbps, or 18 Gbps bandwidth for 4K picture quality. For this reason, video compression codec is used to reduce bandwidth usage as much as possible so that high-quality video can be streamed and played back. VP9 is a codec that connects VP8, but the basic principle is the same, but the bitrate can drop to half of the VP8, while maintaining the higher quality of VP9.
VP9에 따르면, 블록 단위의 영상 처리 과정에서, 블록 경계에 존재하는 화소들의 불연속성이 증가하기 때문에, 블록과 블록 간의 경계 부분의 불연속성을 제거하기 위한 루프 필터링(loop filtering) 연산이 수행된다.According to VP9, since the discontinuity of the pixels existing at the block boundary increases in the image processing of the block unit, a loop filtering operation is performed to remove the discontinuity at the boundary between the block and the block.
VP9 영상에 있어서, 슈퍼 블록은 예측 블록 단위로 루프 필터링 연산되며, 하나의 슈퍼 블록은 가로 방향 64 픽셀, 세로 방향 64 픽셀, 총 4,096개 픽셀로 이루어지고, 예측 블록은 가로 방향 8 픽셀, 세로 방향 8 픽셀, 총 64개 픽셀로 이루어진다. 이 슈퍼 블록을 메모리에 모두 저장하여 루프 필터링 연산을 수행하면 내부 메모리가 커지는 문제가 발생한다.In the VP9 video, the super block is loop-filtered in units of prediction blocks. One super block consists of 64 pixels in the horizontal direction and 64 pixels in the vertical direction, totaling 4,096 pixels. The prediction block is 8 pixels in the horizontal direction, 8 pixels, and a total of 64 pixels. If the super-block is stored in the memory and the loop filtering operation is performed, the internal memory becomes large.
또한, 하나의 슈퍼 블록 전체를 내부 메모리에 저장하기 때문에, 가로 경계 필터링과 세로 경계 필터링이 모두 수행될 때까지 VP9 디코더의 주변 장치가 대기하게 되어 시간적 손실이 발생한다는 문제점이 있다.In addition, since the entire super block is stored in the internal memory, the peripheral device of the VP9 decoder waits until both the horizontal boundary filtering and the vertical boundary filtering are performed, thereby causing a time loss.
또한, 가로 경계 필터링과 세로 경계 필터링을 처리하는 코어 필터를 각각 사용하는 구조를 취하기 때문에, 하드웨어 리소스를 많이 사용한다는 문제점이 있다.In addition, since a structure using a core filter for processing horizontal border filtering and vertical border filtering is used, there is a problem that a lot of hardware resources are used.
본 발명은 하나의 슈퍼 블록의 데이터를 더블 버퍼링된 내부 메모리에 순차적으로 저장함으로써, 요구되는 내부 메모리의 용량을 줄일 수 있는 메모리 기반의 루프 필터를 제공하는 것을 기술적 과제로 한다.The present invention provides a memory-based loop filter capable of reducing a required internal memory capacity by sequentially storing data of one super block in a double buffered internal memory.
또한, 본 발명은 가로 경계 필터링과 세로 경계 필터링 단계를 하나의 코어 필터에서 모두 처리함으로써, 하드웨어 리소스를 줄일 수 있는 메모리 기반의 루프 필터를 제공하는 것을 기술적 과제로 한다.It is another object of the present invention to provide a memory-based loop filter capable of reducing hardware resources by processing both horizontal and vertical boundary filtering in one core filter.
또한, 본 발명은 더블 버퍼링된 내부 메모리와 단일 코어 필터를 사용하여 루프 필터의 연산 단계를 세분화하여 파이프라인 구조를 갖도록 함으로써, VP9 디코더의 주변 장치의 시간 손실을 최소화할 수 있는 메모리 기반의 루프 필터를 제공하는 것을 기술적 과제로 한다.The present invention also provides a memory-based loop filter capable of minimizing the time loss of a peripheral device of the VP9 decoder by using a double buffered internal memory and a single core filter to divide the operation steps of the loop filter into a pipeline structure And to provide a method of manufacturing the same.
본 발명에 따른 동영상 디코더에 적용되는 메모리 기반의 루프 필터는 루프 필터링(loop filtering) 연산에 필요한 루프 필터링 파라미터와 픽셀 데이터를 로드(load)하여 내부 메모리에 저장하는 로드 데이터 제어기, 상기 내부 메모리에 저장된 픽셀 데이터에 대하여 가로 경계 필터링(horizontal edge filtering)과 세로 경계 필터링(vertical edge filtering)을 수행하는 단일 코어 필터 및 상기 가로 경계 필터링과 상기 세로 경계 필터링이 수행된 출력 데이터의 출력을 제어하는 출력 데이터 제어기를 포함하여 구성된다.The memory-based loop filter applied to the moving picture decoder according to the present invention includes a load data controller for loading loop filtering parameters and pixel data necessary for loop filtering operations and storing the loop filtering parameters and pixel data in an internal memory, A single core filter for performing horizontal edge filtering and vertical edge filtering on pixel data and an output data controller for controlling the output of the output data on which the horizontal border filtering and the vertical border filtering are performed .
본 발명에 따른 동영상 디코더에 적용되는 메모리 기반의 루프 필터에 있어서, 상기 로드 데이터 제어기는 상기 픽셀 데이터를 상기 내부 메모리를 구성하는 제1 내부 메모리와 제2 내부 메모리에 가로 방향 4개, 세로 방향 1개의 예측 블록 단위로 더블 버퍼링하여 저장하는 것을 특징으로 한다.In the memory-based loop filter applied to the moving picture decoder according to the present invention, the load data controller divides the pixel data into four horizontal and four vertical directions in the first and second internal memories constituting the internal memory, Buffered in units of prediction blocks and stored.
본 발명에 따른 동영상 디코더에 적용되는 메모리 기반의 루프 필터에 있어서, 상기 픽셀 데이터가 포함된 슈퍼 블록은 64*64 픽셀 크기를 갖고, 상기 예측 블록은 8*8 픽셀 크기를 갖고, 상기 슈퍼 블록은 상기 예측 블록 단위로 처리되는 것을 특징으로 한다.In the memory-based loop filter applied to the moving picture decoder according to the present invention, the super block including the pixel data has a size of 64 * 64 pixels, the prediction block has a size of 8 * 8 pixels, And processing is performed in units of the prediction blocks.
본 발명에 따른 동영상 디코더에 적용되는 메모리 기반의 루프 필터에 있어서, 상기 동영상 디코더는 4K급 VP9 디코더인 것을 특징으로 한다.In the memory-based loop filter applied to the moving picture decoder according to the present invention, the moving picture decoder is a 4K class VP9 decoder.
본 발명에 따르면, 하나의 슈퍼 블록의 데이터를 더블 버퍼링된 내부 메모리에 순차적으로 저장함으로써, 요구되는 내부 메모리의 용량을 줄일 수 있는 메모리 기반의 루프 필터가 제공되는 효과가 있다.According to the present invention, a memory-based loop filter capable of reducing the required internal memory capacity by sequentially storing data of one super block in a double buffered internal memory is provided.
또한, 가로 경계 필터링과 세로 경계 필터링 단계를 하나의 코어 필터에서 모두 처리함으로써, 하드웨어 리소스를 줄일 수 있는 메모리 기반의 루프 필터가 제공되는 효과가 있다.In addition, a memory-based loop filter capable of reducing hardware resources is provided by processing both the horizontal boundary filtering and the vertical boundary filtering in one core filter.
또한, 더블 버퍼링된 내부 메모리와 단일 코어 필터를 사용하여 루프 필터의 연산 단계를 세분화하여 파이프라인 구조를 갖도록 함으로써, VP9 디코더의 주변 장치의 시간 손실을 최소화할 수 있는 메모리 기반의 루프 필터가 제공되는 효과가 있다.In addition, a memory-based loop filter is provided that can minimize the time loss of the peripheral device of the VP9 decoder by using a double buffered internal memory and a single core filter to divide the operation steps of the loop filter into a pipeline structure It is effective.
도 1은 본 발명의 일 실시예에 따른 메모리 기반의 루프 필터를 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 메모리 기반의 루프 필터의 동작을 설명하기 위한 도면이다.1 is a block diagram of a memory-based loop filter according to an embodiment of the present invention.
2 is a diagram for explaining the operation of a memory-based loop filter according to an embodiment of the present invention.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.It is to be understood that the specific structural or functional description of embodiments of the present invention disclosed herein is for illustrative purposes only and is not intended to limit the scope of the inventive concept But may be embodied in many different forms and is not limited to the embodiments set forth herein.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.The embodiments according to the concept of the present invention can make various changes and can take various forms, so that the embodiments are illustrated in the drawings and described in detail herein. It is not intended to be exhaustive or to limit the invention to the particular forms disclosed, but on the contrary, is intended to cover all modifications, equivalents, or alternatives falling within the spirit and scope of the invention.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1 구성 요소는 제2 구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.The terms first, second, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms may be named for the purpose of distinguishing one element from another, for example, without departing from the scope of the right according to the concept of the present invention, the first element may be referred to as a second element, The component may also be referred to as a first component.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between. Other expressions that describe the relationship between components, such as "between" and "between" or "neighboring to" and "directly adjacent to" should be interpreted as well.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises" or "having" and the like are used to specify that there are features, numbers, steps, operations, elements, parts or combinations thereof described herein, But do not preclude the presence or addition of one or more other features, integers, steps, operations, components, parts, or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the meaning of the context in the relevant art and, unless explicitly defined herein, are to be interpreted as ideal or overly formal Do not.
비디오 압축은 보통 비디오 신호 내의 특정 중복 정보를 영구적으로 제거함으로써 비디오 신호를 나타내는 데이터의 양을 감소시키는 것이다. 이러한 압축 기술에 대해서는, MPEG, H.264, VPx 등을 포함하는 다양한 표준이 존재한다.Video compression is usually to reduce the amount of data representing a video signal by permanently eliminating certain redundant information in the video signal. For such compression techniques, there are various standards including MPEG, H.264, VPx, and the like.
블록 기반 비디오 압축은 일정 크기를 갖는 픽셀 그룹 단위로 수행된다. 이 픽셀 그룹에 대한 명칭은 다양하다. 예를 들어, H.264 표준은 16*16 픽셀의 픽셀 그룹을 지정하며, 이를 매크로 블록이라 지칭한다. 또한, VPx 표준은 16*16 또는 64*64 픽셀의 픽셀 그룹을 지정하며, 이를 슈퍼 블록이라 지칭한다. 이와 같이, 각각의 비디오 프레임은 픽셀 그룹들로 분할될 수 있으며, 각각의 픽셀 그룹은 복수의 보다 작은 크기를 갖는 블록들로 이루어져 있다. 픽셀 그룹 및 이 픽셀 그룹 내의 블록들은, 예측 데이터 및 오차 신호를 작성하기 위해, 현재 프레임에서 발견되는 데이터 또는 다른 프레임에서 발견되는 데이터와 비교된다.Block-based video compression is performed on a pixel group basis with a certain size. The names of these pixel groups are various. For example, the H.264 standard specifies a 16 * 16 pixel group of pixels, referred to as a macroblock. In addition, the VPx standard specifies a group of pixels of 16 * 16 or 64 * 64 pixels, which is referred to as a super block. As such, each video frame can be divided into pixel groups, each group of pixels consisting of a plurality of smaller sized blocks. The pixel group and the blocks within the pixel group are compared with data found in the current frame or data found in the other frame to produce the predictive data and the error signal.
예를 들어, 각각의 블록에 대한 오차 신호는 DCT(discrete cosine transform)를 사용하여 변환될 수 있고, 각각의 블록에 대해 얻어지는 변환 계수는 양자화될 수 있고, 양자화된 계수는 CABAC(contextadaptive binary arithmetic coding) 등의 인코딩 방식에 따라 인코딩될 수 있다.For example, the error signal for each block may be transformed using a discrete cosine transform (DCT), the transform coefficients obtained for each block may be quantized, and the quantized coefficients may be coded using context adaptive binary arithmetic coding ), Or the like.
변환 계수가 양자화되는 정도를 나타내는 양자화 레벨은 이미지 데이터를 표현하는 데 사용되는 비트의 수는 물론 얻어지는 디코딩된 이미지의 품질에 영향을 준다. 일반적으로, 양자화 레벨이 높은 값으로 설정될 때, 더 많은 계수가 0으로 설정되며, 그 결과 더 높은 압축률을 얻을 수 있지만, 이미지의 품질은 저하된다. 반대로, 양자화 레벨이 낮은 값으로 설정될 때에는, 더 적은 계수가 0으로 설정되며, 그 결과 보다 향상된 이미지 품질이 얻어지지만, 압축률은 떨어진다.The quantization level, which indicates the degree to which the transform coefficients are quantized, affects the number of bits used to represent the image data as well as the quality of the resulting decoded image. In general, when the quantization level is set to a high value, more coefficients are set to 0, resulting in a higher compression ratio, but the quality of the image is degraded. Conversely, when the quantization level is set to a low value, fewer coefficients are set to zero, resulting in better image quality, but the compression rate is poor.
비디오의 시각적 품질은 양자화 레벨이 비디오 시퀀스 내의 프레임들에 걸쳐 어떻게 분산되는지에 의존할 수 있기 때문에, 각각의 프레임에 걸쳐 양자화 레벨을 제어하는 것이 유용하다. 현재의 일부 기술은 각각의 프레임에 걸쳐 균일한 양자화 레벨을 적용한다. 그렇지만, 이들 기법은 낮은 양자화 레벨을 시각적으로 더 중요한 프레임의 일부(예, 사람의 얼굴 등)에 적용하는 것을 고려하고 있지 않다. 이와 유사하게, 이들 균일한 양자화 레벨 기법은 또한 높은 양자화 레벨을 시각적으로 덜 중요한 프레임의 일부(예, 배경 영역 등)에 적용하는 것을 고려하고 있지 않다.Since the visual quality of the video may depend on how the quantization level is distributed over the frames in the video sequence, it is useful to control the quantization level over each frame. Some current techniques apply a uniform quantization level over each frame. However, these techniques do not consider applying low quantization levels to a portion of a visually more important frame (e.g., a human face, etc.). Similarly, these uniform quantization level techniques also do not consider applying a high quantization level to a portion of a visually less important frame (e.g., a background region, etc.).
인코더/디코더에서의 오버헤드 및 계산 복잡도를 증가시키는 일 없이, 각각의 픽셀 그룹에 대한 양자화 레벨을 효율적으로 선택하는 것이 바람직할 것이다.It would be desirable to efficiently select the quantization level for each pixel group without increasing the overhead and computational complexity at the encoder / decoder.
블록 아티팩트(block artifact)는 인접한 블록들 간의 불연속으로서 나타난다. 이러한 불연속은 시각적인 품질을 저하시키며, 후속 프레임에 대한 예측을 위해 재구성되는 프레임에 대한 신뢰성을 저하시킨다.Block artifacts appear as discontinuities between adjacent blocks. This discontinuity degrades the visual quality and degrades the reliability of the reconstructed frame for prediction of subsequent frames.
이러한 불연속을 제거하기 위해, 재구성 경로에서 루프 필터링이 재구성된 프레임에 적용될 수 있으며, 이하 설명될 본 발명은 이 루프 필터링에 대한 것이다. 루프 필터의 선택 및 루프 필터의 강도는 이미지 품질에 상당한 영향을 미칠 수 있다. 너무 강한 필터는 블러링(blurring) 및 디테일의 손실(loss of detail)을 야기할 수 있으며, 너무 약한 필터는 인접 블록들 간의 불연속을 적절히 억제하지 못할수 있다.To remove this discontinuity, loop filtering in the reconstruction path can be applied to the reconstructed frame, and the invention to be described below is for this loop filtering. The choice of loop filter and the strength of the loop filter can have a significant impact on image quality. Too strong a filter may cause blurring and loss of detail, and a too weak filter may not adequately suppress discontinuity between adjacent blocks.
이하 본 발명에 대한 설명은 VP9 비디오 코딩 포맷과 관련하여 기술되어 있지만, 본 발명은 다른 비디오 코딩 알고리즘과 관련하여 구현될 수도 있다.Although the description of the present invention has been described below with reference to the VP9 video coding format, the present invention may be implemented in connection with other video coding algorithms.
이하에서는, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 일 실시예에 따른 메모리 기반의 루프 필터를 나타낸 도면이다.1 is a block diagram of a memory-based loop filter according to an embodiment of the present invention.
도 1을 참조하면, 본 발명의 일 실시예에 따른 메모리 기반의 루프 필터(1)는 로드 데이터 제어기(10), 단일 코어 필터(20), 출력 데이터 제어기(30), 칼럼 데이터 버퍼 메모리, 로우 데이터 버퍼 메모리, 출력 데이터 버퍼 메모리, RDMA 엔진, WDMA 엔진 및 루프 필터 메인 제어기를 포함하여 구성된다. 예를 들어, 본 발명의 일 실시 예에 있어서, 동영상 디코더는 4K급 VP9 디코더일 수 있으며, 이하에서는 이 경우를 예로 들어 설명한다. VP9에 따르면, 블록 단위의 영상 처리 과정에서, 블록 경계에 존재하는 화소들의 불연속성이 증가하며, 루프 필터링(loop filtering) 연산은 블록과 블록 간의 경계 부분의 이러한 불연속성을 제거하기 위한 것이다.1, a memory-based loop filter 1 according to an embodiment of the present invention includes a
로드 데이터 제어기(10)는 루프 필터링(loop filtering) 연산에 필요한 루프 필터링 파라미터와 픽셀 데이터를 로드(load)하여 내부 메모리에 저장하는 기능을 수행한다.The
예를 들어, 픽셀 데이터가 포함된 슈퍼 블록은 64*64 픽셀 크기를 갖고, 예측 블록은 8*8 픽셀 크기를 갖고, 슈퍼 블록은 예측 블록 단위로 처리되도록 구성될 수 있다.For example, a super block including pixel data may have a size of 64 * 64 pixels, a prediction block may have a size of 8 * 8 pixels, and a super block may be configured to be processed in a prediction block unit.
예를 들어, 로드 데이터 제어기(10)는 픽셀 데이터를 내부 메모리를 구성하는 제1 내부 메모리(12)와 제2 내부 메모리(14)에 가로 방향 4개, 세로 방향 1개의 예측 블록 단위로 더블 버퍼링하여 저장하도록 구성될 수 있다. 보다 구체적으로, 슈퍼 블록은 예측 블록 단위로 루프 필터링 연산되며, 하나의 슈퍼 블록은 가로 방향 64 픽셀, 세로 방향 64 픽셀, 총 4,096개 픽셀로 이루어지고, 예측 블록은 가로 방향 8 픽셀, 세로 방향 8 픽셀, 총 64개 픽셀로 이루어진다. 만약, 슈퍼 블록을 메모리에 모두 저장하여 루프 필터링 연산을 수행하면 내부 메모리가 커지는 문제가 발생한다. 그러나 본 발명의 로드 데이터 제어기(10)는 슈퍼 블록을 예측 블록 단위로 처리하기 때문에, 내부 메모리 용량 증가를 줄일 수 있다. 또한, 만약, 하나의 슈퍼 블록 전체를 내부 메모리에 저장한다면, 후술하는 가로 경계 필터링(horizontal edge filtering)과 세로 경계 필터링(vertical edge filtering)이 모두 수행될 때까지 VP9 디코더의 주변 장치가 대기하게 되어 시간적 손실이 발생한다는 문제점이 있다. 그러나, 본 발명의 로드 데이터 제어기(10)는 슈퍼 블록을 예측 블록 단위로 처리하기 때문에, 주변 장치의 대기 시간을 줄여 전체적인 시간 손실을 줄일 수 있다.For example, the
단일 코어 필터(20)는 내부 메모리에 저장된 픽셀 데이터에 대하여 가로 경계 필터링과 세로 경계 필터링을 수행하는 기능을 수행한다. 즉, 본 발명에 따르면, 가로 경계 필터링을 수행하는 코어 필터와 세로 경계 필터링을 수행하는 코어 필터가 각각 구비되는 구조가 아니라, 하나의 단일 코어 필터(20)가 가로 경계 필터링과 세로 경계 필터링을 수행한다. 만약, 가로 경계 필터링과 세로 경계 필터링을 처리하는 코어 필터를 각각 사용하는 구조를 취한다면, 하드웨어 리소스를 많이 차지하게 된다는 문제점이 있다. 반면, 본 발명에 따르면, 가로 경계 필터링과 세로 경계 필터링 단계를 하나의 단일 코어 필터(20)에서 모두 처리하기 때문에, 하드웨어 리소스를 줄일 수 있다.The
출력 데이터 제어기(30)는 가로 경계 필터링과 세로 경계 필터링이 수행된 출력 데이터의 출력을 제어하는 기능을 수행한다.The
칼럼 데이터 버퍼 메모리(40)는 컬럼 데이터를 버퍼링하여 임시 저장하는 기능을 수행하고, 로우 데이터 버퍼 메모리(50)는 로우 데이터를 버퍼링하여 임시 저장하는 기능을 수행하고, 출력 데이터 버퍼 메모리(60)는 출력 데이터를 버퍼링하여 임시 저장하는 기능을 수행한다.The column
RDMA(Read Direct Memory Access) 엔진(70)은 외부 메모리 장치에 저장되어 있는 데이터를 읽어(read) 로드 데이터 제어기(10)에 구비된 내부 메모리로 직접 전송하는 기능을 수행한다.The RDMA (Read Direct Memory Access)
WDMA(Write Direct Memory Access) 엔진(80)은 로드 데이터 제어기(10)에 구비된 내부 메모리에 저장된 데이터를 외부 메모리 장치에 직접 전송하여 기록(write)하기 위한 수단이다.The WDMA (Write Direct Memory Access)
루프 필터 메인 제어기(90)는 로드 데이터 제어기(10), 단일 코어 필터(20), 출력 데이터 제어기(30)를 포함하여 루프 필터(1)를 구성하는 구성요소들의 전반적인 동작을 제어하는 기능을 수행한다.The loop filter
도 2는 본 발명의 일 실시예에 따른 메모리 기반의 루프 필터의 동작을 설명하기 위한 도면이다.2 is a diagram for explaining the operation of a memory-based loop filter according to an embodiment of the present invention.
도 2를 참조하면, 단계 S10에서는, 로드 데이터 제어기(10)가 루프 필터링 연산에 필요한 루프 필터링 파라미터와 픽셀 데이터를 로드(load)하는 과정이 수행되고, 단계 S20에서는, 로드 데이터 제어기(10)가 픽셀 데이터를 자체 구비된 내부 메모리를 구성하는 제1 내부 메모리(12)와 제2 내부 메모리(14)에 가로 방향 4개, 세로 방향 1개의 예측 블록 단위로 더블 버퍼링하여 저장하는 과정이 수행된다.2, in step S10, a process of loading the loop filtering parameters and the pixel data necessary for the loop filtering operation is performed by the
단계 S10 및 단계 S20과 관련하여, 픽셀 데이터가 포함된 슈퍼 블록은 64*64 픽셀 크기를 갖고, 예측 블록은 8*8 픽셀 크기를 갖고, 슈퍼 블록은 예측 블록 단위로 처리된다. 슈퍼 블록은 예측 블록 단위로 루프 필터링 연산되며, 하나의 슈퍼 블록은 가로 방향 64 픽셀, 세로 방향 64 픽셀, 총 4,096개 픽셀로 이루어지고, 예측 블록은 가로 방향 8 픽셀, 세로 방향 8 픽셀, 총 64개 픽셀로 이루어진다. 만약, 슈퍼 블록을 메모리에 모두 저장하여 루프 필터링 연산을 수행하면 내부 메모리가 커지는 문제가 발생한다. 그러나 본 발명의 로드 데이터 제어기(10)는 슈퍼 블록을 예측 블록 단위로 처리하기 때문에, 내부 메모리 용량 증가를 줄일 수 있다. 또한, 만약, 하나의 슈퍼 블록 전체를 내부 메모리에 저장한다면, 후술하는 가로 경계 필터링(horizontal edge filtering)과 세로 경계 필터링(vertical edge filtering)이 모두 수행될 때까지 VP9 디코더의 주변 장치가 대기하게 되어 시간적 손실이 발생한다는 문제점이 있다. 그러나, 본 발명의 로드 데이터 제어기(10)는 슈퍼 블록을 예측 블록 단위로 처리하기 때문에, 주변 장치의 대기 시간을 줄여 전체적인 시간 손실을 줄일 수 있다. With reference to steps S10 and S20, a super block including pixel data has a size of 64 * 64 pixels, a prediction block has a size of 8 * 8 pixels, and a super block is processed in units of prediction blocks. The super block is loop-filtered in units of prediction blocks. One super block has 64 pixels in the horizontal direction and 64 pixels in the vertical direction, and a total of 4,096 pixels. The prediction block has 8 pixels in the horizontal direction and 8 pixels in the vertical direction. Pixels. If the super-block is stored in the memory and the loop filtering operation is performed, the internal memory becomes large. However, since the
단계 S30에서는, 단일 코어 필터(20)가 내부 메모리에 저장된 픽셀 데이터에 대하여 가로 경계 필터링(horizontal edge filtering)과 세로 경계 필터링(vertical edge filtering)을 수행하는 과정이 수행된다. 만약, 가로 경계 필터링과 세로 경계 필터링을 처리하는 코어 필터를 각각 사용하는 구조를 취한다면, 하드웨어 리소스를 많이 차지하게 된다는 문제점이 있다. 반면, 본 발명에 따르면, 가로 경계 필터링과 세로 경계 필터링 단계를 하나의 단일 코어 필터(20)에서 모두 처리하기 때문에, 하드웨어 리소스를 줄일 수 있다.In step S30, the
단계 S40에서는, 출력 데이터 제어기(30)가 가로 경계 필터링과 세로 경계 필터링에 수행된 출력 데이터의 출력을 제어하는 과정이 수행된다.In step S40, a process of controlling the
이상에서 상세히 설명한 바와 같이 본 발명에 따르면, 하나의 슈퍼 블록의 데이터를 더블 버퍼링된 내부 메모리에 순차적으로 저장함으로써, 요구되는 내부 메모리의 용량을 줄일 수 있는 메모리 기반의 루프 필터가 제공되는 효과가 있다.As described above in detail, according to the present invention, a memory-based loop filter is provided which can reduce the required internal memory capacity by sequentially storing data of one super block in a double buffered internal memory .
또한, 가로 경계 필터링과 세로 경계 필터링 단계를 하나의 코어 필터에서 모두 처리함으로써, 하드웨어 리소스를 줄일 수 있는 메모리 기반의 루프 필터가 제공되는 효과가 있다.In addition, a memory-based loop filter capable of reducing hardware resources is provided by processing both the horizontal boundary filtering and the vertical boundary filtering in one core filter.
또한, 더블 버퍼링된 내부 메모리와 단일 코어 필터를 사용하여 루프 필터의 연산 단계를 세분화하여 파이프라인 구조를 갖도록 함으로써, VP9 디코더의 주변 장치의 시간 손실을 최소화할 수 있는 메모리 기반의 루프 필터가 제공되는 효과가 있다.In addition, a memory-based loop filter is provided that can minimize the time loss of the peripheral device of the VP9 decoder by using a double buffered internal memory and a single core filter to divide the operation steps of the loop filter into a pipeline structure It is effective.
1: 루프 필터(loop filter)
10: 로드(load) 데이터 제어기
12: 제1 내부 메모리
14: 제2 내부 메모리
20: 단일 코어(core) 필터
30: 출력 데이터 제어기
40: 칼럼(column) 데이터 버퍼 메모리
50: 로우(row) 데이터 버퍼 메모리
60: 출력 데이터 제어기
70: RDMA(Read Direct Memory Access) 엔진
80: WDMA(Write Direct Memory Access) 엔진
90: 루프 필터 메인 제어기1: loop filter
10: load data controller
12: first internal memory
14: Second internal memory
20: Single core filter
30: Output data controller
40: column data buffer memory
50: row data buffer memory
60: Output data controller
70: Read Direct Memory Access (RDMA) engine
80: Write Direct Memory Access (WDMA) engine
90: Loop filter main controller
Claims (4)
루프 필터링(loop filtering) 연산에 필요한 루프 필터링 파라미터와 픽셀 데이터를 로드(load)하여 내부 메모리에 저장하는 로드 데이터 제어기;
상기 내부 메모리에 저장된 픽셀 데이터에 대하여 가로 경계 필터링(horizontal edge filtering)과 세로 경계 필터링(vertical edge filtering)을 수행하는 단일 코어 필터; 및
상기 가로 경계 필터링과 상기 세로 경계 필터링이 수행된 출력 데이터의 출력을 제어하는 출력 데이터 제어기를 포함하는, 동영상 디코더에 적용되는 메모리 기반의 루프 필터.In a memory-based loop filter applied to a video decoder,
A load data controller for loading loop filtering parameters and pixel data necessary for loop filtering operations and storing the same in an internal memory;
A single core filter for performing horizontal edge filtering and vertical edge filtering on pixel data stored in the internal memory; And
And an output data controller for controlling output of the output data in which the horizontal boundary filtering and the vertical boundary filtering have been performed.
상기 로드 데이터 제어기는 상기 픽셀 데이터를 상기 내부 메모리를 구성하는 제1 내부 메모리와 제2 내부 메모리에 가로 방향 4개, 세로 방향 1개의 예측 블록 단위로 더블 버퍼링하여 저장하는 것을 특징으로 하는, 동영상 디코더에 적용되는 메모리 기반의 루프 필터.The method according to claim 1,
Wherein the load data controller stores the pixel data by double buffering the pixel data in a first internal memory and a second internal memory constituting the internal memory in units of four horizontally and vertically one prediction block units, A memory-based loop filter applied to
상기 픽셀 데이터가 포함된 슈퍼 블록은 64*64 픽셀 크기를 갖고, 상기 예측 블록은 8*8 픽셀 크기를 갖고, 상기 슈퍼 블록은 상기 예측 블록 단위로 처리되는 것을 특징으로 하는, 동영상 디코더에 적용되는 메모리 기반의 루프 필터.3. The method of claim 2,
Wherein the super block including the pixel data has a size of 64 * 64 pixels, the prediction block has a size of 8 * 8 pixels, and the super block is processed in the prediction block unit. Memory based loop filter.
상기 동영상 디코더는 4K급 VP9 디코더인 것을 특징으로 하는, 동영상 디코더에 적용되는 메모리 기반의 루프 필터.
The method according to claim 1,
Wherein the motion picture decoder is a 4K class VP9 decoder.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150154229A KR20170052143A (en) | 2015-11-04 | 2015-11-04 | Loop filter based on memory applied in video decoder |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150154229A KR20170052143A (en) | 2015-11-04 | 2015-11-04 | Loop filter based on memory applied in video decoder |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20170052143A true KR20170052143A (en) | 2017-05-12 |
Family
ID=58740396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150154229A Withdrawn KR20170052143A (en) | 2015-11-04 | 2015-11-04 | Loop filter based on memory applied in video decoder |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20170052143A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111147849A (en) * | 2018-11-01 | 2020-05-12 | 联发科技股份有限公司 | Post-processing apparatus and post-processing method |
-
2015
- 2015-11-04 KR KR1020150154229A patent/KR20170052143A/en not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111147849A (en) * | 2018-11-01 | 2020-05-12 | 联发科技股份有限公司 | Post-processing apparatus and post-processing method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5400888B2 (en) | Decoding system and method using parallel processing | |
JP5907941B2 (en) | Method and apparatus for trimming video images | |
US8395634B2 (en) | Method and apparatus for processing information | |
US20150215631A1 (en) | Parallel Coding with Overlapped Tiles | |
US20180027241A1 (en) | Method and Apparatus for Multi-Level Region-of-Interest Video Coding | |
US12262061B2 (en) | Optimized edge order for de-blocking filter | |
US20080152014A1 (en) | Method and apparatus for encoding and decoding of video streams | |
JP4668914B2 (en) | Image decoding device | |
JP2008529412A (en) | Scratch pad for storing intermediate loop filter data | |
KR20090094345A (en) | Memory reduced h264/mpeg-4 avc codec | |
US9451251B2 (en) | Sub picture parallel transcoding | |
CN101166277B (en) | Method for accessing memory in device for processing moving images | |
KR20090078494A (en) | Deblocking Filtering Method and Deblocking Filter of Image Data | |
US9386310B2 (en) | Image reproducing method, image reproducing device, image reproducing program, imaging system, and reproducing system | |
JP2012085001A5 (en) | ||
US20110110435A1 (en) | Multi-standard video decoding system | |
JP2024081752A (en) | Information processing method, device, equipment, and storage medium | |
KR20170052143A (en) | Loop filter based on memory applied in video decoder | |
KR101331093B1 (en) | Method and Apparatus for Interleaving Reference Pixel within a Single Bank of Video Memory, Video Codec System Including the Same | |
CN106063269A (en) | Moving image coding device, moving image decoding device, moving image coding method, and moving image decoding method | |
US20060245501A1 (en) | Combined filter processing for video compression | |
JP2009130599A (en) | Moving picture decoder | |
JP2014075708A (en) | Moving image encoder and moving image encoding method | |
KR100821922B1 (en) | Local memory management device for media decoding | |
KR100933331B1 (en) | Video decoding device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20151104 |
|
PG1501 | Laying open of application | ||
PC1203 | Withdrawal of no request for examination |