KR101502144B1 - Method and apparatus for transforming coefficient information - Google Patents

Method and apparatus for transforming coefficient information Download PDF

Info

Publication number
KR101502144B1
KR101502144B1 KR1020130099943A KR20130099943A KR101502144B1 KR 101502144 B1 KR101502144 B1 KR 101502144B1 KR 1020130099943 A KR1020130099943 A KR 1020130099943A KR 20130099943 A KR20130099943 A KR 20130099943A KR 101502144 B1 KR101502144 B1 KR 101502144B1
Authority
KR
South Korea
Prior art keywords
block
coefficient
map
valid
scanning method
Prior art date
Application number
KR1020130099943A
Other languages
Korean (ko)
Other versions
KR20150022299A (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 KR1020130099943A priority Critical patent/KR101502144B1/en
Publication of KR20150022299A publication Critical patent/KR20150022299A/en
Application granted granted Critical
Publication of KR101502144B1 publication Critical patent/KR101502144B1/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • H04N19/645Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission by grouping of coefficients into blocks after the transform

Landscapes

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

Abstract

본 발명의 일실시예에 따르면, GPU가 비디오 인코딩 연산을 통해 생성된 계수 정보를 변환하는 방법이 제공된다. 구체적으로, GPU는 상기 계수 정보를 비디오 프레임을 구성하는 적어도 하나의 블록으로 분할한다. 그리고, GPU는 상기 각 블록이 유효 계수를 포함하는 유효 블록인지를 나타내는 유효 블록 맵을 생성한다. 그리고 GPU는 각 유효 블록에 적용되는 스캐닝 방법을 나타내는 블록 스캐닝 방법 맵을 생성한다. 그리고 GPU는 상기 각 유효 블록에 적용되는 스캐닝 방법에 따라, 상기 각 유효 블록 내의 마지막 유효 계수의 위치를 나타내는 EOB(End Of Block) 위치 맵을 생성한다. 그리고 GPU는 상기 각 유효 블록에 적용되는 스캐닝 방법에 따라, 상기 각 유효 블록의 계수를 정렬하여 프레임 계수 정보를 생성한다.According to an embodiment of the present invention, a method is provided for a GPU to transform coefficient information generated by a video encoding operation. Specifically, the GPU divides the coefficient information into at least one block constituting a video frame. Then, the GPU generates a valid block map indicating that each of the blocks is a valid block including an effective coefficient. Then, the GPU generates a block scanning method map indicating a scanning method applied to each valid block. Then, the GPU generates an end of block (EOB) position map indicating the position of the last significant coefficient in each valid block according to the scanning method applied to each effective block. Then, the GPU generates frame count information by arranging coefficients of the valid blocks according to a scanning method applied to each valid block.

Description

계수 정보를 변환하는 방법 및 장치{METHOD AND APPARATUS FOR TRANSFORMING COEFFICIENT INFORMATION}[0001] METHOD AND APPARATUS FOR TRANSFORMING COEFFICIENT INFORMATION [0002]

본 발명은 계수 정보를 변환하는 방법 및 장치에 관한 것으로서, 더욱 구체적으로, 비디오 인코딩 연산을 통해 생성된 계수 정보를 변환하는 방법 및 장치, 그리고 이를 이용하는 비디오 인코딩 시스템에 관한 것이다.
The present invention relates to a method and apparatus for transforming coefficient information, and more particularly, to a method and apparatus for transforming coefficient information generated through a video encoding operation and a video encoding system using the same.

그래픽 처리 장치(GPU: Graphic Processing Unit)를 범용 연산에 응용하는 방법은, 많은 데이터를 병렬적으로 처리함으로써 빠른 연산결과를 얻을 수 있어서, 비디오 압축 등 다양한 분야에서 시도되고 있다. A method of applying a graphic processing unit (GPU) to a general-purpose operation is attempted in various fields such as video compression because a large amount of data can be processed in parallel to obtain a fast operation result.

그러나 GPU의 병렬 연산에 의한 계산 속도 향상의 이점에도 불구하고, GPU와 중앙 처리 장치(CPU: Central Processing Unit) 간의 데이터 전송 지연 시간이 GPU 활용의 걸림돌이 되고 있다.
However, in spite of the advantage of the GPU's parallel computation speed improvement, the delay time of data transfer between the GPU and the central processing unit (CPU) is an obstacle to utilizing the GPU.

본 발명이 해결하고자 하는 과제는, GPU를 범용 연산에 응용하는 시스템(이하 'GPU 범용 응용 시스템')에서 GPU와 CPU 간의 데이터 전송 량을 줄여 GPU와 CPU 간의 데이터 전송 지연 시간을 개선하는 방법을 제공하는 것이다.
A problem to be solved by the present invention is to provide a method for improving the data transmission delay time between the GPU and the CPU by reducing the amount of data transfer between the GPU and the CPU in a system (hereinafter, referred to as a GPU general application system) .

본 발명의 일실시예에 따르면, GPU가 비디오 인코딩 연산을 통해 생성된 계수 정보를 변환하는 방법이 제공된다. 상기 계수 정보 변환 방법은, 상기 계수 정보를 비디오 프레임을 구성하는 적어도 하나의 블록으로 분할하는 단계; 상기 각 블록이 유효 계수를 포함하는 유효 블록인지를 나타내는 유효 블록 맵을 생성하는 단계; 각 유효 블록에 적용되는 스캐닝 방법을 나타내는 블록 스캐닝 방법 맵을 생성하는 단계; 상기 각 유효 블록에 적용되는 스캐닝 방법에 따라, 상기 각 유효 블록 내의 마지막 유효 계수의 위치를 나타내는 EOB(End Of Block) 위치 맵을 생성하는 단계; 및 상기 각 유효 블록에 적용되는 스캐닝 방법에 따라, 상기 각 유효 블록의 계수를 정렬하여 프레임 계수 정보를 생성하는 단계를 포함한다.According to an embodiment of the present invention, a method is provided for a GPU to transform coefficient information generated by a video encoding operation. Wherein the coefficient information conversion method comprises: dividing the coefficient information into at least one block constituting a video frame; Generating a valid block map indicating whether each block is a valid block including an effective coefficient; Generating a block scanning method map indicating a scanning method applied to each valid block; Generating an end of block (EOB) position map indicating a position of a last valid coefficient in each valid block according to a scanning method applied to each effective block; And generating frame coefficient information by arranging coefficients of the effective blocks according to a scanning method applied to each effective block.

상기 계수 정보 변환 방법은, 상기 유효 블록 맵, 상기 블록 스캐닝 방법 맵, 상기 EOB 위치 맵 및 상기 프레임 계수 정보를 CPU로 전달하는 단계를 더 포함할 수 있다.The coefficient information conversion method may further include transmitting the effective block map, the block scanning method map, the EOB position map, and the frame count information to the CPU.

상기 유효 블록 맵을 생성하는 단계는, 상기 각 블록이 유효 블록인 경우에 제1 값을, 그 이외의 경우에 제2 값을 가지는 상기 유효 블록 맵을 생성하는 단계를 포함한다. The generating of the valid block map may include generating the valid block map having a first value when each block is a valid block and a second value when the block is a valid block.

상기 블록 스캐닝 방법 맵을 생성하는 단계는, 상기 각 유효 블록 내의 유효 계수의 위치에 따라 상기 각 유효 블록에 적용될 스캐닝 방법을 결정하는 단계; 및 상기 결정된 스캐닝 방법에 대응하는 비트 값을 가지는 상기 블록 스캐닝 방법 맵을 생성하는 단계를 포함한다.Wherein the generating the block scanning method map comprises: determining a scanning method to be applied to each valid block according to a position of an effective coefficient in each valid block; And generating the block scanning method map having a bit value corresponding to the determined scanning method.

상기 블록 스캐닝 방법을 결정하는 단계는, 상기 각 유효 블록에 대하여 지그재그 스캐닝 방법, 수평 스캐닝 방법 및 수직 스캐닝 방법 중 어느 하나를 결정하는 단계를 포함한다.The step of determining the block scanning method includes the step of determining one of a zigzag scanning method, a horizontal scanning method and a vertical scanning method for each valid block.

상기 블록 스캐닝 방법을 결정하는 단계는, 다수의 스캐닝 방법 중에서 스캐닝 적용 시 상기 각 유효 블록의 EOB의 위치 값이 가장 작게 나오는 스캐닝 방법을 상기 각 유효 블록에 적용될 스캐닝 방법으로 결정하는 단계를 포함한다. The step of determining the block scanning method includes a step of determining, as a scanning method to be applied to each effective block, a scanning method in which a position value of an EOB of each valid block is minimized when scanning is applied among a plurality of scanning methods.

상기 프레임 계수 정보를 생성하는 단계는, 상기 각 유효 블록의 EOB까지의 계수를 포함하는 상기 프레임 계수 정보를 생성하는 단계를 포함한다.The step of generating the frame coefficient information includes generating the frame coefficient information including a coefficient up to the EOB of each valid block.

상기 계수 정보 변환 방법은, 상기 유효 블록 맵을 생성하는 단계 이전에, 상기 비디오 프레임의 블록 중에서 블록이 화질에 미치는 영향도를 나타내는 블록 화질 계수가 임계값 이하인 블록을 비유효 블록으로 변환하는 단계를 더 포함할 수 있다. Wherein the coefficient information conversion method comprises the steps of converting a block having a block image quality coefficient indicating a degree of influence of a block on an image quality in a block of the video frame to a non-valid block before generating the valid block map .

상기 비유효 블록으로 변환하는 단계는, 상기 비디오 프레임의 각 블록에 대하여 블록 화질 계수를 계산하는 단계; 및 상기 비디오 프레임의 블록 중에서 상기 임계값 이하의 블록 화질 계수를 가지는 블록을 비유효 블록으로 변환하는 단계를 포함한다. 여기서, 상기 블록 화질 계수를 계산하는 단계는, 블록 내의 계수 위치에 따른 화질 가중치를 이용해 상기 각 블록의 블록 화질 계수를 계산하는 단계를 포함한다.Wherein the step of converting into the non-valid block comprises: calculating a block quality factor for each block of the video frame; And converting a block having a block image quality coefficient lower than the threshold value among the blocks of the video frame into an invalid block. Here, the step of calculating the block image quality coefficient may include calculating a block image quality coefficient of each block using an image quality weight according to a coefficient position in the block.

상기 계수 위치 별 화질 가중치는 양자화 파라미터 또는 목표 비트율을 고려해 조절된다.The picture quality weight for each coefficient position is adjusted considering the quantization parameter or the target bit rate.

상기 비유효 블록으로 변환하는 단계는, 상기 임계값 이하의 블록 화질 계수를 가지는 블록의 모든 유효 계수 값을 0으로 변환하는 단계를 포함한다.The step of converting into the ineffective block may include converting all the significant coefficient values of the block having block image quality coefficients equal to or less than the threshold value to zero.

또한, 본 발명의 다른 실시예에 따르면, 비디오 인코딩 연산을 통해 생성된 계수 정보를 변환하는 GPU가 제공된다. 상기 GPU는, 상기 계수 정보를 비디오 프레임을 구성하는 적어도 하나의 블록으로 분할하고, 상기 각 블록이 유효 계수를 포함하는 유효 블록인지를 나타내는 유효 블록 맵을 생성하는 제1 맵 생성부; 각 유효 블록에 적용되는 스캐닝 방법을 나타내는 블록 스캐닝 방법 맵을 생성하는 제2 맵 생성부; 상기 각 유효 블록에 적용되는 스캐닝 방법에 따라, 상기 각 유효 블록 내의 마지막 유효 계수의 위치를 나타내는 EOB 위치 맵을 생성하는 제3 맵 생성부; 및 상기 각 유효 블록에 적용되는 스캐닝 방법에 따라, 상기 각 유효 블록의 계수를 정렬하여 프레임 계수 정보를 생성하는 프레임 계수 정보 생성부를 포함한다.Further, according to another embodiment of the present invention, there is provided a GPU for converting coefficient information generated through a video encoding operation. The GPU includes a first map generator for dividing the coefficient information into at least one block constituting a video frame and generating a valid block map indicating whether each block is a valid block including an effective coefficient; A second map generator for generating a block scanning method map indicating a scanning method applied to each valid block; A third map generator for generating an EOB position map indicating a position of a last valid coefficient in each valid block according to a scanning method applied to each effective block; And a frame coefficient information generation unit for generating frame coefficient information by arranging coefficients of the effective blocks according to a scanning method applied to each effective block.

또한, 본 발명의 또 다른 실시예에 따르면, GPU 및 CPU를 이용해 비디오 인코딩을 수행하는 시스템이 제공된다. 상기 비디오 인코딩 시스템은, 비디오 인코딩 연산을 통해 제1 프레임 계수 정보를 생성하고, 상기 제1 프레임 계수 정보를 이용해 상기 CPU로 전달할 제2 프레임 계수 정보를 생성하는 GPU; 및 상기 제2 프레임 계수 정보에 대한 엔트로피 코딩(entropy coding)을 수행하여 압축 비트스트림을 생성하는 CPU를 포함한다. 여기서, 상기 GPU는, 상기 제1 프레임 계수 정보를 비디오 프레임을 구성하는 적어도 하나의 블록으로 분할하고, 상기 각 블록이 유효 계수를 포함하는 유효 블록인지를 나타내는 유효 블록 맵을 생성하는 제1 맵 생성부; 상기 각 유효 블록에 적용되는 스캐닝 방법을 나타내는 블록 스캐닝 방법 맵을 생성하는 제2 맵 생성부; 상기 각 유효 블록에 적용되는 스캐닝 방법에 따라, 상기 각 유효 블록 내의 마지막 유효 계수의 위치를 나타내는 EOB 위치 맵을 생성하는 제3 맵 생성부; 및 상기 각 유효 블록에 적용되는 스캐닝 방법에 따라, 상기 각 유효 블록의 계수를 정렬하여 상기 제2 프레임 계수 정보를 생성하는 프레임 계수 정보 생성부를 포함한다.
Further, according to another embodiment of the present invention, a system for performing video encoding using a GPU and a CPU is provided. The video encoding system comprising: a GPU for generating first frame count information via a video encoding operation and generating second frame count information for delivery to the CPU using the first frame count information; And a CPU for performing entropy coding on the second frame coefficient information to generate a compressed bitstream. Here, the GPU may be configured to divide the first frame count information into at least one block constituting a video frame, and generate a first block map to generate a valid block map indicating whether each block is a valid block including an effective coefficient part; A second map generator for generating a block scanning method map indicating a scanning method applied to each valid block; A third map generator for generating an EOB position map indicating a position of a last valid coefficient in each valid block according to a scanning method applied to each effective block; And a frame coefficient information generator for generating the second frame coefficient information by arranging coefficients of the valid blocks according to a scanning method applied to each valid block.

본 발명의 실시예에 따르면, GPU 범용 연산 응용 시스템에서 GPU 범용 연산의 걸림돌이 되고 있는 GPU와 CPU 간의 데이터 전송 지연 시간을 개선할 수 있다. 이를 통해, GPU 범용 연산을 적용한 효율적인 응용 시스템(예, 비디오 인코딩 시스템)을 설계할 수 있다. According to the embodiment of the present invention, it is possible to improve the data transmission delay time between the GPU and the CPU, which are obstacles to the GPU general-purpose operation in the GPU general-purpose operation application system. This makes it possible to design an efficient application system (eg, video encoding system) to which GPU general-purpose operations are applied.

또한, 본 발명의 실시예에 따르면, 비싼 유효 계수를 제거함으로써 절감된 데이터 전송 량을 더 중요한 다른 계수의 전달에 사용할 수 있어, 전체적인 데이터 전송 량과 화질 면에서 더욱 효과적인 데이터 전송이 가능하다.
In addition, according to the embodiment of the present invention, it is possible to use the reduced data transmission amount by eliminating the expensive effective coefficient for the transmission of the other important coefficients, thereby enabling more effective data transmission in terms of the overall data transmission amount and image quality.

도 1은 GPU 범용 연산 응용 시스템의 구조를 나타낸 도면.
도 2는 GPU 범용 연산을 응용한 비디오 압축 코덱의 인코딩 구조를 나타낸 도면.
도 3은 변환(transform) 및 양자화(quantization) 연산 이후의 계수(coefficient) 정보 일예를 나타낸 도면.
도 4는 본 발명의 일실시예에 따른 유효 블록 맵을 나타낸 도면.
도 5는 블록 스캐닝 종류를 나타낸 도면.
도 6은 본 발명의 일실시예에 따른 블록 스캐닝 방법 맵을 나타낸 도면.
도 7은 본 발명의 일실시예에 따른 EOB(End Of Block) 위치 맵을 나타낸 도면.
도 8은 도 7의 EOB 위치 맵을 비트화한 도면.
도 9는 본 발명의 일실시예에 따른 CPU로 전달될 프레임 계수 정보를 나타낸 도면.
도 10은 본 발명의 실시예에 따른 비싼(expensive) 계수 제거를 설명하기 위한 블록 계수 분포 일예를 나타낸 도면.
도 11은 본 발명의 일실시예에 따른 계수 위치별 화질 가중치를 나타낸 도면.
도 12는 본 발명의 실시예에 따른 비싼 계수 제거 방법을 적용한 경우에 변경된 유효 블록 맵, 블록 스캐닝 방법 맵, EOB 위치 맵, 비트화된 EOB 위치 맵, 및 프레임 계수 정보를 나타낸 도면.
도 13은 본 발명의 실시예에 따른 GPU의 계수 정보 변환 과정을 나타낸 순서도.
도 14는 본 발명의 실시예에 따른 GPU를 나타낸 도면.
1 shows a structure of a GPU general-purpose operation application system;
2 illustrates an encoding structure of a video compression codec applying GPU general purpose operation.
Figure 3 is an illustration of an example of coefficient information after a transform and a quantization operation;
4 illustrates a valid block map according to an embodiment of the present invention.
5 shows block scanning types;
6 is a block scanning method map according to an embodiment of the present invention.
7 illustrates an End Of Block (EOB) location map according to an embodiment of the present invention.
FIG. 8 is a diagram showing the EOB position map of FIG. 7 as a bit. FIG.
9 is a diagram illustrating frame count information to be delivered to a CPU according to an embodiment of the present invention.
10 illustrates an example of a block coefficient distribution for explaining expensive coefficient elimination according to an embodiment of the present invention.
11 is a view showing image quality weights according to an exemplary embodiment of the present invention;
FIG. 12 is a diagram illustrating a valid block map, a block scanning method map, an EOB position map, a bit-wise EOB position map, and frame coefficient information changed when an expensive coefficient removal method according to an embodiment of the present invention is applied.
13 is a flowchart illustrating a process of converting coefficient information of a GPU according to an embodiment of the present invention.
14 illustrates a GPU according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily carry out the present invention. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.

도 1은 GPU 범용 연산 응용 시스템의 구조를 나타낸 도면이다.1 is a diagram showing the structure of a GPU general purpose computing application system.

GPU 범용 연산 응용 시스템은 제1 장치(1000)와 제2 장치(2000)를 포함한다. 제1 장치(1000)는 CPU(1100)와 CPU 메모리(1200)를 포함한다. 제2 장치(2000)는 다수의 GPU 코어(2100)와 GPU 메모리(2200)를 포함한다. 제1 장치(1000)와 제2 장치(2000)는 서로 데이터를 송/수신한다. The GPU general purpose computing application system includes a first device 1000 and a second device 2000. The first apparatus 1000 includes a CPU 1100 and a CPU memory 1200. The second device 2000 includes a plurality of GPU cores 2100 and a GPU memory 2200. The first device 1000 and the second device 2000 transmit / receive data to / from each other.

GPU를 범용 연산에 응용하는 방법 및 시스템은 여러 가지일 수 있는데, 이하에서는 설명의 편의를 위해서, GPU를 비디오 압축에 응용하는 방법 및 시스템을 예로 들어 설명한다.
There are various methods and systems for applying the GPU to general-purpose operation. Hereinafter, for convenience of explanation, a method and system for applying the GPU to video compression will be described as an example.

도 2는 GPU 범용 연산을 응용한 비디오 압축 코덱의 인코딩 구조를 나타낸 도면이다.2 is a diagram showing an encoding structure of a video compression codec applying GPU general-purpose operation.

비디오 압축 코덱(예, H.264)의 비디오 인코딩 방식은, 예측(Prediction, 인트라 예측 또는 움직임 예측), 변환(Transform) & 양자화(Quantization), 그리고 엔트로피 코딩(Entropy Coding) 순서로 실행된다. The video encoding scheme of a video compression codec (e.g., H.264) is performed in the order of prediction (Prediction, Intra prediction or motion prediction), Transform & Quantization, and Entropy coding.

GPU에 의해 예측 연산과 변환 & 양자화 연산이 실행된다. 변환 & 양자화 연산을 통해 생성된 계수(Coefficient) 정보가 CPU에 전달되면, 전달된 계수 정보에 대한 엔트로피 코딩이 CPU에 의해 실행되어 압축 비트스트림이 생성된다. 예측 연산과 변환 & 양자화 연산은 비디오 화면을 구성하는 모든 블록 또는 픽셀에 동일하게 반복적으로 수행되므로, GPU 연산을 응용하여 병렬적으로 실행될 수 있다. 이를 통해, 비디오 인코딩의 전체적인 실행속도를 향상시킬 수 있다. Prediction and conversion & quantization are performed by the GPU. When the coefficient information generated through the transformation and quantization operation is transmitted to the CPU, entropy coding for the transmitted coefficient information is executed by the CPU to generate a compressed bitstream. Since the prediction operation and the conversion & quantization operation are repeatedly performed on all the blocks or pixels constituting the video screen in the same manner, they can be executed in parallel by applying the GPU operation. This can improve the overall execution speed of the video encoding.

한편, 변환 & 양자화 연산을 통해 생성되는 전체 비디오 프레임의 계수 정보 데이터 량은 너무 방대하여, CPU로 전달 시 전송 지연 시간이 길어지는 문제가 발생한다. On the other hand, the amount of the coefficient information data of the entire video frame generated through the transformation & quantization operation is too large, and a problem arises that the transmission delay time is long when it is transferred to the CPU.

이러한 전송 지연 시간이 길어지는 문제를 해결하기 위해, 본 발명은 변환 & 양자화 연산을 통해 생성되는 계수 정보 중에서 유효 계수만을 CPU로 전달한다. 구체적으로, 본 발명에서는 GPU에서 CPU로 전달되는 계수 정보의 양을 줄이기 위해서, GPU가 유효 블록 맵 생성, 블록 스캐닝 방법 맵 생성, EOB(End of Block) 위치 맵 생성, 프레임 계수 정보 생성, 및 비싼(expensive) 계수 제거 작업을 수행한다.
In order to solve such a problem that the transmission delay time is increased, the present invention transmits only the effective coefficient among the coefficient information generated through the conversion and quantization operation to the CPU. More specifically, in the present invention, in order to reduce the amount of coefficient information transmitted from the GPU to the CPU, the GPU may generate a valid block map, a block scanning method map, an EOB (End of Block) (expensive) coefficient removal operation.

도 3은 변환(transform) 및 양자화(quantization) 연산 이후의 계수(coefficient) 정보 일예를 나타낸 도면이다. 실제 비디오 화면의 크기는 풀(Full) HD 급(1920x1080) 등의 큰 해상도를 가지지만, 이하에서는 설명의 편의를 위해서 도 3에 도시된 바와 같이, 4개의 4x4 블록(B(0,0), B(0,1), B(1,0), B(1,1))으로 구성된 8x8 프레임(F100)을 예로 들어 설명한다. 도 4 내지 도 9를 참고하여, 프레임(F100)에 대한 유효 블록 맵, 블록 스캐닝 방법 맵, EOB 위치 맵, 프레임 계수 정보의 생성 과정을 설명한다.
Figure 3 is an illustration of an example of coefficient information after transform and quantization operations. The size of the actual video screen has a large resolution such as Full HD (1920x1080), but for the convenience of explanation, four 4x4 blocks (B (0,0), 8x8 frame (F100) composed of B (0,1), B (1,0), B (1,1) A process of generating an effective block map, a block scanning method map, an EOB position map, and frame count information for the frame F100 will be described with reference to FIGS. 4 to 9. FIG.

도 4는 본 발명의 일실시예에 따른 유효 블록 맵을 나타낸 도면이다.4 is a block diagram showing an effective block map according to an embodiment of the present invention.

유효 계수(significant coefficient)를 포함하고 있는 블록을 유효 블록이라 한다. 유효 블록 맵은 전체 프레임(F100)을 4x4 블록 단위로 나누어 각 블록(B(0,0), B(0,1), B(1,0), B(1,1))이 유효 계수를 가지고 있는지 없는지를 나타낸다. 프레임(F100)이 도 3과 같은 계수 분포를 가지는 경우에, 모든 블록(B(0,0), B(0,1), B(1,0), B(1,1))들이 유효 계수를 가지므로, 유효 블록 맵은 도 4와 같이 생성된다. 블록 B(0,0)는 유효 계수를 가지므로, 블록 B(0,0)에 대응하는 유효 블록 비트(SBM1)는 1의 값으로 설정될 수 있다. 마찬가지로, 블록 B(0,1), B(1,0), B(1,1) 각각은 유효 계수를 가지므로, 블록 B(0,1), B(1,0), B(1,1) 각각에 대응하는 유효 블록 비트(SBM2, SBM3, SBM4)는 1의 값으로 설정될 수 있다. 만약, 블록(예, B(0,0))이 유효 계수를 가지지 않는 비유효 블록인 경우에, 유효 블록 비트(SBM1)는 0의 값으로 설정될 수 있다.
A block containing a significant coefficient is called a valid block. The effective block map is obtained by dividing the whole frame (F100) by a unit of 4x4 blocks so that each block (B (0,0), B (0,1), B (1,0), B Indicates whether you have or not. 3, all the blocks B (0,0), B (0,1), B (1,0), B (1,1) The effective block map is generated as shown in FIG. Since the block B (0,0) has a validity coefficient, the valid block bit SBM1 corresponding to the block B (0,0) can be set to a value of one. Similarly, since each of the blocks B (0,1), B (1,0), and B (1,1) has the effective coefficient, the blocks B (0,1) 1) can be set to a value of 1. The effective block bits SBM2, SBM3, If the block (e.g., B (0, 0)) is a non-valid block having no significant coefficient, the valid block bit SBM1 may be set to a value of zero.

도 5는 블록 스캐닝 종류를 나타낸 도면이다.5 is a view showing a kind of block scanning.

GPU는 유효 블록 맵을 생성한 후에, 각 유효 블록(B(0,0), B(0,1), B(1,0), B(1,1))에 적용되는 블록 스캐닝 방법을 나타내는 블록 스캐닝 방법 맵을 생성한다. 동일한 계수 정보를 가지는 블록이라도 적용되는 블록 스캐닝 방법에 따라 CPU로 전송되는 계수의 양에 차이가 있다. 한편, 유효 블록이 아닌 비유효 블록에 대해서는 블록 스캐닝 방법 맵을 생성하지 않는다.The GPU generates a valid block map and then displays the block scanning method applied to each valid block B (0,0), B (0,1), B (1,0), B (1,1) And generates a block scanning method map. Even in a block having the same coefficient information, there is a difference in the amount of coefficients transmitted to the CPU according to a block scanning method applied. On the other hand, the block scanning method map is not generated for non-valid blocks other than valid blocks.

본 발명에서 사용되는 블록 스캐닝 방법은 여러 가지일 수 있다. 블록 스캐닝 방법이 사전에 CPU와 GPU 간에 공유되어 있거나, 실시간으로 블록 스캐닝 방법에 대한 정보가 CPU와 GPU 간에 전달될 수 있다면, 블록 스캐닝 방법에는 제한이 없다. 이하에서는 설명의 편의를 위해서, 도 5에 도시된 지그재그 스캐닝 방법(SC1), 수평 스캐닝 방법(SC2), 수직 스캐닝 방법(SC3)이 사용되는 경우를 예로 들어 설명한다. 한편, 도 5에 도시된 블록 내의 숫자는 블록 내의 스캐닝 순서를 나타낸다.The block scanning method used in the present invention may be various. If the block scanning method is previously shared between the CPU and the GPU, or if information on the block scanning method in real time can be transferred between the CPU and the GPU, there is no restriction on the block scanning method. Hereinafter, the zigzag scanning method SC1, the horizontal scanning method SC2, and the vertical scanning method SC3 shown in FIG. 5 are used for convenience of explanation. On the other hand, the numbers in the blocks shown in Fig. 5 indicate the scanning order in the block.

도 3의 블록 B(0,0)에 지그재그 스캐닝 방법(SC1), 수평 스캐닝 방법(SC2), 수직 스캐닝 방법(SC3)을 각각 적용하면, 표 1과 같은 계수 정보가 생성된다. When the zigzag scanning method SC1, the horizontal scanning method SC2 and the vertical scanning method SC3 are applied to the block B (0,0) in FIG. 3, the coefficient information as shown in Table 1 is generated.

블록 스캐닝 방법에 따른 계수 정보의 일예An example of coefficient information according to the block scanning method 블록 스캐닝 방법Block scanning method 계수 정보Factor information 지그재그 스캐닝 방법(SC1)Zigzag scanning method (SC1) 3, 1, 1, 2, EOB3, 1, 1, 2, EOB 수평 스캐닝 방법(SC2)Horizontal Scanning Method (SC2) 3, 1, 0, 0, 1, 0, 0, 0, 2, EOB3, 1, 0, 0, 1, 0, 0, 0, 2, EOB 수직 스캐닝 방법(SC3)Vertical scanning method (SC3) 3, 1, 2, 0, 1, EOB3, 1, 2, 0, 1, EOB

표 1을 참조하면, 블록 B(0,0)에 지그재그 스캐닝 방법(SC1)을 적용하는 경우에 계수 정보가 가장 적게 생성됨을 확인할 수 있다. Referring to Table 1, it can be confirmed that the coefficient information is least generated when the zigzag scanning method SC1 is applied to the block B (0, 0).

마찬가지로, 블록 B(0,1), 블록 B(1,0), 블록 B(1,1)에도 각각의 스캐닝 방법(SC1, SC2, SC3)을 적용해보면, 블록 B(0,1)에는 수직 스캐닝 방법(SC3), 블록 B(1,0)에는 수평 스캐닝 방법(SC2), 블록 B(1,1)에는 수직 스캐닝 방법(SC3)이 가장 적합함을 알 수 있다. Likewise, if the scanning methods SC1, SC2 and SC3 are applied to the blocks B (0,1), B (1,0) and B (1,1) It can be seen that the horizontal scanning method SC2 is most suitable for the scanning method SC3 and the block B 1 and 0 and the vertical scanning method SC3 is suitable for the block B 1 and 1.

한편, 각 블록 스캐닝 방법(SC1, SC2, SC3)을 표 2와 같이 비트화할 수 있다.On the other hand, each of the block scanning methods SC1, SC2, and SC3 can be bit-wise shown in Table 2.

블록 스캐닝 방법의 비트 표현 Bit representation of block scanning method 블록 스캐닝 방법Block scanning method 비트 표현Bit representation 지그재그 스캐닝 방법(SC1)Zigzag scanning method (SC1) 1One 수평 스캐닝 방법(SC2)Horizontal Scanning Method (SC2) 0000 수직 스캐닝 방법(SC3)Vertical scanning method (SC3) 0101

표 2의 블록 스캐닝 방법의 비트 표현을 이용해 도 3의 계수 정보에 대응하는 블록 스캐닝 방법 맵을 생성하면, 생성된 블록 스캐닝 방법 맵은 도 6과 같다. 도 6은 본 발명의 일실시예에 따른 블록 스캐닝 방법 맵을 나타낸 도면이다. 블록 B(0,0)에 대응하는 블록 스캐닝 방법 비트(SM1)는, 지그재그 스캐닝 방법(SC1)에 대응하는 비트 값(1)을 가진다. 블록 B(0,1)에 대응하는 블록 스캐닝 방법 비트(SM2)는, 수직 스캐닝 방법(SC3)에 대응하는 비트 값(01)을 가진다. 블록 B(1,0)에 대응하는 블록 스캐닝 방법 비트(SM3)는, 수평 스캐닝 방법(SC2)에 대응하는 비트 값(00)을 가진다. 블록 B(1,1)에 대응하는 블록 스캐닝 방법 비트(SM3)는, 수직 스캐닝 방법(SC3)에 대응하는 비트 값(01)을 가진다.
When the block scanning method map corresponding to the coefficient information of FIG. 3 is generated using the bit representation of the block scanning method of Table 2, the generated block scanning method map is as shown in FIG. FIG. 6 is a block scanning method map according to an embodiment of the present invention. Referring to FIG. The block scanning method bit SM1 corresponding to the block B (0, 0) has a bit value 1 corresponding to the zigzag scanning method SC1. The block scanning method bit SM2 corresponding to the block B (0, 1) has the bit value 01 corresponding to the vertical scanning method SC3. The block scanning method bit SM3 corresponding to the block B (1,0) has the bit value 00 corresponding to the horizontal scanning method SC2. The block scanning method bit SM3 corresponding to the block B (1,1) has the bit value 01 corresponding to the vertical scanning method SC3.

도 7은 본 발명의 일실시예에 따른 EOB(End Of Block) 위치 맵을 나타낸 도면이다.7 is a diagram illustrating an EOB (End Of Block) location map according to an embodiment of the present invention.

GPU는 유효 블록 맵과 블록 스캐닝 방법 맵을 생성한 후, 스캐닝 시 각 유효 블록들(B(0,0), B(0,1), B(1,0), B(1,1))의 마지막 계수 위치를 나타내는 EOB 위치 맵을 생성한다. (0,0), B (0,1), B (1,0), and B (1,1) at the time of scanning after generating the effective block map and the block scanning method map, And generates an EOB position map indicating the last coefficient position in the EOB position map.

도 4의 유효 블록 맵과 도 6의 블록 스캐닝 방법 맵을 참조하여 도 3의 블록B(0,0), B(0,1), B(1,0), B(1,1)의 EOB 위치를 나타내는 EOB 위치 맵을 생성하면, 생성되는 EOB 위치 맵은 도 7과 같다. 구체적으로, 지그재그 스캐닝 방법(SC1)이 적용되는 블록 B(0,0)의 EOB 위치는 3이고, 수직 스캐닝 방법(SC3)이 적용되는 블록 B(0,1)의 EOB 위치는 2이고, 수평 스캐닝 방법(SC2)이 적용되는 블록 B(1,0)의 EOB 위치는 3이고, 수직 스캐닝 방법(SC3)이 적용되는 블록 B(1,1)의 EOB 위치는 7이다.
(0,0), B (0,1), B (1,0), and B (1,1) EOBs in FIG. 3 with reference to the effective block map of FIG. 4 and the block scanning method map of FIG. When the EOB location map indicating the location is generated, the generated EOB location map is as shown in FIG. Specifically, the EOB position of the block B (0,0) to which the zigzag scanning method SC1 is applied is 3, the EOB position of the block B (0,1) to which the vertical scanning method SC3 is applied is 2, The EOB position of the block B (1,0) to which the scanning method SC2 is applied is 3 and the EOB position of the block B (1,1) to which the vertical scanning method SC3 is applied is 7.

도 8은 도 7의 EOB 위치 맵을 비트화한 도면이다.FIG. 8 is a diagram showing the EOB position map of FIG. 7 in bit form.

4x4 블록은 16개의 계수를 가지므로 EOB 위치는 0~15 사이의 값을 가진다. 그러므로 한 블록의 EOB 위치는 4비트(0000 ~ 1111)로 표현이 가능하다. 도 7의 EOB 위치 맵은 도 8과 같이 비트화할 수 있다. 구체적으로, 블록 B(0,0)의 EOB 위치 비트(BE1)는 0011 비트 값을 가지고, 블록 B(0,1)의 EOB 위치 비트(BE2)는 0010 비트 값을 가지고, 블록 B(1,0)의 EOB 위치 비트(BE3)는 0011 비트 값을 가지고, 블록 B(1,1)의 EOB 위치 비트(BE4)는 0111 비트 값을 가진다.
Since the 4x4 block has 16 coefficients, the EOB position has a value between 0 and 15. Therefore, the EOB position of one block can be represented by 4 bits (0000 ~ 1111). The EOB position map in Fig. 7 can be bit-formed as shown in Fig. Specifically, the EOB position bit BE1 of the block B (0,0) has an 0011 bit value, the EOB position bit BE2 of the block B (0,1) has a 0010 bit value, 0 has an 0011 bit value and the EOB position bit BE4 of the block B (1,1) has a 0111 bit value.

도 9는 본 발명의 일실시예에 따른 CPU로 전달될 프레임 계수 정보를 나타낸 도면이다.9 is a diagram illustrating frame count information to be transmitted to a CPU according to an exemplary embodiment of the present invention.

GPU는 유효 블록 맵, 블록 스캐닝 방법 맵, EOB 위치 맵을 생성 한 후에, CPU로 전달할 프레임 계수 정보를 생성한다. 프레임 계수 정보 생성 과정은, 각 유효 블록(B(0,0), B(0,1), B(1,0), B(1,1))에 포함된 계수를 각 유효 블록에 적용되는 블록 스캐닝 방법에 따라 정렬하는 과정이다. 도 3 내지 도 7을 참조하면, 도 3의 계수 정보는 도 9와 같이 정렬될 수 있다. 구체적으로, 블록 B(0,0)에 대응하는 계수 정보(FC1)는 지그재그 스캐닝 순서에 따라 3, 1, 1, 2이고, 블록 B(0,1)에 대응하는 계수 정보(FC2)는 수직 스캐닝 순서에 따라 2, 1, 1이고, 블록 B(1,0)에 대응하는 계수 정보(FC3)는 수평 스캐닝 순서에 따라 3, 2, 0, 1이고, 블록 B(1,1)에 대응하는 계수 정보(FC4)는 수직 스캐닝 순서에 따라 0, 0, 0, 0, 0, 0, 0, 1이다.
After generating the effective block map, the block scanning method map, and the EOB position map, the GPU generates frame count information to be transmitted to the CPU. The process of generating the frame coefficient information is a process in which coefficients included in each effective block B (0,0), B (0,1), B (1,0), B (1,1) This is the process of sorting according to the block scanning method. Referring to FIGS. 3 to 7, the coefficient information of FIG. 3 may be arranged as shown in FIG. Specifically, the coefficient information FC1 corresponding to the block B (0, 0) is 3, 1, 1, 2 according to the zigzag scanning order, and the coefficient information FC2 corresponding to the block B The coefficient information FC3 corresponding to the block B (1,0) is 3, 2, 0, 1 according to the horizontal scanning order, and corresponds to the block B (1,1) 0, 0, 0, 0, 0, 1 according to the vertical scanning order.

한편, 본 발명을 적용한 경우와 그렇지 않은 경우에 GPU에서 CPU로 전송되는 계수 정보 데이터 량을 비교하면 다음과 같다. Meanwhile, the amount of coefficient information data transmitted from the GPU to the CPU when the present invention is applied or not is compared as follows.

도 3의 계수 정보를 원 데이터(original data) 그대로 CPU로 전송하는 경우에, 각 계수의 타입이 short integer형이라 가정하면, 2 bytes(short integer형 데이터 메모리 크기) * 16 * 4 = 128bytes(= 1024bits) 데이터가 GPU에서 CPU로 전송된다.Assuming that the coefficient information of FIG. 3 is transferred to the CPU as original data, assuming that each coefficient type is a short integer, 2 bytes (short integer type data memory size) * 16 * 4 = 128 bytes (= 1024 bits) Data is transferred from the GPU to the CPU.

본 발명을 적용한 경우에는, 유효 블록 맵(4bits) + 블록 스캐닝 방법 맵(7bits) + EOB 위치 맵(16bits) + 프레임 계수 정보(2bytes * 19개 계수 = 38bytes) = 331bits 데이터가 GPU에서 CPU로 전송된다. 즉, 본 발명에 따르면, 도 3의 계수 정보를 원 데이터 그대로 CPU로 전송하는 경우에 비해 693bits를 절감할 수 있다.When the present invention is applied, the effective block map (4 bits) + the block scanning method map (7 bits) + the EOB position map (16 bits) + the frame coefficient information (2 bytes * 19 coefficients = 38 bytes) = 331 bits Data is transmitted from the GPU to the CPU do. In other words, according to the present invention, 693 bits can be saved as compared with the case where the coefficient information shown in FIG. 3 is transferred to the CPU as raw data.

한편, GPU에서 CPU로 전송되는 데이터 량을 더욱 절감하기 위해서, 비싼(expensive) 계수 제거 과정이 추가로 수행될 수 있다. 비싼 계수 제거 과정은 유효 블록 맵 생성 과정 이전에 수행될 수 있다. 도 10 내지 도 12를 참고하여 비싼 계수 제거 과정을 구체적으로 설명한다.
On the other hand, in order to further reduce the amount of data transferred from the GPU to the CPU, an expensive coefficient removal process may be performed additionally. The expensive coefficient removal process can be performed before the effective block map generation process. An expensive coefficient removal process will be described in detail with reference to FIGS. 10 to 12. FIG.

도 10은 본 발명의 실시예에 따른 비싼 계수 제거를 설명하기 위한 블록 계수 분포 일예를 나타낸 도면이다. 두 개의 4x4 블록(B1, B2)의 계수 분포를 참고하여 비싼 계수 제거 과정을 설명한다. 10 is a view showing an example of a block coefficient distribution for explaining expensive coefficient elimination according to an embodiment of the present invention. An expensive coefficient removal process will be described with reference to the coefficient distribution of the two 4x4 blocks (B1, B2).

상술한 바와 같이, 비디오 압축에서 변환 & 양자화 연산 이후에 각 블록(예, B1, B2)의 계수가 생성된다. 이 때 블록(B1, B2) 내 좌표 (0,0) 위치의 계수(예, B1에서의 3, B2에서의 0)를 DC 계수라 하고, DC 계수에서 가까운 영역을 저주파 영역, DC 계수에서 먼 영역을 고주파 영역이라 한다. As described above, coefficients of each block (e.g., B1, B2) are generated after the conversion and quantization operation in video compression. At this time, the coefficients at the coordinates (0, 0) in the blocks (B1, B2) (for example, 3 at B1 and 0 at B2) are referred to as DC coefficients and the region close to the DC coefficient is referred to as a low frequency region. The region is called a high frequency region.

한편, 비디오 압축에서 화면 화질에 영향을 미치는 정도는 DC 계수가 가장 강하고, 고주파 영역으로 갈수록 상대적으로 약해진다. On the other hand, in the video compression, the DC coefficient has the strongest influence on the picture quality, and the DC coefficient becomes relatively weaker toward the high frequency region.

본 발명의 비싼 계수 제거 방법은, 고주파 영역의 계수 중 화면 화질에 미치는 영향에 비해서 GPU에서 CPU로 전송 시 많은 데이터 량을 요하는 계수를 제거한다.The expensive coefficient elimination method of the present invention removes a coefficient that requires a large amount of data when transmitting from the GPU to the CPU, compared to the influence on the picture quality of the coefficients in the high frequency region.

블록(B1)과 블록(B2)은 고주파 영역에 해당하는 블록 내 좌표(3,2) 위치에 유효 계수 1을 포함한다. 그러나 좌표 (3,2) 위치의 계수(1)를 GPU에서 CPU로 전송하기 위해 요구되는 데이터 량은 블록(B1, B2) 마다 차이가 있다. 상술한 바와 같이, 본 발명은 GPU에서 CPU로 계수 정보를 전달하는 경우에 유효 블록 맵, 블록 스캐닝 방법 맵, EOB 위치 맵, 및 프레임 계수 정보를 CPU로 전달한다. The block B1 and the block B2 include the effective coefficient 1 at the in-block coordinates (3, 2) corresponding to the high frequency region. However, the amount of data required to transfer the coefficient (1) at the coordinate (3, 2) position from the GPU to the CPU is different for each of the blocks (B1, B2). As described above, the present invention transfers the effective block map, the block scanning method map, the EOB position map, and the frame count information to the CPU when the coefficient information is transmitted from the GPU to the CPU.

블록(B1)의 경우에, 좌표 (3,2) 위치의 계수(1) 외에도 많은 유효 계수가 존재하므로, 좌표 (3,2) 위치의 계수(1)를 CPU로 전달하는데 요구되는 데이터 량은, 계수(1) 그 자체 정보 데이터 량(2bytes * 1개 계수 = 16bits)이라고 할 수 있다. In the case of the block B1, since there are many effective coefficients in addition to the coefficient (1) at the coordinate (3, 2) position, the amount of data required to transfer the coefficient (1) , The coefficient (1), and the amount of information data itself (2 bytes * 1 coefficient = 16 bits).

그러나 블록(B2)의 경우에, 유효 계수는 좌표 (3,2) 위치의 계수(1) 하나뿐이다. 결국, 블록(B2)의 경우에, 좌표 (3,2) 위치의 계수(1)를 CPU로 전달하기 위해 유효 블록 맵, 블록 스캐닝 방법 맵, EOB 위치 맵 등의 부가 정보와 함께 블록 스캐닝(수직 스캐닝) 순서가 좌표 (3,2) 위치 보다 앞서는 모든 계수 정보(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)를 CPU로 전달하여야 한다. 그러므로 블록(B1)과 블록(B2)의 좌표 (3,2) 위치의 유효 계수(1)는, 위치 정보와 계수 크기가 동일하지만 CPU로 전달되기 위해 요구되는 데이터 량에 많은 차이가 있다. 구체적으로, 본 발명에 따라 블록(B1)과 블록(B2)의 계수 정보를 CPU로 전달하기 위해서는, 두 블록(B1, B2) 모두 199bits(= 유효 블록 맵(1bit) + 블록 스캐닝 방법 맵(수직 스캐닝(2bits)) + EOB 위치 맵(4bits) + 프레임 계수 정보(24bytes=2bytes * 12개 계수))가 필요하다. 그러나 두 블록(B1, B2)에서 좌표 (3,2) 위치의 계수(1)를 강제로 0으로 변경하면, 블록(B1)의 계수 정보를 CPU로 전송하는 경우에 102bits(= 유효 블록 맵(1bit)+블록 스캐닝 방법 맵(지그재그 스캐닝(1bit))+EOB 위치 맵(4bits)+프레임 계수 정보(12bytes=2bytes*6개 계수))가 필요하지만, 블록(B2)의 경우에는 모든 계수가 0이 되므로 블록(B2)은 더 이상 유효 블록이 아니므로, 블록(B2)의 계수 정보를 CPU로 전송하는 경우에 1bit(=유효 블록 맵(1bit))만이 필요하다. 즉, 두 블록(B1, B2)의 좌표 (3,2) 위치의 유효 계수(1)를 CPU로 전달하는데 요구되는 비트 량은 블록(B1)의 경우에 97bits이지만 블록(B2)의 경우에는 198bits가 된다. 블록(B2)의 좌표 (3,2) 위치의 계수(1)와 같이, 화질에 미치는 영향에 비해 CPU로 전달 시 많은 비트 량이 요구되는 계수를 비싼(expensive) 계수라 한다.
However, in the case of block B2, the effective coefficient is only one coefficient (1) at the position of the coordinates (3, 2). As a result, in the case of the block B2, in order to transfer the coefficient (1) of the position (3,2) to the CPU, block scanning (vertical scanning) is performed together with additional information such as an effective block map, a block scanning method map, (0, 0, 0, 0, 0, 0, 0, 0, 0, 0) whose order is ahead of the coordinate (3,2) position to the CPU. Therefore, the effective coefficient (1) at the coordinates (3, 2) of the block (B1) and the block (B2) has the same size as the position information, but there is a large difference in the amount of data required to be transmitted to the CPU. Specifically, in order to transmit the coefficient information of the block B1 and the block B2 to the CPU, both of the blocks B1 and B2 need to be 199 bits (= valid block map (1 bit) + block scanning method map Scanning (2 bits) + EOB position map (4 bits) + frame count information (24 bytes = 2 bytes * 12 coefficients)). However, by forcibly changing the coefficient (1) of the position (3,2) in the two blocks (B1, B2) to 0, 102bits (= effective block map 1 bit) + block scanning method map (zigzag scanning (1 bit) + EOB position map (4 bits) + frame count information (12 bytes = 2 bytes * 6 coefficients)) is required. In the case of block B2, , Only one bit (= effective block map (1 bit)) is required for transmitting the coefficient information of the block (B2) to the CPU since the block (B2) is no longer an effective block. That is, the amount of bits required to transfer the effective coefficient (1) at the coordinates (3,2) of the two blocks (B1, B2) to the CPU is 97 bits in the case of the block (B1) . As in the coefficient (1) of the position (3,2) of the coordinate (B2) of the block B2, a coefficient requiring a large bit amount in transmission to the CPU is called an expensive coefficient,

본 발명의 비싼 계수 제거 방법은 다음과 같다. The expensive coefficient removal method of the present invention is as follows.

먼저, 블록(예, B2) 내에 비싼 계수가 존재하는지 여부를 판단하기 위해, GPU는 블록 화질 계수를 계산하여 기설정된 임계값과 비교한다. 여기서, 블록 화질 계수는 블록(예, B2)이 화질에 미치는 영향도를 나타낸다. 블록 화질 계수를 계산하는 방법은 도 11을 참고하여 설명한다.
First, to determine whether there is an expensive coefficient in a block (e.g., B2), the GPU calculates the block quality factor and compares it with a predetermined threshold. Here, the block quality factor indicates the degree of influence of the block (e.g., B2) on the image quality. A method of calculating the block picture quality coefficient will be described with reference to FIG.

도 11은 본 발명의 일실시예에 따른 계수 위치별 화질 가중치를 나타낸 도면이다. 도 11에 도시된 계수 위치별 화질 가중치는 일예이며, 비디오 압축 시 양자화 파라미터, 목표 비트율 등과 같은 화질에 영향을 주는 요인을 고려해 조절될 수 있다.  11 is a view illustrating image quality weights according to an exemplary embodiment of the present invention. The picture quality weight for each coefficient position shown in FIG. 11 is an example, and can be adjusted in consideration of factors affecting picture quality such as a quantization parameter, a target bit rate, and the like in video compression.

블록 화질 계수는 수학식 1과 같이, 도 11의 계수 위치별 화질 가중치를 블록(예, B2)의 계수에 곱하여 구할 수 있다. The block picture quality coefficient can be obtained by multiplying the picture quality weight value by the coefficient position in FIG. 11 by the coefficient of the block (for example, B2) as shown in Equation (1).

Figure 112013076528905-pat00001
Figure 112013076528905-pat00001

Q는 블록 화질 계수이고, M은 행 개수-1이고, N은 열 개수-1이고, F(Y, X)는 블록 내의 세로로 Y번째, 가로로 X번째 위치의 계수 값을 나타내고, W(Y, X)는 도 11의 블록 내의 세로로 Y번째, 가로로 X번째 위치의 화질 가중치를 나타낸다. 한편, 유효 계수 F(Y, X)는 양수/음수가 될 수 있으므로 절대값을 취한다. Q is a block image quality coefficient, M is a row number -1, N is a column number -1, F (Y, X) represents a coefficient value at a Y-th vertical position and a X-th horizontal position in a block, and W Y, X) represent image quality weights at the Y-th vertical position and the X-th horizontal position in the block of Fig. On the other hand, the effective coefficient F (Y, X) takes an absolute value because it can be a positive / negative number.

수학식 1에 의해 계산된 블록(예, B2)의 블록 화질 계수(Q)가 기설정된 임계값 보다 작은 경우에는, 해당 블록(예, B2)의 계수는 비싼 유효 계수로 판단된다. 이 경우에, GPU는 해당 블록(예, B2)의 전체 유효 계수 값을 0(zero)으로 변환한다. When the block picture quality coefficient Q of the block (for example, B2) calculated by Equation (1) is smaller than a preset threshold value, the coefficient of the block (for example, B2) is determined to be an expensive coefficient of effectiveness. In this case, the GPU converts the entire effective coefficient value of the corresponding block (e.g., B2) to 0 (zero).

본 발명의 비싼 계수 제거 과정을 통해서, GPU에서 CPU로 전송되는 데이터 량을 효과적으로 줄일 수 있다. 또한 본 발명에 따르면, 비싼 유효 계수를 제거함으로써 절감된 데이터 전송 량을 더 중요한 다른 계수의 전달에 사용할 수 있어, 전체적인 데이터 전송 량과 화질 면에서 더욱 효과적인 데이터 전송이 가능하다.The amount of data transferred from the GPU to the CPU can be effectively reduced through the expensive coefficient removal process of the present invention. Further, according to the present invention, it is possible to use the reduced data transmission amount by transferring the other significant coefficients by eliminating the expensive effective coefficient, thereby enabling more effective data transmission in terms of overall data transmission amount and image quality.

도 3의 계수 정보에 본 발명의 비싼 계수 제거 과정을 적용하면, 블록 B(1,1)이 유효 블록에서 제외될 수 있다. 이 경우에, 화면 전체에서는 크기가 1인 유효 계수 하나가 제거되는 것이지만, 전체 화면의 데이터 전송량은 크게 줄어든다. 비싼 계수 제거 과정에 의해 도 3의 블록 B(1,1)이 유효 블록에서 제외된 경우에, CPU로의 전송 데이터 량은 도 12의 변경된 정보들을 이용해 계산될 수 있다.
When the expensive coefficient removal process of the present invention is applied to the coefficient information of FIG. 3, the block B (1,1) can be excluded from the valid block. In this case, one effective coefficient having a size of 1 is removed from the entire screen, but the amount of data transferred over the entire screen is greatly reduced. When the block B (1,1) of FIG. 3 is excluded from the valid block by an expensive coefficient removal process, the amount of data transferred to the CPU can be calculated using the changed information of FIG.

도 12는 본 발명의 실시예에 따른 비싼 계수 제거 방법을 적용한 경우에 변경된 유효 블록 맵, 블록 스캐닝 방법 맵, EOB 위치 맵, 비트화된 EOB 위치 맵, 및 프레임 계수 정보를 나타낸 도면이다. 구체적으로, 본 발명의 비싼 계수 제거 과정에 의해 블록 B(1,1)가 유효 블록에서 제외되면, 유효 블록 맵은 X1과 같이 변경되고, 블록 스캐닝 방법 맵은 X2와 같이 변경되고, EOB 위치 맵은 X3와 같이 변경되고, 비트화된 EOB 위치 맵은 X4와 같이 변경되고, CPU로 전달될 프레임 계수 정보는 X5와 같이 변경된다.FIG. 12 is a diagram showing a valid block map, a block scanning method map, an EOB position map, a bit-wise EOB position map, and frame coefficient information changed when an expensive coefficient removal method according to an embodiment of the present invention is applied. Specifically, when the block B (1,1) is excluded from the valid block by the expensive coefficient removal process of the present invention, the effective block map is changed as X1, the block scanning method map is changed as X2, The bitmap EOB location map is changed to X4, and the frame count information to be transferred to the CPU is changed as X5.

비싼 계수 제거 과정을 적용하지 않은 경우에, 도 3의 계수 정보를 CPU로 전달하기 위해서는 331bits의 데이터가 필요하였다. 한편, 비싼 계수 제거 과정을 적용한 경우에 도 3의 계수 정보를 CPU로 전달하기 위해서는 197bits의 데이터가 필요하다. 구체적으로, 도 12를 참고하여 비싼 계수 제거 과정을 적용한 경우의 데이터 전송 량을 계산하면, 데이터 전송 량은 197bits(=유효 블록 맵(4bits)+블록 스캐닝 방법 맵(5bits)+EOB 위치 맵(12bits)+프레임 계수 정보(22bytes=2bytes*11개 계수))로 감소한다.
In the case where the expensive coefficient removal process is not applied, 331 bits of data is required to transfer the coefficient information of FIG. 3 to the CPU. On the other hand, when an expensive coefficient removal process is applied, 197 bits of data are required to transmit the coefficient information of FIG. 3 to the CPU. 12, the data transfer amount is calculated as 197 bits (= effective block map (4 bits) + block scanning method map (5 bits) + EOB position map (12 bits ) + Frame count information (22 bytes = 2 bytes * 11 counts)).

도 13은 본 발명의 실시예에 따른 GPU의 계수 정보 변환 과정을 나타낸 순서도이다. 도 3의 계수 정보를 변환하는 경우를 예로 들어 설명한다.13 is a flowchart illustrating a process of converting coefficient information of a GPU according to an embodiment of the present invention. The case of converting the coefficient information of FIG. 3 will be described as an example.

먼저, GPU는 비싼 계수 제거 과정을 수행한다(S100). 각 블록(B(0,0), B(0,1), B(1,0), B(1,1))의 블록 화질 계수를 계산하고, 계산된 블록 화질 계수와 기설정된 임계값을 비교한다. 임계값 이하의 블록 화질 계수를 가지는 블록을 비유효 블록으로 변환한다. 비싼 계수 제거 과정에 의해 블록 B(1,1)이 비유효 블록으로 변환되었다고 가정한다. 한편, 비싼 계수 제거 과정(S100)은 필요에 따라 선택적으로 수행될 수 있다.First, the GPU performs an expensive coefficient removal process (S100). The block image quality coefficient of each block (B (0,0), B (0,1), B (1,0), B (1,1)) is calculated and the calculated block image quality coefficient and predetermined threshold value Compare. A block having a block image quality coefficient equal to or less than the threshold value is converted into an invalid block. It is assumed that block B (1,1) is converted into an invalid block by an expensive coefficient removal process. Meanwhile, the expensive coefficient removal process S100 may be selectively performed as needed.

GPU는 유효 블록 맵 생성 과정을 수행한다(S200). 블록 B(1,1)은 비싼 계수 제거 과정(S100)에 의해 비유효 블록으로 변환되었고, 블록 B(0,0), B(0,1), B(1,0) 각각은 유효 계수를 포함하므로 유효 블록이다. 따라서, 도 12의 X1과 같은 유효 블록 맵이 생성된다. The GPU performs an effective block map generation process (S200). The blocks B (0, 0), B (0, 1), and B (1, 0) are converted into ineffective blocks by an expensive coefficient removal process (S100) It is a valid block. Therefore, a valid block map as shown at X1 in Fig. 12 is generated.

GPU는 블록 스캐닝 방법 맵 생성 과정을 수행한다(S300). 블록 B(0,0)에 지그재그 스캐닝 방법(SC1)을 적용하는 경우에 계수 정보가 가장 적게 생성되고, 블록 B(0,1)에 수직 스캐닝 방법(SC3)을 적용하는 경우에 계수 정보가 가장 적게 생성되고, 블록 B(1,0)에 수평 스캐닝 방법(SC2)을 적용하는 경우에 계수 정보가 가장 적게 생성된다. 따라서, 도 12의 X2와 같은 블록 스캐닝 방법 맵이 생성된다. The GPU performs a block scanning method map generation process (S300). The coefficient information is the least generated when the zigzag scanning method SC1 is applied to the block B (0,0), and when the vertical scanning method SC3 is applied to the block B (0,1) And the least coefficient information is generated when the horizontal scanning method SC2 is applied to the block B (1,0). Accordingly, a block scanning method map as shown at X2 in Fig. 12 is generated.

GPU는 EOB 위치 맵 생성 과정을 수행한다(S400). 지그재그 스캐닝 방법(SC1)이 적용되는 블록 B(0,0)의 EOB 위치는 3이고, 수직 스캐닝 방법(SC3)이 적용되는 블록 B(0,1)의 EOB 위치는 2이고, 수평 스캐닝 방법(SC2)이 적용되는 블록 B(1,0)의 EOB 위치는 3이다. 따라서, 도 12의 X4와 같은 EOB 위치 맵이 생성된다.The GPU performs an EOB location map generation process (S400). The EOB position of the block B (0,0) to which the zigzag scanning method SC1 is applied is 3, the EOB position of the block B (0,1) to which the vertical scanning method SC3 is applied is 2, The EOB position of block B (1,0) to which SC2 is applied is 3. Therefore, an EOB position map as shown at X4 in Fig. 12 is generated.

GPU는 프레임 계수 정보 생성 과정을 수행한다(S500). CPU로 전송될 블록 B(0,0)의 계수 정보는 지그재그 스캐닝 순서에 따라 3, 1, 1, 2이고, CPU로 전송될 블록 B(0,1)의 계수 정보는 수직 스캐닝 순서에 따라 2, 1, 1이고, CPU로 전송될 블록 B(1,0)의 계수 정보는 수평 스캐닝 순서에 따라 3, 2, 0, 1이다. 따라서, 도 12의 X5와 같은 프레임 계수 정보가 생성된다.The GPU performs a process of generating frame count information (S500). The coefficient information of the block B (0, 0) to be transmitted to the CPU is 3, 1, 1, 2 according to the zigzag scanning order, and the coefficient information of the block B (0, , 1, and the coefficient information of the block B (1,0) to be transmitted to the CPU is 3, 2, 0, 1 according to the horizontal scanning order. Therefore, frame coefficient information as shown at X5 in Fig. 12 is generated.

도 13에 도시된 바와 같이, 비싼 계수 제거 과정(S100)을 먼저 수행한 후에, 유효 블록 맵 생성 과정(S200), 블록 스캐닝 방법 맵 생성 과정(S200), EOB 위치 맵 생성 과정(S400), 프레임 계수 정보 생성 과정(S500)을 수행하면, GPU에서 CPU로 전달되는 데이터 전송 량을 크게 줄일 수 있다.
13, an effective block map generation step S200, a block scanning method map generation step S200, an EOB position map generation step S400, If the coefficient information generation process (S500) is performed, the amount of data transferred from the GPU to the CPU can be greatly reduced.

도 14는 본 발명의 실시예에 따른 GPU를 나타낸 도면이다. 14 is a diagram illustrating a GPU according to an embodiment of the present invention.

GPU는 변환 & 양자화 연산을 통해 생성된 계수 정보(예, 도 3의 계수 정보)를 CPU로 전달하는 경우에 데이터 전송 량을 절감하는 과정을 수행한다. 구체적으로, GPU는 예측 연산부(2170), 변환 및 양자화 연산부(2180), 변환부(2110), 유효 블록 맵 생성부(2120), 블록 스캐닝 방법 맵 생성부(2130), EOB 위치 맵 생성부(2140), 프레임 계수 정보 생성부(2150), 및 전달부(2160)를 포함한다.The GPU performs a process of reducing a data transfer amount when transferring coefficient information (e.g., coefficient information of FIG. 3) generated through conversion and quantization to the CPU. Specifically, the GPU includes a prediction operation unit 2170, a transformation and quantization operation unit 2180, a transformation unit 2110, a valid block map generation unit 2120, a block scanning method map generation unit 2130, an EOB position map generation unit 2140, a frame coefficient information generation unit 2150, and a transmission unit 2160.

예측 연산부(2170)는 입력된 비디오 신호에 대한 예측(prediction, 인트라 예측 또는 움직임 예측) 연산을 수행한다. 여기서 비디오 인코딩 연산인 예측 연산은 당업자에게 이미 잘 알려져 있으므로, 이에 대한 자세한 설명은 생략한다.The prediction calculation unit 2170 performs a prediction (intra prediction or motion prediction) operation on the input video signal. The prediction operation, which is a video encoding operation, is well known to those skilled in the art, and a detailed description thereof will be omitted.

변환 및 양자화 연산부(2180)는 예측 연산부(2170)의 출력에 대해 변환(transform) 연산과 양자화(quantization) 연산을 수행하여, 계수 정보(예, 도 3의 계수 정보)를 생성한다. 여기서 비디오 인코딩 연산인 변환 연산 및 양자화 연산은 당업자에게 이미 잘 알려져 있으므로, 이에 대한 자세한 설명은 생략한다. The transform and quantization operation unit 2180 performs a transform operation and a quantization operation on the output of the prediction operation unit 2170 to generate coefficient information (e.g., coefficient information in Fig. 3). The conversion and quantization operations, which are video encoding operations, are well known to those skilled in the art, and a detailed description thereof will be omitted.

변환부(2110)는 유효 블록 맵 생성 이전에, 프레임을 구성하는 블록 중에서 블록 화질 계수가 임계값 이하인 블록을 비유효 블록으로 변환한다. 변환부(2110)는 상술한 비싼 계수 제거 과정(S100)을 수행한다. 한편, 변환부(2110)는 필수 구성 요소는 아니고, 선택적 구성 요소이다.The conversion unit 2110 converts a block having a block quality factor of less than or equal to a threshold value into a non-valid block among the blocks constituting the frame before the generation of the valid block map. The converting unit 2110 performs the above-described expensive coefficient removal process (S100). On the other hand, the conversion unit 2110 is not an essential component, but an optional component.

유효 블록 맵 생성부(2120)는 프레임을 구성하는 각 블록이 유효 블록인지 아닌지를 나타내는 유효 블록 맵을 생성한다. 유효 블록 맵 생성부(2120)는 상술한 유효 블록 맵 생성 과정(S200)을 수행한다.The effective block map generation unit 2120 generates a valid block map indicating whether or not each block constituting the frame is a valid block. The valid block map generation unit 2120 performs the above-described effective block map generation process (S200).

블록 스캐닝 방법 맵 생성부(2130)는 프레임의 각 유효 블록에 적용되는 블록 스캐닝 방법을 나타내는 블록 스캐닝 방법 맵을 생성한다. 블록 스캐닝 방법 맵 생성부(2130)는 상술한 블록 스캐닝 방법 맵 생성 과정(S300)을 수행한다.The block scanning method map generation unit 2130 generates a block scanning method map indicating a block scanning method applied to each valid block of a frame. The block scanning method map generation unit 2130 performs the above-described block scanning method map generation step (S300).

EOB 위치 맵 생성부(2140)는 프레임의 각 유효 블록에 적용되는 블록 스캐닝 방법에 따라 프레임의 각 유효 블록의 마지막 유효 계수의 위치를 나타내는 EOB 위치 맵을 생성한다. EOB 위치 맵 생성부(2140)는 상술한 EOB 위치 맵 생성 과정(S400)을 수행한다.The EOB position map generator 2140 generates an EOB position map indicating the position of the last valid coefficient of each valid block of the frame according to the block scanning method applied to each valid block of the frame. The EOB position map generation unit 2140 performs the above-described EOB position map generation process (S400).

프레임 계수 정보 생성부(2150)는 프레임의 각 유효 블록에 적용되는 블록 스캐닝 방법에 따라 프레임의 각 유효 블록의 계수를 정렬하여, CPU로 전달할 프레임 계수 정보를 생성한다. 프레임 계수 정보 생성부(2150)는 상술한 프레임 계수 정보 생성 과정(S500)을 수행한다.The frame coefficient information generation unit 2150 arranges the coefficients of each valid block of the frame according to the block scanning method applied to each valid block of the frame, and generates frame coefficient information to be transmitted to the CPU. The frame coefficient information generation unit 2150 performs the above-described frame coefficient information generation process (S500).

전달부(2160)는 생성된 유효 블록 맵, 블록 스캐닝 방법 맵, EOB 위치 맵 및 프레임 계수 정보를 CPU로 전달한다.
The delivery unit 2160 delivers the generated effective block map, the block scanning method map, the EOB location map, and the frame count information to the CPU.

이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, It belongs to the scope of right.

Claims (21)

삭제delete 그래픽 처리 장치(GPU: Graphic Processing Unit)가 비디오 인코딩 연산을 통해 생성된 계수 정보를 변환하는 방법으로서,
상기 계수 정보를 비디오 프레임을 구성하는 적어도 하나의 블록으로 분할하는 단계;
상기 각 블록이 유효 계수를 포함하는 유효 블록인지를 나타내는 유효 블록 맵을 생성하는 단계;
각 유효 블록에 적용되는 스캐닝 방법을 나타내는 블록 스캐닝 방법 맵을 생성하는 단계;
상기 각 유효 블록에 적용되는 스캐닝 방법에 따라, 상기 각 유효 블록 내의 마지막 유효 계수의 위치를 나타내는 EOB(End Of Block) 위치 맵을 생성하는 단계;
상기 각 유효 블록에 적용되는 스캐닝 방법에 따라, 상기 각 유효 블록의 계수를 정렬하여 프레임 계수 정보를 생성하는 단계; 및
상기 유효 블록 맵, 상기 블록 스캐닝 방법 맵, 상기 EOB 위치 맵 및 상기 프레임 계수 정보를 중앙 처리 장치(CPU: Central Processing Unit)로 전달하는 단계
를 포함하는 계수 정보 변환 방법.
A method of converting coefficient information generated by a graphics processing unit (GPU) through a video encoding operation,
Dividing the coefficient information into at least one block constituting a video frame;
Generating a valid block map indicating whether each block is a valid block including an effective coefficient;
Generating a block scanning method map indicating a scanning method applied to each valid block;
Generating an end of block (EOB) position map indicating a position of a last valid coefficient in each valid block according to a scanning method applied to each effective block;
Generating frame coefficient information by arranging coefficients of the valid blocks according to a scanning method applied to each effective block; And
Transmitting the effective block map, the block scanning method map, the EOB position map, and the frame count information to a central processing unit (CPU)
Gt; a < / RTI >
제2항에 있어서,
상기 유효 블록 맵을 생성하는 단계는,
상기 각 블록이 유효 블록인 경우에 제1 값을, 그 이외의 경우에 제2 값을 가지는 상기 유효 블록 맵을 생성하는 단계를 포함하는
계수 정보 변환 방법.
3. The method of claim 2,
Wherein the step of generating the valid block map comprises:
Generating the valid block map having a first value if each block is a valid block and a second value otherwise;
Coefficient information conversion method.
제2항에 있어서,
상기 블록 스캐닝 방법 맵을 생성하는 단계는,
상기 각 유효 블록 내의 유효 계수의 위치에 따라 상기 각 유효 블록에 적용될 스캐닝 방법을 결정하는 단계; 및
상기 결정된 스캐닝 방법에 대응하는 비트 값을 가지는 상기 블록 스캐닝 방법 맵을 생성하는 단계를 포함하는
계수 정보 변환 방법.
3. The method of claim 2,
Wherein the generating the block scanning method map comprises:
Determining a scanning method to be applied to each effective block according to a position of an effective coefficient in each valid block; And
And generating the block scanning method map having a bit value corresponding to the determined scanning method
Coefficient information conversion method.
제4항에 있어서,
상기 블록 스캐닝 방법을 결정하는 단계는,
상기 각 유효 블록에 대하여 지그재그 스캐닝 방법, 수평 스캐닝 방법 및 수직 스캐닝 방법 중 어느 하나를 결정하는 단계를 포함하는
계수 정보 변환 방법.
5. The method of claim 4,
Wherein determining the block scanning method comprises:
Determining a zigzag scanning method, a horizontal scanning method, and a vertical scanning method for each of the valid blocks
Coefficient information conversion method.
제4항에 있어서,
상기 블록 스캐닝 방법을 결정하는 단계는,
다수의 스캐닝 방법 중에서 스캐닝 적용 시 상기 각 유효 블록의 EOB의 위치 값이 가장 작게 나오는 스캐닝 방법을 상기 각 유효 블록에 적용될 스캐닝 방법으로 결정하는 단계를 포함하는
계수 정보 변환 방법.
5. The method of claim 4,
Wherein determining the block scanning method comprises:
Determining a scanning method in which a position value of an EOB of each effective block is minimized when scanning is applied among a plurality of scanning methods by a scanning method to be applied to each valid block
Coefficient information conversion method.
제2항에 있어서,
상기 프레임 계수 정보를 생성하는 단계는,
상기 각 유효 블록의 EOB까지의 계수를 포함하는 상기 프레임 계수 정보를 생성하는 단계를 포함하는
계수 정보 변환 방법.
3. The method of claim 2,
Wherein the generating of the frame coefficient information comprises:
And generating the frame count information including coefficients up to the EOB of each valid block
Coefficient information conversion method.
제2항에 있어서,
상기 유효 블록 맵을 생성하는 단계 이전에,
상기 비디오 프레임의 블록 중에서 블록이 화질에 미치는 영향도를 나타내는 블록 화질 계수가 임계값 이하인 블록을 비유효 블록으로 변환하는 단계
를 더 포함하는 계수 정보 변환 방법.
3. The method of claim 2,
Before the step of generating the valid block map,
Converting a block having a block image quality coefficient indicating a degree of influence of a block on an image quality to a non-valid block,
Further comprising the steps of:
제8항에 있어서,
상기 비유효 블록으로 변환하는 단계는,
상기 비디오 프레임의 각 블록에 대하여 블록 화질 계수를 계산하는 단계; 및
상기 비디오 프레임의 블록 중에서 상기 임계값 이하의 블록 화질 계수를 가지는 블록을 비유효 블록으로 변환하는 단계를 포함하고,
상기 블록 화질 계수를 계산하는 단계는,
블록 내의 계수 위치에 따른 화질 가중치를 이용해 상기 각 블록의 블록 화질 계수를 계산하는 단계를 포함하는
계수 정보 변환 방법.
9. The method of claim 8,
Wherein the step of converting into the ineffective block comprises:
Calculating a block quality factor for each block of the video frame; And
Converting a block having a block image quality coefficient lower than the threshold value among the blocks of the video frame into an invalid block,
Wherein the step of calculating the block quality factor comprises:
And calculating block quality coefficients of each block using image quality weights according to the coefficient positions in the block
Coefficient information conversion method.
제9항에 있어서,
상기 계수 위치 별 화질 가중치는 양자화 파라미터 또는 목표 비트율을 고려해 조절되는
계수 정보 변환 방법.
10. The method of claim 9,
The image quality weight for each coefficient position is adjusted in consideration of the quantization parameter or the target bit rate
Coefficient information conversion method.
제9항에 있어서,
상기 블록 화질 계수를 계산하는 단계는,
아래의 수학식을 이용해 상기 각 블록의 블록 화질 계수를 계산하는 단계를 포함하는
계수 정보 변환 방법.
[수학식]
Figure 112013076528905-pat00002

{Q: 블록 화질 계수, M: 행 개수-1, N: 열 개수-1, |F(Y,X)|: 가로로 X번째 세로로 Y번째 위치의 계수 값의 절대값, W(Y,X): 가로로 X번째 세로로 Y번째 위치의 화질 가중치}
10. The method of claim 9,
Wherein the step of calculating the block quality factor comprises:
And calculating block quality coefficients of each block using the following equation
Coefficient information conversion method.
[Mathematical Expression]
Figure 112013076528905-pat00002

(Y, X) |: the absolute value of the coefficient value at the Xth vertical Y-th position in the horizontal direction, W (Y, X): image quality weight at the X-th vertical Y-th position}
제9항에 있어서,
상기 비유효 블록으로 변환하는 단계는,
상기 임계값 이하의 블록 화질 계수를 가지는 블록의 모든 유효 계수 값을 0으로 변환하는 단계를 포함하는
계수 정보 변환 방법.
10. The method of claim 9,
Wherein the step of converting into the ineffective block comprises:
And converting all the significant coefficient values of the block having the block image quality coefficients equal to or smaller than the threshold value to 0
Coefficient information conversion method.
삭제delete 비디오 인코딩 연산을 통해 생성된 계수 정보를 변환하는 GPU로서,
상기 계수 정보를 비디오 프레임을 구성하는 적어도 하나의 블록으로 분할하고, 상기 각 블록이 유효 계수를 포함하는 유효 블록인지를 나타내는 유효 블록 맵을 생성하는 제1 맵 생성부;
각 유효 블록에 적용되는 스캐닝 방법을 나타내는 블록 스캐닝 방법 맵을 생성하는 제2 맵 생성부;
상기 각 유효 블록에 적용되는 스캐닝 방법에 따라, 상기 각 유효 블록 내의 마지막 유효 계수의 위치를 나타내는 EOB 위치 맵을 생성하는 제3 맵 생성부;
상기 각 유효 블록에 적용되는 스캐닝 방법에 따라, 상기 각 유효 블록의 계수를 정렬하여 프레임 계수 정보를 생성하는 프레임 계수 정보 생성부; 및
상기 유효 블록 맵 생성 이전에, 상기 비디오 프레임의 블록 중에서 블록이 화질에 미치는 영향도를 나타내는 블록 화질 계수가 임계값 이하인 블록을 비유효 블록으로 변환하는 변환부
를 포함하는 GPU.
A GPU for transforming coefficient information generated by a video encoding operation,
A first map generator for dividing the coefficient information into at least one block constituting a video frame and generating a valid block map indicating whether each block is a valid block including an effective coefficient;
A second map generator for generating a block scanning method map indicating a scanning method applied to each valid block;
A third map generator for generating an EOB position map indicating a position of a last valid coefficient in each valid block according to a scanning method applied to each effective block;
A frame coefficient information generation unit for generating frame coefficient information by arranging coefficients of the valid blocks according to a scanning method applied to each effective block; And
A conversion unit for converting a block having a block image quality coefficient, which indicates a degree of influence of a block on the image quality, among blocks of the video frame to be less than a threshold value,
GPU.
제14항에 있어서,
상기 변환부는,
블록 내의 계수 위치에 따른 화질 가중치를 이용해 상기 비디오 프레임의 각 블록의 블록 화질 계수를 계산하는
GPU.
15. The method of claim 14,
Wherein,
The block quality factor of each block of the video frame is calculated using the picture quality weight according to the coefficient position in the block
GPU.
제15항에 있어서,
상기 변환부는,
아래의 수학식을 이용해 상기 비디오 프레임의 각 블록의 블록 화질 계수를 계산하는
GPU.
[수학식]
Figure 112013076528905-pat00003

{Q: 블록 화질 계수, M: 행 개수-1, N: 열 개수-1, |F(Y,X)|: 가로로 X번째 세로로 Y번째 위치의 계수 값의 절대값, W(Y,X): 가로로 X번째 세로로 Y번째 위치의 화질 가중치}
16. The method of claim 15,
Wherein,
The block image quality coefficient of each block of the video frame is calculated using the following equation
GPU.
[Mathematical Expression]
Figure 112013076528905-pat00003

(Y, X) |: the absolute value of the coefficient value at the Xth vertical Y-th position in the horizontal direction, W (Y, X): image quality weight at the X-th vertical Y-th position}
제14항에 있어서,
상기 변환부는,
상기 비디오 프레임의 블록 중에서 상기 임계값 이하의 블록 화질 계수를 가지는 블록의 모든 유효 계수 값을 0으로 변환하는
GPU.
15. The method of claim 14,
Wherein,
And converting all the effective coefficient values of the block having the block image quality coefficients of the threshold value or less out of the blocks of the video frame to 0
GPU.
제14항에 있어서,
상기 유효 블록 맵, 상기 블록 스캐닝 방법 맵, 상기 EOB 위치 맵 및 상기 프레임 계수 정보를 CPU로 전달하는 전달부
를 더 포함하는 GPU.
15. The method of claim 14,
A block scanning method map, an EOB position map, and the frame coefficient information to the CPU,
≪ / RTI >
제14항에 있어서,
상기 제2 맵 생성부는,
상기 각 유효 블록 내의 유효 계수의 위치에 따라 상기 각 유효 블록에 적용될 스캐닝 방법을 결정하는
GPU.
15. The method of claim 14,
Wherein the second map generator comprises:
And determines a scanning method to be applied to each valid block according to a position of an effective coefficient in each valid block
GPU.
GPU 및 CPU를 이용해 비디오 인코딩을 수행하는 시스템으로서,
비디오 인코딩 연산을 통해 제1 프레임 계수 정보를 생성하고, 상기 제1 프레임 계수 정보를 이용해 상기 CPU로 전달할 제2 프레임 계수 정보를 생성하는 GPU; 및
상기 제2 프레임 계수 정보에 대한 엔트로피 코딩(entropy coding)을 수행하여 압축 비트스트림을 생성하는 CPU를 포함하고,
상기 GPU는,
상기 제1 프레임 계수 정보를 비디오 프레임을 구성하는 적어도 하나의 블록으로 분할하고, 상기 각 블록이 유효 계수를 포함하는 유효 블록인지를 나타내는 유효 블록 맵을 생성하는 제1 맵 생성부;
상기 각 유효 블록에 적용되는 스캐닝 방법을 나타내는 블록 스캐닝 방법 맵을 생성하는 제2 맵 생성부;
상기 각 유효 블록에 적용되는 스캐닝 방법에 따라, 상기 각 유효 블록 내의 마지막 유효 계수의 위치를 나타내는 EOB 위치 맵을 생성하는 제3 맵 생성부;
상기 각 유효 블록에 적용되는 스캐닝 방법에 따라, 상기 각 유효 블록의 계수를 정렬하여 상기 제2 프레임 계수 정보를 생성하는 프레임 계수 정보 생성부; 및
상기 유효 블록 맵 생성 이전에, 상기 비디오 프레임의 블록 중에서 블록이 화질에 미치는 영향도를 나타내는 블록 화질 계수가 임계값 이하인 블록을 비유효 블록으로 변환하는 변환부를 포함하는
비디오 인코딩 시스템.
A system for performing video encoding using a GPU and a CPU,
A GPU for generating first frame count information through a video encoding operation and generating second frame count information to be delivered to the CPU using the first frame count information; And
And a CPU for performing entropy coding on the second frame coefficient information to generate a compressed bitstream,
The GPU includes:
A first map generator for dividing the first frame count information into at least one block constituting a video frame and generating an effective block map indicating whether each block is a valid block including an effective coefficient;
A second map generator for generating a block scanning method map indicating a scanning method applied to each valid block;
A third map generator for generating an EOB position map indicating a position of a last valid coefficient in each valid block according to a scanning method applied to each effective block;
A frame coefficient information generation unit for generating the second frame coefficient information by arranging coefficients of the valid blocks according to a scanning method applied to each valid block; And
And a conversion unit for converting a block having a block quality factor of less than or equal to a threshold value indicating a degree of influence of a block on the image quality among the blocks of the video frame to an invalid block before generating the valid block map
Video encoding system.
제20항에 있어서,
상기 CPU는,
상기 유효 블록 맵, 상기 블록 스캐닝 방법 맵, 및 상기 EOB 위치 맵을 이용해 상기 제2 프레임 계수 정보에 대한 엔트로피 코딩을 수행하는
비디오 인코딩 시스템.
21. The method of claim 20,
The CPU includes:
Performs entropy coding on the second frame count information using the effective block map, the block scanning method map, and the EOB position map
Video encoding system.
KR1020130099943A 2013-08-22 2013-08-22 Method and apparatus for transforming coefficient information KR101502144B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130099943A KR101502144B1 (en) 2013-08-22 2013-08-22 Method and apparatus for transforming coefficient information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130099943A KR101502144B1 (en) 2013-08-22 2013-08-22 Method and apparatus for transforming coefficient information

