KR101152519B1 - Methods of encoding based on parallel processing, apparatuses for using the method, distributed video encoder including the appatuses and distributed video decoder - Google Patents
Methods of encoding based on parallel processing, apparatuses for using the method, distributed video encoder including the appatuses and distributed video decoder Download PDFInfo
- Publication number
- KR101152519B1 KR101152519B1 KR1020110033101A KR20110033101A KR101152519B1 KR 101152519 B1 KR101152519 B1 KR 101152519B1 KR 1020110033101 A KR1020110033101 A KR 1020110033101A KR 20110033101 A KR20110033101 A KR 20110033101A KR 101152519 B1 KR101152519 B1 KR 101152519B1
- Authority
- KR
- South Korea
- Prior art keywords
- channel code
- parallel
- parallel processing
- encoding
- distributed video
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/395—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability involving distributed video coding [DVC], e.g. Wyner-Ziv video coding or Slepian-Wolf video coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/1134—Full parallel processing, i.e. all bit nodes or check nodes are processed in parallel
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6561—Parallelized implementations
-
- 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/124—Quantisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
병렬 처리를 이용한 부호화 방법 및 이러한 방법을 사용하는 채널 부호화 장치, 이러한 장치를 포함하는 분산 비디오 부호화 장치 및 분산 비디오 복호화 장치 가 개시되어 있다. 분산 비디오 코딩에서 병렬 채널 코드 부호화를 수행하는 방법은 와이너-지브 프레임을 기초로 병렬 연산을 수행하기 위한 병렬 처리 데이터를 생성하는 단계와 생성된 병렬 처리 메시지를 기초로 병렬 처리 채널 코드 부호화를 수행하는 단계를 포함할 수 있다. 따라서, 전송 영상의 화질을 향상시키기 위해서 높은 양자화 단계를 사용해 고비트율로 데이터를 전송하는 경우에도 채널 코드 부호화에 소요되는 연산량이 증가하지 않고 상대적으로 적은 복잡도로 빠르게 부호화를 수행할 수 있다. Disclosed are a coding method using parallel processing, a channel coding apparatus using the method, a distributed video coding apparatus including the apparatus, and a distributed video decoding apparatus. In the distributed video coding, parallel channel code encoding is performed by generating parallel processing data for performing parallel operation based on a Weiner-Jib frame and performing parallel processing channel code encoding based on the generated parallel processing message. It may include a step. Therefore, even when data is transmitted at a high bit rate using a high quantization step to improve the quality of the transmission image, the computation amount required for channel code encoding does not increase, and encoding can be performed quickly with relatively low complexity.
Description
본 발명은 분산 비디오 부호화 방법 및 이러한 방법을 사용하는 장치에 관한 것이다. The present invention relates to a distributed video encoding method and an apparatus using the method.
화상회의, 주문형 비디오(VOD) 수신기, 디지털 방송 수신기 및 케이블 텔레비전(CATV)등에서 사용되는 디지털 영상 데이터는 일반적으로 상당량의 데이터 크기를 갖기 때문에 그대로 사용되기 보다는 효율적인 압축방법에 의해 압축된다.Digital video data used in video conferencing, video on demand (VOD) receivers, digital broadcast receivers and cable television (CATV) is generally compressed by an efficient compression method rather than being used as it has a significant amount of data.
이러한 영상의 압축기술로는 MPEG, H.26x 등의 압축 표준이 있는데 이러한 기술들은 비디오 플레이어, VOD, 영상 전화, DMB 등 많은 응용에 사용되고 있으며 최근에는 2.5G/3G 등의 무선 통신의 발달로 무선 모바일 환경(Wireless mobile base)에서의 영상 전송에도 사용되고 있다.Compression standards such as MPEG, H.26x, etc. are used for many applications such as video player, VOD, video telephony, DMB, etc. Recently, due to the development of wireless communication such as 2.5G / 3G It is also used for image transmission in a wireless mobile base.
디지털 영상 데이터의 압축은 시간적인 중복성(temporal redundancy)을 줄이는 방법과 공간적인 중복성(spatial redundancy)을 줄이는 방법, 그리고 발생 데이터의 통계적인 중복성(statistical redundancy)을 줄이는 세 가지 방법을 주로 사용한다. 이중에서 시간적인 중복성을 줄이는 대표적인 방법이 바로 움직임 예측 및 보상 기술이다. Compression of digital image data mainly uses three methods of reducing temporal redundancy, reducing spatial redundancy, and reducing statistical redundancy of generated data. Among them, a representative method of reducing temporal redundancy is motion prediction and compensation technology.
현재의 코딩 기술들은 이러한 시간적 중복성의 제거로 높은 부호화 효율을 달성 하였지만, 동영상 부호화기에서 가장 많은 연산량을 차지하는 부분 또한 시간적 중복성 제거를 위한 움직임 탐색 및 보상 기술이기 때문에 센서 네트워크와 같은 한정적인 자원의 환경에서는 움직임 탐색 및 보상의 계산량을 극도로 줄이거나 심지어는 없애기까지 하여 부호화기의 복잡도를 줄이는 것이 중요한 기술적 문제로 대두되고 있다.Current coding techniques achieve high coding efficiency by eliminating this temporal redundancy, but since the portion that takes the largest amount of computation in the video encoder is also a motion search and compensation technique for eliminating temporal redundancy, in a limited resource environment such as a sensor network. Reducing the complexity of the encoder by dramatically reducing or even eliminating the computation of motion search and compensation has emerged as an important technical problem.
슐레피안-울프(Slepian-Wolf) 이론을 기반으로 한 분산 소스 부호화 (DSC: Distributed Source Coding) 기술은 이러한 부호화기의 복잡도 문제를 해결하기 위한 방법의 하나로 주목 받고 있다. 슐레피안-울프 이론은 상관성이 있는 소스들을 독립적으로 부호화 하여도 복호화를 서로 연계해서 한다면 각 소스를 같이 예측 부호화하여 얻을 수 있는 것과 동일한 정도까지의 부호화 이득을 얻을 수 있음을 수학적으로 증명한 것이다.Distributed Source Coding (DSC) based on the Slepian-Wolf theory has attracted attention as one of the methods for solving the complexity problem of the encoder. The Schlepian-Wolf theory mathematically proves that even if the correlated sources are independently encoded, if the decoding is linked to each other, the coding gain can be obtained to the same extent as that obtained by predictively coding each source together.
분산 비디오 부호화 (DVC: Distributed Video Coding) 기술은 분산 소스 부호화 기술이 무손실 압축에 해당하던 것을 손실 압축의 경우로 확대한 것으로써, 역시 분산 소스 부호화 기술의 이론적 토대인 슐레피안-울프 이론을 손실 부호화 경우로 확대한 와이너-지브(Wyner-Ziv) 이론에 기초한다. 비디오 부호화 기술의 관점에서 보면 이 두 기술 모두, 종래의 픽춰(Picture)간 중복성을 줄이기 위해 행해졌던 움직임 예측 및 보상 같은 처리 절차를 별다른 부호화 이득 손실 없이 복호화기 쪽으로 옮기는 방법이다. 따라서 분산 비디오 부호화 장치의 복잡도가 낮아진다. Distributed Video Coding (DVC) extends the lossless compression from the distributed source coding technique to lossy compression, and loss-codes the Schlepian-Wolf theory, which is also the theoretical basis of distributed source coding. In some cases, it is based on the expanded Wiener-Ziv theory. From the point of view of the video encoding technique, both of these techniques move the processing procedures such as motion prediction and compensation, which have been performed to reduce the redundancy between pictures, to the decoder without any loss of encoding gain. Therefore, the complexity of the distributed video encoding apparatus is lowered.
분산 비디오 부호화 기술로는 A. Aaron, S. Rane, R. Zhang, and B. Girod 등이 "Wyner-Ziv coding for video: Applications to compression and error resilience"(A. Aaron, S. Rane, R. Zhang, and B. Girod, Proc. IEEE Data Compression Conference, 2003)에서 제시한 Wyner-Ziv 코딩 기술이 있다. 이 분산 비디오 부호화 기술은 복호화기에서 이웃 픽춰 간의 유사도를 이용하여 현재 픽춰에 대한 보조 정보를 만들고, 이 보조 정보는 복원하여야 할 현재 픽춰에 가상 채널의 잡음이 부가된 것으로 간주하여, 부호화기에서 전송된 채널코드를 이용하여 보조정보 내의 잡음을 제거하는 방식으로 현재 픽춰를 복원하는 것이다.Distributed video coding techniques include A. Aaron, S. Rane, R. Zhang, and B. Girod et al., "Wyner-Ziv coding for video: Applications to compression and error resilience" (A. Aaron, S. Rane, R. Zhang, and B. Girod, Proc. IEEE Data Compression Conference, 2003). The distributed video encoding technique uses the similarity between neighboring pictures in a decoder to generate supplemental information about a current picture, which is regarded as a virtual channel noise added to the current picture to be restored, and transmitted from an encoder. The channel code is used to restore the current picture by removing noise in the auxiliary information.
도 1은 종래의 분산 비디오 코딩 부호화 장치 및 복호화 장치를 나타낸 개념도이다. 1 is a conceptual diagram illustrating a conventional distributed video coding encoding apparatus and a decoding apparatus.
도 1에 도시된 바와 같이, 분산 비디오 코딩 부호화 장치(100)는 키픽춰 부호화부(109)와 블록단위화부(103), 양자화부(105), 채널코드 부호화부(107)를 포함하고, 이에 상응하는 분산 비디오 코딩 복호화 장치(110)는 키픽춰 복호화부(117), 채널코드 복호화부(113), 보조정보 생성부(119), 영상복원부(115)를 포함할 수 있다. 분산 비디오 코딩 부호화기(100)는 부호화할 픽춰를 두 종류로 분류한다. 하나는 채널코드 부호화를 이용해 Wyner-Ziv 코딩되는 픽춰(이하, 'WZ픽춰'라 함), 다른 하나는 H.264/AVC와 같이 종래의 채널코드 부호화를 이용하지 않는 부호화방식에 의하여 부호화할 픽춰(이하, '키픽춰'라 함)이다. As shown in FIG. 1, the distributed video
키픽춰들은 통상 H.264/AVC의 인트라픽춰 부호화 방식과 같이, 사용자가 선택한 소정의 방법으로 키픽춰 부호화부(109)에 의해 부호화되어 복호화기(110)로 전송된다. 종래의 Wyner-Ziv 코딩 기술에 따른 부호화기(100)에 상응하는 복호화기(110)의 키픽춰 복호화부(117)는 사용자가 선택한 소정의 방법으로 부호화되어 전송된 키픽춰들을 복원하고, 보조정보 생성부(119)는 키픽춰 복호화부(117)에 의해 복원된 키픽춰를 이용하여 WZ픽춰에 해당하는 보조정보(Side Information)를 생성한다.The key pictures are generally encoded by the
통상적으로 보조정보 생성부(119)는 WZ픽춰 전후에 위치한 키픽춰 간의 선형 움직임을 가정한 보간법을 이용하여, 복원할 WZ픽춰에 해당하는 보조정보(Side Information)를 생성한다. 경우에 따라 보외법을 사용할 수도 있으나 성능 면에서 보간법이 보외법에 비해 앞서기 때문에 대부분의 경우 보간법이 사용되고 있다.Typically, the
한편, WZ픽춰를 부호화하기 위해, 부호화기(100)의 블록단위화부(103)는 입력되는 WZ픽춰를 소정의 부호화단위로 구분하며, 양자화부(112)는 각 부호화단위에 대하여 양자화를 수행한다. 그리고, 채널코드부호화부는 채널코드를 이용하여, 양자화된 값에 대한 패리티 데이터를 생성한다.Meanwhile, in order to encode the WZ picture, the
생성된 패리티 데이터는 패리티 버퍼(미도시)에 저장되었다가 피드백채널을 통한 복호화기(110)의 요청에 따라 순차적으로 전송된다. 도 1의 채널코드 복호화부(107)는 부호화기(100)로부터 전송되는 패리티 데이터를 받아 양자화된 값을 추정한다. 도 1의 영상복원부(115)는 채널코드 복호화부(113)에 의해 추정된 양자화값을 입력받아 이를 역양자화하여 복원된 WZ픽춰를 복원한다.The generated parity data is stored in a parity buffer (not shown) and sequentially transmitted according to a request of the
상기 과정에 있어 역양자화시에 발생하는 모호성(Ambiguity)은 보조정보 생성부(119)에 의해 입력되는 보조정보를 참조하여 해결할 수 있다. 이에 대한 구체적인 설명은 A. Aaron, S. Rane, R. Zhang, and B. Girod 등이 Proc. IEEE Data Compression Conference, 2003을 통해 발표한 논문인 "Wyner-Ziv coding for video: Applications to compression and error resilience"를 참조할 수 있다.Ambiguity generated during inverse quantization in the above process may be solved by referring to auxiliary information input by the
분산 비디오 코딩 기술에서 복수개의 비트플레인들을 채널 코드 부호화해야 한다면 각각의 비트 플레인에 대한 채널 코드 부호화가 수행되어야 하기 때문에 부호화기의 복잡도가 증가하는 문제점이 발생한다.In the distributed video coding technique, if a plurality of bit planes are to be channel coded, channel code encoding for each bit plane must be performed, thereby increasing the complexity of the encoder.
따라서, 본 발명의 제1 목적은 부호화시 복잡도가 크지 않고 빠른 시간안에 부호화를 수행할 수 있는 채널 코드 부호화 방법을 제공하는 것이다. Accordingly, a first object of the present invention is to provide a channel code encoding method capable of encoding in a short time without any complexity in encoding.
또한, 본 발명의 제2 목적은 부호화시 복잡도가 크지 않고 빠른 시간안에 부호화를 수행할 수 있는 채널 코드 부호화 방법을 수행하는 채널 코드 부호화 장치를 제공하는 것이다. In addition, a second object of the present invention is to provide a channel code encoding apparatus for performing a channel code encoding method capable of encoding in a short time without any complexity in encoding.
또한 본 발명의 제3 목적은 부호화시 복잡도가 크지 않고 빠른 시간안에 부호화를 수행할 수 있는 채널 코드 부호화 방법을 수행하는 분산 비디오 부호화 장치를 제공하는 것이다. In addition, a third object of the present invention is to provide a distributed video encoding apparatus for performing a channel code encoding method capable of encoding in a short time without any complexity in encoding.
또한 본 발명의 제4 목적은 부호화시 복잡도가 크지 않고 빠른 시간안에 부호화를 수행할 수 있는 채널 코드 부호화 방법을 수행하는 분산 비디오 부호화 장치로부터 패리티 비트를 제공받는 분산 비디오 복호화 장치를 제공하는 것이다. In addition, a fourth object of the present invention is to provide a distributed video decoding apparatus receiving parity bits from a distributed video encoding apparatus that performs a channel code encoding method capable of encoding in a short time without any complexity in encoding.
상술한 본 발명의 제1 목적을 달성하기 위한 본 발명의 일 측면에 따른 분산 비디오 코딩에서 병렬 채널 코드 부호화 방법은 와이너-지브 프레임을 기초로 병렬 연산을 수행하기 위한 병렬 처리 데이터를 생성하는 단계와 상기 생성된 병렬 처리 데이터를 기초로 병렬 처리 채널 코드 부호화를 수행하는 단계를 포함할 수 있다. 상기 분산 비디오 코딩에서 병렬 채널 코드 부호화 방법은 상기 병렬 연산을 수행하기 위한 연산 처리 장치의 수를 판단하는 단계를 더 포함할 수 있다. 상기 분산 비디오 코딩에서 병렬 채널 코드 부호화 방법은 상기 병렬 처리 채널 코드 부호화로 생성된 패리티 비트를 저장하는 단계를 더 포함할 수 있다. 상기 와이너-지브 프레임을 기초로 병렬 연산을 수행하기 위한 병렬 처리 데이터를 생성하는 단계는 상기 와이너-지브 프레임을 블록화하고 양자화하는 단계, 상기 블록화되고 양자화된 와이너-지브 프레임을 비트플레인으로 생성하는 단계와 상기 생성된 비트플레인을 하나의 블록을 구성하는 복수개의 비트플레인이 하나의 집합으로 포함된 집합인 단일 병렬 처리 데이터 또는 다중 병렬 처리 데이터로 생성하는 단계를 포함할 수 있다. 상기 생성된 병렬 처리 메시지를 기초로 병렬 처리 채널 코드 부호화를 수행하는 단계는 상기 병렬 처리 채널 코드 부호화는 LDPCA(Low Density Parity Check Code Accumulate) 부호화 방법에 기초할 수 있다. 상기 생성된 병렬 처리 메시지를 기초로 병렬 처리 채널 코드 부호화를 수행하는 단계는 상기 병렬 처리 채널 코드 부호화는 단일 명령 복수 데이터(SIMD, single instruction multiple data) 처리 방법으로 병렬 처리 부호화될 수 있다. In the distributed video coding method according to an aspect of the present invention for achieving the first object of the present invention described above, the parallel channel code encoding method comprises the steps of: generating parallel processing data for performing parallel operations based on a Weiner-Jib frame; The method may include performing parallel processing channel code encoding based on the generated parallel processing data. The parallel channel code encoding method in the distributed video coding may further include determining a number of arithmetic processing apparatus for performing the parallel operation. The parallel channel code encoding method in the distributed video coding may further include storing parity bits generated by the parallel processing channel code encoding. Generating parallel processing data for performing parallel operation based on the Weiner-Jib frame includes the steps of blocking and quantizing the Weiner-Jib frame, and generating the blocked and quantized Winner-Jib frame into a bitplane. And generating the generated bitplanes as single parallel processing data or multiple parallel processing data which is a set including a plurality of bit planes constituting one block as one set. The performing of the parallel processing channel code encoding based on the generated parallel processing message may be based on a low density parity check code accumulate (LDPCA) encoding method. In the performing of the parallel processing channel code encoding based on the generated parallel processing message, the parallel processing channel code encoding may be parallel processing encoded by a single instruction multiple data (SIMD) processing method.
또한 상술한 본 발명의 제2 목적을 달성하기 위한 본 발명의 일 측면에 따른 분산 비디오 코딩에서 병렬 채널 코드 부호화 장치는 와이너-지브 프레임을 기초로 병렬 연산을 수행하기 위한 병렬 처리 데이터를 생성하는 병렬 처리 데이터 구성부와 상기 생성된 병렬 처리 데이터를 기초로 병렬 처리 채널 코드 부호화를 수행하는 병렬 채널 코드 부호화부를 포함할 수 있다. 상기 분산 비디오 코딩에서 병렬 채널 코드 부호화 장치는 상기 병렬 연산을 수행하기 위한 연산 처리 장치의 수를 판단하는 연산 환경 분석부를 더 포함할 수 있다. 상기 분산 비디오 코딩에서 병렬 채널 코드 부호화 장치는 상기 병렬 채널 코드 부호화부에서 생성된 패리티 비트를 저장하는 패리티 버퍼를 더 포함할 수 있다. 상기 병렬 처리 데이터 구성부는 블록화하고 양자화된 와이너-지브 프레임을 비트플레인으로 생성하고 상기 생성된 비트플레인을 하나의 블록을 구성하는 복수개의 비트플레인이 하나로 포함된 집합인 단일 병렬 처리 데이터 또는 다중 병렬 처리 데이터로 생성할 수 있다. 상기 병렬 채널 코드 부호화부는 상기 병렬채널 코드 부호화부에서 LDPCA(Low Density Parity Check Code Accumulate) 부호화 방법에 기초하여 부호화를 수행할 수 있다. 상기 병렬 채널 코드 부호화부는 상기 병렬 채널 코드 부호화부에서 수행되는 병렬 처리 채널 코드 부호화는 단일 명령 복수 데이터(SIMD, single instruction multiple data) 처리 방법으로 부호화될 수 있다. In addition, in the distributed video coding according to the aspect of the present invention for achieving the above-described second object of the present invention, the parallel channel code encoding apparatus generates parallel processing data for performing parallel operations based on a Weiner-Jib frame. And a parallel channel code encoding unit for performing parallel processing channel code encoding based on the processing data constructing unit and the generated parallel processing data. In the distributed video coding, the parallel channel code encoding apparatus may further include an operation environment analyzer configured to determine the number of operation processing apparatuses for performing the parallel operation. The parallel channel code encoding apparatus in the distributed video coding may further include a parity buffer for storing parity bits generated by the parallel channel code encoder. The parallel processing data constructing unit is a single parallel processing data or multiple parallel processing which is a set including a plurality of bit planes that block and generate a quantized wine-jib frame as a bit plane and constituting the generated bit plane as one block. Can be created with data. The parallel channel code encoder may perform encoding based on a low density parity check code accumulate (LDPCA) encoding method in the parallel channel code encoder. The parallel channel code encoding unit may perform parallel processing channel code encoding performed by the parallel channel code encoding unit using a single instruction multiple data (SIMD) processing method.
또한 상술한 본 발명의 제3 목적을 달성하기 위한 본 발명의 일 측면에 따른 병렬 부호화 연산을 수행하는 분산 비디오 부호화 장치는 와이너-지브 프레임에 입력되어 양자화가 수행되는 양자화부, 상기 양자화된 와이너-지브 프레임을 블록화하는 블록 단위화부와 상기 블록 단위화부로부터 제공된 블록화된 데이터를 기초로 병렬 처리 데이터를 생성하고 상기 생성된 병렬 처리 데이터를 이용하여 병렬 처리 채널 코드 부호화를 수행하는 채널 코드 부호화부를 포함할 수 있다. 상기 채널 코드 부호화부는 와이너-지브 프레임을 기초로 병렬 연산을 수행하기 위한 병렬 처리 데이터를 생성하는 병렬 처리 데이터 구성부와 상기 생성된 병렬 처리 메시지를 기초로 병렬 처리 채널 코드 부호화를 수행하는 병렬 채널 코드 부호화부를 포함할 수 있다. 상기 병렬 처리 데이터 구성부는 블록화하고 양자화된 와이너-지브 프레임을 비트플레인으로 생성하고 상기 생성된 비트플레인을 하나의 블록을 구성하는 복수개의 비트플레인이 하나로 포함된 집합인 단일 병렬 처리 데이터 또는 다중 병렬 처리 데이터로 생성할 수 있다. 상기 병렬 채널 코드 부호화부는 상기 병렬채널 코드 부호화부에서 수행되는 병렬 처리 채널 코드 부호화는 단일 명령 복수 데이터(SIMD, single instruction multiple data) 처리 방법으로 부호화될 수 있다. 상기 채널 코드 부호화부는 병렬 연산을 수행하기 위한 연산 처리 장치의 수를 판단하는 연산 환경 분석부를 더 포함하는 병렬 부호화 연산을 수행할 수 있다.In addition, a distributed video encoding apparatus for performing a parallel encoding operation according to an aspect of the present invention for achieving the third object of the present invention is a quantization unit input to a wine-jib frame to perform quantization, the quantized Weiner- A block unit unit for blocking a jib frame and a channel code encoder for generating parallel processing data based on the block data provided from the block uniting unit and performing parallel processing channel code encoding using the generated parallel processing data. Can be. The channel code encoder is configured to generate parallel processing data for performing parallel operation based on a Weiner-Jib frame and a parallel channel code for performing parallel processing channel code encoding based on the generated parallel processing message. It may include an encoder. The parallel processing data constructing unit is a single parallel processing data or multiple parallel processing which is a set including a plurality of bit planes that block and generate a quantized wine-jib frame as a bit plane and constituting the generated bit plane as one block. Can be created with data. The parallel channel code encoding unit may perform parallel processing channel code encoding performed by the parallel channel code encoding unit using a single instruction multiple data (SIMD) processing method. The channel code encoder may perform a parallel encoding operation further including an operation environment analyzer configured to determine the number of arithmetic processing units for performing the parallel operation.
또한 상술한 본 발명의 제4 목적을 달성하기 위한 본 발명의 일 측면에 따른 분산 비디오 코딩에 기초한 채널 코드 복호화 장치는 분산 비디오 코딩에서 병렬 채널 코드 부호화 장치에 포함되는 채널 코드 부호화부로부터 부호화된 패리티 비트를 요청하고 상기 패리티 비트를 제공받는 채널 코드 복호화부와 상기 채널 코드 복호화부로부터 제공받은 데이터를 기초로 영상을 복원하여 출력하는 영상 복원부를 포함할 수 있다. 상기 채널 코드 부호화부는 입력된 와이너-지브 프레임을 기초로 병렬 처리 데이터를 생성하고 상기 생성된 병렬 처리 데이터를 이용하여 병렬 처리 채널 코드 부호화를 수행할 수 있다. 상기 채널 코드 부호화부는 와이너-지브 프레임을 기초로 병렬 연산을 수행하기 위한 병렬 처리 데이터를 생성하는 병렬 처리 데이터 구성부와 상기 생성된 병렬 처리 데이터를 기초로 병렬 처리 채널 코드 부호화를 수행하는 병렬 채널 코드 부호화부를 포함할 수 있다. In addition, the channel code decoding apparatus based on distributed video coding according to an aspect of the present invention for achieving the fourth object of the present invention described above is a parity coded from a channel code encoder included in a parallel channel code encoding apparatus in distributed video coding. And a channel code decoder which receives a bit and receives the parity bit, and an image reconstructor which reconstructs and outputs an image based on data provided from the channel code decoder. The channel code encoder may generate parallel processing data based on the input Weiner-jib frame and perform parallel processing channel code encoding using the generated parallel processing data. The channel code encoder is configured to generate parallel processing data for performing parallel operations based on a Weiner-Jib frame and a parallel channel code for performing parallel processing channel code encoding based on the generated parallel processing data. It may include an encoder.
상술한 바와 같이 본 발명의 실시예에 따른 병렬 처리를 이용한 부호화 방법 및 이러한 방법을 사용하는 채널 부호화 장치, 이러한 장치를 포함하는 분산 비디오 부호화 장치 및 분산 비디오 복호화 장치에 따르면, 분산 비디오 부호화기에서 상대적으로 많은 복잡도를 차지하는 채널 코드 부호화를 병렬 처리함으로써 고속으로 분산 비디오 부호화를 수행할 수 있게 한다. As described above, according to an encoding method using parallel processing and a channel encoding apparatus using the method, a distributed video encoding apparatus including the apparatus, and a distributed video decoding apparatus as described above, the distributed video encoder is relatively By performing parallel processing on channel code coding, which takes a lot of complexity, distributed video coding can be performed at high speed.
따라서, 전송 영상의 화질을 향상시키기 위해서 높은 양자화 단계를 사용해 고비트율로 데이터를 전송하는 경우에도 채널 코드 부호화에 소요되는 연산량이 증가하지 않고 상대적으로 적은 복잡도로 빠르게 부호화를 수행할 수 있다. Therefore, even when data is transmitted at a high bit rate using a high quantization step to improve the quality of the transmission image, the computation amount required for channel code encoding does not increase, and encoding can be performed quickly with relatively low complexity.
도 1은 종래의 분산 비디오 코딩 부호화 장치 및 복호화 장치를 나타낸 개념도이다.
도 2는 기존의 분산 비디오 부호화 장치에서 채널 코드 부호화부를 나타낸 블록도이다.
도 3은 비트플레인으로 표현된 블록에 대해 채널 코드 부호화를 수행하는 것을 나타낸 개념도이다.
도 4는 본 발명의 일실시예에 따른 병렬 처리를 수행하는 채널코드 부호화부를 나타낸 개념도이다.
도 5은 본 발명의 일실시예에 따른 단일 병렬처리 데이터를 부호화하는 것을 나타낸 개념도이다.
도 6은 본 발명의 일실시에에 따른 다중 병렬처리 데이터를 부호화하는 것을 나타낸 개념도이다.
도 7은 본 발명의 일실시예에 따른 분산 비디오 부호화 방법을 나타낸 순서도이다.
도 8은 본 발명의 일실시예에 따른 분산 비디오 부호화 장치 및 복호화 장치를 나타낸 개념도이다.
도 9는 기존의 LDPCA 부호화 방법을 사용한 분산 비디오 부호화에 있어 양자화 단계별 복잡도를 나타낸 그래프이다.
도 10은 본 발명의 일실시예에 따른 병렬 LDPCA 부호화 방법을 사용한 분산 비디오 코딩시 양자화 단계별 복잡도를 나타낸 그래프이다.
도 11은 본 발명의 일실시예에 따른 병렬 LDPCA 부호화 방법을 사용한 경우의 인코딩 시간을 나타낸 그래프이다. 1 is a conceptual diagram illustrating a conventional distributed video coding encoding apparatus and a decoding apparatus.
2 is a block diagram illustrating a channel code encoder in a conventional distributed video encoding apparatus.
3 is a conceptual diagram illustrating channel code encoding on a block represented by a bitplane.
4 is a conceptual diagram illustrating a channel code encoder for performing parallel processing according to an embodiment of the present invention.
5 is a conceptual diagram illustrating encoding of single parallel processing data according to an embodiment of the present invention.
6 is a conceptual diagram illustrating encoding multiple parallel processing data according to an embodiment of the present invention.
7 is a flowchart illustrating a distributed video encoding method according to an embodiment of the present invention.
8 is a conceptual diagram illustrating a distributed video encoding apparatus and a decoding apparatus according to an embodiment of the present invention.
9 is a graph illustrating complexity of each quantization step in distributed video encoding using a conventional LDPCA encoding method.
10 is a graph illustrating the complexity of each quantization step in distributed video coding using a parallel LDPCA coding method according to an embodiment of the present invention.
11 is a graph showing an encoding time when a parallel LDPCA encoding method according to an embodiment of the present invention is used.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.As the invention allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the written description. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다거나 "직접 접속되어"있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.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 a component is referred to as being "directly connected" or "directly connected" to another component, it should be understood that there is no other component in between.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
Hereinafter, with reference to the accompanying drawings, it will be described in detail a preferred embodiment of the present invention. Hereinafter, the same reference numerals are used for the same components in the drawings, and duplicate descriptions of the same components are omitted.
도 2는 기존의 분산 비디오 부호화 장치에서 채널 코드 부호화부를 나타낸 블록도이다. 2 is a block diagram illustrating a channel code encoder in a conventional distributed video encoding apparatus.
도 2를 참조하면, 채널 코드 부호화부(200)는 비트 플레인 메시지 구성부(210), 비트 플레인 채널코드 부호화부(220), 패리티 버퍼(230)를 포함할 수 있다.Referring to FIG. 2, the
비트 플레인 데이터 구성부(210)는 분산 비디오 부호화 장치에 입력된 와이너 지프 프레임이 양자화부, 블록 단위화부를 거쳐 채널 코드 부호화부로 입력된 양자화된 데이터를 채널 코드 부호화를 수행하기 위해 비트플레인 단위의 데이터로 구성할 수 있다.The bit plane
비트 플레인 채널 코드 부호화부(220)는 비트 플레인 데이터 구성부(210)를 통해 비트 플레인 단위로 구성된 메시지를 부호화할 수 있다.The bit plane
비트 플레인 채널 코드 부호화부(220)에서는 입력 데이터가 출력 데이터에 포함되도록 부호화하는 Systematic 부호화 방법을 사용한다. 그리고 채널 코드 부호화에 사용되는 코드는 컨볼루션 코드(Convolution Code)와 블록 코드(Block Code)가 사용될 수 있다. 예를 들어, 컨볼루션 코드를 사용한 분산 비디오 부호화 방법은 터보 코드와 같은 컨볼루션 코드가 사용될 수 있고, 블록 코드는 LDPC(Low Density Parity Check) 코드, BCH 코드, Reed-Solomon 코드 등이 사용될 수 있다.The bit plane
비트 플레인 데이터 구성부(210)를 통해 K 개의 비트 플레인 데이터가 생성된 경우 이 데이터들은 비트플레인 채널코드 부호화부(220)을 예를 들어, LDPC와 같은 블록 코드를 이용하여 채널 코드 부호화할 수 있다.When K bit plane data is generated through the bit plane
아래의 수학식 1은 K개의 비트 플레인 데이터들 중에서 k 번째 비트플레인 데이터를 나타낸 것이다.
k번째 비트 플레인 데이터 를 아래의 수학식 2에 나타난 패리티 행렬을 곱하는 과정을 통해 수학식 3에 표현된 k번째 패리티 를 생성할 수 있다. kth bitplane data Parity shown in
또한, 아래의 수학식 4를 통해 k개의 비트플레인의 패리티 비트 중에서 j번째 패리티 비트값을 생성할 수 있다. In addition, the j th parity bit value among the parity bits of the k bitplanes may be generated through
수학식 4는 입력 메시지들을 메시지에 대응하는 패리티 생성 행렬의 열의 값들과 각각 곱한 후 모두 더하여, 더한 값을 2진수로 만들기 위해서 modular 2의 연산을 통해서 j 번째 패리티 비트 값을 생성할 수 있다.
입력된 비트플레인 데이터가 총 K개가 존재한다고 가정하면 각각을 로 나타낼 수 있으며 이는 수학식 1과 같이 비트열의 집합으로 표현할 수 있다. 이러한 입력 비트플레인 데이터들은 비트플레인 채널코드 부호화부 (220)를 통해서 패리티 로 생성된다. 이러한 패리티들은 수학식 3과 같이 비트열의 집합으로 표현할 수 있다.Assuming a total of K input bitplane data, This may be represented as a set of bit strings as shown in
수학식 3에서 의 연산 과정은 도 1에서 비트플레인 채널코드 부호화부(220)에 대응될 수 있다. K개의 비트플레인들을 채널코드 부호화하기 위해서는 총 K번의 비트플레인 채널코드 부호화가 수행되어야만 한다.The operation of
비트플레인 채널코드 부호화되어 생성된 패리티들은 패리티 버퍼(230)에 일시적으로 저장된다. 그런데 앞서 기술하였듯이 K개의 비트플레인에 대하여 채널코드 부호화를 수행하여야 한다면 총 K번의 비트플레인 채널코드 부호화가 수행되어야 한다. 따라서 채널부호화부 전단에서 전송되는 정보량이 많아질수록 부호화가 수행되는 횟수가 늘어나기 때문에 부호화기의 복잡도가 증가하는 문제가 발생한다. Parities generated by bitplane channel code encoding are temporarily stored in the
도 2의 비트플레인 채널코드 부호화부(220)는 채널코드 부호화부(200) 전단에서 수행되는 양자화부에서 수행하는 양자화 강도에 따라 채널코드 부호화해야 할 데이터의 양이 결정된다. 통상적으로 양자화부는 전송해야할 비트율을 제어하기 위해 사용되는데 주어진 비트를 가지고 최대한 우수한 화질을 제공하도록 양자화하거나, 주어진 화질에서 최대한 적은 비트를 사용하여 양자화될 수 있다. 일반적으로 전송되는 영상의 화질을 우수하게 만들기 위해서는 많은 양의 비트를 전송해야 하고 비트율을 많이 전송할 수 없는 상황에서는 화질은 열화되더라도 양자화를 강하게 수행하여 정보를 많이 손실시켜서 전송할 비트율을 줄인다. 이러한 이유로 인해서 양자화의 강도에 따라서 비트플레인 채널코드 부호화부(200)에서 소요되는 연산량도 변하게 된다.
In the bitplane
도 3은 비트플레인으로 표현된 블록에 대해 채널 코드 부호화를 수행하는 것을 나타낸 개념도이다.3 is a conceptual diagram illustrating channel code encoding on a block represented by a bitplane.
도 3의 가로축(300)은 블록의 개수를 1부터 N까지의 지표값으로 나타낸 블록 인덱스값이고 세로축(310)은 비트플레인의 개수를 나타낸다.The horizontal axis 300 of FIG. 3 is a block index value representing the number of blocks as an index value from 1 to N, and the vertical axis 310 represents the number of bit planes.
도 3을 참조하면, 채널 부호화부 전단에 존재하는 블록단위화부를 통해 총 N개의 블록이 발생하고 각각의 블록을 K 개의 비트플레인으로 구성하도록 양자화 한 경우를 나타낸다. 부호화해야 할 비트플레인의 개수가 K 개이므로 비트플레인 채널코드 부호화부를 통한 채널코드 부호화도 K 회 수행되어야 한다. K 값이 클수록 많은 비트를 처리해야 하기 때문에 채널코드 부호화에 소요되는 연산량도 비례적으로 증가한다. 이러한 이유로 인하여 분산 비디오 부호화를 사용한 고화질(상대적으로 많은 비트를 전송해야 함) 서비스를 수행하려고 하면 상대적으로 저화질(상대적으로 적은 비트를 전송함) 서비스를 수행하는 상황에 비하여 부호화 속도가 느려지는 문제가 발생한다.
Referring to FIG. 3, a case in which a total of N blocks are generated through a block uniting unit located in front of the channel encoder and quantized so that each block includes K bit planes is illustrated. Since the number of bitplanes to be encoded is K, the channel code encoding through the bitplane channel code encoding unit must also be performed K times. Since the larger the K value, the more bits must be processed, the amount of computation required for channel code encoding also increases proportionally. For this reason, attempting to perform a high quality (relatively many bits) service using distributed video encoding causes a problem that the encoding speed becomes slow compared to a situation in which a relatively low quality (relatively little bit is transmitted) service is performed. Occurs.
도 4는 본 발명의 일실시예에 따른 병렬 처리를 수행하는 채널코드 부호화부를 나타낸 개념도이다. 4 is a conceptual diagram illustrating a channel code encoder for performing parallel processing according to an embodiment of the present invention.
도 4를 참조하면, 병렬 처리를 수행하는 채널코드 부호화부(400)는 연산환경 분석부(410), 병렬처리 데이터 구성부(420), 병렬 채널코드 부호화부(430), 패리티 버퍼(440)를 포함한다. Referring to FIG. 4, the
각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합 및 분리된 실시예의 경우도 본 발명의 본질에서 벋어나지 않는 한 본 발명의 권리범위에 포함된다.For convenience of explanation, the respective components are arranged in the respective components, and at least two of the components may be combined to form one component, or one component may be divided into a plurality of components to perform the functions. The scope of the present invention is also encompassed within the scope of the present invention unless otherwise specified.
또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성부는 아니고 단지 성능을 향상 시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.Also, some of the components may not be essential components that perform essential functions in the present invention, but may be optional components only to improve performance. The present invention can be implemented only with components essential for realizing the essence of the present invention, except for the components used for the performance improvement, and can be implemented by only including the essential components except the optional components used for performance improvement Are also included in the scope of the present invention.
연산 환경 분석부(410)는 채널 부호화를 수행할 수 있는 장치가 다중 연산이 가능한지 여부를 판단하여 이러한 정보를 병렬처리 데이터 구성부(420)에 전달하여 다중 연산이 가능한 경우와 불가능한 경우를 서로 달리하여 병렬 처리를 수행할 수 있다. The
연산 환경 분석부(410)의 경우, 연산 환경을 판단할 필요가 없이 미리 알고 있는 경우라면 사용되지 않을 수 있다. In the case of the
병렬처리 데이터 구성부(420)는 병렬처리를 수행하기 위해 전달받은 블록을 병렬 처리가 가능한 비트 플레인으로 생성할 수 있다. The parallel
병렬처리 데이터 구성부(420)는 연산 환경 분석부(410)로부터 제공받은 정보에 기초하여 다중연산이 가능한 경우, 다중 병렬처리 연산 처리장치를 위한 다중 병렬처리 데이터를 구성하고 단일 연산만이 가능한 경우, 단일 병렬처리 연산 처리장치를 위한 단일 병렬처리 데이터를 구성할 수 있다. When the parallel
단일 병렬 처리 데이터는 아래의 수학식 5에서 설명된 방식으로 구현될 수 있다.Single parallel processing data may be implemented in the manner described in
수학식 5는 총 K개의 채널코드 부호화해야 할 비트플레인들이 있다고 가정할 때 1부터 K번째까지의 비트플레인들을 하나의 데이터 집합으로 구성하는 수식을 나타낸다.
수학식 5에서 는 번째 블록의 k번째 비트플레인의 비트값을 나타낸다. 따라서 번째 블록에 대해서 1부터 K번째 비트플레인까지의 비트를 2의 승수를 바꿔가면서 곱하면 수학식 5에 나타난 것과 같은 를 얻게 되고 는 번째 블록에 포함된 1부터 K까지의 모든 비트플레인들의 정보를 포함할 수 있다. In equation (5) Is The bit value of the kth bitplane of the first block. Therefore, multiplying bits from 1 to Kth bitplane by changing the multipliers of 2 gives the same result as shown in
수학식 5에서 예시된 수식과 같이 최상위 비트(Most significant bit)부터 순차적으로 2의 승수를 곱할 필요는 없다. 만약 다른 비트들끼리 서로 겹치지 않아서 전체 비트플레인들의 정보가 유지된다면 수학식 5와 같은 순차적인 조합이 아닌 어떠한 조합이든 사용될 수 있다.
As shown in
도 5은 본 발명의 일실시예에 따른 단일 병렬처리 데이터를 부호화하는 것을 나타낸 개념도이다. 5 is a conceptual diagram illustrating encoding of single parallel processing data according to an embodiment of the present invention.
도 5를 참조하면, 도 5의 가로축(500)은 블록 단위화부를 통해 나누어진 총 N개의 블록들에 대한 블록 인덱스를 나타내고 세로축(510)은 K개의 비트플레인을 나타낸다. 본 발명의 일실시예에 따르면 전술한 수학식 5에서 나타난 바와 같이 각각의 블록들에 대해서 1번부터 K번까지의 비트프레인들은 하나의 단위(511, 513, 515, 517)로 묶여져 단일한 데이터로 구성될 수 있다.Referring to FIG. 5, the horizontal axis 500 of FIG. 5 represents block indexes for a total of N blocks divided by the block unitization unit, and the vertical axis 510 represents K bitplanes. According to an embodiment of the present invention, as shown in
단일한 데이터로 구성된 데이터 집합의 총 개수는 블록의 수와 같은 N개가 되며 이 N개의 데이터 집합이 영상 내 비트플레인 데이터들의 집합(520)으로 생성된다. 이러한 비트플레인 데이터들의 집합(520)에 대해 병렬 채널코드 부호화부를 이용해 병렬 채널코드 부호화(530)가 수행될 수 있다.
The total number of data sets composed of a single data is N equal to the number of blocks, and the N data sets are generated as a
도 6은 본 발명의 일실시에에 따른 다중 병렬처리 데이터를 부호화하는 것을 나타낸 개념도이다.6 is a conceptual diagram illustrating encoding multiple parallel processing data according to an embodiment of the present invention.
도 6을 참조하면, 도 6의 가로축(600)은 블록 단위화부를 통해 나누어진 총 N개의 블록들에 대한 블록 인덱스를 나타내고 세로축(610)은 K개의 비트플레인을 나타낸다.Referring to FIG. 6, the
도 6은 다중 병렬처리 데이터 부호화 방법에서 2개의 집합(620, 630)으로 메시지를 구성한 것을 나타낸다. 도 6에서는 1번째부터 k번째까지는 영상 내 비트플레인 데이터들의 부분집합 1(640)로 구성하였고, k+1 번째부터 K번째까지는 영상 내 비트플레인 메시지들의 부분집합 2(650)로 구성하였다. 각각의 데이터들의 부분집합에 포함되는 비트들은 비트들이 서로 겹치지 않으면서 비트플레인들의 정보가 유지되도록 데이터를 새롭게 구성할 수 있다. 본 발명의 일실시예에 따르면 설명의 편의상 비트플레인 데이터를 2개의 부분집합으로 구성하였으나 연산 처리 장치의 연산 환경에 따라 2개 이상의 부분 집합으로 구성될 수 있다.6 shows that a message is composed of two
2개의 영상 내 비트플레인 데이터들의 부분집합(640, 650)은 복수개의 연산 장치에 제공되어 개별적으로 병렬 채널 코드 부호화를 수행할 수 있다.
The
도 4를 다시 참조하면, 병렬 채널코드 부호화부(430)는 병렬처리된 단일 병렬처리 메시지 또는 다중 병렬처리 메시지를 병렬 분산 비디오 부호화를 수행할 수 있다.Referring back to FIG. 4, the parallel
병렬 분산 비디오 부호화를 수행함에 있어 단일 명령 복수 데이터(SIMD, single instruction multiple data) 처리 방법으로 알려진 병렬화 방법을 사용할 수 있다. In performing parallel distributed video encoding, a parallelization method known as a single instruction multiple data (SIMD) processing method may be used.
SIMD 연산은 SIMD 레지스터를 이용하여 복수개의 차원을 포함한 레코드 사이에서 병렬적인 연산을 수행하는 방법으로써 본 발명에서 개시한 바와 같이 하나의 블록을 구성하는 복수개의 비트플레인을 병렬적으로 한번에 연산할 수 있다.The SIMD operation is a method of performing parallel operations among records including a plurality of dimensions by using a SIMD register, and as described in the present invention, a plurality of bitplanes constituting one block can be operated in parallel at one time. .
본 발명의 일실시예에 따른 부호화 방법으로 LDPCA(Low Density Parity Check Code Accumulate)를 사용하여 부호화를 수행할 수 있으나, 본 발명의 본질에서 벋어나지 않는 한 LDPCA 방법이 아닌 다른 부호화 방법 또한 사용할 수 있다.
Although encoding may be performed using Low Density Parity Check Code Accumulate (LDPCA) as an encoding method according to an embodiment of the present invention, other encoding methods other than the LDPCA method may also be used as long as it does not depart from the essence of the present invention. .
패리티 버퍼(440)는 병렬 채널코드 부호화부(430)에서 제공된 부호화 데이터를 저장하는 버퍼로써 분산 비디오 복호화부에서 패리티 비트를 요청할 경우 부호화를 통해 생성된 패리티 비트를 전송할 수 있다.
The
도 7은 본 발명의 일실시예에 따른 분산 비디오 부호화 방법을 나타낸 순서도이다.7 is a flowchart illustrating a distributed video encoding method according to an embodiment of the present invention.
도 7을 참조하면, 양자화된 데이터를 입력받는다(단계 S700).Referring to FIG. 7, quantized data is input (step S700).
WZ 픽춰가 입력되고 입력된 WZ 픽쳐의 데이터는 양자화되어 채널코드 부호화를 수행하기 위해 채널 코드 부호화부에 입력될 수 있다.The WZ picture is input and the input data of the WZ picture may be quantized and input to the channel code encoder to perform channel code encoding.
채널코드 부호화부에서 병렬 연산을 수행하기 위한 연산 처리 장치의 수를 판단한다(단계 S710).The channel code encoder determines the number of arithmetic processing units for performing parallel arithmetic (step S710).
본 발명의 일실시예에 따른 병렬 연산을 수행하는 분산 비디오 부호화 방법은 연산 환경에 따라 단일 병렬처리 연산 처리 장치 또는 다중 병렬처리 연산 처리 장치로 구분될 수 있고 연산 처리 장치의 수에 따라 병렬 처리 데이터 구성이 달라질 수 있으므로 병렬 처리 데이터를 구성하기 전에 연산 환경을 분석할 수 있다.Distributed video encoding method for performing parallel operation according to an embodiment of the present invention can be divided into a single parallel processing unit or multiple parallel processing unit according to the operation environment and the parallel processing data according to the number of the processing unit Because configurations can vary, you can analyze the computing environment before constructing parallel processing data.
연산 처리 장치의 수가 하나인 경우, 단일 연산 처리 장치를 위한 단일 병렬 처리 데이터를 구성한다(단계 S720).If the number of arithmetic processing units is one, a single parallel processing data for a single arithmetic processing unit is constructed (step S720).
단일 병렬 처리 데이터의 경우 개별 블록의 K개의 비트플레인이 하나의 단위로 묶여질 수 있다. In the case of single parallel processing data, K bitplanes of individual blocks may be grouped into one unit.
단일 병렬 처리 데이터를 채널 코드 부호화한다(단계 S730). The single parallel processing data is channel code encoded (step S730).
병렬로 처리된 데이터를 채널 코드 부호화하기 위해서는 SIMD 기법과 같은 병렬 처리 기법이 사용될 수 있다. SIMD 기법은 병렬 처리 기법의 하나의 예로써 본 발명의 본질에서 벋어나지 않는 한 다른 병렬 처리 기법도 사용될 수 있다. In order to channel code the data processed in parallel, a parallel processing technique such as the SIMD technique may be used. The SIMD technique is an example of a parallel processing technique, and other parallel processing techniques may be used as long as it does not depart from the essence of the present invention.
연산 처리 장치의 수가 복수개인 경우 다중 연산 처리 장치를 위한 다중 병렬 처리 데이터를 구성한다(단계 S740).When there are a plurality of arithmetic processing units, multiple parallel processing data for a multi arithmetic processing unit are configured (step S740).
다중 병렬 처리 데이터의 경우, 도 6에서 전술한 바와 같이 개별 블록의 K개의 비트플레인 중 일부가 나뉘어져 복수개의 부분 집합으로 생성될 수 있다.In the case of multiple parallel processing data, as described above with reference to FIG. 6, some of the K bitplanes of the individual blocks may be divided and generated as a plurality of subsets.
생성된 다중 병렬 처리 데이터는 다중 연산 처리 장치에서 병렬 처리 채널 코드 부호화를 수행한다(단계 S750).The generated multi-parallel processing data is subjected to parallel processing channel code encoding in the multi-processing apparatus (step S750).
단일 병렬 처리 데이터와 동일하게 병렬로 처리된 메시지를 채널 코드 부호화하기 위해서는 SIMD 기법과 같은 병렬 처리 기법이 사용될 수 있다. SIMD 기법은 병렬 처리 기법의 하나의 예로써 본 발명의 본질에서 벋어나지 않는 한 다른 병렬 처리 기법도 사용될 수 있다.A parallel processing technique such as the SIMD technique may be used to channel code the message processed in parallel with the same parallel processing data. The SIMD technique is an example of a parallel processing technique, and other parallel processing techniques may be used as long as it does not depart from the essence of the present invention.
병렬 처리 채널 코드 부호화를 수행한 부호화된 데이터는 패리티 버퍼에 적재된다(단계 S760).The encoded data on which the parallel processing channel code encoding is performed is loaded into the parity buffer (step S760).
결과적으로 WZ 프레임을 부호화한 데이터는 패리티 버퍼에 적재될 수 있고 분산 비디오 복호화부에서 요청시 해당 패리티 비트를 전송할 수 있다. As a result, the data encoding the WZ frame may be loaded into the parity buffer, and the parity bit may be transmitted when requested by the distributed video decoder.
본 발명의 일실시예에 따르면, 연산 장치의 수에 대한 정보를 미리 알고 있어서 연산 장치의 수를 판단하는 단계(S710)는 수행되지 않을 수 있다. According to an embodiment of the present invention, the step S710 of determining the number of computing devices may not be performed since the information about the number of computing devices is known in advance.
연산 장치의 수를 판단하는 단계가 수행되지 않을 경우, 양자화된 데이터를 입력받고 바로 병렬 처리 데이터를 구성할 수 있고 생성된 병렬 처리 데이터를 기초로 병렬 처리 채널 코드 부호화를 수행하여 병렬 처리 채널 코드 부호화를 수행한 부호화된 데이터를 패리티 버퍼에 적재할 수 있다.
If the step of determining the number of arithmetic units is not performed, the parallel processing data can be configured immediately after receiving the quantized data, and the parallel processing channel code encoding is performed by performing the parallel processing channel code encoding based on the generated parallel processing data. The encoded data that has been performed may be loaded into the parity buffer.
도 8은 본 발명의 일실시예에 따른 분산 비디오 부호화 장치 및 복호화 장치를 나타낸 개념도이다. 8 is a conceptual diagram illustrating a distributed video encoding apparatus and a decoding apparatus according to an embodiment of the present invention.
도 8은 종래의 Wyner-Ziv 코딩 기술에 따른 부호화기(810)와 이에 상응하는 복호화기(830)의 구성을 도시한 도면이다.8 is a diagram illustrating a configuration of an
Wyner-Ziv 코딩 기술에 따른 부호화기(810)는 소스 비디오 컨텐트(source video content)의 픽처들을 두 종류로 분류한다. 하나는 분산 비디오 부호화 방식에 의하여 부호화할 픽처(이하, 'WZ픽처'라 함)이고, 다른 하나는 분산 비디오 부호화 방식이 아닌 종래의 부호화 방식에 의하여 부호화할 픽처(이하, '키픽처'라 함)이다.The
키픽처들은 키픽처 부호화부(814)에서 예를 들어 H.264/AVC의 인트라 부호화 방식으로 부호화되어 복호화기(830)로 전송된다. 종래의 Wyner-Ziv 코딩 기술에 따른 부호화기(810)에 상응하는 복호화기(830)의 키픽처 복호화부(833)는, 전송된 키픽처들을 복원한다. 보조정보 생성부(834)는, 키픽처 복호화부(833)에 의해 복원된 키픽처를 이용하여 WZ픽처에 해당하는 보조정보(Side Information)를 생성하고 보조정보를 채널코드 복호화부(831)로 출력한다.The key pictures are encoded by the
보조정보 생성부(834)는, 현재 WZ픽처 전후에 위치한 키픽처 간의 선형 움직임을 가정하고, 보간법을 이용하여 복원할 WZ픽처에 해당하는 보조정보(Side Information)를 생성한다. 경우에 따라, 보간법 대신에 보외법을 사용할 수도 있으나 보간법으로 생성된 보조정보에서의 잡음이 보외법으로 생성된 보조정보에서의 잡음보다 적기 때문에, 대부분의 경우에서 보간법이 사용되고 있다.한편, WZ픽처를 부호화하기 위해서, 부호화기(810)의 양자화부(812)는 WZ픽처에 대한 양자화를 수행하고, WZ픽처의 양자화값을 블록단위화부(812)로 출력한다. 블록단위화부(811)는 입력되는 WZ픽처의 양자화된 값을 소정의 부호화 단위로 구분한다. 그리고, 채널코드 부호화부(813)는 채널코드를 이용하여 각 부호화단위에 대한 패리티 비트를 생성한다.The
본 발명의 일실시예에 따르면 채널코드 부호화부(813)에서는 도 4에서 개시된 연산 환경 분석부, 병렬 처리 메시지 구성부, 병렬 채널코드 부호화부, 패리티 버퍼와 같은 구성이 포함될 수 있다. According to an embodiment of the present invention, the
연산 환경이 다중 연산 또는 단일 연산이 가능한지를 미리 알고 있는 경우, 연산 환경 분석부는 채널 코드 부호화부(813)에 포함되지 않을 수 있다. When the computing environment knows in advance whether multiple or single operations are possible, the computing environment analyzer may not be included in the
병렬 처리 메시지는 양자화되어 블록화된 정보를 병렬처리할 수 있도록 각각의 블록에 포함되는 비트플레인의 정보를 하나의 단위 또는 복수개의 단위로 분리하고 분리된 비트플레인 정보를 SIMD와 같은 병렬 연산 기법을 사용하여 병렬 채널 코드 부호화를 수행할 수 있다. The parallel processing message divides the information of the bitplane included in each block into one unit or a plurality of units so as to process the quantized and blocked information in parallel, and uses the parallel operation technique such as SIMD to separate the separated bitplane information. Parallel channel code encoding can be performed.
병렬 채널코드 부호화부를 통해 생성된 패리티 비트는 패리티 버퍼(미도시)에 일시적으로 저장되었다가 복호화기(830)에서 피드백채널을 통하여 패리티를 요청하면 순차적으로 전송된다. 도 8의 채널코드 복호화부(831)는 부호화기(810)로부터 전송되는 패리티를 받아서 양자화 된 값을 추정한다. 도 8의 영상복원부(832)는 채널코드 복호화부(831)에 의해 추정된 양자화 값을 입력받아 이를 역양자화 하여 WZ픽처를 복원한다.
Parity bits generated by the parallel channel code encoder are temporarily stored in a parity buffer (not shown), and are sequentially transmitted when the
도 9는 기존의 LDPCA 부호화 방법을 사용한 분산 비디오 부호화에 있어 양자화 단계별 복잡도를 나타낸 그래프이다. 9 is a graph illustrating complexity of each quantization step in distributed video encoding using a conventional LDPCA encoding method.
세로축(900)은 분산 비디오 부호화를 수행시 해당 단계별 차지하는 복잡도를 나타낸 것이고 가로축(910)은 개별 양자화 단계를 나타낸 것이다. The vertical axis 900 represents the complexity occupied in each step when performing distributed video coding, and the horizontal axis 910 represents the individual quantization step.
도 9를 참조하면, 분산 비디오 부호화를 수행시 LDPCA 부호화에 소요되는 복잡도는 평균적으로 54%이고 양자화 단계가 증가하여 비트율이 증가할수록 59%까지 복잡도가 증가한다. 즉, 분산 비디오 부호화를 수행시 LDPCA 부호화가 차지하는 복잡도가 크고 양자화 정도가 커질수록 LDPCA 부호화의 복잡도는 상대적으로 증가하는 것을 알 수 있다.
Referring to FIG. 9, the complexity required for LDPCA encoding when performing distributed video encoding is 54% on average, and as the bit rate increases, the complexity increases to 59% as the quantization step is increased. That is, as the complexity of LDPCA coding and the degree of quantization increase when performing distributed video coding, the complexity of LDPCA coding increases relatively.
도 10은 본 발명의 일실시예에 따른 병렬 LDPCA 부호화 방법을 사용한 분산 비디오 코딩시 양자화 단계별 복잡도를 나타낸 그래프이다. 10 is a graph illustrating the complexity of each quantization step in distributed video coding using a parallel LDPCA coding method according to an embodiment of the present invention.
세로축(1000)은 분산 비디오 부호화를 수행시 해당 단계별 차지하는 복잡도를 나타낸 것이고 가로축(1010)은 개별 양자화 단계를 나타낸 것이다. The
도 10을 참조하면, 양자화된 후 발생한 비트플레인들을 하나의 심벌로 묶은 후에 LDPCA 부호화를 수행하여 병렬처리하는 방법을 사용하는 경우 처리해야 하는 연산을 하나의 심벌로 묶어서 사용하는 방법을 사용하기 때문에 평균적으로 분산 비디오 부호화에서 LDPCA 부호화가 차지하는 복잡도가 4% 정도로 낮아지게 된다.
Referring to FIG. 10, when using a method of performing parallel processing by performing LDPCA encoding after grouping bitplanes generated after quantization into a single symbol, an average operation is performed by using a single symbol combined with the operation to be processed. As a result, the complexity of LDPCA coding in distributed video coding is reduced to about 4%.
도 11은 본 발명의 일실시예에 따른 병렬 LDPCA 부호화 방법을 사용한 경우의 인코딩 시간을 나타낸 그래프이다. 11 is a graph showing an encoding time when a parallel LDPCA encoding method according to an embodiment of the present invention is used.
가로축(1100)은 양자화 단계를 나타내고 도 11의 하나의 픽처당 인코딩에 걸리는 시간을 나타낸다. Horizontal axis 1100 represents the quantization step and represents the time taken for encoding per one picture in FIG.
도 11을 참조하면, 기존의 LDPCA 부호화 방법의 경우, 양자화 단계가 커질수록 생성되는 처리해야할 데이터의 양이 많아지므로 인코딩에 걸리는 시간이 양자화 단계에 비례하여 증가하는 반면에 본 발명의 일실시예에 따른 병렬 LDPCA 부호화 방법의 경우 처리해야할 데이터들을 하나의 심벌로 묶어서 처리하는 방법을 사용하므로 기존의 LDPCA 부호화 방법에 비하여 적은 시간이 걸리고 양자화 단계가 증가함에도 불구하고 인코딩 수행시 일정한 시간이 걸리는 것을 볼 수 있다Referring to FIG. 11, in the conventional LDPCA encoding method, as the quantization step increases, the amount of data to be processed increases, so that the encoding time increases in proportion to the quantization step. According to the parallel LDPCA coding method, the data to be processed are processed by combining them into a single symbol. Therefore, it takes less time than the conventional LDPCA coding method and it takes a certain time to perform the encoding despite the increase of the quantization step. have
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although described with reference to the embodiments above, those skilled in the art will understand that the present invention can be variously modified and changed without departing from the spirit and scope of the invention as set forth in the claims below. Could be.
Claims (20)
와이너-지브 프레임을 기초로 병렬 연산을 수행하기 위한 병렬 처리 데이터를 생성하는 단계; 및
상기 생성된 병렬 처리 데이터를 기초로 병렬 처리 채널 코드 부호화를 수행하는 단계를 포함하는 분산 비디오 코딩에서 병렬 채널 코드 부호화 방법.In the parallel channel code coding method in distributed video coding,
Generating parallel processing data for performing parallel operations based on the Weiner-Jib frame; And
And performing parallel processing channel code encoding based on the generated parallel processing data.
상기 병렬 연산을 수행하기 위한 연산 처리 장치의 수를 판단하는 단계를 더 포함하는 분산 비디오 코딩에서 병렬 채널 코드 부호화 방법.The method of claim 1, wherein the parallel channel coded coding method in the distributed video coding comprises:
And determining the number of arithmetic processing units for performing the parallel arithmetic.
상기 병렬 처리 채널 코드 부호화로 생성된 패리티 비트를 저장하는 단계를 더 포함하는 분산 비디오 코딩에서 병렬 채널 코드 부호화 방법.The method of claim 1, wherein the parallel channel coded coding method in the distributed video coding comprises:
And storing the parity bits generated by the parallel processing channel code encoding.
상기 와이너-지브 프레임을 블록화하고 양자화하는 단계;
상기 블록화되고 양자화된 와이너-지브 프레임을 비트플레인으로 생성하는 단계; 및
상기 생성된 비트플레인을 하나의 블록을 구성하는 복수개의 비트플레인이 하나의 집합으로 포함된 집합인 단일 병렬 처리 데이터 또는 다중 병렬 처리 데이터로 생성하는 단계를 포함하는 분산 비디오 코딩에서 병렬 채널 코드 부호화 방법.The method of claim 1, wherein generating parallel processing data for performing parallel operation based on the Weiner-Jib frame includes:
Blocking and quantizing the wine-jib frame;
Generating the blocked and quantized wine-jib frame into a bitplane; And
A parallel channel code encoding method in distributed video coding comprising generating the generated bitplanes as single parallel processing data or multiple parallel processing data which is a set including a plurality of bit planes constituting one block as a set .
상기 병렬 처리 채널 코드 부호화는 LDPCA(Low Density Parity Check Code Accumulate) 부호화 방법에 기초한 것을 특징으로 하는 분산 비디오 코딩에서 병렬 채널 코드 부호화 방법.The method of claim 1, wherein performing parallel processing channel code encoding based on the generated parallel processing message comprises:
The parallel channel code encoding method in the distributed video coding, characterized in that based on the Low Density Parity Check Code Accumulate (LDPCA) coding method.
상기 병렬 처리 채널 코드 부호화는 단일 명령 복수 데이터(SIMD, single instruction multiple data) 처리 방법으로 병렬 처리 부호화되는 것을 특징으로 하는 분산 비디오 코딩에서 병렬 채널 코드 부호화 방법.The method of claim 1, wherein performing parallel processing channel code encoding based on the generated parallel processing message comprises:
The parallel channel code encoding method is parallel channel code encoding method in distributed video coding, characterized in that the parallel processing coded by a single instruction multiple data (SIMD) processing method.
와이너-지브 프레임을 기초로 병렬 연산을 수행하기 위한 병렬 처리 데이터를 생성하는 병렬 처리 데이터 구성부; 및
상기 생성된 병렬 처리 데이터를 기초로 병렬 처리 채널 코드 부호화를 수행하는 병렬 채널 코드 부호화부를 포함하는 분산 비디오 코딩에서 병렬 채널 코드 부호화 장치.In the parallel channel code encoding apparatus in distributed video coding,
A parallel processing data constructing unit configured to generate parallel processing data for performing parallel operations based on the wine-jib frame; And
And a parallel channel code encoding unit configured to perform parallel processing channel code encoding based on the generated parallel processing data.
상기 병렬 연산을 수행하기 위한 연산 처리 장치의 수를 판단하는 연산 환경 분석부를 더 포함하는 분산 비디오 코딩에서 병렬 채널 코드 부호화 장치.The apparatus of claim 7, wherein the parallel channel code encoding apparatus in the distributed video coding comprises:
And a computing environment analyzer configured to determine the number of arithmetic processing units for performing the parallel arithmetic.
상기 병렬 채널 코드 부호화부에서 생성된 패리티 비트를 저장하는 패리티 버퍼를 더 포함하는 분산 비디오 코딩에서 병렬 채널 코드 부호화 장치.The apparatus of claim 7, wherein the parallel channel code encoding apparatus in the distributed video coding comprises:
And a parity buffer for storing parity bits generated by the parallel channel code encoder.
블록화하고 양자화된 와이너-지브 프레임을 비트플레인으로 생성하고 상기 생성된 비트플레인을 하나의 블록을 구성하는 복수개의 비트플레인이 하나로 포함된 집합인 단일 병렬 처리 데이터 또는 다중 병렬 처리 데이터로 생성하는 것을 특징으로 하는 분산 비디오 코딩에서 병렬 채널 코드 부호화를 수행하는 장치.The method of claim 7, wherein the parallel processing data configuration unit,
Generates a blocked and quantized Weiner-Jib frame as a bitplane and generates the generated bitplane as single parallel processing data or multiple parallel processing data, which is a set including a plurality of bit planes constituting one block. An apparatus for performing parallel channel code coding in distributed video coding.
상기 병렬채널 코드 부호화부에서 LDPCA(Low Density Parity Check Code Accumulate) 부호화 방법에 기초하여 부호화를 수행하는 것을 특징으로 하는 분산 비디오 코딩에서 병렬 채널 코드 부호화를 수행하는 장치.The method of claim 7, wherein the parallel channel code encoder,
And performing parallel channel code encoding in distributed video coding by the parallel channel code encoder based on a low density parity check code accumulate (LDPCA) encoding method.
상기 병렬 채널 코드 부호화부에서 수행되는 병렬 처리 채널 코드 부호화는 단일 명령 복수 데이터(SIMD, single instruction multiple data) 처리 방법으로 부호화되는 것을 특징으로 하는 분산 비디오 코딩에서 병렬 채널 코드 부호화를 수행하는 장치.The method of claim 7, wherein the parallel channel code encoder,
The parallel channel code encoding performed by the parallel channel code encoder is performed by using a single instruction multiple data (SIMD) processing method.
와이너-지브 프레임에 입력되어 양자화가 수행되는 양자화부;
상기 양자화된 와이너-지브 프레임을 블록화하는 블록 단위화부; 및
상기 블록 단위화부로부터 제공된 블록화된 데이터를 기초로 병렬 처리 데이터를 생성하고 상기 생성된 병렬 처리 데이터를 이용하여 병렬 처리 채널 코드 부호화를 수행하는 채널 코드 부호화부를 포함하는 병렬 부호화 연산을 수행하는 분산 비디오 부호화 장치.A distributed video encoding apparatus for performing a parallel encoding operation,
A quantization unit input to the wine-jib frame to perform quantization;
A block unit unit to block the quantized wine-jib frame; And
Distributed video encoding for generating parallel processing data based on the block data provided from the block unitization unit and including a channel code encoding unit for performing parallel processing channel code encoding using the generated parallel processing data. Device.
와이너-지브 프레임을 기초로 병렬 연산을 수행하기 위한 병렬 처리 데이터를 생성하는 병렬 처리 데이터 구성부; 및
상기 생성된 병렬 처리 메시지를 기초로 병렬 처리 채널 코드 부호화를 수행하는 병렬 채널 코드 부호화부를 포함하는 병렬 부호화 연산을 수행하는 분산 비디오 부호화 장치.The method of claim 13, wherein the channel code encoder,
A parallel processing data constructing unit configured to generate parallel processing data for performing parallel operations based on the wine-jib frame; And
And a parallel channel code encoding unit configured to perform parallel processing channel code encoding based on the generated parallel processing message.
블록화하고 양자화된 와이너-지브 프레임을 비트플레인으로 생성하고 상기 생성된 비트플레인을 하나의 블록을 구성하는 복수개의 비트플레인이 하나로 포함된 집합인 단일 병렬 처리 데이터 또는 다중 병렬 처리 데이터로 생성하는 것을 특징으로 하는 분산 비디오 코딩에서 병렬 채널 코드 부호화 장치.15. The method of claim 14, wherein the parallel processing data configuration unit,
Generates a blocked and quantized Weiner-Jib frame as a bitplane and generates the generated bitplane as single parallel processing data or multiple parallel processing data, which is a set including a plurality of bit planes constituting one block. Parallel channel code encoding apparatus for distributed video coding.
상기 병렬채널 코드 부호화부에서 수행되는 병렬 처리 채널 코드 부호화는 단일 명령 복수 데이터(SIMD, single instruction multiple data) 처리 방법으로 부호화되는 것을 특징으로 하는 분산 비디오 코딩에서 병렬 채널 코드 부호화 장치.The method of claim 14, wherein the parallel channel code encoder,
Parallel channel code encoding apparatus in the distributed video coding, characterized in that the parallel channel code encoding performed by the parallel channel code encoder is encoded by a single instruction multiple data (SIMD) processing method.
병렬 연산을 수행하기 위한 연산 처리 장치의 수를 판단하는 연산 환경 분석부를 더 포함하는 병렬 부호화 연산을 수행하는 분산 비디오 부호화 장치.The method of claim 13, wherein the channel code encoder,
A distributed video encoding apparatus for performing parallel encoding operations, further comprising a calculation environment analyzer configured to determine the number of arithmetic processing units for performing parallel operations.
분산 비디오 코딩에서 병렬 채널 코드 부호화 장치에 포함되는 채널 코드 부호화부로부터 부호화된 패리티 비트를 요청하고 상기 패리티 비트를 제공받는 채널 코드 복호화부; 및
상기 채널 코드 복호화부로부터 제공받은 데이터를 기초로 영상을 복원하여 출력하는 영상 복원부를 포함하는 분산 비디오 코딩에 기초한 채널 코드 복호화 장치.In the channel code decoding apparatus based on distributed video coding,
A channel code decoder requesting an encoded parity bit from a channel code encoder included in a parallel channel code encoder in distributed video coding and receiving the parity bit; And
And a video restoring unit for restoring and outputting an image based on the data provided from the channel code decoding unit.
입력된 와이너-지브 프레임을 기초로 병렬 처리 데이터를 생성하고 상기 생성된 병렬 처리 데이터를 이용하여 병렬 처리 채널 코드 부호화를 수행하는 것을 특징으로 하는 분산 비디오 코딩에 기초한 채널 코드 복호화 장치.The method of claim 18, wherein the channel code encoder,
And generating parallel processing data based on the input wine-jib frame and performing parallel processing channel code encoding using the generated parallel processing data.
와이너-지브 프레임을 기초로 병렬 연산을 수행하기 위한 병렬 처리 데이터를 생성하는 병렬 처리 데이터 구성부; 및
상기 생성된 병렬 처리 데이터를 기초로 병렬 처리 채널 코드 부호화를 수행하는 병렬 채널 코드 부호화부를 포함하는 분산 비디오 코딩에서 병렬 채널 코드 복호화 장치.The channel code encoder of claim 18,
A parallel processing data constructing unit configured to generate parallel processing data for performing parallel operations based on the wine-jib frame; And
And a parallel channel code encoding unit for performing parallel processing channel code encoding based on the generated parallel processing data.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20100112914 | 2010-11-12 | ||
KR1020100112914 | 2010-11-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120051567A KR20120051567A (en) | 2012-05-22 |
KR101152519B1 true KR101152519B1 (en) | 2012-06-01 |
Family
ID=46268627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110033101A KR101152519B1 (en) | 2010-11-12 | 2011-04-11 | Methods of encoding based on parallel processing, apparatuses for using the method, distributed video encoder including the appatuses and distributed video decoder |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101152519B1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009141688A (en) | 2007-12-06 | 2009-06-25 | Nippon Telegr & Teleph Corp <Ntt> | Image encoding-decoding method, system, image encoding program, and image decoding program |
-
2011
- 2011-04-11 KR KR1020110033101A patent/KR101152519B1/en not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009141688A (en) | 2007-12-06 | 2009-06-25 | Nippon Telegr & Teleph Corp <Ntt> | Image encoding-decoding method, system, image encoding program, and image decoding program |
Also Published As
Publication number | Publication date |
---|---|
KR20120051567A (en) | 2012-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5957560B2 (en) | Video encoding / decoding method and apparatus using large size transform unit | |
RU2417518C2 (en) | Efficient coding and decoding conversion units | |
KR101425602B1 (en) | Method and apparatus for encoding/decoding image | |
US20220217372A1 (en) | Modified upsampling for video coding technology | |
JP4819024B2 (en) | Image encoding / decoding method and system | |
JP2013179707A (en) | Method and apparatus for encoding and decoding image by using large size transformation unit | |
KR101511230B1 (en) | Apparatus and Method for Distributed Video Encoding and Decoding Using Adaptive Quantization | |
KR20170066712A (en) | Content adaptive entropy coding for next generation video | |
CN110383835B (en) | Apparatus and method for encoding or decoding using sub-band dependent predictive adaptation for GCLI entropy encoding | |
Magli et al. | Distributed source coding techniques for lossless compression of hyperspectral images | |
KR20110025444A (en) | Method and apparatus for generating bitstream based on syntax element | |
JP2012124890A (en) | Method and decoder for decoding encoded signal based on statistical dependencies between encoded signal and side information | |
Zhou et al. | Distributed video coding using interval overlapped arithmetic coding | |
JP4515378B2 (en) | Image decoding apparatus, program, and computer-readable recording medium | |
JP5004877B2 (en) | Image encoder, image decoder, image encoding method, image decoding method, and program | |
KR101152519B1 (en) | Methods of encoding based on parallel processing, apparatuses for using the method, distributed video encoder including the appatuses and distributed video decoder | |
KR20100082700A (en) | Wyner-ziv coding and decoding system and method | |
Thao et al. | Side information creation using adaptive block size for distributed video coding | |
CN109413446B (en) | Gain control method in multiple description coding | |
Badem et al. | Transform domain residual coding technique for distributed video coding | |
GB2478996A (en) | Reconstruction of at least one missing area of a sequence of digital images | |
Rup et al. | Recent advances in distributed video coding | |
KR20120110609A (en) | Methods of encoding and decoding hierarchical frame and apparatuses for using the same | |
CN115623220A (en) | Hyperspectral image side information generation method based on hierarchical prediction | |
KR101308735B1 (en) | Apparatus and Method for encoding/decoding in distributed video coding by using parity-bit estimation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160328 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |