KR20240033618A - Video decoding device, operation method thereof, display device, and video system - Google Patents

Video decoding device, operation method thereof, display device, and video system Download PDF

Info

Publication number
KR20240033618A
KR20240033618A KR1020220151989A KR20220151989A KR20240033618A KR 20240033618 A KR20240033618 A KR 20240033618A KR 1020220151989 A KR1020220151989 A KR 1020220151989A KR 20220151989 A KR20220151989 A KR 20220151989A KR 20240033618 A KR20240033618 A KR 20240033618A
Authority
KR
South Korea
Prior art keywords
pipeline
unit
block
memory
unit data
Prior art date
Application number
KR1020220151989A
Other languages
Korean (ko)
Inventor
이미연
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US18/214,112 priority Critical patent/US20240080499A1/en
Priority to CN202310929726.2A priority patent/CN117651145A/en
Priority to EP23190423.6A priority patent/EP4340361A1/en
Publication of KR20240033618A publication Critical patent/KR20240033618A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/439Methods 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 cascaded computational arrangements for performing a single operation, e.g. filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods 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 characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

비디오 디코딩 장치, 그의 동작 방법, 디스플레이 장치, 및 비디오 시스템이 개시된다. 본 개시의 기술적 사상에 따른 비디오 디코딩 장치는, 비트스트림을 파이프라인 단위로 디코딩 처리하는 복수의 하드웨어 블록들, 및 복수의 하드웨어 블록들 사이에 위치하고 복수의 하드웨어 블록들 각각에 의해 파이프라인 단위로 처리된 유닛 데이터를 파이프라인 스테이지마다 저장하는 복수의 파이프라인 메모리들을 포함하는 디코더, 및 디코더에 의해 디코딩된 영상 데이터를 저장하는 메모리를 포함한다.A video decoding device, a method of operating the same, a display device, and a video system are disclosed. A video decoding device according to the technical idea of the present disclosure includes a plurality of hardware blocks that decode and process a bitstream in a pipeline unit, and are located between the plurality of hardware blocks and process the bitstream in a pipeline unit by each of the plurality of hardware blocks. It includes a decoder including a plurality of pipeline memories that store unit data for each pipeline stage, and a memory that stores image data decoded by the decoder.

Description

비디오 디코딩 장치, 그의 동작 방법, 디스플레이 장치, 및 비디오 시스템{VIDEO DECODING DEVICE, OPERATION METHOD THEREOF, DISPLAY DEVICE, AND VIDEO SYSTEM}Video decoding device, method of operation thereof, display device, and video system {VIDEO DECODING DEVICE, OPERATION METHOD THEREOF, DISPLAY DEVICE, AND VIDEO SYSTEM}

본 개시의 기술적 사상은 전자 장치에 관한 것이며, 보다 구체적으로는, 본 개시는 파이프라인 단위로 디코딩 동작을 수행하기 위한 비디오 디코딩 장치, 그의 동작 방법, 디스플레이 장치, 및 비디오 시스템에 관한 것이다.The technical idea of the present disclosure relates to an electronic device, and more specifically, the present disclosure relates to a video decoding device for performing a decoding operation on a pipeline basis, an operating method thereof, a display device, and a video system.

영상이나 음향이 디지털 데이터로 전환될 경우, 전환되는 디지털 데이터의 양은 상당히 크다. 압축되지 않은 디지털 데이터는 저장 공간을 많이 차지한다. 그래서, 디지털 데이터의 양을 압축하고 압축된 디지털 데이터를 비압축(decompression)하는 기술이 필요하게 되었다.When video or sound is converted to digital data, the amount of digital data converted is quite large. Uncompressed digital data takes up a lot of storage space. Therefore, a technology for compressing the amount of digital data and decompressing the compressed digital data has become necessary.

최근 새로운 비디오 압축 표준(Standard), 예를 들면, VVC(Versatile Video Coding)에 의하면, 블록의 처리 단위가 더 다양해졌고, 움직임 추정 및 보상 방법이 종래의 기술에 비해 훨씬 복잡해짐으로써 움직임 보상 시 요구되는 메모리 액세스량이 종래에 비해 훨씬 증가되었다. 따라서, 비디오 디코더에서 효율적인 메모리 액세스 방법이 요구된다.Recently, according to new video compression standards (VVC (Versatile Video Coding)), for example, VVC (Versatile Video Coding), the processing units of blocks have become more diverse, and motion estimation and compensation methods have become much more complex than conventional technologies, so the requirements for motion compensation are increased. The amount of memory access has increased significantly compared to before. Therefore, an efficient memory access method is required in a video decoder.

본 개시의 기술적 사상은, 비교적 적은 파이프라인 메모리를 이용하여 디코딩 동작을 수행하는 비디오 디코딩 장치, 그의 동작 방법, 디스플레이 장치, 및 비디오 시스템을 제공한다.The technical idea of the present disclosure provides a video decoding device that performs a decoding operation using a relatively small pipeline memory, a method of operating the same, a display device, and a video system.

본 개시의 기술적 사상에 따른 비디오 디코딩 장치는, 비트스트림을 파이프라인(pipeline) 단위로 디코딩 처리하는 복수의 하드웨어 블록들, 및 복수의 하드웨어 블록들 사이에 위치하고 복수의 하드웨어 블록들 각각에 의해 파이프라인 단위로 처리된 유닛 데이터를 파이프라인 스테이지마다 저장하는 복수의 파이프라인 메모리들을 포함하는 디코더; 및 디코더에 의해 디코딩된 영상 데이터를 저장하는 메모리를 포함한다. 유닛 데이터는, 코딩 트리 유닛(CTU: Coding Tree Unit, 이하 "CTU")에 포함된 복수의 단위 픽셀 그룹들 중 파이프라인 영역 유닛에 대응되는 단위 픽셀 그룹들 각각이 속한 현재의 코딩 유닛(CU: Coding Unit, 이하 "CU")의 크기를 나타내는 현재 CU 사이즈 정보, 단위 픽셀 그룹들 각각이 속한 현재의 CU의 다음(next) CU의 위치를 나타내는 다음 CU 위치 정보, 및 단위 픽셀 그룹의 스캔 타입을 나타내는 스캔 타입 정보를 포함한다.A video decoding device according to the technical idea of the present disclosure includes a plurality of hardware blocks that decode a bitstream in a pipeline unit, and are located between the plurality of hardware blocks and operate the pipeline by each of the plurality of hardware blocks. A decoder including a plurality of pipeline memories that store processed unit data for each pipeline stage; and a memory that stores image data decoded by the decoder. The unit data includes the current coding unit (CU: Current CU size information indicating the size of the coding unit (hereinafter “CU”), next CU position information indicating the position of the next CU of the current CU to which each of the unit pixel groups belongs, and scan type of the unit pixel group. Contains the scan type information indicated.

또한, 본 개시의 기술적 사상에 따른 비디오 디코딩 장치의 동작 방법은, 제1 파이프라인 스테이지에서, 제1 하드웨어 블록이, 제1 파이프라인 스테이지에서 비트스트림이 파이프라인 단위로 분할된 제1 유닛 데이터를 처리하여, 제1 유닛 데이터를 제1 파이프라인 메모리에 저장하는 단계; 제1 파이프라인 스테이지 다음의 제2 파이프라인 스테이지에서, 제1 하드웨어 블록이, 제2 파이프라인 스테이지에서 파이프라인 단위로 분할된 제2 유닛 데이터를 처리하여, 제2 유닛 데이터를 제1 파이프라인 메모리에 저장하는 단계; 및 동시에, 제2 하드웨어 블록이, 제1 파이프라인 메모리에 저장된 제1 유닛 데이터를 읽어, 제1 유닛 데이터를 처리하는 단계를 포함한다.In addition, a method of operating a video decoding device according to the technical idea of the present disclosure includes, in a first pipeline stage, a first hardware block, and first unit data in which a bitstream is divided into pipeline units in the first pipeline stage. Processing and storing first unit data in a first pipeline memory; In the second pipeline stage following the first pipeline stage, the first hardware block processes the second unit data divided into pipeline units in the second pipeline stage, and stores the second unit data in the first pipeline memory. Save to; And at the same time, the second hardware block reads the first unit data stored in the first pipeline memory and processes the first unit data.

또한, 본 개시의 기술적 사상에 따른 비디오 시스템은, 파이프라인 영역 유닛에 관한 파이프라인 영역 유닛 정보를 포함하는 비트스트림을 제공하는 비디오 인코딩 장치; 및 비트스트림을 파이프라인 단위로 디코딩하고, 디코딩된 영상 데이터를 출력하는 비디오 디코딩 장치를 포함한다. 비디오 디코딩 장치는, 파이프라인 단위로 분할된 유닛 데이터를 처리하는 복수의 하드웨어 블록들; 및 유닛 데이터를 저장하기 위해 파이프라인 영역 유닛 정보에 대응되는 메모리 크기를 갖는 복수의 파이프라인 메모리들을 포함한다.In addition, a video system according to the technical idea of the present disclosure includes a video encoding device that provides a bitstream including pipeline area unit information regarding the pipeline area unit; and a video decoding device that decodes the bitstream in pipeline units and outputs decoded video data. A video decoding device includes a plurality of hardware blocks that process unit data divided in pipeline units; and a plurality of pipeline memories having a memory size corresponding to pipeline area unit information to store unit data.

또한, 본 개시의 기술적 사상에 따른 디스플레이 장치는, 비트스트림을 파이프라인(pipeline) 단위로 디코딩 처리하는 복수의 하드웨어 블록들, 및 복수의 하드웨어 블록들 사이에 위치하고 복수의 하드웨어 블록들 각각으로부터 제공되는 파이프라인 영역 유닛에 대응되는 유닛 데이터를 파이프라인 스테이지마다 저장하는 복수의 파이프라인 메모리들을 포함하는 디코더; 디코더에 의해 디코딩된 영상 데이터를 저장하는 메모리; 및 디코딩된 영상 데이터에 따른 영상을 표시하는 디스플레이 모듈을 포함한다.In addition, a display device according to the technical idea of the present disclosure includes a plurality of hardware blocks that decode a bitstream in a pipeline unit, and a plurality of hardware blocks located between the plurality of hardware blocks and provided from each of the plurality of hardware blocks. A decoder including a plurality of pipeline memories that store unit data corresponding to a pipeline area unit for each pipeline stage; a memory that stores image data decoded by a decoder; and a display module that displays an image according to the decoded image data.

본 개시의 기술적 사상에 의하면, 비디오 압축 방식이나, 트리 분할 모드와 무관하게 상대적으로 적은 파이프라인 단위로 디코딩 동작을 수행함으로써, 파이프라인 메모리의 크기, 저장 용량을 감소시키는 효과가 있다.According to the technical idea of the present disclosure, by performing a decoding operation in relatively small pipeline units regardless of the video compression method or tree splitting mode, there is an effect of reducing the size and storage capacity of the pipeline memory.

본 개시의 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 기재로부터 본 개시의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 개시의 실시예들을 실시함에 따른 의도하지 아니한 효과들 역시 본 개시의 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.The effects that can be obtained from the embodiments of the present disclosure are not limited to the effects mentioned above, and other effects not mentioned can be explained to those skilled in the art from the following description. Can be clearly derived and understood. That is, unintended effects resulting from implementing the embodiments of the present disclosure may also be derived by a person skilled in the art from the embodiments of the present disclosure.

도 1은 본 개시의 예시적인 실시예들에 따른 비디오 시스템의 블록도이다.
도 2는 본 개시의 예시적인 실시예들에 따른 디코더의 블록도이다.
도 3a 내지 도 3c는 본 개시의 예시적인 실시예들에 따른 파이프라인 메모리를 설명하기 위한 도면이다.
도 4는 본 개시의 예시적인 실시예들에 따른 비디오 디코딩 장치의 블록도이다.
도 5는 본 개시의 예시적인 실시예들에 따른 파이프라인 단위의 디코딩 처리 동작을 설명하기 위한 도면이다.
도 6은 본 개시의 예시적인 실시예들에 따른 코딩 트리 유닛과 코딩 유닛을 설명하기 위한 도면이다.
도 7a 내지 도 7e는 본 개시의 예시적인 실시예들에 따른 트리 분할 모드를 설명하기 위한 도면이다.
도 8a 내지 도 8e는 도 7a 내지 도 7e에 도시된 트리 분할 모드에서 파이프라인 영역 유닛을 설명하기 위한 도면이다.
도 9는 본 개시의 예시적인 실시예들에 따라 VVC(Versatile Video Coding) 코덱(Codec)에서 코딩 유닛과 파이프라인 영역 유닛을 설명하기 위한 도면이다.
도 10a 내지 도 10d는 본 개시의 예시적인 실시예들에 따른 파이프라인 단위로 유닛 데이터를 처리하는 동작을 설명하기 위한 도면이다.
도 11은 본 개시의 예시적인 실시예들에 따른 비트스트림의 구조를 설명하기 위한 도면이다.
도 12는 본 개시의 예시적인 실시예들에 따른 파이프라인 영역 유닛 개수 정보를 설명하기 위한 도면이다.
도 13은 본 개시의 예시적인 실시예들에 따른 파이프라인 영역 유닛 모드 정보를 설명하기 위한 도면이다.
도 14는 본 개시의 예시적인 실시예들에 따른 비디오 디코딩 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 15는 본 개시의 예시적인 실시예들에 따른 파이프라인 단위로 유닛 데이터를 처리하는 방법을 설명하기 위한 흐름도이다.
도 16은 본 개시의 예시적인 실시예들에 따른 디스플레이 장치의 블록도이다.
1 is a block diagram of a video system according to example embodiments of the present disclosure.
2 is a block diagram of a decoder according to example embodiments of the present disclosure.
3A to 3C are diagrams for explaining a pipeline memory according to example embodiments of the present disclosure.
Figure 4 is a block diagram of a video decoding device according to example embodiments of the present disclosure.
FIG. 5 is a diagram for explaining a decoding processing operation on a pipeline basis according to example embodiments of the present disclosure.
FIG. 6 is a diagram for explaining a coding tree unit and a coding unit according to example embodiments of the present disclosure.
7A to 7E are diagrams for explaining a tree splitting mode according to exemplary embodiments of the present disclosure.
FIGS. 8A to 8E are diagrams for explaining a pipeline area unit in the tree split mode shown in FIGS. 7A to 7E.
FIG. 9 is a diagram illustrating a coding unit and a pipeline area unit in a Versatile Video Coding (VVC) Codec according to example embodiments of the present disclosure.
10A to 10D are diagrams for explaining an operation of processing unit data on a pipeline basis according to example embodiments of the present disclosure.
FIG. 11 is a diagram for explaining the structure of a bitstream according to example embodiments of the present disclosure.
FIG. 12 is a diagram for explaining pipeline area unit number information according to example embodiments of the present disclosure.
FIG. 13 is a diagram for explaining pipeline area unit mode information according to example embodiments of the present disclosure.
FIG. 14 is a flowchart illustrating a method of operating a video decoding device according to example embodiments of the present disclosure.
FIG. 15 is a flowchart illustrating a method of processing unit data on a pipeline basis according to example embodiments of the present disclosure.
Figure 16 is a block diagram of a display device according to example embodiments of the present disclosure.

이하, 첨부한 도면을 참조하여 본 개시의 실시예에 대해 상세히 설명한다.Hereinafter, embodiments of the present disclosure will be described in detail with reference to the attached drawings.

도 1은 본 개시의 예시적인 실시예들에 따른 비디오 시스템의 블록도이다.1 is a block diagram of a video system according to example embodiments of the present disclosure.

도 1을 참조하면, 비디오 시스템(10)은 비디오 인코딩 장치(100) 및 비디오 디코딩 장치(200)를 포함할 수 있다.Referring to FIG. 1, the video system 10 may include a video encoding device 100 and a video decoding device 200.

비디오 인코딩 장치(100)는 비디오 데이터를 인코딩하여, 인코딩된 비트스트림(BS)을 전송할 수 있다. 여기서, 인코딩은 압축(compression) 및 트랜스코딩(transcoding)을 포함할 수 있다. 비디오 인코딩 장치(100)는 촬영 가능한 카메라 등을 구비하는 컴퓨터, 휴대폰, 안경, 시계 등의 전자 장치들로 구현될 수 있다. 이 경우, 비디오 인코딩 장치(100)는 촬영에 의해 생성된 비디오 데이터를 인코딩할 수 있다. 또는, 비디오 인코딩 장치(100)는 서버나 다른 전자 장치로부터 비디오 데이터를 수신하고, 수신된 비디오 데이터를 인코딩할 수도 있다. 비디오 데이터에 의해 표현되는 비디오는 이미지(image), 영상(picture) 등으로 치징될 수 있다. The video encoding device 100 may encode video data and transmit an encoded bitstream (BS). Here, encoding may include compression and transcoding. The video encoding device 100 may be implemented with electronic devices such as a computer equipped with a camera capable of taking pictures, a mobile phone, glasses, or a watch. In this case, the video encoding device 100 can encode video data generated by shooting. Alternatively, the video encoding device 100 may receive video data from a server or another electronic device and encode the received video data. Video expressed by video data may be classified as an image, picture, etc.

비디오 인코딩 장치(100)는 비디오 데이터를 부호화(encode)할 수 있다. 비디오 인코딩 장치(100)는 비디오 데이터의 용량을 줄이기 위해 비디오 데이터를 압축할 수 있다. 비디오 인코딩 장치(100)는 변환된 비디오 데이터를 양자화할 수 있다. 비디오 인코딩 장치(100)는 양자화된 비디오 데이터를 이용하여 비트스트림(BS)을 생성할 수 있다. 비디오 인코딩 장치(100)는 비트스트림(BS)를 유선 통신 또는 무선 통신을 통해 비디오 디코딩 장치(200)에 전송할 수 있다.The video encoding device 100 can encode video data. The video encoding device 100 may compress video data to reduce the capacity of the video data. The video encoding device 100 may quantize converted video data. The video encoding device 100 may generate a bitstream (BS) using quantized video data. The video encoding device 100 may transmit a bitstream (BS) to the video decoding device 200 through wired or wireless communication.

일부 실시예들에서, 비트스트림(BS)은 파이프라인 영역 유닛에 관한 파이프라인 영역 유닛 정보를 포함할 수 있다. 비트스트림(BS)에 대한 실시예는 도 11을 참조하여 후술된다.In some embodiments, the bitstream (BS) may include pipeline area unit information regarding the pipeline area unit. An embodiment of the bitstream (BS) will be described later with reference to FIG. 11.

비디오 디코딩 장치(200)는 부호화된 비트스트림(BS)을 디코딩하여 사용자에게 영상을 제공할 수 있다. 비디오 디코딩 장치(200)는 비트스트림(BS)을 디코딩하여 비디오 데이터를 복원할 수 있다. 비디오 디코딩 장치(200)는 디코딩된 영상 데이터(DPD)를 출력할 수 있다. 디코딩된 영상 데이터(DPD)는 영상을 표시(display)할 수 있는 장치(예를 들면, 디스플레이 장치)에 제공될 수 있다.The video decoding device 200 may decode the encoded bitstream (BS) and provide an image to the user. The video decoding device 200 can restore video data by decoding the bitstream (BS). The video decoding device 200 may output decoded video data (DPD). Decoded image data (DPD) may be provided to a device that can display images (eg, a display device).

비디오 디코딩 장치(200)는 디코더(210) 및 메모리(220)를 포함할 수 있다.The video decoding device 200 may include a decoder 210 and a memory 220.

디코더(210)는 비트스트림(BS)을 압축 해제(decompression)하여 비디오 데이터를 복원할 수 있다. 디코더(210)는 수신된 비트스트림(BS)을 이용하여 변환 계수들을 추출하고, 추출된 변환 계수들에 대한 역변환 및 양자화 과정 등을 통하여 비디오 데이터를 복원할 수 있다. 변환 계수들은 비트스트림(BS)에 포함된 계수들을 2차원 형태로 변환한 것일 수 있다.The decoder 210 may restore video data by decompressing the bitstream (BS). The decoder 210 can extract transform coefficients using the received bitstream (BS) and restore video data through inverse transformation and quantization processes on the extracted transform coefficients. Transformation coefficients may be coefficients included in the bitstream (BS) converted into two-dimensional form.

일부 실시예들에서, 디코더(210)는 비트스트림(BS)을 파이프라인 단위로 디코딩하고, 디코딩된 영상 데이터(DPD)를 출력할 수 있다. 여기서, 파이프라인 단위로 디코딩 처리되는 데이터는, 유닛 데이터로 지칭될 수 있다. 본 개시의 유닛 데이터는, 파이프라인 영역 유닛에 대응될 수 있다. 파이프라인 영역 유닛은 미리 설정된 크기의 파이프라인 단위에 대응되는 또는 미리 설정된 개수의 단위 픽셀 그룹들을 포함하는 영역일 수 있다. 이러한 파이프라인 영역 유닛은 하나의 CTU 내에서 하나 이상 포함될 수 있다. 파이프라인 영역 유닛에 대한 설명은 도 8a 내지 도 8e를 참조하여 후술된다.In some embodiments, the decoder 210 may decode the bitstream (BS) on a pipeline basis and output decoded video data (DPD). Here, data decoded on a pipeline basis may be referred to as unit data. Unit data of the present disclosure may correspond to a pipeline area unit. The pipeline area unit may be an area that corresponds to a pipeline unit of a preset size or includes a preset number of unit pixel groups. One or more of these pipeline area units may be included within one CTU. A description of the pipeline area unit is described later with reference to FIGS. 8A to 8E.

디코더(210)는 하나 이상의 프로세서에 의해 구현될 수 있다. 또한, 디코더(210)는 프로세서에 내장된 일종의 프로그램일 수 있다.Decoder 210 may be implemented by one or more processors. Additionally, the decoder 210 may be a type of program built into the processor.

메모리(220)는 디코딩된 영상 데이터(DPD)를 저장할 수 있다. 메모리(220)는 디코더(210)가 모션(motion)을 보상하는데 이용되는 참조 영상 데이터를 저장할 수 있다. 메모리(220)는 디코더(210)에서 이용되는 기준 픽셀 값을 나타내는 데이터를 저장할 수 있다. The memory 220 may store decoded image data (DPD). The memory 220 may store reference image data used by the decoder 210 to compensate for motion. Memory 220 may store data representing reference pixel values used in decoder 210.

메모리(220)는 비디오 디코딩 장치(200)의 다양한 기능을 지원하는 데이터와 프로그램을 저장할 수 있고, 입/출력되는 데이터들을 저장할 있고, 비디오 디코딩 장치(200)에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 비디오 디코딩 장치(200)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다.The memory 220 can store data and programs that support various functions of the video decoding device 200, can store input/output data, and can store a plurality of application programs running on the video decoding device 200. Or an application), data and commands for operation of the video decoding device 200 may be stored.