Publications (2)

Publication Number Publication Date
KR20150022299A KR20150022299A (en) 2015-03-04
KR101502144B1 true KR101502144B1 (en) 2015-03-12

Family

ID=53020321

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130099943A KR101502144B1 (en) 2013-08-22 2013-08-22 Method and apparatus for transforming coefficient information

Country Status (1)

Country Link
KR (1) KR101502144B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109155857B (en) * 2016-03-11 2023-05-30 数字洞察力有限公司 Video coding method and device
JP2022016726A (en) * 2018-11-16 2022-01-25 ソニーグループ株式会社 Image processing apparatus and method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040007139A (en) * 2002-07-16 2004-01-24 삼성전자주식회사 Coding and decoding method and apparatus using plural scanning patterns
KR20110046016A (en) * 2009-10-28 2011-05-04 삼성전자주식회사 Method and apparatus for encoding residual block, and method and apparatus for decoding residual block
KR20130054435A (en) * 2010-10-14 2013-05-24 제너럴 인스트루먼트 코포레이션 Coding and decoding utilizing context model selection with adaptive scan pattern
KR20130056183A (en) * 2011-11-19 2013-05-29 리서치 인 모션 리미티드 Multi-level significance map scanning

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040007139A (en) * 2002-07-16 2004-01-24 삼성전자주식회사 Coding and decoding method and apparatus using plural scanning patterns
KR20110046016A (en) * 2009-10-28 2011-05-04 삼성전자주식회사 Method and apparatus for encoding residual block, and method and apparatus for decoding residual block
KR20130054435A (en) * 2010-10-14 2013-05-24 제너럴 인스트루먼트 코포레이션 Coding and decoding utilizing context model selection with adaptive scan pattern
KR20130056183A (en) * 2011-11-19 2013-05-29 리서치 인 모션 리미티드 Multi-level significance map scanning

