WO2012173317A1 - 멀티 쓰레드 부호화 및 복호화 방법 및 이를 적용한 인코더, 디코더 및 컴퓨터로 읽을 수 있는 기록매체 - Google Patents
멀티 쓰레드 부호화 및 복호화 방법 및 이를 적용한 인코더, 디코더 및 컴퓨터로 읽을 수 있는 기록매체 Download PDFInfo
- Publication number
- WO2012173317A1 WO2012173317A1 PCT/KR2011/009838 KR2011009838W WO2012173317A1 WO 2012173317 A1 WO2012173317 A1 WO 2012173317A1 KR 2011009838 W KR2011009838 W KR 2011009838W WO 2012173317 A1 WO2012173317 A1 WO 2012173317A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- gom
- decoding
- layer
- encoding
- macroblock
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/177—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
Definitions
- the present invention relates to a multi-threaded encoding and decoding method, an encoder, a decoder, and a computer-readable recording medium to which the same is applied. More particularly, the present invention relates to a layered image in which a plurality of pictures are constituted by one access unit.
- SVC Scalable Video Coding
- the SVC technology included in the existing standard has not been commercially successful due to the problem of lowering compression efficiency and increasing decoder complexity. Therefore, the SVC technology included in H.264 / AVC is the fourth scalable codec technology that partially compensates for the disadvantages of the existing technology.
- H.264 / AVC is a single layer coding method in which one picture constitutes one access unit, whereas SVC has one or more pictures.
- the multilayer coding scheme constituting the access unit is adopted.
- the spatial, temporal, and image quality scalable functions are supported through a layered video encoding method.
- JSVM Joint Scalable Video Model
- H.264 / AVC SVC reference software employs a single-threaded encoding and decoding scheme. This method is very difficult to encode and decode a full-HD image in real time due to the inter-layer prediction operation amount and the speed degradation due to memory access and use in each layer.
- H.264 / AVC SVC which is a typical layered image encoding method, uses macroblock-based adaptive inter-layer prediction
- the dependency between layers means that encoding or decoding of a lower layer macroblock corresponding to a specific macroblock of an upper layer must be completed in order to encode or decode a specific macroblock in an upper layer.
- adaptive interlayer prediction based on macroblock means that only a specific macroblock in an upper layer selectively uses lower layer information.
- the conventional group of picture (GOP) based multithread coding scheme for layered images has disadvantages such as encoding delay and excessive memory usage as much as GOP size. It also has the property that this method is not applicable to decoders.
- the present invention has been made to solve the above problems, and an object of the present invention is to analyze the relationship between a plurality of layer pictures included in one access unit, and analyze the result.
- a multi-threaded encoding or decoding method for encoding or decoding one access unit by encoding or decoding each of a plurality of layer pictures using a separate thread, and an encoder or decoder and a computer to which the same is applied can be read.
- a recording medium To provide a recording medium.
- a multi-thread decoding method of a layered video a plurality of layer pictures included in one access unit (access unit) analyzing the relationship between pictures; And decrypting one access unit by decrypting each of the plurality of layer pictures by using a separate thread for each of the plurality of layer pictures.
- the analyzing may include analyzing whether there is a picture that does not need decoding among the plurality of layer pictures, and wherein the decoding may include decoding other pictures except for the picture that do not need decoding, among the plurality of layer pictures. It may be.
- the decoding may include broadcasting a GOM processing completion signal to a higher layer whenever decoding of each group of macroblocks (GOM) of a base layer (BL) or a reference layer (RL reference layer) is completed. It may also include;
- the decoding step when the current macroblock is a macroblock using inter-layer prediction in an enhancement layer picture, the GOM processing progress checking procedure of the base layer or the reference layer is performed using the GOM processing completion signal. step; And, when decoding of the GOM of the reference layer corresponding to the current macroblock is completed, decoding the current macroblock.
- the decoding may include waiting for a next GOM processing completion signal when the decoding of the GOM of the reference layer corresponding to the current macroblock is not completed.
- the macroblock using the inter-layer prediction may be any one or more predictions of motion, intra, and residual prediction.
- a multi-thread encoding method of a layered video composed of a plurality of access units includes a separate thread for each of the plurality of layer pictures. encoding one access unit by encoding each using a thread).
- the encoding may include broadcasting a GOM processing completion signal whenever encoding of each GOM (Group of Macroblock) of a base layer (BL) or a reference layer (RL Reference Layer) is completed. You may.
- the GOM processing progress check procedure of the base layer or the reference layer is performed using the GOM processing completion signal. step; And when the decoding of the GOM of the reference layer corresponding to the current macroblock is completed, encoding the current macroblock.
- the encoding may include waiting for a next GOM processing completion signal when encoding of the GOM of the reference layer corresponding to the current macroblock is not completed.
- the macroblock using the inter-layer prediction may use prediction of one or more of motion, intra, and residual prediction.
- a relationship between a plurality of layer pictures included in one access unit is analyzed, and according to the analyzed result, a separate picture is obtained for each of the plurality of layer pictures. It is possible to provide a multithreaded encoding or decoding method for processing a single access unit at high speed by encoding or decoding using threads, and an encoder or decoder and a computer-readable recording medium to which the same is applied. By analyzing the relationship first, it is possible to reduce unnecessary operations in decoding. In addition, encoders or decoders can increase parallelism by reducing thread synchronization overhead. In addition, the present invention has the advantage that there is no increase in memory usage and encoding or decoding delay which is a disadvantage of conventional picture-based or group of picture (GOP) -based parallel processing.
- GOP group of picture
- FIG. 1 is a flowchart illustrating a multi-thread encoding and decoding method of a layered video composed of a plurality of access units of a decoder according to an embodiment of the present invention
- FIGS. 2A and 2B are flowcharts provided to explain a case where an encoding and decoding method is applied to an H.264 / AVC (Advanced Video Coding) Scalable Video Coding (SVC) encoder and decoder according to an embodiment of the present invention
- H.264 / AVC Advanced Video Coding
- SVC Scalable Video Coding
- FIG. 3 is a diagram illustrating a structure of multithreaded encoding and decoding based on GOM (Group of Macroblock) for each layer according to an embodiment of the present invention
- FIG. 4 is a diagram illustrating a process of encoding and decoding a BL or RL picture according to an embodiment of the present invention
- 5A is a diagram illustrating a process of encoding and decoding a macroblock of an EL picture according to an embodiment of the present invention
- 5B is a flowchart provided to explain in detail a GOM encoding and decoding process progress checking procedure of an RL according to an embodiment of the present invention.
- FIG. 1 is a diagram for describing a multi-thread encoding or decoding method of a layered video including a plurality of access units (AUs) of an encoder or a decoder according to an embodiment of the present invention. It is a flow chart.
- AUs access units
- an access unit represents one access unit composed of several layer pictures located at one time stamp. That is, the access unit represents a screen corresponding to one time zone, and the plurality of layer pictures form one screen.
- the encoder or decoder analyzes a relationship between a plurality of layer pictures included in one access unit (S110). It is analyzed whether a picture which is not necessary to encode or decode among the plurality of layer pictures exists.
- a picture that does not need decoding refers to a lower layer picture which the upper layer picture does not refer to at all among the various layer pictures. For example, in an AU having three layers, if the top layer becomes the target layer shown on the actual screen, and the target layer refers only to the bottom layer, the middle layer becomes a picture that does not need decoding.
- the encoder or the decoder encodes or decodes one access unit by encoding or decoding each of the plurality of layer pictures using a separate thread, respectively (S120). That is, the encoder or the decoder performs the encoding or decoding of each layer picture in parallel by using the same number of threads as the number of the layer pictures.
- the encoder or the decoder encodes or decodes the remaining pictures in parallel except for a picture that is not required to be encoded or decoded according to the analysis result among the plurality of layer pictures.
- an unnecessary operation may be reduced when encoding or decoding by first analyzing a relationship between layers.
- FIGS. 2A and 2B are flow charts for the case of a decoder.
- AVC Advanced Video Coding
- SVC Scalable Video Coding
- the decoder receives image data in a bit-stream form through a file or a network (S210). At this time, the encoder or decoder receives the image data in units of NAL (Network Adaptation Layer) units.
- NAL Network Adaptation Layer
- the decoder extracts the start point of the access unit from the received bit stream image data (S220).
- the decoder continues to receive Network Adaptation Layer (NAL) units included in one access unit (S230).
- NAL Network Adaptation Layer
- the encoder or decoder interprets a slice header included in the first slice of each layer picture. Through this, the encoder or the decoder grasps information about the configuration of the slices constituting the picture.
- the decoder analyzes a relationship between a plurality of layer pictures included in one access unit (S240). In detail, the decoder analyzes the relationship between the plurality of layer pictures by using the ID of the reference layer and various flags.
- the decoder decodes one access unit by decoding each of the plurality of layer pictures using a separate thread for each of the plurality of layer pictures (S250). Through this process, the decoder decodes the access unit.
- the encoder receives raw image data from a file, a network, or an image input device (S260).
- the encoder configures an access unit composed of several layers through down-sampling or memory copying from the received raw image data (S270).
- the encoder encodes one access unit by encoding each of the plurality of layer pictures using separate threads, respectively (S280).
- the encoder encodes the access unit through this process.
- the encoder or the decoder performs the encoding or decoding of each layer picture in parallel by using the same number of threads as the number of the layer pictures.
- each layer picture is encoded or decoded in units of a group of macroblocks (GOMs).
- GOMs macroblocks
- FIG. 3 is a diagram illustrating a GOM-based multithreaded encoding or decoding execution structure according to an embodiment of the present invention.
- the GOM represents a set of macro blocks, and the size of the GOM may be set differently according to a situation.
- the number of macroblocks included in one macroblock row of each layer is set to the size of one GOM. That is, one macroblock row and one GOM are the same size.
- the size of the GOM is different for each layer in the spatial scalable image, and the size of the GOM is the same for each layer in the image quality scalable image.
- BL denotes a base layer
- RL denotes a reference layer
- EL1 denotes an enhancement layer 1
- EL2 denotes an enhancement layer 2.
- the BL serves as the RL.
- the inter-layer GOM-based multithreaded encoding or decoding execution structure shown in FIG. 3 may increase parallelism speed by reducing thread synchronization overhead.
- the BL or RL thread broadcasts a GOM processing completion signal whenever GOM encoding or decoding is completed (Broadcast).
- the GOM process completion signal is a signal indicating that encoding or decoding of the GOM is completed.
- the GOM processing completion signal is broadcasted so that all EL threads can receive it. This is because one RL can be referenced by one or more ELs.
- the EL thread Before the EL thread encodes or decodes the current macroblock, the EL thread confirms whether the encoding or decoding of the GOM to which the corresponding RL macroblock belongs is completed through the GOM processing progress check procedure of the RL. At this time, the GOM processing progress checking procedure of the RL is performed using the GOM processing completion signal.
- the GOM processing progress checking procedure of the RL is performed only when the current macroblock is a macroblock using adaptive interlayer prediction. For example, the encoder or decoder will only go through the GOM encoding or decoding process progress checking procedure of the RL only if the macro block uses one or more of motion, intra, and residual prediction. . If the processing of the corresponding GOM of the RL has not yet completed, the EL thread must wait for the GOM processing completion signal. If the processing of the corresponding GOM of the RL has already been completed, the EL thread continues to encode or decode.
- FIGS. 4 to 5B is a diagram illustrating an encoding or decoding process of a BL or RL picture according to an embodiment of the present invention.
- the encoder or the decoder encodes or decodes the macro block (S410).
- the encoder or decoder determines whether the currently encoded or decoded macroblock is the end of the GOM (S420). If the current encoded or decoded macroblock is not the end of the GOM (S420-N), the encoder or decoder encodes or decodes the next macroblock (S410).
- the encoder or decoder broadcasts the GOM process completion signal (S430).
- the encoder or the decoder checks whether the currently encoded or decoded GOM is the last GOM in the picture (S440). If the currently encoded or decoded GOM is not the last GOM in the picture (S440-N), the encoder or decoder repeatedly encodes or decodes the processes from S410 to S430 for the next GOM. On the other hand, if the currently encoded or decoded GOM is the last GOM in the picture (S440-Y), the encoder or decoder completes the encoding or decoding of the RL picture.
- the encoder or decoder broadcasts a GOM processing completion signal whenever each GOM of the RL picture is encoded or decoded.
- the encoder or decoder checks whether encoding or decoding of the GOM to which the corresponding RL macroblock belongs is completed, and then encodes or decodes the current macroblock. Done.
- 5A is a diagram illustrating a process of encoding or decoding a macro block of an EL picture according to an embodiment of the present invention.
- the encoder or decoder determines an upsampling scheme for inter-layer prediction of the macroblock included in the EL picture.
- the encoder or the decoder performs a GOM encoding or decoding process progress checking procedure of the RL (S520).
- the GOM encoding or decoding processing progress check result of the RL indicates that the encoding or decoding of the GOM of the RL to which the RL macroblock corresponding to the EL macroblock currently being encoded or decoded belongs is completed, the encoder or the decoder uses motion upsampling.
- the current macroblock is encoded or decoded (S530).
- the encoder or decoder performs a GOM encoding or decoding process progress checking procedure of the RL (S550).
- the encoder or the decoder is intra-up.
- the current macroblock is encoded or decoded by using sampling (S560). Intra prediction is exceptionally required for the encoding or decoding of the current macro block, the macro block of the RL picture corresponding to the current macro block and the macro blocks of the next row of the macro block are required.
- the encoder or decoder waits until encoding or decoding is completed until the next GOM of the GOM of the RL including the RL macroblock corresponding to the EL macroblock currently being encoded or decoded. Later, encoding or decoding of the current macroblock is performed.
- the encoder or decoder performs a GOM encoding or decoding process progress checking procedure of the RL (S580).
- the encoder or the decoder performs residual upsampling.
- the current macroblock is encoded or decoded using the method (S590).
- 5B is a flowchart provided to explain in detail a GOM encoding or decoding process progress checking procedure of an RL according to an embodiment of the present invention.
- the encoder or the decoder calculates the coordinates of the macroblock of the RL corresponding to the macroblock of the EL currently being encoded or decoded (S600).
- the (x, y) coordinates of the macroblock of the RL corresponding to the macroblock of the EL currently being encoded or decoded are represented by (mb_x_rl, mb_y_rl).
- the y coordinate of the GOM of the RL in which the current encoding or decoding processing is completed is indicated by mb_y_cd.
- the encoder or the decoder extracts mb_y_cd, which is the y coordinate of the GOM of the RL of which the current encoding or decoding processing is completed, using the GOM processing completion signal of the RL (S610).
- the encoder or the decoder determines whether the inter-layer prediction of the current macroblock is an intra upsampling scheme. If the current macroblock uses intra upsampling (S620-Y), the encoder or decoder encodes or decodes the next GOM of the GOM of the RL including the RL macroblock corresponding to the EL macroblock currently being encoded or decoded. It is determined whether is completed, that is, whether mb_y_rl + 1 ⁇ mb_y_cd is satisfied (S630). If mb_y_rl + 1 ⁇ mb_y_cd is satisfied (S630-Y), the encoder or decoder encodes or decodes the current macroblock (S650).
- the encoder or decoder waits for the GOM processing completion signal to be received (S660). When the GOM processing completion signal is received, the process returns to step S610.
- the encoder or decoder corresponds to the EL macroblock currently being encoded or decoded. It is determined whether encoding or decoding is completed up to the GOM of the RL including the RL macroblock, that is, whether mb_y_rl ⁇ mb_y_cd is satisfied (S640). If mb_y_rl ⁇ mb_y_cd is satisfied (S640-Y), the encoder or decoder encodes or decodes the current macroblock (S650).
- the encoder or decoder waits for the GOM processing completion signal to be received (S660). When the GOM processing completion signal is received, the process returns to step S610.
- the multi-threaded encoding or decoding method through such a process has an advantage that the thread synchronization overhead is not very large. Because, in general, the encoding, encoding, or decoding speed of the RL is faster than that of the EL, the case of waiting for the GOM processing of the RL from the EL perspective rarely occurs except for the first start (that is, GOM1 in FIG. 3). Also, even in situations where the EL thread has to wait for the GOM processing completion signal of the RL, it is most often only waiting in the first macroblock in the GOM.
- the technical idea of the present invention can be applied to a computer-readable recording medium containing a computer program for performing the encoding or decoding method according to the present embodiment.
- the technical idea according to various embodiments of the present disclosure may be implemented in the form of computer readable codes recorded on a computer readable recording medium.
- the computer-readable recording medium can be any data storage device that can be read by a computer and can store data.
- the computer-readable recording medium may be a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical disk, a hard disk drive, or the like.
- the computer-readable code or program stored in the computer-readable recording medium may be transmitted through a network connected between the computers.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
멀티쓰레드 부호화 또는 복호화 방법 및 이를 적용한 인코더 또는 디코더 및 컴퓨터로 읽을 수 있는 기록매체가 제공된다. 본 멀티쓰레드 부호화 또는 복호화 방법에 따르면, 하나의 액세스 유니트(access unit)에 포함된 복수개의 레이어 픽처(layer picture)들 간의 관계를 분석하고, 분석된 결과에 따라, 복수개의 레이어 픽처 각각에 대해 별개의 쓰레드(thread)를 이용하여 각각 부호화 또는 복호화할 수 있게 되어, 레이어 간의 관계를 먼저 분석함으로써 부호화 또는 복호화시 불필요한 연산을 줄일 수 있게 된다. 또한, 인코더 또는 디코더는 쓰레드 동기화 오버헤드를 줄여서 병렬 처리 속도를 높일수 있게 된다. 또한 본 발명은 기존의 픽처 기반 또는 GOP (Group of Picture) 기반 병렬 처리의 단점인 메모리 사용량 증가 및 부호화 또는 복호화 지연(delay)이 없다는 장점을 갖고 있다.
Description
본 발명은 멀티 쓰레드 부호화 및 복호화 방법 및 이를 적용한 인코더, 디코더 및 컴퓨터로 읽을 수 있는 기록매체에 관한 것으로, 더욱 상세하게는, 복수개의 의 픽쳐가 하나의 액세스 유니트(access unit)로 구성된 레이어드 영상(layered video)의 멀티쓰레드 부호화 및 복호화 방법 및 이를 적용한 인코더, 디코더 및 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
최근의 유비쿼터스 환경에서 다양한 네트워크를 통하여, 다양한 단말기를 대상으로 하는 비디오 커뮤니케이션 서비스, 예를 들면 IPTV, 모바일 IPTV, 모바일 방송, 영상 통화, 멀티스크린 미디어 서비스 등, 에 관심이 높아지면서 스케일러블 영상 관련 산업이 활성화되고 있다. 2000년대 중반부터 이러한 관련 산업계의 요구에 부응하기 위하여, 하나의 비디오 스트림 내에서 공간적, 시간적, 화질적 스케일러블 기능을 지원하는 Scalable Video Coding(SVC)이 H.264/AVC의 amendment 3으로써 2007년 말에 표준화 되었다. 사실 이러한 SVC 기능은 1990년대 중반부터 산업계의 요구에 의해 기존의 국제표준 MPEG-2, H.263, MPEG-4에도 모두 포함되어 있는 필수적인 기술이다. 그러나 기존 표준에 포함된 SVC 기술은 압축 효율 저하 및 복호화기 복잡도 증가 문제로 인해 상업적으로는 성공하지 못했다. 따라서 H.264/AVC에 포함된 SVC 기술은 기존 기술의 단점을 어느 정도 보완한 네 번째 스케일러블 코덱 기술이다.
기존 국제표준인 H.264/AVC 와 SVC의 가장 큰 차이점 중의 하나는, 기존 H.264/AVC는 하나의 픽처가 하나의 엑세스 유니트를 구성하는 싱글 레이어 부호화 방식인데 비해 SVC는 복수의 픽처가 하나의 엑세스 유니트를 구성하는 멀티 레이어 부호화 방식을 채용하고 있다는 것이다. 즉, 레이어드 영상 부호화 방식을 통해, 공간적, 시간적, 화질적 스케일러블 기능을 지원하고 있다.
기존의 H.264/AVC SVC 참조 소프트웨어인 JSVM (Joint Scalable Video Model) 은 싱글 쓰레드 기반의 부호화 및 복호화 방식을 채택하고 있다. 이러한 방식은 멀티 레이어의 레이어 간 예측 연산량 및 각 레이어 내에서의 메모리 접근 및 사용에 의한 속도 저하로 인해 Full-HD 영상의 실시간 부호화 및 복호화가 매우 어렵다.
기존의 대표적인 레이어드 영상 부호화 방법인 H.264/AVC SVC 는 매크로블록 기반의 적응적인 레이어 간 예측을 이용하기 때문에, 레이어간에 의존성이 생겨서, 각각의 레이어를 단순히 병렬 처리하는 멀티쓰레드 부호화 및 복호화 방법은 불가능하다. 여기에서 레이어간의 의존성이란, 상위 레이어에서 특정 매크로블록을 부호화 또는 복호화하기 위해서는 상위 레이어의 특정 매크로블록에 대응하는 하위 레이어 매크로블록의 부호화 또는 복호화가 이미 완료된 상태여야 함을 의미한다. 또한 매크로블록 기반의 적응적인 레이어 간 예측이란, 상위 레이어에서 특정 매크로블록만이 선택적으로 하위 레이어 정보를 이용함을 의미한다.
따라서 매크로블록 기반의 쓰레드 동기화를 이용하는 멀티쓰레드 부호화 및 복호화 방법이 있을 수 있는데, 이는 상위 레이어의 매크로블록을 부호화 또는 복호화할 때마다, 하위 레이어의 해당되는 매크로블록의 부호화 또는 복호화가 종료되었는지 확인하는 동기화가 필요한 방법이다. 그러나 이런 매크로블록 기반의 쓰레드 동기화는 동기화 오버헤드에 의한 병렬 처리 속도 저하가 매우 크기 때문에, 멀티쓰레드 부호화 및 복호화에 의한 속도 향상 정도가 너무 낮다는 단점을 가지고 있다.
한편 종래에 사용하는 레이어드 영상에 대한 싱글 쓰레드 부호화 및 복호화는 멀티코어 프로세서 (예를 들어 x86 및 ARM CPU) 시대에 Full-HD 영상의 실시간 부호화 및 복호화가 거의 불가능하다. 또한 만약 싱글 쓰레드로 실시간 부호화 및 복호화가 가능하더라도 프로세서의 높은 동작 속도가 필요하므로 전력 소모가 매우 커지는 단점을 가지게 된다.
종래의 레이어드 영상에 대한 GOP (Group of Picture) 기반 멀티쓰레드 부호화 방식은 GOP 크기만큼의 부호화 지연과 과다한 메모리 사용 이라는 단점을 가지고 있다. 또한 이 방식은 복호화기에는 적용할 수 없다는 속성도 갖고 있다.
따라서, 이와 같은 단점들을 보완하기 위한 멀티쓰레드 부호화 및 복호화 방법을 제공하기 위한 방안의 모색이 요청된다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, 하나의 액세스 유니트(access unit)에 포함된 복수개의 레이어 픽처(layer picture)들 간의 관계를 분석하고, 분석된 결과에 따라, 복수개의 레이어 픽처 각각에 대해 별개의 쓰레드(thread)를 이용하여 각각 부호화 또는 복호화함으로써 하나의 액세스 유니트를 부호화 또는 복호화하는 멀티쓰레드 부호화 또는 복호화 방법 및 이를 적용한 인코더 또는 디코더 및 컴퓨터로 읽을 수 있는 기록매체를 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른, 레이어드 영상(layered video)의 멀티쓰레드(multi-thread) 복호화 방법은, 하나의 액세스 유니트(access unit)에 포함된 복수개의 레이어 픽처(layer picture)들 간의 관계를 분석하는 단계; 및 상기 분석된 결과에 따라, 복수개의 레이어 픽처 각각에 대해 별개의 쓰레드(thread)를 이용하여 각각 복호화함으로써 하나의 액세스 유니트를 복호화하는 단계;를 포함한다.
그리고, 상기 분석단계는, 상기 복수개의 레이어 픽처들 중 복호화가 불필요한 픽처가 존재하는지 여부를 분석하고, 상기 복호화 단계는, 상기 복수개의 레이어 픽처들 중 상기 복호화가 불필요한 픽처를 제외한 나머지 픽처들을 복호화할 수도 있다.
또한, 상기 복호화 단계는, 기본 레이어(BL : Base Layer) 또는 참조 레이어(RL Reference Layer)의 각 GOM(Group of Macroblock)의 복호화가 완료될 때마다 GOM 처리 완료 신호를 상위 레이어로 브로드캐스트하는 단계;를 포함할 수도 있다.
그리고, 상기 복호화 단계는, 현재 매크로블록이 확장 레이어 픽처 내의 레이어간 예측을 사용하는 매크로블록인 경우,상기 GOM 처리 완료 신호를 이용하여 상기 기본 레이어 또는 참조 레이어의 GOM 처리 진행 상황 확인 절차를 수행하는 단계; 상기 현재 매크로 블록에 대응되는 참조 레이어의 GOM의 복호화가 완료된 경우, 현재 매크로 블록을 복호화하는 단계;를 포함할 수도 있다.
또한, 상기 복호화 단계는, 상기 현재 매크로 블록에 대응되는 참조 레이어의 GOM의 복호화가 완료되지 않은 경우, 다음 GOM 처리 완료 신호를 기다리는 단계;를 포함할 수도 있다.
그리고, 상기 레이어간 예측을 사용하는 매크로블록은, 모션(motion), 인트라(intra), 및 레지듀얼(residual) 예측 중 어느 하나 또는 그 이상의 예측일 수도 있다.
한편, 본발명의 일 실시예에 따른, 복수개의 액세스 유니트(access unit)로 구성된 레이어드 영상(layered video)의 멀티쓰레드(multi-thread) 부호화 방법은, 복수개의 레이어 픽처 각각에 대해 별개의 쓰레드(thread)를 이용하여 각각 부호화함으로써 하나의 액세스 유니트를 부호화하는 단계;를 포함한다.
그리고, 상기 부호화 단계는, 기본 레이어(BL : Base Layer) 또는 참조 레이어(RL Reference Layer)의 각 GOM(Group of Macroblock)의 부호화가 완료될 때마다 GOM 처리 완료 신호를 브로드캐스트하는 단계;를 포함할 수도 있다.
또한, 상기 부호화 단계는, 현재 매크로블록이 확장 레이어 픽처 내의 레이어간 예측을 사용하는 매크로블록인 경우,상기 GOM 처리 완료 신호를 이용하여 상기 기본 레이어 또는 참조 레이어의 GOM 처리 진행 상황 확인 절차를 수행하는 단계; 상기 현재 매크로 블록에 대응되는 참조 레이어의 GOM의 복호화 단계가 완료된 경우, 현재 매크로 블록을 부호화하는 단계;를 포함할 수도 있다.
그리고, 상기 부호화 단계는, 상기 현재 매크로 블록에 대응되는 참조 레이어의 GOM의 부호화가 완료되지 않은 경우, 다음 GOM 처리 완료 신호를 기다리는 단계;를 포함할 수도 있다.
또한, 상기 레이어간 예측을 사용하는 매크로블록은, 모션(motion), 인트라(intra), 및 레지듀얼(residual) 예측 중 하나 이상의 예측을 사용할 수도 있다.
본 발명의 다양한 실시예에 따르면, 하나의 액세스 유니트(access unit)에 포함된 복수개의 레이어 픽처(layer picture)들 간의 관계를 분석하고, 분석된 결과에 따라, 복수개의 레이어 픽처 각각에 대해 별개의 쓰레드(thread)를 이용하여 각각 부호화 또는 복호화함으로써 하나의 액세스 유니트를 고속으로 처리하는 멀티쓰레드 부호화 또는 복호화 방법 및 이를 적용한 인코더 또는 디코더 및 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있게 되어, 레이어 간의 관계를 먼저 분석함으로써 복호화시 불필요한 연산을 줄일 수 있게 된다. 또한, 인코더 또는 디코더는 쓰레드 동기화 오버헤드를 줄여서 병렬 처리 속도를 높일수 있게 된다. 또한 본 발명은 기존의 픽처 기반 또는 GOP (Group of Picture) 기반 병렬 처리의 단점인 메모리 사용량 증가 및 부호화 또는 복호화 지연(delay)이 없다는 장점을 갖고 있다.
도 1은 본 발명의 일 실시예에 따른, 디코더의 복수개의 액세스 유니트(access unit)로 구성된 레이어드 영상(layered video)의 멀티쓰레드(multi-thread) 부호화 및 복호화 방법을 설명하기 위한 흐름도,
도 2a 및 도 2b는 본 발명의 일 실시예에 따른, 부호화 및 복호화 방법이 H.264/AVC(Advanced Video Coding) SVC(Scalable Video Coding) 인코더 및 디코더에 적용된 경우를 설명하기 위해 제공되는 흐름도,
도 3은 본 발명의 일 실시예에 따른, 각 레이어별 GOM(Group of Macroblock) 기반 멀티쓰레드 부호화 및 복호화 실행 구조를 도시한 도면,
도 4는 본 발명의 일 실시예에 따른, BL 또는 RL 픽처의 부호화 및 복호화 과정을 도시한 도면,
도 5a는 본 발명의 일 실시예에 따른, EL 픽처의 매크로 블록을 부호화 및 복호화 과정을 도시한 도면,
도 5b는 본 발명의 일 실시예에 따른, RL의 GOM 부호화 및 복호화 처리 진행상황 확인 절차에 대해 상세히 설명하기 위해 제공되는 흐름도이다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른, 인코더 또는 디코더의 복수개의 액세스 유니트(AU : access unit)로 구성된 레이어드 영상(layered video)의 멀티쓰레드(multi-thread) 부호화 또는 복호화 방법을 설명하기 위한 흐름도이다.
여기에서, 액세스 유니트는 하나의 시간(time stamp)대에 위치한 여러개의 레이어 픽처로 구성된 하나의 접근 단위를 나타낸다. 즉, 액세스 유니트는 하나의 시간대에 대응되는 화면을 나타내며, 복수개의 레이어 픽처가 하나의 화면을 이루게 된다.
일단, 인코더 또는 디코더는 하나의 액세스 유니트(access unit)에 포함된 복수개의 레이어 픽처(layer picture)들 간의 관계를 분석한다(S110). 상기 복수개의 레이어 픽처들 중 부호화 또는 복호화가 불필요한 픽처가 존재하는지 여부를 분석한다. 여기에서 복호화가 불필요한 픽처란, 여러 레이어 픽처 중에, 상위 레이어 픽처가 전혀 참조하지 않는 하위 레이어 픽처를 의미한다. 예를 들어, 3개의 레이어를 가진 AU에서 최상위 레이어가 실제 화면에 보여지는 타겟 레이어가 되고, 타겟 레이어가 최하위 레이어만을 참조한다고 하면, 중간 레이어는 복호화가 불필요한 픽처가 된다.
그 후에, 인코더 또는 디코더는 분석된 결과에 따라, 복수개의 레이어 픽처 각각에 대해 별개의 쓰레드(thread)를 이용하여 각각 부호화 또는 복호화함으로써 하나의 액세스 유니트를 부호화 또는 복호화한다(S120). 즉, 인코더 또는 디코더는 레이어 픽처의 개수와 동일한 개수의 쓰레드를 이용하여, 각 레이어 픽처의 부호화 또는 복호화를 병렬로 수행하게 된다.
이 때, 인코더 또는 디코더는 복수개의 레이어 픽처들 중 분석 결과에 따라 분류된 부호화 또는 복호화가 불필요한 픽처를 제외한 나머지 픽처들을 병렬로 부호화 또는 복호화하게 된다.
이와 같이, 본 실시예에 따른, 부호화 또는 복호화 과정은 레이어 간의 관계를 먼저 분석함으로써 부호화 또는 복호화시 불필요한 연산을 줄일 수 있게 된다.
이하에서는, 도 2a 및 도 2b를 참고하여, 본 발명의 일 실시예에 따른 부호화 또는 복호화 방법이 H.264/AVC(Advanced Video Coding) SVC(Scalable Video Coding) 인코더 또는 디코더에 적용된 경우를 설명한다. 도 2a는 디코더의 경우에 대한 흐름도이다.
일단, 디코더는 파일 또는 네트워크를 통해 비트-스트림 형태로 영상 데이터를 수신한다(S210). 이 때, 인코더 또는 디코더는 NAL(Network Adaptation Layer) 유니트 단위로 영상 데이터를 수신한다.
디코더는 수신된 비트 스트림 영상 데이터에서 액세스 유니트의 시작점을 추출한다(S220). 그리고, 디코더는 하나의 액세스 유니트 내에 포함된 NAL(Network Adaptation Layer) 유니트들을 계속해서 수신한다(S230). 이 때, 각 레이어 픽처의 첫번째 슬라이스(slice)가 수신되면, 인코더 또는 디코더는 각 레이어 픽처의 첫번째 슬라이스에 포함된 슬라이스 헤더를 해석한다. 이를 통해, 인코더 또는 디코더는 픽처를 구성하는 슬라이스들의 구성에 대한 정보를 파악하게 된다.
하나의 액세스 유니트에 해당되는 NAL 유니트들이 모두 수신된 경우, 디코더는 하나의 액세스 유니트(access unit)에 포함된 복수개의 레이어 픽처(layer picture)들 간의 관계를 분석한다(S240). 구체적으로, 디코더는 참조 레이어의 아이디 및 다양한 플래그(flag)들을 이용하여 복수개의 레이어 픽처들 간의 관계를 분석하게 된다.
그 후에, 디코더는 분석된 결과에 따라, 복수개의 레이어 픽처 각각에 대해 별개의 쓰레드(thread)를 이용하여 각각 복호화함으로써 하나의 액세스 유니트를 복호화한다(S250). 이와 같은 과정을 통해 디코더는 엑세스 유니트를 복호화하게 된다.
도 2b에 도시된 바와 같이, 부호화의 경우는 복호화와 달리, 인코더가 이미 인코딩 옵션을 모두 알고 있으므로, 레이어 픽처간의 관계를 분석할 필요는 없게 된다. 이하에서는, 도 2b를 참고하여 부호화에 대해 설명한다.
일단, 인코더는 파일, 네트워크 또는 영상입력장치로부터 raw 영상 데이터를 수신한다(S260). 그리고, 인코더는 수신된 raw 영상 데이터로부터 다운샘플링(down-sampling) 또는 메모리 복사를 통하여 여러 레이어로 구성되는 엑세스 유니트를 구성한다(S270). 그 후에, 인코더는 복수개의 레이어 픽처 각각에 대해 별개의 쓰레드를 이용하여 각각 부호화함으로써 하나의 엑세스 유니트를 부호화하게된다(S280). 인코더는 이와 같은 과정을 통해 엑세스 유니트를 부호화하게 된다.
즉, 인코더 또는 디코더는 레이어 픽처의 개수와 동일한 개수의 쓰레드를 이용하여, 각 레이어 픽처의 부호화 또는 복호화를 병렬로 수행하게 된다.
이 때, 각 레이어 픽처는 GOM(Group of Macroblock) 단위로 부호화 또는 복호화된다. 이 과정에서, 각 쓰레드별로 부호화 또는 복호화를 실행하는 관계에 대해서는, 도 3에 도시되어 있다. 도 3은 본 발명의 일 실시예에 따른, 각 레이어별 GOM(Group of Macroblock) 기반 멀티쓰레드 부호화 또는 복호화 실행 구조를 도시한 도면이다. 여기에서, GOM은 매크로 블록의 집합을 나타내며, GOM의 크기는 상황에 따라 다르게 설정될 수 있다. 본 실시예에서는 각 레이어의 하나의 매크로 블록 행에 포함되는 매크로 블록 개수를 하나의 GOM의 크기로 설정하였다. 즉, 하나의 매크로블록 행과 하나의 GOM은 크기가 같다. 이 경우, 공간적인 스케일러블 영상에서는 각 레이어마다 GOM의 크기가 달라지고, 화질적 스케일러블 영상에서는 각 레이어마다 GOM의 크기가 동일해진다.
본 실시예에서 BL은 기본 레이어(Base Layer), RL은 참조 레이어(Reference Layer), EL1은 확장 레이어 1(Enhancement Layer 1), EL2는 확장 레이어 2(Enhancement Layer 2)를 나타낸다. 도 3에서는 BL이 RL의 역할을 하게 된다.
도 3에 도시된 레이어 간 GOM 기반 멀티쓰레드 부호화 또는 복호화 실행 구조는 쓰레드 동기화 오버헤드를 줄여서 병렬 처리 속도를 높일 수 있다.
실행 순서는 다음과 같다.
1) BL 또는 RL 쓰레드는 GOM 부호화 또는 복호화가 완료될 때 마다 GOM 처리 완료 신호를 방송한다 (Broadcast). GOM 처리 완료 신호는 해당 GOM의 부호화 또는 복호화가 완료되었음을 나타내는 신호이다. 여기에서 GOM 처리 완료 신호는 모든 EL 쓰레드가 수신할 수 있도록 방송된다. 왜냐하면 하나의 RL은 하나 또는 그 이상의 EL들에 의해 참조될 수 있기 때문이다.
2) EL 쓰레드는 현재 매크로블록을 부호화 또는 복호화하기 전에, 대응하는 RL 매크로블록이 속한 GOM의 부호화 또는 복호화가 완료되어 있는지를 RL의 GOM 처리 진행 상황 확인 절차를 통해 확인한다. 이 때, RL의 GOM 처리 진행 상황 확인 절차는 GOM 처리 완료 신호를 이용하여 수행된다. 여기에서 RL의 GOM 처리 진행 상황 확인 절차는 현재 매크로블록이 적응적인 레이어간 예측을 사용하는 매크로블록인 경우에만 수행한다. 예를 들어, 인코더 또는 디코더는 매크로 블록이 모션(motion), 인트라(intra), 및 레지듀얼(residual) 예측 중 하나 이상을 사용하는 경우에만 RL의 GOM 부호화 또는 복호화 처리 진행상황 확인 절차를 거치게 된다. 만약 RL의 대응하는 GOM의 처리가 아직 완료되지 않았으면, EL 쓰레드는 GOM 처리 완료 신호를 기다려야 한다. 만약 RL의 대응하는 GOM의 처리가 이미 완료되어 있으면, EL 쓰레드는 계속 부호화 또는 복호화를 수행한다.
3) 하나의 액세스 유니트 내에 있는 BL, EL1, EL2 등의 픽처 부호화 또는 복호화가 모두 끝나면, 픽처 단위에서 쓰레드 동기(synchronization)를 맞춘 후에 다음 액세스 유니트 부호화 또는 복호화 절차로 넘어간다.
이와 같은, 레이어 간의 GOM 기반의 멀티 쓰레드 부호화 또는 복호화를 통해, 쓰레드 동기화로 인한 오버헤드를 줄일 수 있게 되므로, 병렬처리의 속도를 향상시킬 수 있게 된다. 또한, 추가적인 메모리 사용 및 코딩 지연이 발생하지 않게 된다.
이하에서는, 도 4 내지 도 5b를 참고하여, H.264/AVC SVC 인코더 또는 디코더에서 GOM 기반 동기화 방법에 대해 설명한다. 도 4는 본 발명의 일 실시예에 따른, BL 또는 RL 픽처의 부호화 또는 복호화 과정을 도시한 도면이다.
일단, 인코더 또는 디코더는 매크로 블록을 부호화 또는 복호화한다(S410). 그리고, 인코더 또는 디코더는 현재 부호화 또는 복호화된 매크로 블록이 GOM의 끝인지 여부를 판단한다(S420). 현재 부호화 또는 복호화된 매크로 블록이 GOM의 끝이 아닌 경우(S420-N), 인코더 또는 디코더는 다음 매크로 블록을 부호화 또는 복호화한다(S410).
만약, 현재 부호화 또는 복호화된 매크로 블록이 GOM의 끝인 경우(S420-Y), 인코더 또는 디코더는 GOM 처리 완료 신호를 브로드캐스트한다(S430). 그리고, 인코더 또는 디코더는 현재 부호화 또는 복호화된 GOM이 픽처 내의 마지막 GOM인지 여부를 확인한다(S440). 현재 부호화 또는 복호화된 GOM이 픽처 내의 마지막 GOM이 아닌 경우(S440-N), 인코더 또는 디코더는 다음 GOM에 대해 S410에서 S430까지의 과정을 반복하여 부호화 또는 복호화한다. 반면, 현재 부호화 또는 복호화된 GOM이 픽처 내의 마지막 GOM인 경우(S440-Y), 인코더 또는 디코더는 RL 픽처의 부호화 또는 복호화를 완료하게 된다.
이와 같은 과정을 통해, 인코더 또는 디코더는 RL 픽처의 각 GOM이 부호화 또는 복호화될때마다 GOM 처리 완료 신호를 브로드캐스트하게 된다.
이하에서는, 도 5a 및 도 5b를 참고하여, EL 픽처의 매크로 블록을 부호화 또는 복호화하는 과정에 대해 설명한다. 아래와 같은 과정을 통해, 인코더 또는 디코더는 EL 픽처의 현재 매크로블록을 부호화 또는 복호화하기 전에 대응하는 RL 매크로블록이 속한 GOM의 부호화 또는 복호화가 완료되어 있는지 확인한 후에, 현재 매크로 블록의 부호화 또는 복호화를 수행하게 된다.
도 5a는 본 발명의 일 실시예에 따른, EL 픽처의 매크로 블록을 부호화 또는 복호화 과정을 도시한 도면이다.
일단. 인코더 또는 디코더는 EL 픽처에 포함된 매크로 블록의 레이어간 예측을 위한 업 샘플링 방식을 판단한다. 매크로 블록이 모션 업샘플링 방식인 경우(S510-Y), 인코더 또는 디코더는 RL의 GOM 부호화 또는 복호화 처리 진행상황 확인 절차를 수행한다(S520). 그리고, RL의 GOM 부호화 또는 복호화 처리 진행상황 확인 결과, 현재 부호화 또는 복호화 중인 EL 매크로 블록에 대응하는 RL 매크로블록이 속한 RL의 GOM의 부호화 또는 복호화가 완료된 경우, 인코더 또는 디코더는 모션 업 샘플링을 이용해 현재 매크로 블록을 부호화 또는 복호화한다(S530).
한편, EL 매크로 블록이 인트라 업샘플링 방식을 이용할 경우(S540-Y), 인코더 또는 디코더는 RL의 GOM 부호화 또는 복호화 처리 진행상황 확인 절차를 수행한다(S550). 그리고, RL의 GOM 부호화 또는 복호화 처리 진행상황 확인 결과, 현재 부호화 또는 복호화 중인 EL 매크로블록에 대응하는 RL 매크로블록이 속한 RL의 GOM의 다음 GOM까지 부호화 또는 복호화가 완료된 경우, 인코더 또는 디코더는 인트라 업 샘플링을 이용해 현재 매크로 블록을 부호화 또는 복호화한다(S560). 인트라 예측은 예외적으로 현재 매크로 블록의 부호화 또는 복호화를 위해, 현재 매크로 블록에 대응되는 RL 픽처의 매크로 블록 및 그 매크로 블록의 바로 다음 행의 매크로 블록들이 필요하다. 따라서, 현재 매크로 블록이 인트라 업 샘플링을 이용하는 경우, 인코더 또는 디코더는 현재 부호화 또는 복호화 중인 EL 매크로블록에 대응하는 RL 매크로블록이 포함된 RL의 GOM의 다음 GOM까지 부호화 또는 복호화가 완료될때까지 대기한 후에 현재 매크로 블록의 부호화 또는 복호화를 수행하게 된다.
또한, 매크로 블록이 레지듀얼 업샘플링 방식을 이용할 경우(S570-Y), 인코더 또는 디코더는 RL의 GOM 부호화 또는 복호화 처리 진행상황 확인 절차를 수행한다(S580). 그리고, RL의 GOM 부호화 또는 복호화 처리 진행상황 확인 결과, 현재 부호화 또는 복호화 중인 EL 매크로블록에 대응하는 RL 매크로블록이 속한 RL의 GOM까지 부호화 또는 복호화가 완료된 경우, 인코더 또는 디코더는 레지듀얼 업 샘플링을 이용해 현재 매크로 블록을 부호화 또는 복호화한다(S590).
도 5b는 본 발명의 일 실시예에 따른, RL의 GOM 부호화 또는 복호화 처리 진행상황 확인 절차에 대해 상세히 설명하기 위해 제공되는 흐름도이다.
먼저, 인코더 또는 디코더는 현재 부호화 또는 복호화 중인 EL의 매크로 블록에 대응되는 RL의 매크로 블록의 좌표를 산출한다(S600). 여기에서, 현재 부호화 또는 복호화 중인 EL의 매크로 블록에 대응되는 RL의 매크로 블록의 (x,y) 좌표는 (mb_x_rl, mb_y_rl)로 표시한다. 그리고, 현재 부호화 또는 복호화 처리가 완료된 RL의 GOM의 y 좌표는 mb_y_cd로 표시한다.
인코더 또는 디코더는 RL의 GOM 처리 완료 신호를 이용하여 현재 부호화 또는 복호화 처리가 완료된 RL의 GOM의 y 좌표인 mb_y_cd를 추출한다(S610)
그리고, 인코더 또는 디코더는 현재 매크로 블록의 레이어간 예측이 인트라 업 샘플링 방식인지 여부를 확인한다(S620). 만약, 현재 매크로 블록이 인트라 업 샘플링 방식을 이용할 경우(S620-Y), 인코더 또는 디코더는 현재 부호화 또는 복호화 중인 EL 매크로블록에 대응하는 RL 매크로블록이 포함된 RL의 GOM의 다음 GOM까지 부호화 또는 복호화가 완료되었는지 여부, 즉, mb_y_rl + 1 ≤ mb_y_cd를 만족하는지 여부를 판단한다(S630). 그리고, mb_y_rl + 1 ≤ mb_y_cd를 만족하는 경우(S630-Y), 인코더 또는 디코더는 현재 매크로 블록을 부호화 또는 복호화한다(S650). 반면, mb_y_rl + 1 ≤ mb_y_cd를 만족하지 않는 경우(S630-N), 인코더 또는 디코더는 GOM 처리 완료 신호가 수신되기를 기다리게 되며(S660), GOM 처리 완료 신호가 수신되면 다시 S610 단계로 돌아가게 된다.
현재 매크로 블록의 레이어간 예측이 인트라 업 샘플링 방식이 아닌 경우, 즉, 모션 업 샘플링 또는 레지듀얼 업 샘플링 방식인 경우(S620-N), 인코더 또는 디코더는 현재 부호화 또는 복호화 중인 EL 매크로블록에 대응하는 RL 매크로블록이 포함된 RL의 GOM까지 부호화 또는 복호화가 완료되었는지 여부, 즉, mb_y_rl ≤ mb_y_cd를 만족하는지 여부를 판단한다(S640). 그리고, mb_y_rl ≤ mb_y_cd를 만족하는 경우(S640-Y), 인코더 또는 디코더는 현재 매크로 블록을 부호화 또는 복호화한다(S650). 반면, mb_y_rl ≤ mb_y_cd를 만족하지 않는 경우(S640-N), 인코더 또는 디코더는 GOM 처리 완료 신호가 수신되기를 기다리게 되며(S660), GOM 처리 완료 신호가 수신되면 다시 S610 단계로 돌아가게 된다.
이와 같은 과정을 통해, EL의 매크로 블록의 부호화 또는 복호화를 수행하게 된다. 이와 같은 과정을 통한 멀티 쓰레드 부호화 또는 복호화 방법은 쓰레드 동기화 오버헤드가 그리 크지 않다는 장점이 있다. 왜냐하면 일반적으로 RL의 부호화 또는 부호화 또는 복호화 속도가 EL 보다 빠르기 때문에, EL의 입장에서 RL의 GOM 처리를 기다려야 하는 경우는, 처음 시작(즉, 도 3에서 GOM1) 부분 빼고는 거의 일어나지 않는다. 또한 EL 쓰레드가 RL의 GOM 처리 완료 신호를 기다려야 하는 상황에서도, GOM 내의 첫 번째 매크로블록에서만 기다리는 경우가 대부분이다.
한편, 본 실시예에 따른 부호화 또는 복호화 방법을 수행하게 하는 컴퓨터 프로그램을 수록한 컴퓨터로 읽을 수 있는 기록매체에도 본 발명의 기술적 사상이 적용될 수 있음은 물론이다. 또한, 본 발명의 다양한 실시예에 따른 기술적 사상은 컴퓨터로 읽을 수 있는 기록매체에 기록된 컴퓨터로 읽을 수 있는 코드 형태로 구현될 수도 있다. 컴퓨터로 읽을 수 있는 기록매체는 컴퓨터에 의해 읽을 수 있고 데이터를 저장할 수 있는 어떤 데이터 저장 장치이더라도 가능하다. 예를 들어, 컴퓨터로 읽을 수 있는 기록매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광디스크, 하드 디스크 드라이브, 등이 될 수 있음은 물론이다. 또한, 컴퓨터로 읽을 수 있는 기록매체에 저장된 컴퓨터로 읽을 수 있는 코드 또는 프로그램은 컴퓨터간에 연결된 네트워크를 통해 전송될 수도 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
Claims (11)
- 복수개의 액세스 유니트(access unit)로 구성된 레이어드 영상(layered video)의 멀티쓰레드(multi-thread) 복호화 방법에 있어서,하나의 액세스 유니트(access unit)에 포함된 복수개의 레이어 픽처(layer picture)들 간의 관계를 분석하는 단계; 및상기 분석된 결과에 따라, 복수개의 레이어 픽처 각각에 대해 별개의 쓰레드(thread)를 이용하여 각각 복호화함으로써 하나의 액세스 유니트를 복호화하는 단계;를 포함하는 멀티쓰레드 복호화 방법.
- 제1항에 있어서,상기 분석단계는,상기 복수개의 레이어 픽처들 중 복호화가 불필요한 픽처가 존재하는지 여부를 분석하고,상기 복호화 단계는,상기 복수개의 레이어 픽처들 중 상기 복호화가 불필요한 픽처를 제외한 나머지 픽처들을 복호화하는 것을 특징으로 하는 멀티쓰레드 복호화 방법.
- 제1항에 있어서,상기 복호화 단계는,기본 레이어(BL : Base Layer) 또는 참조 레이어(RL Reference Layer)의 각 GOM(Group of Macroblock)의 복호화가 완료될 때마다 GOM 처리 완료 신호를 브로드캐스트하는 단계;를 포함하는 것을 특징으로 하는 멀티쓰레드 복호화 방법.
- 제3항에 있어서,상기 복호화 단계는,현재 매크로블록이 확장 레이어 픽처 내의 레이어간 예측을 사용하는 매크로블록인 경우,상기 GOM 처리 완료 신호를 이용하여 상기 기본 레이어 또는 참조 레이어의 GOM 처리 진행 상황 확인 절차를 수행하는 단계;상기 현재 매크로 블록에 대응되는 참조 레이어의 GOM의 복호화 단계가 완료된 경우, 현재 매크로 블록을 복호화하는 단계;를 포함하는 것을 특징으로 하는 멀티쓰레드 복호화 방법.
- 제4항에 있어서,상기 복호화 단계는,상기 현재 매크로 블록에 대응되는 참조 레이어의 GOM의 복호화가 완료되지 않은 경우, 다음 GOM 처리 완료 신호를 기다리는 단계;를 포함하는 것을 특징으로 하는 멀티쓰레드 복호화 방법.
- 제4항에 있어서,상기 레이어간 예측을 사용하는 매크로블록은,모션(motion), 인트라(intra), 및 레지듀얼(residual) 예측 중 하나 이상의 예측을 사용하는 것을 특징으로 하는 멀티쓰레드 복호화 방법.
- 복수개의 액세스 유니트(access unit)로 구성된 레이어드 영상(layered video)의 멀티쓰레드(multi-thread) 부호화 방법에 있어서,복수개의 레이어 픽처 각각에 대해 별개의 쓰레드(thread)를 이용하여 각각 부호화함으로써 하나의 액세스 유니트를 부호화하는 단계;를 포함하는 멀티쓰레드 부호화 방법.
- 제7항에 있어서,상기 부호화 단계는,기본 레이어(BL : Base Layer) 또는 참조 레이어(RL Reference Layer)의 각 GOM(Group of Macroblock)의 부호화가 완료될 때마다 GOM 처리 완료 신호를 브로드캐스트하는 단계;를 포함하는 것을 특징으로 하는 멀티쓰레드 부호화 방법.
- 제8항에 있어서,상기 부호화 단계는,현재 매크로블록이 확장 레이어 픽처 내의 레이어간 예측을 사용하는 매크로블록인 경우,상기 GOM 처리 완료 신호를 이용하여 상기 기본 레이어 또는 참조 레이어의 GOM 처리 진행 상황 확인 절차를 수행하는 단계;상기 현재 매크로 블록에 대응되는 참조 레이어의 GOM의 복호화 단계가 완료된 경우, 현재 매크로 블록을 부호화하는 단계;를 포함하는 것을 특징으로 하는 멀티쓰레드 부호화 방법.
- 제9항에 있어서,상기 부호화 단계는,상기 현재 매크로 블록에 대응되는 참조 레이어의 GOM의 부호화가 완료되지 않은 경우, 다음 GOM 처리 완료 신호를 기다리는 단계;를 포함하는 것을 특징으로 하는 멀티쓰레드 부호화 방법.
- 제9항에 있어서,상기 레이어간 예측을 사용하는 매크로블록은,모션(motion), 인트라(intra), 및 레지듀얼(residual) 예측 중 하나 이상의 예측을 사용하는 것을 특징으로 하는 멀티쓰레드 부호화 방법.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020110057875A KR101171149B1 (ko) | 2011-06-15 | 2011-06-15 | 멀티 쓰레드 부호화 및 복호화 방법 및 이를 적용한 인코더, 디코더 및 컴퓨터로 읽을 수 있는 기록매체 |
| KR10-2011-0057875 | 2011-06-15 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2012173317A1 true WO2012173317A1 (ko) | 2012-12-20 |
Family
ID=46886995
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2011/009838 Ceased WO2012173317A1 (ko) | 2011-06-15 | 2011-12-20 | 멀티 쓰레드 부호화 및 복호화 방법 및 이를 적용한 인코더, 디코더 및 컴퓨터로 읽을 수 있는 기록매체 |
Country Status (2)
| Country | Link |
|---|---|
| KR (1) | KR101171149B1 (ko) |
| WO (1) | WO2012173317A1 (ko) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101364086B1 (ko) | 2012-09-12 | 2014-02-21 | 전자부품연구원 | 영상 복호 방법 및 장치 |
| CN104904202A (zh) * | 2012-09-28 | 2015-09-09 | 三星电子株式会社 | 用于使用参考画面信息进行并行视频编码的方法和设备以及用于使用参考画面信息进行并行视频解码的方法和设备 |
| KR101531036B1 (ko) * | 2013-09-12 | 2015-06-23 | 전자부품연구원 | 3d 영상 복호화 장치 및 방법 |
| CN113126968B (zh) * | 2021-05-19 | 2024-05-10 | 网易(杭州)网络有限公司 | 任务执行方法、装置、电子设备和存储介质 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008118616A (ja) * | 2006-11-02 | 2008-05-22 | Intervideo Inc | マルチスレッドビデオデコーディングのための方法および装置 |
| KR20100097237A (ko) * | 2006-06-08 | 2010-09-02 | 퀄컴 인코포레이티드 | 비디오 블록들의 병렬 배치 디코딩 |
| JP2011066844A (ja) * | 2009-09-18 | 2011-03-31 | Toshiba Corp | 並列復号装置及びプログラム並びに符号化データの並列復号方法 |
-
2011
- 2011-06-15 KR KR1020110057875A patent/KR101171149B1/ko not_active Expired - Fee Related
- 2011-12-20 WO PCT/KR2011/009838 patent/WO2012173317A1/ko not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20100097237A (ko) * | 2006-06-08 | 2010-09-02 | 퀄컴 인코포레이티드 | 비디오 블록들의 병렬 배치 디코딩 |
| JP2008118616A (ja) * | 2006-11-02 | 2008-05-22 | Intervideo Inc | マルチスレッドビデオデコーディングのための方法および装置 |
| JP2011066844A (ja) * | 2009-09-18 | 2011-03-31 | Toshiba Corp | 並列復号装置及びプログラム並びに符号化データの並列復号方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| KR101171149B1 (ko) | 2012-08-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7128953B2 (ja) | ピクチャの復号のための方法、機器及びコンピュータプログラム | |
| CN115668914A (zh) | 用于在视频流中用信号通知神经网络拓扑、参数和处理信息的技术 | |
| CN1154344C (zh) | 减少视频译码器处理能力需求的方法 | |
| CN103314592B (zh) | 用于选择性地破坏视频编码中的预测的方法和系统 | |
| WO2020083403A1 (zh) | 图像预测方法及装置 | |
| CN119277058A (zh) | 视频编解码的方法、装置及存储介质 | |
| CN111988619A (zh) | 视频编解码方法、装置、计算机设备和存储介质 | |
| JP2023134768A (ja) | イントラインター予測モードを改善するための方法及び装置、並びにコンピュータプログラム | |
| JP2023126928A (ja) | マルチラインイントラ予測に対するmpmリスト生成を実現するための方法、装置、及びコンピュータプログラム | |
| WO2020189817A1 (ko) | 타일 기반 스트리밍을 위한 분할영상 분산 디코딩 방법 및 시스템 | |
| JP2023126928A5 (ko) | ||
| CN1617593A (zh) | 发信号通知视频流中的有效入口点 | |
| CN113424546A (zh) | 用于预测模式和已编码块标志(cbf)的进一步改进的上下文设计的方法和装置 | |
| CN115623202A (zh) | 一种帧内-帧间预测控制方法、装置、设备及存储介质 | |
| AU2023203151B2 (en) | Method for access unit delimiter signaling | |
| CN111757122A (zh) | 视频解码方法和装置、计算机设备和存储介质 | |
| CN111726627A (zh) | 视频解码方法、装置、计算机设备和存储介质 | |
| CN113875256A (zh) | 用于视频编解码的方法和装置 | |
| JP2023015265A (ja) | ネットワーク抽象化ユニットヘッダからのタイルの識別化 | |
| WO2018070556A1 (ko) | 정방형 또는 직방형 블록의 화면 내 예측모드 정보 추출 방법 및 장치 | |
| CN113348666A (zh) | 用于图块组识别的方法 | |
| CN118784840A (zh) | 视频编解码方法、处理视觉媒体数据和码流的方法、电子设备以及存储介质 | |
| CN111901609A (zh) | 视频解码的方法和装置、计算机设备和存储介质 | |
| CN113508582B (zh) | 视频编码、解码的方法、装置及可读介质 | |
| WO2012173317A1 (ko) | 멀티 쓰레드 부호화 및 복호화 방법 및 이를 적용한 인코더, 디코더 및 컴퓨터로 읽을 수 있는 기록매체 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 11867985 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 11867985 Country of ref document: EP Kind code of ref document: A1 |