메모리(220)는 플래시 메모리 타입(flash memory type), 램(random access memory: RAM), SRAM(static random access memory), PROM(programmable read-only memory), 및 자기 메모리 중 적어도 하나의 타입의 저장 매체를 포함할 수 있다.The memory 220 stores at least one type of flash memory type, random access memory (RAM), static random access memory (SRAM), programmable read-only memory (PROM), and magnetic memory. May include media.

도 2는 본 개시의 예시적인 실시예들에 따른 디코더의 블록도이다.2 is a block diagram of a decoder according to example embodiments of the present disclosure.

도 2를 참조하면, 디코더(210)는 복수의 하드웨어 블록들(211, 213, 215, 217) 및 복수의 파이프라인 메모리들(212, 214)를 포함할 수 있다.Referring to FIG. 2, the decoder 210 may include a plurality of hardware blocks 211, 213, 215, and 217 and a plurality of pipeline memories 212 and 214.

복수의 하드웨어 블록들(211, 213, 215, 217)은 파이프라인 단위로 분할된 유닛 데이터를 디코딩 처리할 수 있다. 디코딩 처리는 각 하드웨어 블록의 고유한 기능에 따라 유닛 데이터를 처리하는 것일 수 있다. 복수의 하드웨어 블록들(211, 213, 215, 217)은 각 블록이 고유의 기능을 수행하는 하드웨어 구성(element)일 수 있다. 복수의 하드웨어 블록들(211, 213, 215, 217)의 개수는 n개일 수 있다. n은 2 이상의 정수일 수 있다. A plurality of hardware blocks 211, 213, 215, and 217 may decode unit data divided on a pipeline basis. Decoding processing may be processing unit data according to the unique function of each hardware block. The plurality of hardware blocks 211, 213, 215, and 217 may be hardware elements in which each block performs a unique function. The number of hardware blocks 211, 213, 215, and 217 may be n. n may be an integer of 2 or more.

복수의 하드웨어 블록들(211, 213, 215, 217) 각각은 처리된 유닛 데이터를 대응되는 파이프라인 메모리에 저장(또는 라이트(write))할 수 있다. 그리고, 복수의 하드웨어 블록들(211, 213, 215, 217) 각각은 대응되는 파이프라인 메모리에 저장된 유닛 데이터를 읽어(read), 읽힌 유닛 데이터를 디코딩 처리할 수 있다. 이를 위해, 복수의 하드웨어 블록들(211, 213, 215, 217) 각각은 고유의 기능을 수행하는 엔진 및 각 파이프라인 메모리를 접근할 수 있는 직접 메모리 접근(Direct Memory Access: DMA)를 포함할 수 있다.Each of the plurality of hardware blocks 211, 213, 215, and 217 may store (or write) processed unit data in the corresponding pipeline memory. In addition, each of the plurality of hardware blocks 211, 213, 215, and 217 may read unit data stored in the corresponding pipeline memory and decode the read unit data. To this end, each of the plurality of hardware blocks 211, 213, 215, and 217 may include an engine performing a unique function and direct memory access (DMA) to access each pipeline memory. there is.

복수의 파이프라인 메모리들(212, 214)은 복수의 하드웨어 블록들(211, 213, 215, 217)에 의해 처리된 유닛 데이터를 저장할 수 있다. 복수의 파이프라인 메모리들(212, 214)은 복수의 하드웨어 블록들(211, 213, 215, 217)에 의해 처리된 유닛 데이터를 출력할 수도 있다. 일부 실시예들에서, 특정 파이프라인 스테이지에서, 복수의 파이프라인 메모리들(212, 214)은 특정 유닛 데이터를 저장하면서, 동시에 이미 저장된 다른 유닛 데이터를 출력할 수도 있다. 파이프라인 스테이지는 디코더(210)가 파이프라인 단위로 디코딩 동작을 수행하는 동작 기간, 동작 페이즈(phase) 등을 의미할 수 있다.The plurality of pipeline memories 212 and 214 may store unit data processed by the plurality of hardware blocks 211, 213, 215, and 217. The plurality of pipeline memories 212 and 214 may output unit data processed by the plurality of hardware blocks 211, 213, 215, and 217. In some embodiments, at a specific pipeline stage, the plurality of pipeline memories 212 and 214 may store specific unit data while simultaneously outputting other already stored unit data. The pipeline stage may refer to an operation period, an operation phase, etc., during which the decoder 210 performs a decoding operation on a pipeline basis.

파이프라인 단위는, 각 파이프라인 메모리에서 입력되거나 출력되는 유닛 데이터의 단위일 수 있다. 파이프라인 단위는 VPDU(Virtual Pipeline Data Unit)으로 지칭될 수 있다.A pipeline unit may be a unit of unit data input or output from each pipeline memory. A pipeline unit may be referred to as a Virtual Pipeline Data Unit (VPDU).

복수의 파이프라인 메모리들(212, 214)은 m개일 수 있다. m은 n보다 작거나 같은 정수일 수 있다. 복수의 파이프라인 메모리들(212, 214)은 복수의 하드웨어 블록들(211, 213, 215, 217) 사이마다 위치(또는 배치)될 수 있다. 예를 들면, 제1 파이프라인 메모리(212)는 제1 하드웨어 블록(211) 및 제2 하드웨어 블록(213) 사이에 배치될 수 있다. 제2 파이프라인 메모리(214)는 제2 하드웨어 블록(213) 및 제3 하드웨어 블록(215) 사이에 배치될 수 있다. 제n-1 하드웨어 블록(미도시)과 제n 하드웨어 블록(217) 사이에도 파이프라인 메모리(미도시)가 배치될 수 있다. 이와 같이, 2개의 서로 다른 하드웨어 블록들 사이에 적어도 하나의 파이프라인 메모리가 배치될 수 있다.There may be m plurality of pipeline memories 212 and 214. m may be an integer less than or equal to n. The plurality of pipeline memories 212 and 214 may be located (or arranged) between the plurality of hardware blocks 211, 213, 215, and 217. For example, the first pipeline memory 212 may be placed between the first hardware block 211 and the second hardware block 213. The second pipeline memory 214 may be disposed between the second hardware block 213 and the third hardware block 215. A pipeline memory (not shown) may also be placed between the n-1th hardware block (not shown) and the nth hardware block 217. In this way, at least one pipeline memory may be placed between two different hardware blocks.

일부 실시예들에서, 복수의 파이프라인 메모리들(212, 214)은 유닛 데이터를 저장하기 위해 비트스트림(BS)에 포함된 파이프라인 영역 유닛 정보에 대응되는 메모리 크기를 가질 수 있다. 예를 들면, 파이프라인 영역 유닛 정보가 하나의 코딩 트리 유닛(coding tree unit) 내에서 32*32 픽셀들(pixels)(또는 32*32 개의 픽셀들로 지칭됨)에 대응되는 파이프라인 영역 유닛의 사이즈를 포함하는 경우, 복수의 파이프라인 메모리들(212, 214) 각각은 32*32 픽셀들(pixels)에 대응되는 메모리 크기를 가질 수 있다. 하지만, 이에 한정되는 것은 아니다.In some embodiments, the plurality of pipeline memories 212 and 214 may have a memory size corresponding to pipeline region unit information included in the bitstream BS to store unit data. For example, pipeline area unit information is of a pipeline area unit corresponding to 32*32 pixels (or referred to as 32*32 pixels) within one coding tree unit. When including size, each of the plurality of pipeline memories 212 and 214 may have a memory size corresponding to 32*32 pixels. However, it is not limited to this.

일부 실시예들에서, 복수의 파이프라인 메모리들(212, 214)은 복수의 하드웨어 블록들(211, 213, 215, 217) 각각에 의해 파이프라인 단위로 처리된 유닛 데이터를 파이프라인 스테이지마다 저장할 수 있다.In some embodiments, the plurality of pipeline memories 212 and 214 may store unit data processed on a pipeline basis by each of the plurality of hardware blocks 211, 213, 215, and 217 for each pipeline stage. there is.

일부 실시예들에서, 복수의 파이프라인 메모리들(212, 214)은, 복수의 하드웨어 블록들(211, 213, 215, 217) 각각으로부터 제공되는 파이프라인 영역 유닛에 대응되는 유닛 데이터를 파이프라인 스테이지마다 저장할 수 있다.In some embodiments, the plurality of pipeline memories 212 and 214 store unit data corresponding to the pipeline area unit provided from each of the plurality of hardware blocks 211, 213, 215, and 217 to the pipeline stage. You can save each time.

복수의 파이프라인 메모리들(212, 214)은 램(random access memory: RAM), SRAM(static random access memory) 등의 휘발성 메모리로 구현될 수 있으나, 이에 한정되는 것은 아니다.The plurality of pipeline memories 212 and 214 may be implemented as volatile memories such as random access memory (RAM) and static random access memory (SRAM), but are not limited thereto.

전술한 바에 의하면, 비디오 압축 방식이나, 트리 분할 모드와 무관하게 상대적으로 적은 파이프라인 단위로 디코딩 동작을 수행함으로써, 파이프라인 메모리의 크기, 저장 용량을 감소시키는 효과가 있다.As described above, by performing a decoding operation in relatively small pipeline units regardless of the video compression method or tree splitting mode, there is an effect of reducing the size and storage capacity of the pipeline memory.

도 3a 내지 도 3c는 본 개시의 예시적인 실시예들에 따른 파이프라인 메모리를 설명하기 위한 도면이다. 구체적으로, 도 3a는 특정 파이프라인 스테이지에서 동작하는 파이프라인 메모리를 나타내는 도면이고, 도 3b는 특정 파이프라인 스테이지의 다음 파이프라인 스테이지에서 동작하는 파이프라인 메모리를 나타내는 도면이며, 도 3c는 도 3b의 파이프라인 스테이지의 다음 파이프라인 스테이지에서 동작하는 파이프라인 메모리를 나타내는 도면이다.3A to 3C are diagrams for explaining a pipeline memory according to example embodiments of the present disclosure. Specifically, FIG. 3A is a diagram showing a pipeline memory operating in a specific pipeline stage, FIG. 3B is a diagram showing a pipeline memory operating in the next pipeline stage of a specific pipeline stage, and FIG. 3C is a diagram showing a pipeline memory operating in a specific pipeline stage. This is a diagram showing the pipeline memory operating in the next pipeline stage of the pipeline stage.

도 3a를 참조하면, 파이프라인 메모리(300)는 서로 다른 하드웨어 블록들 사이에 위치할 수 있다. 도 2를 참조하여 예를 들면, 파이프라인 메모리(300)는 제1 하드웨어 블록(211)과 제2 하드웨어 블록(213) 사이에 배치되는 제1 파이프라인 메모리(212)일 수 있다. 하지만, 이에 한정되는 것은 아니다.Referring to FIG. 3A, pipeline memory 300 may be located between different hardware blocks. For example, with reference to FIG. 2 , the pipeline memory 300 may be a first pipeline memory 212 disposed between the first hardware block 211 and the second hardware block 213. However, it is not limited to this.

일부 실시예들에서, 파이프라인 메모리(300)는 제1 메모리(310), 및 제2 메모리(320)를 포함할 수 있다. 제1 메모리(310) 및 제2 메모리(320)는 유닛 데이터를 저장할 수 있다. 제1 메모리(310) 및 제2 메모리(320)는 저장된 유닛 데이터를 출력할 수 있다. In some embodiments, pipeline memory 300 may include a first memory 310 and a second memory 320 . The first memory 310 and the second memory 320 may store unit data. The first memory 310 and the second memory 320 may output stored unit data.

일부 실시예들에서, 특정 파이프라인 스테이지에서, 파이프라인 메모리(300)의 전단에 배치되는 하드웨어 블록이 제1 유닛 데이터(UD 1)를 처리할 수 있다. 그리고, 파이프라인 메모리(300)는 파이프라인 메모리(300)의 전단에 배치되는 하드웨어 블록으로부터 제1 유닛 데이터(UD 1)를 제공받을 수 있다. 예를 들면, 파이프라인 메모리(300)가 제1 파이프라인 메모리(212)인 것으로 가정한다. 제1 파이프라인 스테이지에서, 파이프라인 메모리(300)는 제1 하드웨어 블록(211)에 의해 처리된 제1 유닛 데이터(UD 1)를 제공받을 수 있다. 제1 하드웨어 블록(211)은 제1 유닛 데이터(UD 1)를 제1 메모리(310)에 저장할 수 있다. 일 실시예에서, 제2 메모리(320)는 비어있을 수 있다. 제2 메모리(320)가 비어 있는 경우, 파이프라인 메모리(300)의 후단에 배치되는 하드웨어 블록(예를 들면, 제2 하드웨어 블록(213))은 대기할 수 있다. 하지만, 이에 한정되는 것은 아니고, 다른 실시예에서는, 이전 스테이지에서 파이프라인 메모리(300)의 전단에 배치되는 하드웨어 블록(예, 제1 하드웨어 블록(211))에 의해 처리되는 유닛 데이터가 제2 메모리(320)에 저장될 수도 있다.In some embodiments, in a specific pipeline stage, a hardware block disposed at the front of the pipeline memory 300 may process the first unit data UD 1. In addition, the pipeline memory 300 may receive first unit data UD 1 from a hardware block disposed at the front of the pipeline memory 300. For example, assume that the pipeline memory 300 is the first pipeline memory 212. In the first pipeline stage, the pipeline memory 300 may receive first unit data UD 1 processed by the first hardware block 211 . The first hardware block 211 may store first unit data UD 1 in the first memory 310 . In one embodiment, the second memory 320 may be empty. When the second memory 320 is empty, a hardware block (eg, the second hardware block 213) placed at the rear of the pipeline memory 300 may wait. However, it is not limited to this, and in another embodiment, the unit data processed by the hardware block (e.g., the first hardware block 211) placed at the front of the pipeline memory 300 in the previous stage is stored in the second memory. It may also be stored at (320).

도 3b를 참조하면, 특정 파이프라인 스테이지의 다음 파이프라인 스테이지에서, 파이프라인 메모리(300)의 전단에 배치되는 하드웨어 블록이 제2 유닛 데이터(UD 2)를 처리할 수 있다. 파이프라인 메모리(300)는, 제2 유닛 데이터(UD 2)를 제공받을 수 있다. 예를 들면, 파이프라인 메모리(300)가 제1 파이프라인 메모리(212)인 것으로 가정한다. 제2 파이프라인 스테이지에서, 파이프라인 메모리(300)는 제1 하드웨어 블록(211)에 의해 처리된 제2 유닛 데이터(UD 2)를 제공받을 수 있다. 제1 하드웨어 블록(211)은 제2 유닛 데이터(UD 2)를 제2 메모리(320)에 저장할 수 있다. 한편, 파이프라인 메모리(300)의 후단에 배치되는 하드웨어 블록은 이전 파이프라인 스테이지에서 파이프라인 메모리(300)에 저장된 유닛 데이터를 읽을 수 있다. 예를 들면, 파이프라인 메모리(300)가 제1 파이프라인 메모리(212)인 것으로 가정한다. 제2 파이프라인 스테이지에서, 제2 하드웨어 블록(213)은 제1 메모리(310)에 저장된 제1 유닛 데이터(UD 1)를 읽고, 제1 유닛 데이터(UD 1)를 처리할 수 있다. 일 실시예에서, 제2 유닛 데이터(UD 2)가 제2 메모리(320)에 저장되는 동작과 제1 유닛 데이터(UD 1)가 제1 메모리(310)로부터 출력되는 동작은 동시에 실행될 수 있다. 구체적으로 예를 들면, 제1 하드웨어 블록(211)이 제2 유닛 데이터(UD 2)를 처리하여 제2 유닛 데이터(UD 2)를 제2 메모리(320)에 저장하고, 동시에, 제2 하드웨어 블록(213)이 제1 유닛 데이터(UD 1)를 동시에 처리할 수 있다. Referring to FIG. 3B, in the next pipeline stage of a specific pipeline stage, a hardware block placed at the front of the pipeline memory 300 may process the second unit data (UD 2). The pipeline memory 300 may receive second unit data (UD 2). For example, assume that the pipeline memory 300 is the first pipeline memory 212. In the second pipeline stage, the pipeline memory 300 may receive second unit data UD 2 processed by the first hardware block 211 . The first hardware block 211 may store second unit data UD 2 in the second memory 320 . Meanwhile, a hardware block disposed at the rear of the pipeline memory 300 can read unit data stored in the pipeline memory 300 in a previous pipeline stage. For example, assume that the pipeline memory 300 is the first pipeline memory 212. In the second pipeline stage, the second hardware block 213 may read the first unit data (UD 1) stored in the first memory 310 and process the first unit data (UD 1). In one embodiment, an operation of storing the second unit data UD 2 in the second memory 320 and an operation of outputting the first unit data UD 1 from the first memory 310 may be performed simultaneously. Specifically, for example, the first hardware block 211 processes the second unit data (UD 2) and stores the second unit data (UD 2) in the second memory 320, and at the same time, the second hardware block 213 can simultaneously process the first unit data (UD 1).