Also Published As

Publication number Publication date
KR20150022299A (en) 2015-03-04

Similar Documents

Publication Publication Date Title
CN103202015B (en) Dynamic image encryption device and dynamic image encryption method
TW201436542A (en) System and method for improving video encoding using content information
CN111556315A (en) Data transmission method and device
CN105245896A (en) HEVC (High Efficiency Video Coding) parallel motion compensation method and device
US20190279330A1 (en) Watermark embedding method and apparatus
KR101502144B1 (en) Method and apparatus for transforming coefficient information
US20150043807A1 (en) Depth image compression and decompression utilizing depth and amplitude data
JPH09327019A (en) Object area encoding device
JPH08275157A (en) Video signal encoding device
JP3689454B2 (en) Image coding apparatus and method
JP4373423B2 (en) Video encoding method, video encoding device, video encoding program, and recording medium therefor
JP5043849B2 (en) Variable shape motion estimation in video sequences
JP2012247897A (en) Image processing apparatus and method of processing image
JP2007013864A (en) Moving image encoding apparatus, moving image encoding method, and moving image encoding program
JP2014112748A (en) Image coding device and image decoding device
KR20100011628A (en) Method of coding and apparatus for coding
CN100499819C (en) Method for reducing bit rate requirements for encoding multimedia data
CN116132759B (en) Audio and video stream synchronous transmission method and device, electronic equipment and storage medium
JP2014060604A (en) Video encoder and video encoding method
JP7121584B2 (en) Image encoding device and its control method and program
US20240040101A1 (en) Method and device for compressing data representative of a volumetric three-dimensional scene with a view to real-time decompression for online viewing
JP6239838B2 (en) Moving picture encoding apparatus, control method thereof, and imaging apparatus
KR101126294B1 (en) Apparatus and method for coding multi-view video
JP5570846B2 (en) Image encoding device
JPH099266A (en) Device and method for image encoding

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180302

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200302

Year of fee payment: 6