도 3c를 참조하면, 도 3b의 파이프라인 스테이지의 다음 파이프라인 스테이지에서, 파이프라인 메모리(300)의 전단에 배치되는 하드웨어 블록이 제3 유닛 데이터(UD 3)를 처리할 수 있다. 파이프라인 메모리(300)는, 제3 유닛 데이터(UD 3)를 제공받을 수 있다. 예를 들면, 파이프라인 메모리(300)가 제1 파이프라인 메모리(212)인 것으로 가정한다. 제3 파이프라인 스테이지에서, 파이프라인 메모리(300)는 제1 하드웨어 블록(211)에 의해 처리된 제3 유닛 데이터(UD 3)를 제공받을 수 있다. 제1 하드웨어 블록(211)은 제3 유닛 데이터(UD 3)를 제1 메모리(310)에 저장할 수 있다. 이 경우, 도 3a의 파이프라인 스테이지에서 제1 메모리(310)에 저장되었던 제1 유닛 데이터(UD 1)는 삭제될 수 있다. 즉, 제3 유닛 데이터(UD 3)가 제1 메모리(310)에 덮어쓰기 될(overwritten) 수 있다. 한편, 파이프라인 메모리(300)의 후단에 배치되는 하드웨어 블록(예, 제2 하드웨어 블록(213))은 제2 메모리(320)에 저장된 제2 유닛 데이터(UD 2)를 읽고, 제2 유닛 데이터(UD 2)를 처리할 수 있다. 이때, 제3 유닛 데이터(UD 3)가 제1 메모리(310)에 저장되는 동작과 제1 유닛 데이터가(UD 2)가 제2 메모리(320)로부터 출력되는 동작은 동시에 실행될 수 있다.Referring to FIG. 3C, in a pipeline stage following the pipeline stage of FIG. 3B, a hardware block disposed at the front of the pipeline memory 300 may process third unit data UD 3. The pipeline memory 300 may receive third unit data (UD 3). For example, assume that the pipeline memory 300 is the first pipeline memory 212. In the third pipeline stage, the pipeline memory 300 may receive third unit data UD 3 processed by the first hardware block 211 . The first hardware block 211 may store third unit data UD 3 in the first memory 310 . In this case, the first unit data UD 1 stored in the first memory 310 in the pipeline stage of FIG. 3A may be deleted. That is, the third unit data UD 3 may be overwritten in the first memory 310 . Meanwhile, a hardware block (e.g., second hardware block 213) disposed at the rear of the pipeline memory 300 reads the second unit data (UD 2) stored in the second memory 320 and reads the second unit data (UD 2) can be processed. At this time, the operation of storing the third unit data (UD 3) in the first memory 310 and the operation of outputting the first unit data (UD 2) from the second memory 320 may be performed simultaneously.

도 3a 내지 도 3c에서 전술한 '제1', '제2', 및 '제3'은 구성 및 용어를 구분하기 위한 것으로, '제1', '제2', 및 '제3'에 의해 그 순서 등이 한정되는 것은 아니다.'First', 'Second', and 'Third' described above in FIGS. 3A to 3C are used to distinguish configurations and terms, and are referred to as 'First', 'Second', and 'Third'. The order, etc. is not limited.

도 4는 본 개시의 예시적인 실시예들에 따른 비디오 디코딩 장치의 블록도이다.Figure 4 is a block diagram of a video decoding device according to example embodiments of the present disclosure.

도 4를 참조하면, 비디오 디코딩 장치(400)는 도 1에 도시된 비디오 디코딩 장치(200)에 대응될 수 있다. 비디오 디코딩 장치(400)는 비트스트림 파싱 블록(411), IQT 블록(412), 모션 벡터 블록(413), 인트라 모드 블록(414), 모션 보상 블록(415), 인터 예측 블록(416), 인트라 예측 및 리콘 블록(417), 루프 필터 블록(418), 제1 내지 제9 파이프라인 메모리들(421~429), 및 메모리(430)를 포함할 수 있다.Referring to FIG. 4, the video decoding device 400 may correspond to the video decoding device 200 shown in FIG. 1. The video decoding device 400 includes a bitstream parsing block 411, an IQT block 412, a motion vector block 413, an intra mode block 414, a motion compensation block 415, an inter prediction block 416, and an intra It may include a prediction and recon block 417, a loop filter block 418, first to ninth pipeline memories 421 to 429, and a memory 430.

비트스트림 파싱 블록(411), IQT 블록(412), 모션 벡터 블록(413), 인트라 모드 블록(414), 모션 보상 블록(415), 인터 예측 블록(416), 인트라 예측 및 리콘 블록(417), 및 루프 필터 블록(418)은 도 2를 참조하여 전술한 복수의 하드웨어 블록들(211, 213, 215, 217)에 포함될 수 있다.Bitstream parsing block 411, IQT block 412, motion vector block 413, intra mode block 414, motion compensation block 415, inter prediction block 416, intra prediction and recon block 417. , and the loop filter block 418 may be included in the plurality of hardware blocks 211, 213, 215, and 217 described above with reference to FIG. 2.

비트스트림 파싱 블록(411)은 비트스트림(BS)을 파싱(parsing)할 수 있다. 비트스트림 파싱 블록(411)은 신택스(syntax)별로 비트스트림(BS)을 파싱할 수 있다. 파싱은, CAVLD(Context Adaptive Variable Length Decoding)와 CABAD(Context Adaptive Binary Arithmetic Decoding)를 포함할 수 있다. 비트스트림 파싱 블록(411)은 엔트로피 디코딩 블록으로 지칭될 수 있다. The bitstream parsing block 411 can parse the bitstream (BS). The bitstream parsing block 411 can parse the bitstream (BS) for each syntax. Parsing may include Context Adaptive Variable Length Decoding (CAVLD) and Context Adaptive Binary Arithmetic Decoding (CABAD). The bitstream parsing block 411 may be referred to as an entropy decoding block.

비트스트림 파싱 블록(411)은 비트스트림(BS)에 대한 엔트로피 디코딩을 수행함으로써, 비트스트림(BS)에 포함된 다양한 정보를 획득할 수 있다. 비트스트림(BS)에 포함된 다양한 정보는, 예를 들면, 양자화된 계수, 디코딩된 코딩 파라미터, 인터 예측 파라미터, 인트라 예측 파라미터, 변환 파라미터, 양자화 파라미터, 루프 필터 파라미터, 및/또는 기타 신택스를 포함할 수 있다. 인터 예측 파라미터는, 예를 들어, 참조 화상 인덱스 및 모션 벡터를 포함할 수 있다. 인트라 예측 파라미터는, 예를 들어, 인트라 예측 모드 또는 인덱스를 포함할 수 있다. The bitstream parsing block 411 can obtain various information included in the bitstream (BS) by performing entropy decoding on the bitstream (BS). Various information included in the bitstream (BS) includes, for example, quantized coefficients, decoded coding parameters, inter prediction parameters, intra prediction parameters, transformation parameters, quantization parameters, loop filter parameters, and/or other syntax. can do. Inter prediction parameters may include, for example, a reference picture index and a motion vector. Intra prediction parameters may include, for example, an intra prediction mode or index.

일부 실시예들에서, 비트스트림 파싱 블록(411)은 파이프라인 단위로 비트스트림(BS)을 파싱하고 파싱된 결과를 제1 파이프라인 메모리(421) 및 제2 파이프라인 메모리(422)에 각각 저장할 수 있다. 비트스트림 파싱 블록(411)에 의해 처리된 유닛 데이터는 제1 파이프라인 메모리(421) 및 제2 파이프라인 메모리(422)에 저장될 수 있다. 제1 파이프라인 메모리(421)는 비트스트림 파싱 블록(411)와 IQT 블록(412) 사이에 배치될 수 있다. 제2 파이프라인 메모리(422)는 비트스트림 파싱 블록(411)와 모션 벡터 블록(413) 사이에 배치될 수 있다.In some embodiments, the bitstream parsing block 411 parses the bitstream (BS) on a pipeline basis and stores the parsed results in the first pipeline memory 421 and the second pipeline memory 422, respectively. You can. Unit data processed by the bitstream parsing block 411 may be stored in the first pipeline memory 421 and the second pipeline memory 422. The first pipeline memory 421 may be placed between the bitstream parsing block 411 and the IQT block 412. The second pipeline memory 422 may be placed between the bitstream parsing block 411 and the motion vector block 413.

IQT 블록(412)은 파싱된 비트스트림(BS)을 역양자화하고, 역양자화된 결과에 대하여 역변환을 수행할 수 있다. 일부 실시예들에서, IQT 블록(412)은 파이프라인 단위로 파싱된 비트스트림(BS)을 역양자화를 수행하고 역변환을 수행할 수 있다. 일부 실시예들에서, IQT 블록(412)은 제1 파이프라인 메모리(421)에 저장된 유닛 데이터를 읽을 수 있다. IQT 블록(412)은 역양자화 및 역변환 블록으로 지칭될 수 있다. 일부 실시예들에서, IQT 블록(412)은 역양자화 및 역변환의 결과를 제3 파이프라인 메모리(423)에 저장할 수 있다. IQT 블록(412)에 의해 처리된 유닛 데이터는 제3 파이프라인 메모리(423)에 저장될 수 있다. 제3 파이프라인 메모리(423)는 IQT 블록(412)과 인트라 예측 및 리콘 블록(417) 사이에 배치될 수 있다.The IQT block 412 may dequantize the parsed bitstream (BS) and perform inverse transformation on the dequantized result. In some embodiments, the IQT block 412 may perform inverse quantization and inverse transformation on the bitstream (BS) parsed on a pipeline basis. In some embodiments, the IQT block 412 may read unit data stored in the first pipeline memory 421. IQT block 412 may be referred to as an inverse quantization and inverse transform block. In some embodiments, the IQT block 412 may store the results of inverse quantization and inverse transformation in the third pipeline memory 423. Unit data processed by the IQT block 412 may be stored in the third pipeline memory 423. The third pipeline memory 423 may be placed between the IQT block 412 and the intra prediction and recon block 417.

모션 벡터 블록(413)은 제2 파이프라인 메모리(422)로부터 획득된 유닛 데이터를 기초로 모션 벡터를 획득할 수 있다. 일부 실시예들에서, 모션 벡터 블록(413)은 파이프라인 단위로 분할된 유닛 데이터를 처리하여, 모션 벡터를 획득할 수 있다. 일부 실시예들에서, 모션 벡터 블록(413)은 모션 벡터에 관한 유닛 데이터를 제4 파이프라인 메모리(424) 및 제5 파이프라인 메모리(425) 각각에 저장할 수 있다. 제4 파이프라인 메모리(424)는 모션 벡터 블록(413)과 인트라 모드 블록(414) 사이에 배치될 수 있다. 제5 파이프라인 메모리(425)는 모션 벡터 블록(413)과 모션 보상 블록(415) 사이에 배치될 수 있다.The motion vector block 413 may obtain a motion vector based on unit data obtained from the second pipeline memory 422. In some embodiments, the motion vector block 413 may process unit data divided on a pipeline basis to obtain a motion vector. In some embodiments, the motion vector block 413 may store unit data related to the motion vector in the fourth pipeline memory 424 and the fifth pipeline memory 425, respectively. The fourth pipeline memory 424 may be placed between the motion vector block 413 and the intra mode block 414. The fifth pipeline memory 425 may be placed between the motion vector block 413 and the motion compensation block 415.

인트라 모드 블록(414)은 모션 벡터들에 기초하여 현재 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정할 수 있다. 그리고, 인트라 모드 블록(414)은 예측 정보를 사용하여 디코딩되고 있는 현재 비디오 블록에 대한 예측 블록들을 생성할 수 있다. 예를 들면, 인트라 모드 블록(414)은 신택스들 중 일부를 사용하여 비디오 슬라이스의 비디오 블록들을 코딩하기 위해 사용되는 예측 모드(예를 들어, 인트라 예측 또는 인터 예측)를 결정할 수 있다. 또한, 인트라 모드 블록(414)은 신택스들 중 일부를 사용하여 인터 예측 슬라이스 타입(예를 들어, B 슬라이스, P 슬라이스, 또는 GPB 슬라이스)를 결정할 수 있다. 또한, 인트라 모드 블록(414)은 신택스들 중 일부를 사용하여 슬라이스에 대한 참조 화상 리스트들 중 하나 이상에 대한 구성 정보를 결정할 수 있다. 또한, 인트라 모드 블록(414)은 신택스들 중 일부를 사용하여 슬라이스의 각각의 인터 인코딩된 비디오 블록에 대한 모션 벡터들을 결정할 수 있다. 또한, 인트라 모드 블록(414)은 신택스들 중 일부를 사용하여 슬라이스의 각각의 인터 코딩된 비디오 블록에 대한 인터 예측 상태를 결정할 수 있다. 또한, 인트라 모드 블록(414)은 신택스들 중 일부를 사용하여 현재 비디오 슬라이스에서의 비디오 블록들을 디코딩하기 위한 다른 정보를 결정할 수 있다.The intra mode block 414 may determine prediction information for a video block of the current video slice based on the motion vectors. And, the intra mode block 414 can generate prediction blocks for the current video block being decoded using prediction information. For example, intra mode block 414 may use some of the syntaxes to determine the prediction mode (e.g., intra prediction or inter prediction) used to code the video blocks of a video slice. Additionally, the intra mode block 414 may use some of the syntaxes to determine the inter prediction slice type (e.g., B slice, P slice, or GPB slice). Additionally, the intra mode block 414 may use some of the syntaxes to determine configuration information for one or more of the reference picture lists for the slice. Additionally, intra mode block 414 can use some of the syntaxes to determine motion vectors for each inter encoded video block in a slice. Additionally, intra mode block 414 can use some of the syntaxes to determine the inter prediction state for each inter coded video block in a slice. Additionally, intra mode block 414 can use some of the syntaxes to determine other information for decoding video blocks in the current video slice.

일부 실시예들에서, 인트라 모드 블록(414)은 파이프라인 단위로 분할된 유닛 데이터를 처리하여, 유닛 데이터를 제6 파이프라인 메모리(426)에 저장할 수 있다. 제6 파이프라인 메모리(426)는 인트라 모드 블록(414)과 인트라 예측 및 리콘 블록(417) 사이에 배치될 수 있다.In some embodiments, the intra mode block 414 may process unit data divided by pipeline and store the unit data in the sixth pipeline memory 426. The sixth pipeline memory 426 may be placed between the intra mode block 414 and the intra prediction and recon block 417.

모션 보상 블록(415)은 제5 파이프라인 메모리(425)에 저장된 유닛 데이터에 의한 모션 벡터를 이용하여, 적어도 하나 이상의 참조 영상을 모션 보상함으로써, 예측 영상을 생성할 수 있다. 참조 영상에 대한 참조 영상 데이터의 크기는 상대적으로 크기 때문에, 참조 영상 데이터는 메모리(430)에 저장될 수 있다. 모션 벡터는 현재 코딩 유닛을 참조 영상(또는 참조 프레임)으로부터 움직임 예측이 수행될 때 가장 유사한 영역의 위치 정보를 나타낼 수 있다. 일부 실시예들에서, 모션 보상 블록(415)은 예측 영상에 대응되는 유닛 데이터를 제7 파이프라인 메모리(427)에 저장할 수 있다. 제7 파이프라인 메모리(427)는 모션 보상 블록(415)과 인터 예측 블록(416) 사이에 배치될 수 있다.The motion compensation block 415 may generate a predicted image by motion-compensating at least one reference image using a motion vector based on unit data stored in the fifth pipeline memory 425. Since the size of the reference image data relative to the reference image is relatively large, the reference image data may be stored in the memory 430. A motion vector may indicate location information of the most similar area when motion prediction is performed on the current coding unit from a reference image (or reference frame). In some embodiments, the motion compensation block 415 may store unit data corresponding to the predicted image in the seventh pipeline memory 427. The seventh pipeline memory 427 may be placed between the motion compensation block 415 and the inter prediction block 416.

인터 예측 블록(416)은 제7 파이프라인 메모리(427)에 저장된 유닛 데이터를 기초로 인터 예측을 수행할 수 있다. 인터 예측의 수행 결과, 코딩 유닛에 대한 예측 블록이 생성될 수 있다. 여기서, 인터 예측은 이전에 코딩된 픽처의 데이터로부터 코딩 유닛을 예측하는 것을 지칭할 수 있다. 일부 실시예들에서, 인터 예측 블록(416)은 인터 예측의 결과에 대응되는 유닛 데이터를 제8 파이프라인 메모리(428)에 저장할 수 있다. 제8 파이프라인 메모리(428)는 인터 예측 블록(416)과 인트라 예측 및 리콘 블록(417) 사이에 배치될 수 있다.The inter prediction block 416 may perform inter prediction based on unit data stored in the seventh pipeline memory 427. As a result of performing inter prediction, a prediction block for a coding unit may be generated. Here, inter prediction may refer to predicting a coding unit from data of a previously coded picture. In some embodiments, the inter prediction block 416 may store unit data corresponding to the result of inter prediction in the eighth pipeline memory 428. The eighth pipeline memory 428 may be placed between the inter prediction block 416 and the intra prediction and recon block 417.

인트라 예측 및 리콘 블록(417)은 제3, 제6, 및 제8 파이프라인 메모리들(423, 426, 428)에 저장된 복수의 유닛 데이터를 기초로 인트라 예측을 수행하고, 제3, 제6, 및 제8 파이프라인 메모리들(423, 426, 428)에 저장된 복수의 유닛 데이터 또는 샘플 값들을 가산하여 샘플들을 재구성(또는 복원)할 수 있다. 인트라 예측은 일반적으로 동일한 픽처의 이전에 코딩된 데이터로부터 코딩 유닛을 예측하는 것을 지칭한다. 일부 실시예들에서, 인트라 예측 및 리콘 블록(417)은 재구성 결과에 대응되는 유닛 데이터를 제9 파이프라인 메모리(429)에 저장할 수 있다. 제9 파이프라인 메모리(429)는 인트라 예측 및 리콘 블록(417)과 루프 필터 블록(418) 사이에 배치될 수 있다.The intra prediction and recon block 417 performs intra prediction based on a plurality of unit data stored in the third, sixth, and eighth pipeline memories 423, 426, and 428, and the third, sixth, and And the samples may be reconstructed (or restored) by adding a plurality of unit data or sample values stored in the eighth pipeline memories 423, 426, and 428. Intra prediction generally refers to predicting a coding unit from previously coded data of the same picture. In some embodiments, the intra prediction and recon block 417 may store unit data corresponding to the reconstruction result in the ninth pipeline memory 429. The ninth pipeline memory 429 may be placed between the intra prediction and recon block 417 and the loop filter block 418.

루프 필터 블록(418)은 비트스트림(BS)의 복원시 발생할 수 있는 블록킹 현상을 감소시키는 디블록킹 필터(미도시)를 포함할 수 있다. 루프 필터 블록(418)의 플래그(flag)가 활성화되어 있으면, 루프 필터 블록(418)은 필터링 후에 디코딩된 영상 데이터를 메모리(430)에 저장할 수 있다. 만약 루프 필터 블록(418)의 플래그가 활성화되어 있지 않다면, 루프 필터 블록(418)은 인터 예측 또는 인트라 모드 예측 후 곧바로 복원된 영상 데이터를 메모리(430)에 저장할 수 있다. 루프 필터 블록(418)은 인-루프 필터(in-loop filter)로 지칭될 수 있다.The loop filter block 418 may include a deblocking filter (not shown) that reduces blocking phenomenon that may occur when restoring the bitstream (BS). If the flag of the loop filter block 418 is activated, the loop filter block 418 may store decoded image data in the memory 430 after filtering. If the flag of the loop filter block 418 is not activated, the loop filter block 418 may store the restored image data in the memory 430 immediately after inter prediction or intra mode prediction. The loop filter block 418 may be referred to as an in-loop filter.

메모리(430)는 디코딩된 영상 데이터 및 참조 영상 데이터 등을 저장할 수 있다. 메모리(430)는 DPB(Decoded Picture Buffer)로 지칭될 수 있다.The memory 430 may store decoded image data and reference image data. The memory 430 may be referred to as a Decoded Picture Buffer (DPB).

제1 내지 제9 파이프라인 메모리들(421~429)은 도 2를 참조하여 전술한 복수의 파이프라인 메모리들(212, 214)에 포함될 수 있다.The first to ninth pipeline memories 421 to 429 may be included in the plurality of pipeline memories 212 and 214 described above with reference to FIG. 2 .

일부 실시예들에서, 제1 내지 제9 파이프라인 메모리들(421~429)은, 현재 CU 사이즈 정보, 다음 CU 위치 정보, 및 스캔 타입 정보를 저장할 수 있다. 현재 CU 사이즈 정보는, 코딩 트리 유닛에 포함된 복수의 단위 픽셀 그룹들 중 파이프라인 영역 유닛에 대응되는 단위 픽셀 그룹들 각각이 속한 현재의 코딩 유닛의 크기를 나타내는 데이터일 수 있다. 단위 픽셀 그룹에 대한 설명은 도 7a 내지 도 7e를 참조하여 후술된다. 다음 CU 위치 정보는, 파이프라인 영역 유닛에 대응되는 단위 픽셀 그룹들 각각이 속한 현재의 코딩 유닛의 다음(next) 코딩 유닛의 위치를 나타내는 데이터일 수 있다. 스캔 타입 정보는, 단위 픽셀 그룹의 스캔 타입을 나타내는 데이터일 수 있다. 예를 들면, 스캔 타입은 지-스캔(z-scan)일 수 있다. 다른 예를 들면, 스캔 타입은 래스터-스캔(raster-scan)일 수 있다. 하지만, 이에 한정되는 것은 아니다. 일부 실시예들에서, 제1 파이프라인 메모리(421) 및 제2 파이프라인 메모리(422)는 디코딩된 정보를 나타내는 데이터를 더 저장할 수 있다. 제3 파이프라인 메모리(423)는 잔차(residual)을 나타내는 데이터를 더 저장할 수 있다. 제4 내지 제6 파이프라인 메모리들(424, 425, 426)은, 모션 벡터 및 인트라 모드를 나타내는 데이터를 더 저장할 수 있다. 제7 내지 제9 파이프라인 메모리들(427, 428, 429)은, 픽셀 값을 나타내는 데이터를 더 저장할 수 있다. 아울러, 제7 파이프라인 메모리(427)는 참조 픽셀 값(또는 참조 영상, 참조 프레임)을 나타내는 데이터를 더 저장할 수 있다.In some embodiments, the first to ninth pipeline memories 421 to 429 may store current CU size information, next CU location information, and scan type information. The current CU size information may be data indicating the size of the current coding unit to which each unit pixel group corresponding to a pipeline area unit belongs among a plurality of unit pixel groups included in the coding tree unit. A description of the unit pixel group will be provided later with reference to FIGS. 7A to 7E. The next CU location information may be data indicating the location of the next coding unit of the current coding unit to which each of the unit pixel groups corresponding to the pipeline area unit belongs. Scan type information may be data indicating the scan type of a unit pixel group. For example, the scan type may be z-scan. As another example, the scan type may be raster-scan. However, it is not limited to this. In some embodiments, the first pipeline memory 421 and the second pipeline memory 422 may further store data representing decoded information. The third pipeline memory 423 may further store data representing residuals. The fourth to sixth pipeline memories 424, 425, and 426 may further store data representing motion vectors and intra modes. The seventh to ninth pipeline memories 427, 428, and 429 may further store data representing pixel values. In addition, the seventh pipeline memory 427 may further store data representing reference pixel values (or reference images or reference frames).

도 5는 본 개시의 예시적인 실시예들에 따른 파이프라인 단위의 디코딩 처리 동작을 설명하기 위한 도면이다.FIG. 5 is a diagram illustrating a decoding processing operation on a pipeline basis according to exemplary embodiments of the present disclosure.

도 4 및 도 5를 참조하면, 제1 파이프라인 스테이지(PSTG 1)에서, 비트스트림 파싱 블록(411)이 제1 유닛 데이터(UD 1)를 처리하고, 제1 유닛 데이터(UD 1)를 제1 파이프라인 메모리(421) 및 제2 파이프라인 메모리(422)에 저장할 수 있다. 한편, IQT 블록(412), 모션 벡터 블록(413), 인트라 모드 블록(414), 모션 보상 블록(415), 인터 예측 블록(416), 인트라 예측 및 리콘 블록(417), 및 루프 필터 블록(418)은 대기할 수 있다.4 and 5, in the first pipeline stage (PSTG 1), the bitstream parsing block 411 processes the first unit data (UD 1) and generates the first unit data (UD 1). It can be stored in the first pipeline memory 421 and the second pipeline memory 422. Meanwhile, the IQT block 412, motion vector block 413, intra mode block 414, motion compensation block 415, inter prediction block 416, intra prediction and recon block 417, and loop filter block ( 418) can wait.

제2 파이프라인 스테이지(PSTG 2)에서, 비트스트림 파싱 블록(411)이 제2 유닛 데이터(UD 2)를 처리하고, 제2 유닛 데이터(UD 2) 제1 파이프라인 메모리(421) 및 제2 파이프라인 메모리(422)에 저장할 수 있다. IQT 블록(412) 및 모션 벡터 블록(413) 각각은 제1 파이프라인 메모리(421) 및 제2 파이프라인 메모리(422)에 저장된 제1 유닛 데이터(UD 1)를 읽고, 제1 유닛 데이터(UD 1)를 처리하고, 제1 유닛 데이터(UD 1)를 제3 내지 제5 파이프라인 메모리들(423, 424, 425)에 각각 저장할 수 있다. 한편, 인트라 모드 블록(414), 모션 보상 블록(415), 인터 예측 블록(416), 인트라 예측 및 리콘 블록(417), 및 루프 필터 블록(418)은 대기할 수 있다.In the second pipeline stage (PSTG 2), the bitstream parsing block 411 processes the second unit data (UD 2), and the second unit data (UD 2) is stored in the first pipeline memory 421 and the second It can be stored in the pipeline memory 422. The IQT block 412 and the motion vector block 413 each read the first unit data (UD 1) stored in the first pipeline memory 421 and the second pipeline memory 422, and read the first unit data (UD 1) 1) may be processed, and the first unit data UD 1 may be stored in the third to fifth pipeline memories 423, 424, and 425, respectively. Meanwhile, the intra mode block 414, motion compensation block 415, inter prediction block 416, intra prediction and recon block 417, and loop filter block 418 may wait.

제3 파이프라인 스테이지(PSTG 3)에서, 비트스트림 파싱 블록(411)이 제3 유닛 데이터(UD 3)를 처리하고, 제3 유닛 데이터(UD 3) 제1 파이프라인 메모리(421) 및 제2 파이프라인 메모리(422)에 저장할 수 있다. IQT 블록(412) 및 모션 벡터 블록(413) 각각은 제1 파이프라인 메모리(421) 및 제2 파이프라인 메모리(422)에 저장된 제2 유닛 데이터(UD 2)를 읽고, 제2 유닛 데이터(UD 2)를 처리하고, 제2 유닛 데이터(UD 2)를 제3 내지 제5 파이프라인 메모리들(423, 424, 425)에 각각 저장할 수 있다. 인트라 모드 블록(414) 및 모션 보상 블록(415) 각각은 제3 내지 제5 파이프라인 메모리들(423, 424, 425)에 저장된 제1 유닛 데이터(UD 1)를 읽고, 제1 유닛 데이터(UD 1)를 처리하고, 제1 유닛 데이터(UD 1)를 제6 및 제7 파이프라인 메모리들(426, 427)에 각각 저장할 수 있다. 한편, 인터 예측 블록(416), 인트라 예측 및 리콘 블록(417), 및 루프 필터 블록(418)은 대기할 수 있다.In the third pipeline stage (PSTG 3), the bitstream parsing block 411 processes the third unit data (UD 3), and the third unit data (UD 3) is stored in the first pipeline memory 421 and the second It can be stored in the pipeline memory 422. The IQT block 412 and the motion vector block 413 each read the second unit data (UD 2) stored in the first pipeline memory 421 and the second pipeline memory 422, and read the second unit data (UD) 2) may be processed, and the second unit data UD 2 may be stored in the third to fifth pipeline memories 423, 424, and 425, respectively. The intra mode block 414 and the motion compensation block 415 each read the first unit data (UD 1) stored in the third to fifth pipeline memories 423, 424, and 425, and read the first unit data (UD 1) 1) may be processed, and the first unit data UD 1 may be stored in the sixth and seventh pipeline memories 426 and 427, respectively. Meanwhile, the inter prediction block 416, intra prediction and recon block 417, and loop filter block 418 may wait.

제4 파이프라인 스테이지(PSTG 4)에서, 비트스트림 파싱 블록(411)이 제4 유닛 데이터(UD 4)를 처리하고, 제4 유닛 데이터(UD 4)를 제1 파이프라인 메모리(421) 및 제2 파이프라인 메모리(422)에 저장할 수 있다. IQT 블록(412) 및 모션 벡터 블록(413) 각각은 제1 파이프라인 메모리(421) 및 제2 파이프라인 메모리(422)로부터 제공된 제3 유닛 데이터(UD 3)를 처리하고, 제3 유닛 데이터(UD 3)를 제3 내지 제5 파이프라인 메모리들(423, 424, 425)에 각각 저장할 수 있다. 인트라 모드 블록(414) 및 모션 보상 블록(415) 각각은 제3 내지 제5 파이프라인 메모리들(423, 424, 425)로부터 제공된 제2 유닛 데이터(UD 2)를 처리하고, 제2 유닛 데이터(UD 2)를 제6 및 제7 파이프라인 메모리들(426, 427)에 각각 저장할 수 있다. 이와 마찬가지로, 인터 예측 블록(416)은 및 인트라 예측 및 리콘 블록(417)은 제1 유닛 데이터(UD 1)를 처리할 수 있다. 한편, 및 루프 필터 블록(418)은 대기할 수 있다.In the fourth pipeline stage (PSTG 4), the bitstream parsing block 411 processes the fourth unit data (UD 4), and stores the fourth unit data (UD 4) in the first pipeline memory 421 and the fourth unit data (UD 4). 2 It can be stored in the pipeline memory 422. The IQT block 412 and the motion vector block 413 each process third unit data (UD 3) provided from the first pipeline memory 421 and the second pipeline memory 422, and third unit data (UD 3) UD 3) can be stored in the third to fifth pipeline memories 423, 424, and 425, respectively. The intra mode block 414 and the motion compensation block 415 each process the second unit data (UD 2) provided from the third to fifth pipeline memories 423, 424, and 425, and second unit data (UD 2) UD 2) can be stored in the sixth and seventh pipeline memories 426 and 427, respectively. Likewise, the inter prediction block 416 and the intra prediction and recon block 417 may process the first unit data (UD 1). Meanwhile, the and loop filter blocks 418 may wait.

마찬가지로, 제5 파이프라인 스테이지(PSTG 5)에서, 비트스트림 파싱 블록(411)이 제5 유닛 데이터(UD 5)를 처리할 수 있다. IQT 블록(412) 및 모션 벡터 블록(413) 각각은 제4 유닛 데이터(UD 4)를 처리할 수 있다. 인트라 모드 블록(414) 및 모션 보상 블록(415) 각각은 제3 유닛 데이터(UD 3)를 처리할 수 있다. 인터 예측 블록(416)은 및 인트라 예측 및 리콘 블록(417)은 제2 유닛 데이터(UD 2)를 처리할 수 있다. 루프 필터 블록(418)은 제1 유닛 데이터(UD 1)를 처리할 수 있다.Likewise, in the fifth pipeline stage (PSTG 5), the bitstream parsing block 411 may process the fifth unit data (UD 5). Each of the IQT block 412 and the motion vector block 413 can process fourth unit data (UD 4). Each of the intra mode block 414 and the motion compensation block 415 may process third unit data (UD 3). The inter prediction block 416 and the intra prediction and recon block 417 may process the second unit data (UD 2). The loop filter block 418 may process the first unit data (UD 1).

전술한 방식대로, 제6 파이프라인 스테이지(PSTG 6), 제7 파이프라인 스테이지(PSTG 7) 및 제7 파이프라인 스테이지(PSTG 7)의 다음 파이프라인 스테이지들에서, 하드웨어 블록들(예, 411~418)이 동작할 수 있다.In the manner described above, in the following pipeline stages of the sixth pipeline stage (PSTG 6), the seventh pipeline stage (PSTG 7), and the seventh pipeline stage (PSTG 7), hardware blocks (e.g., 411 ~ 418) can operate.

도 6은 본 개시의 예시적인 실시예들에 따른 코딩 트리 유닛(CTU와 코딩 유닛(CU: Coding Unit, 이하 "CU")을 설명하기 위한 도면이다.FIG. 6 is a diagram illustrating a coding tree unit (CTU) and a coding unit (CU) (hereinafter “CU”) according to example embodiments of the present disclosure.

도 6을 참조하면, 영상(PICTURE)은 복수의 CTU들로 구분될 수 있다. 영상(PICTURE)에서 각 CTU에 대응되는 영역의 크기는 일정할 수 있다. 하지만, 이에 한정되는 것은 아니다. 예를 들어, 하나의 CTU은 64*64 픽셀들을 포함할 수 있다. 다른 예를 들면, 하나의 CTU은 128*128 픽셀들을 포함할 수도 있다. 하지만, 이에 한정되는 것은 아니다.Referring to FIG. 6, a picture (PICTURE) may be divided into a plurality of CTUs. In a picture (PICTURE), the size of the area corresponding to each CTU may be constant. However, it is not limited to this. For example, one CTU may contain 64*64 pixels. For another example, one CTU may contain 128*128 pixels. However, it is not limited to this.

하나의 CTU는 복수의 CU들을 포함할 수 있다. 영상(PICTURE)에서 각 CU에 대응되는 영역의 크기 및 형태는 다양할 수 있다. 이에 따라, 각 CU에 포함되는 픽셀의 개수는 CU마다 동일할 수도 있고, 다를 수 있다.One CTU may include multiple CUs. The size and shape of the area corresponding to each CU in a picture may vary. Accordingly, the number of pixels included in each CU may be the same or different for each CU.

도 7a 내지 도 7e는 본 개시의 예시적인 실시예들에 따른 트리 분할 모드를 설명하기 위한 도면이다.7A to 7E are diagrams for explaining a tree splitting mode according to exemplary embodiments of the present disclosure.

도 7a 내지 도 7e를 참조하면, 트리 분할 모드에 따라 하나의 CTU에서 적어도 하나의 CU가 포함될 수 있다. 서로 다른 CU는 도 7a 내지 도 7e에 도시된 굵은 선(thick line)과 같이 구분될 수 있다. 서로 다른 CU는 동일하거나 서로 다른 개수의 단위 픽셀 그룹(UPXG)을 포함할 수 있다. 도 7a 내지 도 7e에서, 하나의 CTU는 64*64 픽셀들을 포함하고, 하나의 단위 픽셀 그룹(UPXG)은 4*4 픽셀들을 포함하는 것으로 가정한다.Referring to FIGS. 7A to 7E, at least one CU may be included in one CTU depending on the tree splitting mode. Different CUs can be distinguished as thick lines shown in FIGS. 7A to 7E. Different CUs may include the same or different numbers of unit pixel groups (UPXG). In FIGS. 7A to 7E, it is assumed that one CTU includes 64*64 pixels, and one unit pixel group (UPXG) includes 4*4 pixels.

도 7a에 도시된 트리 분할 모드에 따르면, 하나의 CTU는 제1 내지 제5 CU들(CU 1, CU 2, CU 3, CU 4, CU 5)을 포함할 수 있다. 제1 CU(CU 1)에 포함되는 단위 픽셀 그룹(UPXG)의 개수는, 제3 CU(CU 3)에 포함된 단위 픽셀 그룹(UPXG)의 개수 및 제5 CU(CU 5)에 포함된 단위 픽셀 그룹(UPXG)의 개수와 동일할 수 있다. 예를 들면, 제1 CU(CU 1), 제3 CU(CU 3), 및 제5 CU(CU 5) 각각에 포함되는 단위 픽셀 그룹(UPXG)의 개수는 16*4개이고, 각 단위 픽셀 그룹(UPXG)에 포함된 픽셀 수는 4*4개이므로, 제1 CU(CU 1), 제3 CU(CU 3), 및 제5 CU(CU 5) 각각에 포함되는 픽셀 수는 64*16개일 수 있다. 제2 CU(CU 2)에 포함되는 단위 픽셀 그룹(UPXG)의 개수는, 제4 CU(CU 4)에 포함된 단위 픽셀 그룹(UPXG)의 개수와 동일할 수 있다. 예를 들면, 제2 CU(CU 2) 및 제4 CU(CU 4) 각각에 포함되는 단위 픽셀 그룹(UPXG)의 개수는 16*2개이고, 제2 CU(CU 2) 및 제4 CU(CU 4) 각각에 포함되는 픽셀 수는 64*8개일 수 있다.According to the tree splitting mode shown in FIG. 7A, one CTU may include first to fifth CUs (CU 1, CU 2, CU 3, CU 4, and CU 5). The number of unit pixel groups (UPXG) included in the first CU (CU 1) is the number of unit pixel groups (UPXG) included in the third CU (CU 3) and the units included in the fifth CU (CU 5) It may be equal to the number of pixel groups (UPXG). For example, the number of unit pixel groups (UPXG) included in each of the first CU (CU 1), the third CU (CU 3), and the fifth CU (CU 5) is 16*4, and each unit pixel group Since the number of pixels included in (UPXG) is 4*4, the number of pixels included in each of the first CU (CU 1), the third CU (CU 3), and the fifth CU (CU 5) is 64*16. You can. The number of unit pixel groups (UPXG) included in the second CU (CU 2) may be the same as the number of unit pixel groups (UPXG) included in the fourth CU (CU 4). For example, the number of unit pixel groups (UPXG) included in each of the second CU (CU 2) and the fourth CU (CU 4) is 16 * 2, and the second CU (CU 2) and the fourth CU (CU 4) The number of pixels included in each may be 64*8.

도 7b에 도시된 트리 분할 모드에 따르면, 하나의 CTU는 제1 내지 제3 CU들(CU 1, CU 2, CU 3)을 포함할 수 있다. 제1 CU(CU 1)에 포함되는 단위 픽셀 그룹(UPXG)의 개수는, 제3 CU(CU 3)에 포함된 단위 픽셀 그룹(UPXG)의 개수와 동일할 수 있다. 예를 들면, 제1 CU(CU 1) 및 제3 CU(CU 3) 각각에 포함되는 단위 픽셀 그룹(UPXG)의 개수는 4*16개이고, 제1 CU(CU 1) 및 제3 CU(CU 3) 각각에 포함되는 픽셀 수는 16*64개일 수 있다. 제2 CU(CU 2)에 포함되는 단위 픽셀 그룹(UPXG)의 개수는 8*16개이고, 제2 CU(CU 2)에 포함되는 픽셀 수는 32*64개일 수 있다.According to the tree splitting mode shown in FIG. 7B, one CTU may include first to third CUs (CU 1, CU 2, and CU 3). The number of unit pixel groups (UPXG) included in the first CU (CU 1) may be the same as the number of unit pixel groups (UPXG) included in the third CU (CU 3). For example, the number of unit pixel groups (UPXG) included in each of the first CU (CU 1) and the third CU (CU 3) is 4*16, and the number of unit pixel groups (UPXG) included in each of the first CU (CU 1) and the third CU (CU 3) is 4*16. 3) The number of pixels included in each may be 16*64. The number of unit pixel groups (UPXG) included in the second CU (CU 2) may be 8*16, and the number of pixels included in the second CU (CU 2) may be 32*64.

도 7c에 도시된 트리 분할 모드에 따르면, 하나의 CTU는 5개의 CU들을 포함할 수 있고, 도 7d에 도시된 트리 분할 모드에 따르면, 하나의 CTU는 11개의 CU들을 포함할 수 있으며, 도 7e에 도시된 트리 분할 모드에 따르면, 하나의 CTU는 14개의 CU들을 포함할 수 있다.According to the tree splitting mode shown in FIG. 7C, one CTU may include 5 CUs, and according to the tree splitting mode shown in FIG. 7D, one CTU may include 11 CUs, and FIG. 7E According to the tree splitting mode shown in , one CTU may include 14 CUs.

도 8a 내지 도 8e는 도 7a 내지 도 7e에 도시된 트리 분할 모드에서 파이프라인 영역 유닛을 설명하기 위한 도면이다.FIGS. 8A to 8E are diagrams for explaining a pipeline area unit in the tree split mode shown in FIGS. 7A to 7E.

도 8a 내지 도 8e를 참조하면, 트리 분할 모드와 무관하게 하나의 CTU에서 복수의 파이프라인 영역 유닛들이 포함될 수 있다. 파이프라인 영역 유닛은 미리 설정된 크기의 파이프라인 단위에 대응되는 또는 단위 픽셀 그룹(UPXG)들을 포함할 수 있다. 하나의 파이프라인 영역 유닛에 포함되는 단위 픽셀 그룹의 개수는, 예를 들어 64개이고, 하나의 파이프라인 영역 유닛에 포함되는 픽셀의 개수는 1,024(또는, 32*32) 개일 수 있다. 하지만, 이에 한정되는 것은 아니다. 파이프라인 영역 유닛은 복수의 파이프라인 메모리들(212, 214) 및 제1 내지 제9 파이프라인 메모리들(421~429)의 메모리 크기에 대응될 수 있다. 한편, 각 유닛 데이터는 하나의 파이프 영역 유닛에 대해 디코딩 처리될 데이터일 수 있다.Referring to FIGS. 8A to 8E, a plurality of pipeline area units may be included in one CTU regardless of the tree splitting mode. The pipeline area unit may include unit pixel groups (UPXG) corresponding to a pipeline unit of a preset size. For example, the number of unit pixel groups included in one pipeline area unit may be 64, and the number of pixels included in one pipeline area unit may be 1,024 (or 32*32). However, it is not limited to this. The pipeline area unit may correspond to the memory size of the plurality of pipeline memories 212 and 214 and the first to ninth pipeline memories 421 to 429. Meanwhile, each unit data may be data to be decoded for one pipe area unit.

파이프라인 영역 유닛의 개수는, 예를 들어 4개일 수 있으나 이에 한정되는 것은 아니다. 이하에서는 설명의 편의상 파이프라인 영역 유닛의 개수는 4개인 것으로 가정한다. 제1 내지 제4 파이프라인 영역 유닛들(PAU 1, PAU 2, PAU 3, PAU 4)은 하나의 CTU 내에서 도 8a 내지 도 8e에 도시된 바와 같이 구분될 수 있다.The number of pipeline area units may be, for example, four, but is not limited thereto. Hereinafter, for convenience of explanation, it is assumed that the number of pipeline area units is 4. The first to fourth pipeline area units (PAU 1, PAU 2, PAU 3, and PAU 4) may be divided as shown in FIGS. 8A to 8E within one CTU.

도 9는 본 개시의 예시적인 실시예들에 따라 VVC(Versatile Video Coding) 코덱(Codec)에서 코딩 유닛과 파이프라인 영역 유닛을 설명하기 위한 도면이다.FIG. 9 is a diagram illustrating a coding unit and a pipeline area unit in a Versatile Video Coding (VVC) Codec according to example embodiments of the present disclosure.

도 9를 참조하면, 비디오 코덱의 하나인 VVC는 최근에 개발된 비디오 압축 표준(standard)일 수 있다. VVC의 트리 분할 모드에 의하면, CU 단위가 도 9에 도시된 바와 같이 더욱 세분화될 수 있다. VVC의 트리 분할 모드로서 "SPLIT_TT_VER" 및 "SPLIT_TT_HOR"의 경우, 하나의 CTU가 홀수 개의 CU로 나뉠 수 있다.Referring to FIG. 9, VVC, one of the video codecs, may be a recently developed video compression standard. According to the tree splitting mode of VVC, CU units can be further divided as shown in FIG. 9. In the case of "SPLIT_TT_VER" and "SPLIT_TT_HOR" as tree splitting modes of VVC, one CTU may be divided into an odd number of CUs.

도 10a 내지 도 10d는 본 개시의 예시적인 실시예들에 따른 파이프라인 단위로 유닛 데이터를 처리하는 동작을 설명하기 위한 도면이다.10A to 10D are diagrams for explaining an operation of processing unit data on a pipeline basis according to example embodiments of the present disclosure.

도 10a 내지 도 10d에 도시된 트리 분할 방식은 도 7a 및 도 8a에 도시된 트리 분할 방식인 것으로 가정한다. 그리고, 도 10a 내지 도 10d에 도시된 파이프라인 영역 유닛들은 도 8a에 도시된 제1 내지 제4 파이프라인 영역 유닛들(PAU 1, PAU 2, PAU 3, PAU 4)인 것으로 가정한다. 그리고, 도 10a 내지 도 10d에 도시된 복수의 버퍼들(BUFFERS)은 제1 파이프라인 메모리(212)에 포함된 것으로 가정한다. 그리고, 도 10a 내지 도 10d에 도시된 실시예들 각각은 제1 내지 제5 파이프라인 스테이지들(PSTG 1~PSTG 5) 각각에서 제1 하드웨어 블록(211), 제1 파이프라인 메모리(212), 및 제2 하드웨어 블록(213)에 의해 동작되는 것으로 가정한다. 도 10a 내지 도 10d에 도시된 스캔 방식은 지-스캔(z-scan)인 것으로 가정한다.It is assumed that the tree splitting method shown in FIGS. 10A to 10D is the tree splitting method shown in FIGS. 7A and 8A. Additionally, it is assumed that the pipeline area units shown in FIGS. 10A to 10D are the first to fourth pipeline area units (PAU 1, PAU 2, PAU 3, and PAU 4) shown in FIG. 8A. Also, it is assumed that the plurality of buffers (BUFFERS) shown in FIGS. 10A to 10D are included in the first pipeline memory 212. And, each of the embodiments shown in FIGS. 10A to 10D includes a first hardware block 211, a first pipeline memory 212, and a first hardware block 211 in each of the first to fifth pipeline stages (PSTG 1 to PSTG 5). and the second hardware block 213. It is assumed that the scan method shown in FIGS. 10A to 10D is z-scan.

도 10a 내지 도 10d을 참조하면, 각 파이프라인 메모리는 복수의 버퍼들(BUFFERS)을 포함할 수 있다. 도 2를 참조하여 예를 들면, 복수의 파이프라인 메모리들(212, 214) 각각은, 복수의 버퍼들(BUFFERS)을 포함할 수 있다. 도 4를 참조하여 예를 들면, 제1 내지 제9 파이프라인 메모리들(421~429) 각각은, 복수의 버퍼들(BUFFERS)을 포함할 수 있다. 각 버퍼는 하나의 어드레스에 대응될 수 있다. 하나의 어드레스는 단위 픽셀 그룹(UPXG)에 대응될 수 있다. 즉, 각 버퍼는 단위 픽셀 그룹(UPXG)에 대한 다양한 정보를 저장할 수 있다. 예를 들면, 복수의 버퍼들(BUFFERS) 각각은, 현재 CU 사이즈 정보(CURRENT CU SIZE), 다음 CU 위치 정보(NEXT CU POSITION), 스캔 타입 정보(SCAN TYPE), 및 기타 데이터(OTHER INFO)를 저장할 수 있다. 현재 CU 사이즈 정보(CURRENT CU SIZE)는 파이프라인 영역 유닛에 대응되는 단위 픽셀 그룹(UPXG)들 각각이 속한 CU의 크기에 대한 정보를 포함할 수 있다. 다음 CU 위치 정보(NEXT CU POSITION)는 파이프라인 영역 유닛에 대응되는 단위 픽셀 그룹(UPXG)들 각각이 속한 현재의 CU의 다음 CU의 위치에 대한 정보를 포함할 수 있다. 스캔 타입 정보(SCAN TYPE) 단위 픽셀 그룹(UPXG)의 스캔 타입에 대한 정보를 포함할 수 있다. 기타 데이터(OTHER INFO)는 참조 픽셀 값(또는 참조 영상, 참조 프레임 등), 모션 벡터, 픽셀 값, 예측 모드 등에 관한 정보를 포함할 수 있다. 기타 데이터(OTHER INFO)는 제1 내지 제9 파이프라인 메모리들(421~429)마다 달라질 수도 있다.Referring to FIGS. 10A to 10D, each pipeline memory may include a plurality of buffers (BUFFERS). For example, with reference to FIG. 2 , each of the pipeline memories 212 and 214 may include a plurality of buffers (BUFFERS). For example, with reference to FIG. 4 , each of the first to ninth pipeline memories 421 to 429 may include a plurality of buffers (BUFFERS). Each buffer may correspond to one address. One address may correspond to a unit pixel group (UPXG). That is, each buffer can store various information about a unit pixel group (UPXG). For example, each of the plurality of buffers (BUFFERS) contains current CU size information (CURRENT CU SIZE), next CU position information (NEXT CU POSITION), scan type information (SCAN TYPE), and other data (OTHER INFO). You can save it. Current CU size information (CURRENT CU SIZE) may include information about the size of the CU to which each unit pixel group (UPXG) corresponding to the pipeline area unit belongs. Next CU position information (NEXT CU POSITION) may include information about the position of the next CU of the current CU to which each unit pixel group (UPXG) corresponding to the pipeline area unit belongs. Scan type information (SCAN TYPE) may include information about the scan type of the unit pixel group (UPXG). Other data (OTHER INFO) may include information about reference pixel values (or reference images, reference frames, etc.), motion vectors, pixel values, prediction modes, etc. Other data (OTHER INFO) may vary for each of the first to ninth pipeline memories 421 to 429.

도 10a를 참조하면, 제1 파이프라인 스테이지(PSTG 1)에서 제1 파이프라인 영역 유닛(PAU 1)에 대한 처리 동작이 수행될 수 있다. 제1 파이프라인 영역 유닛(PAU 1)에 대한 유닛 데이터(예를 들면, 제1 유닛 데이터(UD 1))가 제1 하드웨어 블록(211)에 의해 처리될 수 있다. 그리고, 제1 파이프라인 영역 유닛(PAU 1)에 대한 유닛 데이터가 복수의 버퍼들(BUFFERS)에 저장될 수 있다. 구체적으로, 도 10a에 도시된 CTU에서 표시된 번호들을 갖는 단위 픽셀 그룹(UPXG)들에 대한 데이터는 각 어드레스를 갖는 버퍼에 저장될 수 있다. 예를 들어, 도 10a에서 "0"으로 표시된 단위 픽셀 그룹(UPXG)에 대한 정보는 "0"번 어드레스를 갖는 버퍼에 저장될 수 있다. 제1 유닛 데이터(UD1)는 제1 파이프라인 영역 유닛(PAU 1)에 대응되는(또는 제1 파이프라인 영역 유닛(PAU 1)에 포함되는) 단위 픽셀 그룹(UPXG)들이 속한 현재의 CU의 크기를 나타내는 제1 현재 CU 사이즈 정보, 다음 CU의 위치를 나타내는 제1 다음 CU 위치 정보, 및 스캔 타입 정보를 포함할 수 있다.Referring to FIG. 10A, a processing operation for the first pipeline area unit (PAU 1) may be performed in the first pipeline stage (PSTG 1). Unit data (eg, first unit data UD 1) for the first pipeline area unit PAU 1 may be processed by the first hardware block 211. Additionally, unit data for the first pipeline area unit (PAU 1) may be stored in a plurality of buffers (BUFFERS). Specifically, data for unit pixel groups (UPXG) having numbers indicated in the CTU shown in FIG. 10A may be stored in buffers having respective addresses. For example, information about the unit pixel group (UPXG) indicated as “0” in FIG. 10A may be stored in a buffer with address “0”. The first unit data UD1 is the size of the current CU to which the unit pixel groups UPXG corresponding to the first pipeline area unit PAU 1 (or included in the first pipeline area unit PAU 1) belong. It may include first current CU size information indicating, first next CU position information indicating the position of the next CU, and scan type information.

도 10b를 참조하면, 제2 파이프라인 스테이지(PSTG 2)에서 제2 파이프라인 영역 유닛(PAU 2)에 대한 처리 동작이 수행될 수 있다. 제2 파이프라인 영역 유닛(PAU 2)에 대한 유닛 데이터(예를 들면, 제2 유닛 데이터(UD 2))가 제1 하드웨어 블록(211)에 의해 처리되어 복수의 버퍼들(BUFFERS)에 저장될 수 있다. 제2 유닛 데이터(UD 2)는 제2 파이프라인 영역 유닛(PAU 2)에 대응되는(또는 제2 파이프라인 영역 유닛(PAU 2)에 포함되는) 단위 픽셀 그룹(UPXG)들이 속한 현재의 CU의 크기를 나타내는 제2 현재 CU 사이즈 정보, 다음 CU의 위치를 나타내는 제2 다음 CU 위치 정보, 및 스캔 타입 정보를 포함할 수 있다.Referring to FIG. 10B, a processing operation for the second pipeline area unit (PAU 2) may be performed in the second pipeline stage (PSTG 2). Unit data (e.g., second unit data UD 2) for the second pipeline area unit PAU 2 is processed by the first hardware block 211 and stored in a plurality of buffers BUFFERS. You can. The second unit data UD 2 is the current CU to which the unit pixel groups UPXG corresponding to the second pipeline area unit PAU 2 (or included in the second pipeline area unit PAU 2) belong. It may include second current CU size information indicating the size, second next CU position information indicating the position of the next CU, and scan type information.

도 10c를 참조하면, 제3 파이프라인 스테이지(PSTG 3)에서 제3 파이프라인 영역 유닛(PAU 3)에 대한 유닛 데이터(예를 들면, 제3 유닛 데이터(UD 3))가 처리되어 복수의 버퍼들(BUFFERS)에 저장될 수 있다. 제3 유닛 데이터(UD 3)는 제3 현재 CU 사이즈 정보, 제3 다음 CU 위치 정보, 및 스캔 타입 정보를 포함할 수 있다.Referring to FIG. 10C, unit data (e.g., third unit data UD 3) for the third pipeline area unit (PAU 3) is processed in the third pipeline stage (PSTG 3) and stored in a plurality of buffers. It can be stored in BUFFERS. The third unit data UD 3 may include third current CU size information, third next CU position information, and scan type information.

마찬가지로, 도 10d를 참조하면, 제4 파이프라인 스테이지(PSTG 4)에서 제4 파이프라인 영역 유닛(PAU 4)에 대한 유닛 데이터(예를 들면, 제4 유닛 데이터(UD 4))가 처리되어 복수의 버퍼들(BUFFERS)에 저장될 수 있다. 제4 유닛 데이터(UD 4)는 제4 현재 CU 사이즈 정보, 제4 다음 CU 위치 정보, 및 스캔 타입 정보를 포함할 수 있다.Likewise, referring to FIG. 10D, unit data (e.g., fourth unit data UD 4) for the fourth pipeline area unit PAU 4 is processed in the fourth pipeline stage PSTG 4 to generate a plurality of It can be stored in BUFFERS. The fourth unit data UD 4 may include fourth current CU size information, fourth next CU position information, and scan type information.

도 11은 본 개시의 예시적인 실시예들에 따른 비트스트림의 구조를 설명하기 위한 도면이다.FIG. 11 is a diagram for explaining the structure of a bitstream according to example embodiments of the present disclosure.

도 1 및 도 11을 참조하면, 비디오 인코딩 장치(100)에 의해 생성되는 비트스트림(BS)은 시퀀스 헤더 정보(SEQUENCE HEADER), 픽처 헤더 정보(PICTURE HEADER), 및 픽처 정보(PICTURE DATA)를 포함할 수 있다. 픽처 헤더 정보(PICTURE HEADER) 및 픽처 정보(PICTURE DATA)는 비트스트림(BS) 내에서 반복될 수 있다. 시퀀스 헤더 정보(SEQUENCE HEADER), 픽처 헤더 정보(PICTURE HEADER), 및 픽처 정보(PICTURE DATA)는 비디오 코덱 표준에 의해 정의되는 정보들이므로, 그 설명이 생략될 수 있다.1 and 11, the bitstream (BS) generated by the video encoding device 100 includes sequence header information (SEQUENCE HEADER), picture header information (PICTURE HEADER), and picture information (PICTURE DATA). can do. Picture header information (PICTURE HEADER) and picture information (PICTURE DATA) may be repeated within the bitstream (BS). Since sequence header information (SEQUENCE HEADER), picture header information (PICTURE HEADER), and picture information (PICTURE DATA) are information defined by the video codec standard, their description may be omitted.

일부 실시예들에서, 시퀀스 헤더 정보(SEQUENCE HEADER)는 버티컬 사이즈 정보(VERTICAL SIZE), 호라이즌 사이즈 정보(HORIZENTAL SIZE), 비트 퍼 픽셀 정보(BIT PER PIXEL), 크로마 포멧 정보(CHROMA FORMAT), CTU 사이즈 정보(CTU SIZE), 파이프라인 영역 유닛 개수 정보(PAU_NUM_IN_CTU)를 포함할 수 있다. 버티컬 사이즈 정보(VERTICAL SIZE), 호라이즌 사이즈 정보(HORIZENTAL SIZE), 비트 퍼 픽셀 정보(BIT PER PIXEL), 크로마 포멧 정보(CHROMA FORMAT), CTU 사이즈 정보(CTU SIZE)는 비디오 코덱 표준에 의해 정의되는 정보들이므로, 그 설명이 생략될 수 있다. 파이프라인 영역 유닛 개수 정보(PAU_NUM_IN_CTU)는 하나의 CTU에 포함되는 파이프라인 영역 유닛의 개수를 나타내는 데이터일 수 있다. 예를 들면, 파이프라인 영역 유닛 개수 정보(PAU_NUM_IN_CTU)는 하나의 CTU 내에서 파이프라인 영역 유닛의 개수(예, "2", "4", "8" 등)를 나타낼 수 있다. 파이프라인 영역 유닛 개수 정보(PAU_NUM_IN_CTU)에 대한 실시예들은 도 12를 참조하여 후술된다.In some embodiments, sequence header information (SEQUENCE HEADER) includes vertical size information (VERTICAL SIZE), horizon size information (HORIZENTAL SIZE), bit per pixel information (BIT PER PIXEL), chroma format information (CHROMA FORMAT), and CTU size. It may include information (CTU SIZE) and pipeline area unit number information (PAU_NUM_IN_CTU). Vertical size information (VERTICAL SIZE), horizon size information (HORIZENTAL SIZE), bit per pixel information (BIT PER PIXEL), chroma format information (CHROMA FORMAT), and CTU size information (CTU SIZE) are information defined by the video codec standard. Therefore, the explanation can be omitted. Pipeline area unit number information (PAU_NUM_IN_CTU) may be data indicating the number of pipeline area units included in one CTU. For example, pipeline area unit number information (PAU_NUM_IN_CTU) may indicate the number of pipeline area units (eg, “2”, “4”, “8”, etc.) within one CTU. Embodiments of the pipeline area unit number information (PAU_NUM_IN_CTU) will be described later with reference to FIG. 12.

일부 실시예들에서, 픽처 헤더 정보(PICTURE HEADER)는 인트라 픽쳐 플래그 정보(INTRA PICTURE FLAG), 픽쳐 QP(Quantization Parameter) 정보(PICTURE QP), 디블록 필터 인에이블 정보(DEBLOCK FILTER ENABLE), 및 파이프라인 영역 유닛 모드 정보(PAU_MODE)를 포함할 수 있다. 인트라 픽쳐 플래그 정보(INTRA PICTURE FLAG), 픽쳐 QP(Quantization Parameter) 정보(PICTURE QP), 및 디블록 필터 인에이블 정보(DEBLOCK FILTER ENABLE)는 비디오 코덱 표준에 의해 정의되는 정보들이므로, 그 설명이 생략될 수 있다. 파이프라인 영역 유닛 모드 정보(PAU_MODE)는 하나의 CTU에서 파이프라인 영역 유닛을 분할하는 방식을 나타내는 데이터일 수 있다. 파이프라인 영역 유닛 모드 정보(PAU_MODE)에 실시예들은 도 13을 참조하여 후술된다.In some embodiments, picture header information (PICTURE HEADER) includes intra picture flag information (INTRA PICTURE FLAG), picture Quantization Parameter (QP) information (PICTURE QP), deblock filter enable information (DEBLOCK FILTER ENABLE), and pipe May include line area unit mode information (PAU_MODE). INTRA PICTURE FLAG, picture QP (Quantization Parameter) information (PICTURE QP), and deblock filter enable information (DEBLOCK FILTER ENABLE) are information defined by the video codec standard, so their description is omitted. It can be. Pipeline area unit mode information (PAU_MODE) may be data indicating a method of dividing pipeline area units in one CTU. Embodiments of the pipeline area unit mode information (PAU_MODE) will be described later with reference to FIG. 13.

일부 실시예들에서, 픽처 정보(PICTURE DATA)는 타일 헤더 정보(TILE HEADER) 및 타일 정보(TILE DATA)를 포함할 수 있다. 타일 헤더 정보(TILE HEADER) 및 타일 정보(TILE DATA)는 픽처 정보(PICTURE DATA) 내에서 반복될 수 있다. 일 실시예에서, 타일 헤더 정보(TILE HEADER)는 타일 타입 정보(TILE TYPE), 타일 QP 정보(TILE QP), 타일 사이즈 정보(TILE SIZE), 및 파이프라인 영역 유닛 모드 정보(PAU_MODE)를 포함할 수 있다.In some embodiments, picture information (PICTURE DATA) may include tile header information (TILE HEADER) and tile information (TILE DATA). Tile header information (TILE HEADER) and tile information (TILE DATA) may be repeated within picture information (PICTURE DATA). In one embodiment, tile header information (TILE HEADER) may include tile type information (TILE TYPE), tile QP information (TILE QP), tile size information (TILE SIZE), and pipeline area unit mode information (PAU_MODE). You can.

일부 실시예들에서, 비트스트림(BS)이 파이프라인 영역 유닛 정보, 예를 들면, 파이프라인 영역 유닛 개수 정보(PAU_NUM_IN_CTU) 및 파이프라인 영역 유닛 모드 정보(PAU_MODE)를 포함하는 경우, 디코더(210)에 포함된 파이프라인 메모리들 각각의 크기는 파이프라인 영역 유닛 정보에 대응될 수 있다. 일 실시예에서, 각 파이프라인 메모리의 크기는 파이프라인 영역 유닛의 최대 개수, 하나의 CTU 내에서 파이프라인 영역 유닛의 최대 크기, 및/또는 하나의 CU에 포함되는 파이프라인 영역 유닛의 최대 개수에 대응될 수 있다.In some embodiments, when the bitstream (BS) includes pipeline area unit information, for example, pipeline area unit number information (PAU_NUM_IN_CTU) and pipeline area unit mode information (PAU_MODE), the decoder 210 The size of each of the pipeline memories included in may correspond to pipeline area unit information. In one embodiment, the size of each pipeline memory depends on the maximum number of pipeline area units, the maximum size of pipeline area units within one CTU, and/or the maximum number of pipeline area units contained in one CU. can be responded to.

다른 실시예들에서, 파이프라인 영역 유닛 모드 정보(PAU_MODE)는, 픽처, 타일, 또는 CTU 등과 관련된 필드에 포함될 수도 있다.In other embodiments, pipeline area unit mode information (PAU_MODE) may be included in a field related to a picture, tile, or CTU.

도시되지 않았지만, 비트스트림(BS)은 하나의 CTU 내에서 파이프라인 영역 유닛의 크기(예, "0:16x16 pixels", "1: 32x32 pixels" 등)를 나타내는 파이프라인 영역 크기 정보를 더 포함할 수도 있다.Although not shown, the bitstream (BS) may further include pipeline area size information indicating the size of the pipeline area unit (e.g., "0:16x16 pixels", "1: 32x32 pixels", etc.) within one CTU. It may be possible.

도시되지 않았지만, 비트스트림(BS)은, 영상의 계층 구조에 따른 각 계층에서 이용되는 신택스들을 각각 포함하는 시퀀스 파라미터 정보, 픽처 파라미터 정보, 슬라이스 정보, 트랜스폼 정보 등을 더 포함할 수 있다.Although not shown, the bitstream (BS) may further include sequence parameter information, picture parameter information, slice information, transform information, etc., each including syntax used in each layer according to the hierarchical structure of the image.

도 12는 본 개시의 예시적인 실시예들에 따른 파이프라인 영역 유닛 개수 정보를 설명하기 위한 도면이다.FIG. 12 is a diagram for explaining pipeline area unit number information according to example embodiments of the present disclosure.

도 11 및 도 12를 참조하면, 파이프라인 영역 유닛 개수 정보(PAU_NUM_IN_CTU)의 값(VALUE OF PAU_NUM_IN_CTU)은, 2-비트 파라미터(2-bit parameter)로 나타낼 수 있다. 예를 들면, 파이프라인 영역 유닛 개수 정보(PAU_NUM_IN_CTU)의 값(VALUE OF PAU_NUM_IN_CTU)은, "0x00", "0x01", "0x02", 또는, "0x03"일 수 있다. 하지만, 이에 한정되는 것은 아니다. Referring to Figures 11 and 12, the value (VALUE OF PAU_NUM_IN_CTU) of the pipeline area unit number information (PAU_NUM_IN_CTU) can be expressed as a 2-bit parameter. For example, the value (VALUE OF PAU_NUM_IN_CTU) of the pipeline area unit number information (PAU_NUM_IN_CTU) may be “0x00”, “0x01”, “0x02”, or “0x03”. However, it is not limited to this.

파이프라인 영역 유닛 개수 정보(PAU_NUM_IN_CTU)의 값(VALUE OF PAU_NUM_IN_CTU)이 "0x00"인 경우, 단일 CTU 내에 포함되는 파이프라인 영역 유닛의 개수(THE NUMBER OF PAU IN CTU)는 1개일 수 있다. 이는, CTU의 개수와 PAU의 개수가 동일하거나, 하나의 CTU와 하나의 PAU가 일대일 대응되는 것을 의미할 수 있다.If the value (VALUE OF PAU_NUM_IN_CTU) of the pipeline area unit number information (PAU_NUM_IN_CTU) is "0x00", the number of pipeline area units (THE NUMBER OF PAU IN CTU) included in a single CTU may be 1. This may mean that the number of CTUs and the number of PAUs are the same, or that one CTU and one PAU correspond one-to-one.

파이프라인 영역 유닛 개수 정보(PAU_NUM_IN_CTU)의 값(VALUE OF PAU_NUM_IN_CTU)이 "0x01"인 경우, 단일 CTU 내에 포함되는 파이프라인 영역 유닛의 개수(THE NUMBER OF PAU IN CTU)는 2개일 수 있다. 이는 하나의 CTU는 2개의 PAU들을 포함하는 것을 의미할 수 있다. 즉, 하나의 CTU는 같은 면적을 가진 2개의 PAU로 나뉠 수 있다.If the value (VALUE OF PAU_NUM_IN_CTU) of the pipeline area unit number information (PAU_NUM_IN_CTU) is "0x01", the number of pipeline area units (THE NUMBER OF PAU IN CTU) included in a single CTU may be 2. This may mean that one CTU includes two PAUs. That is, one CTU can be divided into two PAUs with the same area.

파이프라인 영역 유닛 개수 정보(PAU_NUM_IN_CTU)의 값(VALUE OF PAU_NUM_IN_CTU)이 "0x02"인 경우, 단일 CTU 내에 포함되는 파이프라인 영역 유닛의 개수(THE NUMBER OF PAU IN CTU)는 4개일 수 있다. 이는 하나의 CTU는 4개의 PAU들을 포함하는 것을 의미할 수 있다. 즉, 하나의 CTU는 같은 면적을 가진 4개의 PAU로 나뉠 수 있다.If the value (VALUE OF PAU_NUM_IN_CTU) of the pipeline area unit number information (PAU_NUM_IN_CTU) is "0x02", the number of pipeline area units (THE NUMBER OF PAU IN CTU) included in a single CTU may be 4. This may mean that one CTU includes 4 PAUs. In other words, one CTU can be divided into four PAUs with the same area.

파이프라인 영역 유닛 개수 정보(PAU_NUM_IN_CTU)의 값(VALUE OF PAU_NUM_IN_CTU)이 "0x03"인 경우, 단일 CTU 내에 포함되는 파이프라인 영역 유닛의 개수(THE NUMBER OF PAU IN CTU)는 8개일 수 있다. 이는 하나의 CTU는 8개의 PAU들을 포함하는 것을 의미할 수 있다. 즉, 하나의 CTU는 같은 면적을 가진 8개의 PAU로 나뉠 수 있다.If the value (VALUE OF PAU_NUM_IN_CTU) of the pipeline area unit number information (PAU_NUM_IN_CTU) is "0x03", the number of pipeline area units (THE NUMBER OF PAU IN CTU) included in a single CTU may be 8. This may mean that one CTU includes 8 PAUs. That is, one CTU can be divided into eight PAUs with the same area.

도 13은 본 개시의 예시적인 실시예들에 따른 파이프라인 영역 유닛 모드 정보를 설명하기 위한 도면이다.FIG. 13 is a diagram for explaining pipeline area unit mode information according to example embodiments of the present disclosure.

도 13을 참조하면, 파이프라인 영역 유닛 모드 정보(PAU_MODE)는 하나의 CTU에서 파이프라인 영역 유닛을 분할하는 방식을 나타낼 수 있다. 일부 실시예들에서, 파이프라인 영역 유닛 모드 정보(PAU_MODE)는, CU의 크기가 PAU의 크기보다 큰 경우, 하나의 CTU를 특정 형태를 갖는 PAU로 나누는 방법을 의미할 수 있다.Referring to FIG. 13, pipeline area unit mode information (PAU_MODE) may indicate a method of dividing pipeline area units in one CTU. In some embodiments, pipeline area unit mode information (PAU_MODE) may refer to a method of dividing one CTU into PAUs having a specific type when the size of the CU is larger than the size of the PAU.

도 13을 참조하여 예를 들면, 파이프라인 영역 유닛 모드 정보(PAU_MODE)는 쿼드 모드(QUAD), 호라이즌 모드(HOR), 버티컬 모드(VER), 및 기타 모드(ELSE)를 포함할 수 있다. 하지만, 이에 한정되는 것은 아니다.For example, with reference to FIG. 13, pipeline area unit mode information (PAU_MODE) may include quad mode (QUAD), horizon mode (HOR), vertical mode (VER), and other modes (ELSE). However, it is not limited to this.

쿼드 모드(QUAD)는, 하나의 CTU를 정사각형의 파이프라인 영역 유닛으로 나누는 모드일 수 있다. 예를 들면, 하나의 CTU 내에서 4개의 파이프라인 영역 유닛들이 포함될 수 있고, 각 파이프라인 영역 유닛의 형태는 정사각형일 수 있다.Quad mode (QUAD) may be a mode that divides one CTU into square pipeline area units. For example, four pipeline area units may be included within one CTU, and the shape of each pipeline area unit may be square.

호라이즌 모드(HOR)는, 상기 하나의 CTU를 상대적으로 긴 수평 길이를 갖는 직사각형의 파이프라인 영역 유닛으로 나누는 모드일 수 있다. 예를 들면, 하나의 CTU 내에서 2개 이상의 파이프라인 영역 유닛들이 포함될 수 있고, 각 파이프라인 영역 유닛의 형태는 세로보다 더 긴 가로를 갖는 직사각형일 수 있다.Horizon mode (HOR) may be a mode that divides the one CTU into rectangular pipeline area units with a relatively long horizontal length. For example, two or more pipeline area units may be included within one CTU, and the shape of each pipeline area unit may be a rectangle with a width longer than the length.

버티컬 모드(VER)는, 하나의 CTU를 상대적으로 긴 수직 길이를 갖는 직사각형의 파이프라인 영역 유닛으로 나누는 모드일 수 있다. 예를 들면, 하나의 CTU 내에서 2개 이상의 파이프라인 영역 유닛들이 포함될 수 있고, 각 파이프라인 영역 유닛의 형태는 가로보다 더 긴 세로를 갖는 직사각형일 수 있다.Vertical mode (VER) may be a mode that divides one CTU into rectangular pipeline area units with a relatively long vertical length. For example, two or more pipeline area units may be included within one CTU, and the shape of each pipeline area unit may be a rectangle with a length longer than width.

기타 모드(ELSE)는, CU의 형태에 따라 쿼드 모드(QUAD), 호라이즌 모드(HOR), 또는 버티컬 모드(VER)로 선택되는 모드일 수 있다. 예를 들면, CU의 수평 길이가 CU의 수직 길이와 같으면, 즉 CU의 형태가 정사각형이면, 기타 모드(ELSE)는 쿼드 모드(QUAD) 또는 호라이즌 모드(HOR)일 수 있다. 다른 예를 들면, CU의 수평 길이가 CU의 수직 길이보다 길면, 기타 모드(ELSE)는 버티컬 모드(VER)일 수 있다. 또 다른 예를 들면, CU의 수직 길이가 CU의 수평 길이보다 길면, 기타 모드(ELSE)는 호라이즌 모드(HOR)일 수 있다.The other mode (ELSE) may be a mode selected as quad mode (QUAD), horizon mode (HOR), or vertical mode (VER) depending on the type of CU. For example, if the horizontal length of the CU is the same as the vertical length of the CU, that is, if the shape of the CU is square, the other mode (ELSE) may be quad mode (QUAD) or horizon mode (HOR). For another example, if the horizontal length of the CU is longer than the vertical length of the CU, the other mode (ELSE) may be the vertical mode (VER). For another example, if the vertical length of the CU is longer than the horizontal length of the CU, the other mode (ELSE) may be the horizon mode (HOR).

도 14는 본 개시의 예시적인 실시예들에 따른 비디오 디코딩 장치의 동작 방법을 설명하기 위한 흐름도이다.FIG. 14 is a flowchart illustrating a method of operating a video decoding device according to example embodiments of the present disclosure.

도 14를 참조하면, 비디오 디코딩 장치의 동작 방법은 제1 파이프라인 스테이지(S100) 및 제2 파이프라인 스테이지(S200)를 포함할 수 있다.Referring to FIG. 14, a method of operating a video decoding device may include a first pipeline stage (S100) and a second pipeline stage (S200).

제1 파이프라인 스테이지(S100)에서, 제1 하드웨어 블록이, 제1 파이프라인 스테이지에서 비트스트림이 파이프라인 단위로 분할된 제1 유닛 데이터를 처리하여, 제1 유닛 데이터를 제1 파이프라인 메모리에 저장하는 단계가 수행된다(S1000). 단계 S1000는 도 3a를 참조하여 바와 동일할 수 있다.In the first pipeline stage (S100), the first hardware block processes first unit data in which the bitstream is divided into pipeline units in the first pipeline stage, and stores the first unit data in the first pipeline memory. A saving step is performed (S1000). Step S1000 may be the same as with reference to FIG. 3A.

제1 파이프라인 스테이지(S100)의 다음의 제2 파이프라인 스테이지(S200)에서, 제1 하드웨어 블록이, 제2 파이프라인 스테이지에서 파이프라인 단위로 분할된 제2 유닛 데이터를 처리하여, 제2 유닛 데이터를 제1 파이프라인 메모리에 저장하는 단계가 수행된다(S2000). 단계 S2000과 동시에, 제2 하드웨어 블록이, 제1 파이프라인 메모리에 저장된 제1 유닛 데이터를 읽어, 제1 유닛 데이터를 처리하고, 제1 유닛 데이터를 제2 파이프라인 메모리에 저장하는 단계가 수행된다(S2100). 단계 S2000 및 단계 S2100는 도 3b를 참조하여 바와 동일할 수 있다.In the second pipeline stage (S200) following the first pipeline stage (S100), the first hardware block processes the second unit data divided into pipeline units in the second pipeline stage to form the second unit. A step of storing data in the first pipeline memory is performed (S2000). Simultaneously with step S2000, the second hardware block reads the first unit data stored in the first pipeline memory, processes the first unit data, and stores the first unit data in the second pipeline memory. (S2100). Step S2000 and step S2100 may be the same as with reference to FIG. 3B.

일부 실시예들에서, 제1 파이프라인 스테이지(S100)에서, 단계 S1000과 동시에, 제2 하드웨어 블록이, 제1 파이프라인 스테이지 이전의 파이프라인 스테이지에서 처리된 유닛 데이터를 제1 파이프라인 메모리로부터 읽어, 유닛 데이터를 처리하는 단계가 수행된다. 일 실시예에서, 처리되는 유닛 데이터는 제2 파이프라인 메모리에 저장될 수 있다. 다른 실시예에서, 제2 파이프라인 스테이지(S200)에서, 단계 S2000 및 단계 S2100과 동시에, 제3 하드웨어 블록이, 제2 파이프라인 메모리에 저장된 유닛 데이터를 읽어, 유닛 데이터를 처리하는 단계가 더 수행된다.In some embodiments, in the first pipeline stage S100, simultaneously with step S1000, the second hardware block reads unit data processed in the pipeline stage prior to the first pipeline stage from the first pipeline memory. , steps for processing unit data are performed. In one embodiment, the unit data being processed may be stored in a second pipeline memory. In another embodiment, in the second pipeline stage S200, simultaneously with steps S2000 and S2100, a third hardware block further performs the step of reading unit data stored in the second pipeline memory and processing the unit data. do.

일부 실시예들에서, 비디오 디코딩 장치의 동작 방법은 제2 파이프라인 스테이지(S200) 다음의 제3 파이프라인 스테이지를 더 포함할 수 있다. 제3 파이프라인 스테이지에서, 제1 하드웨어 블록이, 비트스트림에서 파이프라인 단위로 분할된 제3 유닛 데이터를 처리하여, 제3 유닛 데이터를 제1 파이프라인 메모리에 저장하는 단계, 및 동시에, 제2 하드웨어 블록이, 제1 파이프라인 메모리에 저장된 제2 유닛 데이터를 읽고, 제2 유닛 데이터를 처리하고, 제2 유닛 데이터를 제2 파이프라인 메모리에 저장하는 단계, 및 동시에, 제3 하드웨어 블록이, 제2 파이프라인 메모리에 저장된 제1 유닛 데이터를 읽어, 제1 유닛 데이터를 처리하는 단계가 수행된다.In some embodiments, the method of operating the video decoding device may further include a third pipeline stage following the second pipeline stage (S200). In the third pipeline stage, the first hardware block processes third unit data divided into pipeline units in the bitstream and stores the third unit data in the first pipeline memory, and at the same time, the second a hardware block reading second unit data stored in a first pipeline memory, processing the second unit data, and storing the second unit data in the second pipeline memory, and at the same time, a third hardware block comprising: A step of reading first unit data stored in the second pipeline memory and processing the first unit data is performed.

전술한 바에 의하면, 비디오 압축 방식이나, 트리 분할 모드와 무관하게 상대적으로 적은 파이프라인 단위로 디코딩 동작을 수행함으로써, 파이프라인 메모리의 크기, 저장 용량을 감소시키는 효과가 있다.As described above, by performing a decoding operation in relatively small pipeline units regardless of the video compression method or tree splitting mode, there is an effect of reducing the size and storage capacity of the pipeline memory.

도 15는 본 개시의 예시적인 실시예들에 따른 파이프라인 단위로 유닛 데이터를 처리하는 방법을 설명하기 위한 흐름도이다.FIG. 15 is a flowchart illustrating a method of processing unit data on a pipeline basis according to example embodiments of the present disclosure.

도 15를 참조하면, 도 15에 도시된 파이프라인 단위로 유닛 데이터를 처리하는 방법은, 도 2, 도 3a, 도 3b, 도 3c, 도 4, 및 도 5를 참조하여 전술한 바와 같이 하드웨어 블록들과 파이프라인 메모리들의 동작 방법에 대응될 수 있다.Referring to FIG. 15, the method of processing unit data in pipeline units shown in FIG. 15 includes hardware blocks as described above with reference to FIGS. 2, 3A, 3B, 3C, 4, and 5. It can correspond to the operation method of the pipeline memories.

단계 S10에서, 코딩 트리 블록(coding tree block: CTB, 이하 "CTB")이 시작된다. In step S10, a coding tree block (CTB) begins.

단계 S20에서, 하나의 CTB에 포함된 CU가 시작된다.In step S20, a CU included in one CTB is started.

단계 S30에서, 하드웨어 블록이 입력 버퍼를 읽고, 유닛 데이터를 처리하며, 출력 버퍼에 쓴다. 여기서, 입력 버퍼는 하드웨어 블록의 전단에 위치하는 파이프라인 메모리의 버퍼일 수 있다. 출력 버퍼는 하드웨어 블록의 후단에 위치하는 파이프라인 메모리의 버퍼일 수 있다. In step S30, the hardware block reads the input buffer, processes unit data, and writes to the output buffer. Here, the input buffer may be a buffer of pipeline memory located at the front of the hardware block. The output buffer may be a buffer in the pipeline memory located at the rear of the hardware block.

단계 S40에서, 버퍼 어드레스가 증가한다. 버퍼 어드레스가 증가한다는 것은 버퍼 어드레스의 번호가 증가한다는 것일 수 있다. 도 10a를 참조하면, 어드레스 번호가 1에서 2로 증가할 수 있다. 하지만, 이에 한정되는 것은 아니다.In step S40, the buffer address is incremented. Increasing the buffer address may mean that the buffer address number increases. Referring to FIG. 10A, the address number may increase from 1 to 2. However, it is not limited to this.

단계 S50에서, 버퍼 어드레스와 파이프라인 사이즈 간의 비율이 0인지 여부가 판단된다. 여기서, 파이프라인 사이즈는 파이프라인 메모리의 크기, 즉 파이프라인 메모리의 저장 용량일 수 있다.In step S50, it is determined whether the ratio between the buffer address and the pipeline size is 0. Here, the pipeline size may be the size of the pipeline memory, that is, the storage capacity of the pipeline memory.

버퍼 어드레스와 파이프라인 사이즈 간의 비율이 0이 아니면(S50, 아니오), 단계 S30이 수행된다. 버퍼 어드레스와 파이프라인 사이즈 간의 비율이 0이면(S50, 예), 단계 S60에서, 서브 파이프라인이 완료된다. 서브 파이프라인은 하나의 CU 내 포함되는 파이프라인일 수 있다.If the ratio between the buffer address and the pipeline size is not 0 (S50, no), step S30 is performed. If the ratio between the buffer address and the pipeline size is 0 (S50, yes), then in step S60, the sub-pipeline is completed. A sub-pipeline may be a pipeline included within one CU.

단계 S70에서, CU의 끝인지 여부가 판단된다. CU의 끝이 아니면(S70, 아니오), 단계 S30이 수행된다. CU의 끝이 맞으면(S70, 예), 단계 S80에서, CTB의 끝인지 여부가 판단된다. CTB의 끝이 아니면(S80, 아니오), 단계 S20이 수행된다. CTB의 맞으면(S80, 예), 단계 S90에서, CTB가 완료된다.In step S70, it is determined whether the CU is at the end. If it is not the end of the CU (S70, no), step S30 is performed. If the end of the CU is correct (S70, yes), in step S80, it is determined whether it is the end of the CTB. If it is not the end of the CTB (S80, no), step S20 is performed. If the CTB is correct (S80, yes), in step S90, the CTB is completed.

도 16은 본 개시의 예시적인 실시예들에 따른 디스플레이 장치의 블록도이다.Figure 16 is a block diagram of a display device according to example embodiments of the present disclosure.

도 16을 참조하면, 디스플레이 장치(1400)는, 휴대용 통신 단말기(mobile phone), 스마트폰(smart phone), 태블릿 PC(tablet personal computer), 웨어러블 기기, 헬스케어 기기 또는 IoT(internet of things) 기기와 같은 모바일(mobile) 시스템에 포함될 수 있다. 하지만, 디스플레이 장치(1400)가 전술한 바에 한정되는 것은 아니다. 디스플레이 장치(1400)는 개인용 컴퓨터(personal computer), 랩탑(laptop) 컴퓨터, 서버(server), 미디어 재생기(media player) 또는 내비게이션(navigation)과 같은 차량용 장비(automotive device) 등에 포함될 수도 있다.Referring to FIG. 16, the display device 1400 is a portable communication terminal (mobile phone), a smart phone, a tablet personal computer (PC), a wearable device, a healthcare device, or an IoT (internet of things) device. It may be included in a mobile system such as. However, the display device 1400 is not limited to the above. The display device 1400 may be included in a personal computer, laptop computer, server, media player, or automotive device such as navigation.

디스플레이 장치(1400)는 프로세서(1410), 디코더(1420), 메모리(1430), 및 디스플레이 모듈(1440)을 포함할 수 있다. The display device 1400 may include a processor 1410, a decoder 1420, a memory 1430, and a display module 1440.

프로세서(1410)는 디스플레이 장치(1400)의 전반적인 동작, 보다 구체적으로는 디스플레이 장치(1400)을 이루는 다른 구성 요소들의 동작을 제어할 수 있다. 이와 같은 프로세서(1410)는 범용 프로세서, 전용 프로세서 또는 애플리케이션 프로세서(application processor) 등으로 구현될 수 있다. The processor 1410 may control the overall operation of the display device 1400, and more specifically, the operation of other components forming the display device 1400. Such a processor 1410 may be implemented as a general-purpose processor, a dedicated processor, or an application processor.

프로세서(1410)는 하나 이상의 CPU 코어(1110)를 포함할 수 있다. 프로세서(1410)는 디코더(1420), 메모리(1430), 및 디스플레이 모듈(1440)을 제어하기 위한 적어도 하나의 컨트롤러를 더 포함할 수 있다. Processor 1410 may include one or more CPU cores 1110. The processor 1410 may further include at least one controller for controlling the decoder 1420, the memory 1430, and the display module 1440.

프로세서(1410)는 AI(artificial intelligence) 데이터 연산 등 고속 데이터 연산을 위한 전용 회로인 가속기(accelerator)를 더 포함할 수 있다. 이와 같은 가속기는 GPU(Graphics Processing Unit), NPU(Neural Processing Unit) 및/또는 DPU(Data Processing Unit) 등을 포함할 수 있으며, 프로세서(1410)의 다른 구성 요소와는 물리적으로 독립된 별개의 칩(chip)으로 구현될 수도 있다.The processor 1410 may further include an accelerator, which is a dedicated circuit for high-speed data computation, such as artificial intelligence (AI) data computation. Such accelerators may include a graphics processing unit (GPU), a neural processing unit (NPU), and/or a data processing unit (DPU), etc., and may be a separate chip (physically independent from other components of the processor 1410). It can also be implemented as a chip.

디코더(1420) 및 메모리(1430)는 도 1에 도시된 디코더(210) 및 메모리(220)에 대응될 수 있다.The decoder 1420 and memory 1430 may correspond to the decoder 210 and memory 220 shown in FIG. 1.

디스플레이 모듈(1440)은 사용자에게 각각 시각적 정보를 출력하는 출력 장치로 기능할 수 있다. 디스플레이 모듈(1440)은 디코더(1420)에 의해 디코딩된 영상 데이터에 따른 영상을 표시할 수 있다.The display module 1440 may function as an output device that outputs visual information to each user. The display module 1440 may display an image according to image data decoded by the decoder 1420.

본 개시의 범위 또는 기술적 사상을 벗어나지 않고 본 개시의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 개시의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 개시가 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.It is obvious to those skilled in the art that the structure of the present disclosure can be modified or changed in various ways without departing from the scope or technical spirit of the present disclosure. In view of the foregoing, it is believed that the present disclosure includes modifications and modifications of the present disclosure if such modifications and variations fall within the scope of the following claims and equivalents.

이상과 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.As described above, exemplary embodiments have been disclosed in the drawings and specifications. Although embodiments have been described in this specification using specific terms, this is only used for the purpose of explaining the technical idea of the present disclosure and is not used to limit the meaning or scope of the present disclosure as set forth in the claims. . Therefore, those skilled in the art will understand that various modifications and other equivalent embodiments are possible therefrom. Therefore, the true technical protection scope of the present disclosure should be determined by the technical spirit of the attached patent claims.

Claims (20)

비트스트림을 파이프라인(pipeline) 단위로 디코딩 처리하는 복수의 하드웨어 블록들, 및 상기 복수의 하드웨어 블록들 사이에 위치하고 상기 복수의 하드웨어 블록들 각각에 의해 상기 파이프라인 단위로 처리된 유닛 데이터를 파이프라인 스테이지마다 저장하는 복수의 파이프라인 메모리들을 포함하는 디코더; 및
상기 디코더에 의해 디코딩된 영상 데이터를 저장하는 메모리를 포함하고,
상기 유닛 데이터는,
코딩 트리 유닛(CTU: Coding Tree Unit, 이하 "CTU")에 포함된 복수의 단위 픽셀 그룹들 중 파이프라인 영역 유닛에 대응되는 단위 픽셀 그룹들 각각이 속한 현재의 코딩 유닛(CU: Coding Unit, 이하 "CU")의 크기를 나타내는 현재 CU 사이즈 정보, 상기 단위 픽셀 그룹들 각각이 속한 현재의 CU의 다음(next) CU의 위치를 나타내는 다음 CU 위치 정보, 및 단위 픽셀 그룹의 스캔 타입을 나타내는 스캔 타입 정보를 포함하는, 비디오 디코딩 장치.
A plurality of hardware blocks for decoding and processing a bitstream on a pipeline basis, and unit data located between the plurality of hardware blocks and processed on a pipeline basis by each of the plurality of hardware blocks through a pipeline. A decoder including a plurality of pipeline memories stored for each stage; and
Includes a memory for storing image data decoded by the decoder,
The unit data is,
The current coding unit (CU: Coding Unit, hereinafter) to which each unit pixel group corresponding to a pipeline area unit belongs among a plurality of unit pixel groups included in a coding tree unit (CTU: Coding Tree Unit, hereinafter “CTU”). Current CU size information indicating the size of the unit pixel group, next CU position information indicating the position of the next CU of the current CU to which each of the unit pixel groups belongs, and scan type indicating the scan type of the unit pixel group. A video decoding device containing information.
제1 항에 있어서,
상기 복수의 하드웨어 블록들은,
제1 하드웨어 블록 및 제2 하드웨어 블록을 포함하고,
상기 복수의 파이프라인 메모리들은,
상기 제1 하드웨어 블록에 의해 처리된 제1 유닛 데이터를 저장하고, 상기 제2 하드웨어 블록에 제공될 제2 유닛 데이터를 저장하는, 제1 파이프라인 메모리를 포함하는 것을 특징으로 하는, 비디오 디코딩 장치.
According to claim 1,
The plurality of hardware blocks are,
Comprising a first hardware block and a second hardware block,
The plurality of pipeline memories are,
A video decoding device comprising a first pipeline memory that stores first unit data processed by the first hardware block and stores second unit data to be provided to the second hardware block.
제2 항에 있어서,
상기 제1 하드웨어 블록이 상기 제1 유닛 데이터를 처리하여 상기 제1 유닛 데이터를 상기 제1 파이프라인 메모리에 저장하고, 동시에, 상기 제2 하드웨어 블록이 상기 제2 유닛 데이터를 처리하는 것을 특징으로 하는, 비디오 디코딩 장치.
According to clause 2,
The first hardware block processes the first unit data and stores the first unit data in the first pipeline memory, and at the same time, the second hardware block processes the second unit data. , video decoding device.
제2 항에 있어서,
상기 제1 파이프라인 메모리는,
상기 제1 유닛 데이터를 저장하는 제1 메모리; 및
상기 제2 유닛 데이터를 저장하는 제2 메모리를 포함하는 것을 특징으로 하는, 비디오 디코딩 장치.
According to clause 2,
The first pipeline memory is,
a first memory storing the first unit data; and
A video decoding device comprising a second memory storing the second unit data.
제4 항에 있어서,
제1 파이프라인 스테이지에서, 상기 제1 하드웨어 블록은 상기 제1 유닛 데이터를 상기 제1 메모리에 저장하고, 상기 제2 하드웨어 블록은 상기 제2 메모리로부터 상기 제2 유닛 데이터를 읽고,
상기 제1 파이프라인 스테이지 다음의 제2 파이프라인 스테이지에서, 상기 제1 하드웨어 블록은 새로운 유닛 데이터를 상기 제2 메모리에 저장하고, 상기 제2 하드웨어 블록은 상기 제1 메모리로부터 상기 제1 유닛 데이터를 읽는 것을 특징으로 하는, 비디오 디코딩 장치.
According to clause 4,
In a first pipeline stage, the first hardware block stores the first unit data in the first memory, and the second hardware block reads the second unit data from the second memory,
In a second pipeline stage following the first pipeline stage, the first hardware block stores new unit data in the second memory, and the second hardware block stores the first unit data from the first memory. A video decoding device, characterized in that reading.
제1 항에 있어서,
상기 복수의 하드웨어 블록들은,
제1 하드웨어 블록 및 제2 하드웨어 블록을 포함하고,
상기 제1 하드웨어 블록은,
상기 비트스트림에서 상기 유닛 데이터를, 상기 복수의 파이프라인 메모리들 중 상기 제1 하드웨어 블록 및 상기 제2 하드웨어 블록 사이의 파이프라인 메모리에 저장하는 것을 특징으로 하는, 비디오 디코딩 장치.
According to claim 1,
The plurality of hardware blocks are,
Comprising a first hardware block and a second hardware block,
The first hardware block is,
A video decoding device, characterized in that storing the unit data in the bitstream in a pipeline memory between the first hardware block and the second hardware block among the plurality of pipeline memories.
제1 항에 있어서,
상기 복수의 파이프라인 메모리들은, 각각
상기 파이프라인 영역 유닛에 포함되는 단위 픽셀 그룹들에 대응되는 복수의 버퍼 어드레스들을 갖는 복수의 버퍼들을 포함하는 것을 특징으로 하는, 비디오 디코딩 장치.
According to claim 1,
The plurality of pipeline memories each
A video decoding device comprising a plurality of buffers having a plurality of buffer addresses corresponding to unit pixel groups included in the pipeline area unit.
제1 항에 있어서,
상기 복수의 하드웨어 블록들은,
상기 비트스트림을 파싱(parsing)하는 비트스트림 파싱 블록;
파싱된 비트스트림을 역양자화하고, 역양자화된 결과에 대하여 역변환을 수행하는 IQT 블록;
상기 파싱된 비트스트림을 기초로 모션 벡터를 생성하는 모션 벡터 블록;
상기 모션 벡터를 기초로 예측 블록을 생성하는 인트라 모드 블록;
상기 모션 벡터를 기초로 모션 보상을 수행하는 모션 보상 블록;
상기 모션 벡터를 기초로 인터 예측을 수행하는 인터 예측 블록;
상기 모션 벡터, 상기 예측 블록, 상기 인터 예측의 수행 결과를 기초로 인트라 예측을 수행하는 인트라 예측 및 리콘 블록; 및
상기 디코딩된 영상 데이터를 상기 메모리에 저장하는 루프 필터 블록을 포함하는 것을 특징으로 하는, 비디오 디코딩 장치.
According to claim 1,
The plurality of hardware blocks are,
A bitstream parsing block that parses the bitstream;
An IQT block that dequantizes the parsed bitstream and performs inverse transformation on the dequantized result;
a motion vector block that generates a motion vector based on the parsed bitstream;
an intra-mode block that generates a prediction block based on the motion vector;
a motion compensation block that performs motion compensation based on the motion vector;
an inter prediction block that performs inter prediction based on the motion vector;
an intra prediction and recon block that performs intra prediction based on the motion vector, the prediction block, and a result of the inter prediction; and
A video decoding device comprising a loop filter block that stores the decoded image data in the memory.
제8 항에 있어서,
상기 복수의 파이프라인 메모리들은,
상기 비트스트림 파싱 블록과 상기 역양자화 블록 사이에 배치되는 제1 파이프라인 메모리;
상기 비트스트림 파싱 블록과 상기 모션 벡터 블록 사이에 배치되는 제2 파이프라인 메모리;
상기 역양자화 블록과 상기 인트라 예측 및 리콘 블록 사이에 배치되는 제3 파이프라인 메모리;
상기 모션 벡터 블록과 상기 인트라 모드 블록 사이에 배치되는 제4 파이프라인 메모리;
상기 모션 벡터 블록과 상기 모션 보상 블록 사이에 배치되는 제5 파이프라인 메모리;
상기 인트라 모드 블록과 상기 인트라 예측 및 리콘 블록 사이에 배치되는 제6 파이프라인 메모리;
상기 모션 보상 블록과 상기 인터 예측 블록 사이에 배치되는 제7 파이프라인 메모리;
상기 인터 예측 블록과 상기 인트라 예측 및 리콘 블록 사이에 배치되는 제8 파이프라인 메모리; 및
상기 인트라 예측 및 리콘 블록과 상기 필터 블록 사이에 배치되는 제9 파이프라인 메모리를 포함하는 것을 특징으로 하는, 비디오 디코딩 장치.
According to clause 8,
The plurality of pipeline memories are,
a first pipeline memory disposed between the bitstream parsing block and the dequantization block;
a second pipeline memory disposed between the bitstream parsing block and the motion vector block;
a third pipeline memory disposed between the dequantization block and the intra prediction and recon block;
a fourth pipeline memory disposed between the motion vector block and the intra mode block;
a fifth pipeline memory disposed between the motion vector block and the motion compensation block;
a sixth pipeline memory disposed between the intra mode block and the intra prediction and recon block;
a seventh pipeline memory disposed between the motion compensation block and the inter prediction block;
an eighth pipeline memory disposed between the inter prediction block and the intra prediction and recon block; and
A video decoding device comprising a ninth pipeline memory disposed between the intra prediction and recon block and the filter block.
복수의 하드웨어 블록들 및 복수의 파이프라인(pipeline) 메모리들을 포함하는 비디오 디코딩 장치의 동작 방법에 있어서,
제1 파이프라인 스테이지에서,
제1 하드웨어 블록이, 상기 제1 파이프라인 스테이지에서 비트스트림이 파이프라인 단위로 분할된 제1 유닛 데이터를 처리하여, 상기 제1 유닛 데이터를 제1 파이프라인 메모리에 저장하는 단계;
상기 제1 파이프라인 스테이지 다음의 제2 파이프라인 스테이지에서,
상기 제1 하드웨어 블록이, 상기 제2 파이프라인 스테이지에서 상기 파이프라인 단위로 분할된 제2 유닛 데이터를 처리하여, 상기 제2 유닛 데이터를 상기 제1 파이프라인 메모리에 저장하는 단계; 및
동시에, 제2 하드웨어 블록이, 상기 제1 파이프라인 메모리에 저장된 상기 제1 유닛 데이터를 읽어, 상기 제1 유닛 데이터를 처리하는 단계;
를 포함하는, 비디오 디코딩 장치의 동작 방법.
In a method of operating a video decoding device including a plurality of hardware blocks and a plurality of pipeline memories,
In the first pipeline stage,
Processing, by a first hardware block, first unit data in which the bitstream is divided into pipeline units in the first pipeline stage, and storing the first unit data in a first pipeline memory;
In a second pipeline stage following the first pipeline stage,
Processing, by the first hardware block, second unit data divided into pipeline units in the second pipeline stage and storing the second unit data in the first pipeline memory; and
At the same time, a second hardware block reads the first unit data stored in the first pipeline memory and processes the first unit data;
A method of operating a video decoding device, including.
제10 항에 있어서,
상기 제1 파이프라인 스테이지에서,
동시에, 상기 제2 하드웨어 블록이, 상기 제1 파이프라인 스테이지 이전의 파이프라인 스테이지에서 처리된 유닛 데이터를 상기 제1 파이프라인 메모리로부터 읽어, 상기 유닛 데이터를 처리하는 단계;
를 더 포함하는 것을 특징으로 하는, 비디오 디코딩 장치의 동작 방법.
According to claim 10,
In the first pipeline stage,
At the same time, the second hardware block reads unit data processed in a pipeline stage before the first pipeline stage from the first pipeline memory and processes the unit data;
A method of operating a video decoding device, further comprising:
제11 항에 있어서,
상기 제1 파이프라인 스테이지에서,
상기 유닛 데이터를 처리하는 단계는,
상기 유닛 데이터를 제2 파이프라인 메모리에 저장하고,
상기 제2 파이프라인 스테이지에서,
상기 제1 유닛 데이터를 처리하는 단계는,
상기 제1 유닛 데이터를 상기 제2 파이프라인 메모리에 저장하고,
상기 제2 파이프라인 스테이지에서,
동시에, 제3 하드웨어 블록이, 상기 제2 파이프라인 메모리에 저장된 상기 유닛 데이터를 읽어, 상기 유닛 데이터를 처리하는 단계;
를 더 포함하는 것을 특징으로 하는, 비디오 디코딩 장치의 동작 방법.
According to claim 11,
In the first pipeline stage,
The step of processing the unit data is,
Store the unit data in a second pipeline memory,
In the second pipeline stage,
The step of processing the first unit data is,
Store the first unit data in the second pipeline memory,
In the second pipeline stage,
At the same time, a third hardware block reads the unit data stored in the second pipeline memory and processes the unit data;
A method of operating a video decoding device, further comprising:
제12 항에 있어서,
상기 제2 파이프라인 스테이지 다음의 제3 파이프라인 스테이지에서,
상기 제1 하드웨어 블록이, 상기 비트스트림에서 상기 파이프라인 단위로 분할된 제3 유닛 데이터를 처리하여, 상기 제3 유닛 데이터를 상기 제1 파이프라인 메모리에 저장하는 단계;
동시에, 상기 제2 하드웨어 블록이, 상기 제1 파이프라인 메모리에 저장된 상기 제2 유닛 데이터를 읽고, 상기 제2 유닛 데이터를 처리하고, 상기 제2 유닛 데이터를 상기 제2 파이프라인 메모리에 저장하는 단계; 및
동시에, 상기 제3 하드웨어 블록이, 상기 제2 파이프라인 메모리에 저장된 상기 제1 유닛 데이터를 읽어, 상기 제1 유닛 데이터를 처리하는 단계;
를 더 포함하는 것을 특징으로 하는, 비디오 디코딩 장치의 동작 방법.
According to claim 12,
In a third pipeline stage following the second pipeline stage,
Processing, by the first hardware block, third unit data divided into pipeline units from the bitstream and storing the third unit data in the first pipeline memory;
At the same time, the second hardware block reads the second unit data stored in the first pipeline memory, processes the second unit data, and stores the second unit data in the second pipeline memory. ; and
At the same time, the third hardware block reads the first unit data stored in the second pipeline memory and processes the first unit data;
A method of operating a video decoding device, further comprising:
제10 항에 있어서,
상기 제2 파이프라인 스테이지에서,
상기 제1 유닛 데이터를 처리하는 단계는,
상기 제1 유닛 데이터를 제2 파이프라인 메모리에 저장하고,
상기 제2 파이프라인 스테이지 다음의 제3 파이프라인 스테이지에서,
상기 제1 하드웨어 블록이, 상기 제3 파이프라인 스테이지에서 상기 파이프라인 단위로 분할된 제3 유닛 데이터를 처리하여, 상기 제3 유닛 데이터를 상기 제1 파이프라인 메모리에 저장하는 단계;
동시에, 상기 제2 하드웨어 블록이, 상기 제1 파이프라인 메모리에 저장된 상기 제2 유닛 데이터를 읽고, 상기 제2 유닛 데이터를 처리하고, 상기 제2 유닛 데이터를 상기 제2 파이프라인 메모리에 저장하는 단계; 및
동시에, 제3 하드웨어 블록이, 상기 제2 파이프라인 메모리에 저장된 상기 제1 유닛 데이터를 읽어, 상기 제1 유닛 데이터를 처리하는 단계;
According to claim 10,
In the second pipeline stage,
The step of processing the first unit data is,
Store the first unit data in a second pipeline memory,
In a third pipeline stage following the second pipeline stage,
Processing, by the first hardware block, third unit data divided into pipeline units in the third pipeline stage and storing the third unit data in the first pipeline memory;
At the same time, the second hardware block reads the second unit data stored in the first pipeline memory, processes the second unit data, and stores the second unit data in the second pipeline memory. ; and
At the same time, a third hardware block reads the first unit data stored in the second pipeline memory and processes the first unit data;
제10 항에 있어서,
상기 제1 유닛 데이터는,
코딩 트리 유닛(CTU: Coding Tree Unit, 이하 "CTU")에 포함된 복수의 단위 픽셀 그룹들 중 제1 파이프라인 영역 유닛에 대응되는 단위 픽셀 그룹들 각각이 속한 현재의 코딩 유닛(CU: Coding Unit, 이하 "CU")의 크기를 나타내는 제1 현재 CU 사이즈 정보, 상기 제1 파이프라인 영역 유닛에 대응되는 단위 픽셀 그룹들 각각이 속한 현재의 CU의 다음(next) CU의 위치를 나타내는 제1 다음 CU 위치 정보, 및 단위 픽셀 그룹의 스캔 타입을 나타내는 스캔 타입 정보를 포함하고,
상기 제2 유닛 데이터는,
상기 복수의 단위 픽셀 그룹들 중 상기 제1 파이프라인 영역과 다른 제2 파이프라인 영역 유닛에 대응되는 단위 픽셀 그룹들 각각이 속한 현재의 CU의 크기를 나타내는 제2 현재 CU 사이즈 정보, 상기 제2 파이프라인 영역 유닛에 대응되는 대응되는 단위 픽셀 그룹들 각각이 속한 현재의 CU의 다음 CU의 위치를 나타내는 제2 다음 CU 위치 정보, 및 상기 스캔 타입 정보를 포함하는 것을 특징으로 하는, 비디오 디코딩 장치의 동작 방법.
According to claim 10,
The first unit data is,
The current coding unit (CU: Coding Unit) to which each of the unit pixel groups corresponding to the first pipeline area unit belongs among a plurality of unit pixel groups included in the Coding Tree Unit (CTU) (hereinafter “CTU”). , hereinafter “CU”), first current CU size information indicating the size of the current CU, and first next indicating the location of the next CU of the current CU to which each of the unit pixel groups corresponding to the first pipeline area unit belongs. Contains CU position information and scan type information indicating the scan type of the unit pixel group,
The second unit data is,
Second current CU size information indicating the size of the current CU to which each of the unit pixel groups corresponding to a second pipeline area unit different from the first pipeline area unit among the plurality of unit pixel groups belongs, the second pipe An operation of a video decoding device, characterized in that it includes second next CU position information indicating the position of the next CU of the current CU to which each of the corresponding unit pixel groups corresponding to the line area unit belongs, and the scan type information. method.
파이프라인 영역 유닛에 관한 파이프라인 영역 유닛 정보를 포함하는 비트스트림을 제공하는 비디오 인코딩 장치; 및
상기 비트스트림을 파이프라인 단위로 디코딩하고, 디코딩된 영상 데이터를 출력하는 비디오 디코딩 장치를 포함하고,
상기 비디오 디코딩 장치는,
상기 파이프라인 단위로 분할된 유닛 데이터를 처리하는 복수의 하드웨어 블록들; 및
상기 유닛 데이터를 저장하기 위해 상기 파이프라인 영역 유닛 정보에 대응되는 메모리 크기를 갖는 복수의 파이프라인 메모리들을 포함하는, 비디오 시스템.
a video encoding device that provides a bitstream including pipeline area unit information regarding the pipeline area unit; and
A video decoding device that decodes the bitstream in pipeline units and outputs decoded video data,
The video decoding device,
a plurality of hardware blocks that process unit data divided into pipeline units; and
A video system comprising a plurality of pipeline memories having a memory size corresponding to the pipeline area unit information for storing the unit data.
제16 항에 있어서,
상기 파이프라인 영역 유닛 정보는,
하나의 코딩 트리 유닛(CTU: Coding Tree Unit, 이하 "CTU")에 포함되는 파이프라인 영역 유닛의 개수를 나타내는 파이프라인 영역 유닛 개수 정보를 포함하는 것을 특징으로 하는, 비디오 시스템.
According to claim 16,
The pipeline area unit information is,
A video system comprising pipeline area unit number information indicating the number of pipeline area units included in one Coding Tree Unit (CTU) (hereinafter “CTU”).
제17 항에 있어서,
상기 파이프라인 영역 유닛 정보는,
상기 하나의 CTU에서 상기 파이프라인 영역 유닛을 분할하는 방식을 나타내는 파이프라인 영역 유닛 모드 정보를 더 포함하는 것을 특징으로 하는, 비디오 시스템.
According to claim 17,
The pipeline area unit information is,
The video system further includes pipeline area unit mode information indicating a method of dividing the pipeline area unit in the one CTU.
제18 항에 있어서,
상기 파이프라인 영역 유닛 모드 정보는,
상기 하나의 CTU를 정사각형의 파이프라인 영역 유닛으로 나누는 쿼드 모드, 상기 하나의 CTU를 상대적으로 긴 수평 길이를 갖는 직사각형의 파이프라인 영역 유닛으로 나누는 호라이즌 모드, 및 상기 하나의 CTU를 상대적으로 긴 수직 길이를 갖는 직사각형의 파이프라인 영역 유닛으로 나누는 버티컬 모드를 포함하는 것을 특징으로 하는, 비디오 시스템.
According to clause 18,
The pipeline area unit mode information is,
Quad mode, which divides the one CTU into square pipeline area units, Horizon mode, which divides the one CTU into rectangular pipeline area units with a relatively long horizontal length, and Horizon mode, which divides the one CTU into rectangular pipeline area units with a relatively long vertical length A video system comprising a vertical mode divided into rectangular pipelined area units having .
제16 항에 있어서,
상기 유닛 데이터는,
하나의 CTU에 포함된 복수의 단위 픽셀 그룹들 중 상기 파이프라인 영역 유닛에 대응되는 단위 픽셀 그룹들 각각이 속한 현재의 CU의 크기를 나타내는 현재 CU 사이즈 정보, 상기 단위 픽셀 그룹들 각각이 속한 현재의 CU의 다음(next) CU의 위치를 나타내는 다음 CU 위치 정보, 및 단위 픽셀 그룹의 스캔 타입을 나타내는 스캔 타입 정보를 포함하는 것을 특징으로 하는, 비디오 시스템.
According to claim 16,
The unit data is,
Current CU size information indicating the size of the current CU to which each of the unit pixel groups corresponding to the pipeline area unit belongs among a plurality of unit pixel groups included in one CTU, and the current CU to which each of the unit pixel groups belongs. A video system comprising next CU position information indicating the position of the next CU, and scan type information indicating the scan type of a unit pixel group.
KR1020220151989A 2022-09-05 2022-11-14 Video decoding device, operation method thereof, display device, and video system KR20240033618A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US18/214,112 US20240080499A1 (en) 2022-09-05 2023-06-26 Video decoding device, operating method thereof, display device, and video system
CN202310929726.2A CN117651145A (en) 2022-09-05 2023-07-26 Video decoding device, operation method thereof and video system
EP23190423.6A EP4340361A1 (en) 2022-09-05 2023-08-08 Video decoding device, operating method thereof, and video system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20220112338 2022-09-05
KR1020220112338 2022-09-05

Publications (1)

Publication Number Publication Date
KR20240033618A true KR20240033618A (en) 2024-03-12

Family

ID=90299942

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220151989A KR20240033618A (en) 2022-09-05 2022-11-14 Video decoding device, operation method thereof, display device, and video system

Country Status (1)

Country Link
KR (1) KR20240033618A (en)

Similar Documents

Publication Publication Date Title
US11611757B2 (en) Position dependent intra prediction combination extended with angular modes
US9967577B2 (en) Acceleration interface for video decoding
US10575007B2 (en) Efficient decoding and rendering of blocks in a graphics pipeline
JP5280530B2 (en) Fragmentation reference with temporal compression for video coding
KR101240450B1 (en) Methods for determining block averages for film grain simulation
KR100994979B1 (en) Parallel decoding of intra-encoded video
US20180103261A1 (en) Browser-based video decoder using multiple cpu threads
KR20150056811A (en) Content adaptive transform coding for next generation video
US20170264904A1 (en) Intra-prediction complexity reduction using limited angular modes and refinement
CN112333446B (en) Intra-frame block copy reference block compression method
US11818397B2 (en) Sparse matrix representation using a boundary of non-zero coefficients
JP2023508364A (en) context-adaptive transform set
KR20230084143A (en) Method and apparatus for encoding/decoding at least one attribute of an animated 3D object
KR20230162989A (en) Multimedia data processing methods, apparatus, devices, computer-readable storage media, and computer program products
CN107018416B (en) Adaptive tile data size coding for video and image compression
KR101065546B1 (en) A hardware multi-standard video decoder device
KR20240033618A (en) Video decoding device, operation method thereof, display device, and video system
US20240080499A1 (en) Video decoding device, operating method thereof, display device, and video system
TW202412523A (en) Video decoding device, operating method thereof, and video system
CN117651145A (en) Video decoding device, operation method thereof and video system
WO2022217442A1 (en) Coefficient encoding/decoding method, encoder, decoder, and computer storage medium
US11849129B2 (en) Intra-block copy decoding using dynamic re-mapping of on-chip memory
CN111770338B (en) Method, device and equipment for determining index value of coding unit and storage medium
WO2023065890A1 (en) Multimedia data processing method and apparatus, computer device, computer readable storage medium, and computer program product
KR20170053031A (en) Enhanced data processing apparatus using multiple-block based pipeline and operation method thereof