KR20200109904A - Dnn 기반 이미지 또는 비디오 코딩을 위한 시스템 및 방법 - Google Patents

Dnn 기반 이미지 또는 비디오 코딩을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20200109904A
KR20200109904A KR1020190029715A KR20190029715A KR20200109904A KR 20200109904 A KR20200109904 A KR 20200109904A KR 1020190029715 A KR1020190029715 A KR 1020190029715A KR 20190029715 A KR20190029715 A KR 20190029715A KR 20200109904 A KR20200109904 A KR 20200109904A
Authority
KR
South Korea
Prior art keywords
dnn
encoder
neural network
decoder
tool
Prior art date
Application number
KR1020190029715A
Other languages
English (en)
Inventor
문현철
김재곤
천승문
고현철
Original Assignee
(주)인시그널
한국항공대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)인시그널, 한국항공대학교산학협력단 filed Critical (주)인시그널
Priority to KR1020190029715A priority Critical patent/KR20200109904A/ko
Publication of KR20200109904A publication Critical patent/KR20200109904A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • 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/124Quantisation

Abstract

전체 코덱 단위의 DNN 기반 이미지 또는 비디오 코딩을 위한 시스템 및 방법이 개시된다. 일 실시예에 따른 전체 코덱 단위의 DNN 기반 이미지 또는 비디오 코딩을 위한 시스템은 DNN 기반 인코더를 학습시켜서 기술한 학습된 인코더 신경망과 DNN 기반 디코더를 학습시켜서 기술한 학습된 디코더 신경망을 각각 생성하여 전송하는 네트워크 트레이닝 프레임워크, 부호화 과정에서 상기 학습된 인코더 신경망을 추론 엔진에 적용하여, 입력되는 이미지 또는 비디오를 부호화하여 특성 벡터(feature vector)를 생성하는 인코더 및 복호화 과정에서 상기 학습된 디코더 신경망을 추론 엔진에 적용하여, 상기 인코더에 의하여 생성된 상기 특성 벡터를 복호화하는 디코더를 포함한다.

Description

DNN 기반 이미지 또는 비디오 코딩을 위한 시스템 및 방법{System and method for DNN based image or video coding}
본 발명은 이미지 또는 비디오 코딩 기술(image or video coding technology)에 관한 것으로, 보다 구체적으로 심층 신경망(Deep Neural Network, DNN) 기술을 활용하여 이미지 또는 비디오를 인코딩 및 디코딩하기 위한 방법과 시스템에 관한 것이다.
인공 지능(Artificial Intelligence, AI)을 다양한 산업 분야에서 활용하기 위한 시도들이 계속되어 왔다. 특히, 최근의 인공 지능 기술은 생물학적 신경망과 공통된 특정 성능을 갖는 정보 처리 시스템인 신경망(Neural Network, NN)을 활용하면서, 그 성능이 큰 폭으로 향상되고 있으며, 그에 따라 응용 분야도 급속도로 증가하고 있다.
이러한 신경망(NN)은 '인공' 신경망(Artificial Neural Network, ANN)이라고도 불린다. 신경망은 외부 입력에 대한 자신의 동적 상태 응답에 의해 정보를 프로세싱하는 다수의 간단하고 고도로 상호 연결된 프로세싱 요소로 구성된다. 프로세싱 요소는 인간 두뇌의 뉴런으로 간주될 수 있는데, 다수의 입력을 받아들이고 입력의 가중화된 합을 계산한다. 그리고 상호 연결된 프로세싱 요소는 계층으로 조직화된다.
인공 신경망은 신경망에 포함되는 변수 및 토폴로지 관계를 지정하기 위해 상이한 아키텍쳐를 사용할 수 있다. 신경망에 포함되는 변수는 뉴런의 활동과 함께 뉴련들 간의 연결의 가중치일 수 있다. 신경망 토폴로지의 유형으로 피드 포워드 네트워크와 역방향 전파 신경망(backward propagation neural network)이 있다. 전자에서는 동일한 계층에서 서로 연결된 각 계층 내의 노드가 다음 스테이지로 공급되는데, 제공되는 입력 패턴에 따라 연결의 가중치를 수정하는 '학습 규칙'의 일부 형태를 포함한다. 후자에서는 가중 조정치의 역방향 에러 전파를 허용하는 것으로, 전자보다 진보된 신경망이다.
심층 신경망(Deep Neural Network, DNN)은 다수의 레벨의 상호 연결된 노드를 갖는 신경망에 대응하여 매우 비선형이고 고도로 변화하는 기능을 콤팩트하게 표현할 수 있다. 그럼에도 불구하고, 다수의 계층과 연관된 노드의 수와 함께 DNN에 대한 계산 복잡도가 급격히 상승한다. 최근까지 이러한 DNN을 학습(training)시키기 위한 효율적인 연산 방법들이 개발되고 있다. DNN의 학습 속도가 획기적으로 높아짐에 따라, 음성 인식, 이미지 세분화, 물체 감지, 안면 인식 등의 다양하고 복잡한 작업에 성공적으로 적용되고 있다.
비디오 코딩(video coding)도 이러한 DNN의 적용이 시도되고 있는 분야의 하나이다. 차세대 비디오 코딩으로 현재 고효율 비디오 코딩(High Efficiency Video Coding, HEVC)이 ITU-T(비디오 코딩 전문가 그룹) 및 ISO/IEC MPEG(동영상 전문가 그룹) 표준화 조직의 공동 비디오 프로젝트에 의하여 개발되어 국제 표준으로 채택되어 사용되고 있다. DNN을 HEVC 등과 같은 새로운 비디오 코딩 표준에 적용함으로써, 그 성능을 더욱 향상시키는 것이 가능하다는 것이 알려져 있다.
이러한 시도의 하나가 한국공개특허 제10-2018-0052651호, "비디오 코딩에서의 신경망 기반 프로세시의 방법 및 장치"에 개시되어 있다. 상기 한국공개특허에 따른 신경망 기반 프로세싱 방법에 의하면, DNN을 사용하여 타겟 신호가 프로세싱되며, DNN 입력에 제공되는 타겟 신호는 예측 프로세스, 재구성 프로세서, 하나 이상의 필터링 프로세스, 또는 이들의 조합으로부터 출력되는, 재구성된 잔차에 대응한다. DNN 출력으로부터의 출력 데이터가 인코딩 프로세스 또는 디코딩 프로세스를 위해 제공된다. DNN은, 타겟 신호의 픽셀 값을 복원하거나 타겟 신호와 오리지널 신호 사이에서 하나 이상의 잔체 픽셀의 부호를 예측하는 데에 사용될 수 있다. 하나 이상의 잔차 픽셀의 절대값은 비디오 비트스트림에서 시그널링될 수 있고 타겟 신호의 잔차 오차를 감소시키기 위해 부호와 함께 사용될 수 있다.
한국공개특허 제10-2018-0052651호, "비디오 코딩에서의 신경망 기반 프로세시의 방법 및 장치"
상기 한국공개특허에 의하면, 즉 예측 프로세스, 재구성 프로세서, 하나 이상의 필터링 프로세스, 또는 이들의 조합으로부터 출력되는 재구성된 잔차(reconstructed residual)에 대응하는 타겟 신호를 프로세싱하는데 DNN 기술을 적용하는 것으로 개시하고 있다. 즉, 상기 한국공개특허에서는 비디오 코딩 과정에서 생성되는 여러 가지 신호들 중에서 특정한 신호를 프로세싱하는데 DNN 기술을 적용하는 것으로 개시하고 있을 뿐이며, 인코더 및 디코더의 전체 기능 또는 일부 기능을 구현하는데, DNN 기술을 어떻게 적용할지에 대해서는 전혀 개시하고 있지 않다.
그리고 상기 한국공개특허에서는 DNN 기술을 적용하기 위한 DNN 파라미터가 비디오 코딩 시스템에 대해 사전에 정의되어 있거나 또는 비디오 코딩 시스템이 다수의 DNN 파라미터 세트를 선택하는 것으로 전제하고 있다. 이에 의하면, DNN 기술의 적용을 위하여 인코더 및 디코더는 미리 특정된 신경망(NN) 또는 이의 DNN 파라미터를 구비하고 있는 것을 전제하고 있을 뿐, 인코더와 디코더의 추론 엔진(inference engine)이 사용할 학습된 신경망을 어떻게 전달할 것인지에 대해서도 개시하고 있지 않다.
따라서 본 발명이 해결하고자 하는 하나의 과제는 인코더 및 디코더의 전체 기능 및/또는 일부 기능을 구현하는데 DNN 기술을 구체적으로 적용할 수 있는 DNN 기반 이미지 또는 비디오 코딩을 위한 방법 및 시스템을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 하나의 과제는 학습된 신경망을 인코더와 디코더에 전달하여 인코더와 디코더의 추론 엔진(inference engine)이 사용할 수 있도록 하는 DNN 기반 이미지 또는 비디오 코딩을 위한 방법 및 시스템을 제공하는 것이다.
전술한 과제를 해결하기 위한 본 발명의 일 실시예에 따른 DNN 기반 이미지 또는 비디오 코딩을 위한 시스템은 DNN 기반 인코더를 학습시켜서 기술한 학습된 인코더 신경망과 DNN 기반 디코더를 학습시켜서 기술한 학습된 디코더 신경망을 각각 생성하여 전송하는 네트워크 트레이닝 프레임워크, 부호화 과정에서 상기 학습된 인코더 신경망을 추론 엔진에 적용하여, 입력되는 이미지 또는 비디오를 부호화하여 특성 벡터(feature vector)를 생성하는 인코더 및 복호화 과정에서 상기 학습된 디코더 신경망을 추론 엔진에 적용하여, 상기 인코더에 의하여 생성된 상기 특성 벡터를 복호화하는 디코더를 포함한다.
전술한 본 발명의 실시예에 의하면, 네트워크 트레이닝 프레임워크에서 학습된 DNN 기반 인코더/디코더의 결과물인 기술된(represented) 학습된 인코더/디코더 신경망을 생성하여 인코더 및 디코더에 전송하기 때문에, 부호화 및 복호화 과정을 전체에 대하여 상호 호환적으로 DNN 기반 기술을 적용하는 것이 가능하다.
그리고 본 발명의 실시예에 따른 인코더와 디코더는, 네트워크 트레이닝 프레임워크로부터 수신된 학습된 인코더/디코더 신경망을 추론 엔진(inference engine)에 적용하여 부호화 또는 복호화를 수행한다. 그 결과, 기존의 규격화된 이미지 또는 비디오 인코딩 기술이나 또는 장래에 개발되는 규격화된 이미지 또는 비디오 인코딩 기술의 전체 부호화/복호화 과정을 대체하여 코덱 단위로 DNN 기술을 적용할 수 있다. 특히, 동일한 코딩 기능을 구현하는 복수의 DNN 기반 인코더/디코더 중에서 코딩 효율인 높은 DNN 기반 인코더/디코더를 적용하여 부호화 및/또는 복호화를 수행할 수 있다.
도 1a는 본 발명의 일 실시예에 따른 DNN 기반 이미지 또는 비디오 코딩을 위한 도구 단위 기반 방법에 따른 시스템의 구성을 보여 주는 것이다.
도 1b는 본 발명의 다른 실시예에 따른 DNN 기반 이미지 또는 비디오 코딩을 위한 도구 단위 기반 방법에 따른 시스템의 구성을 보여 주는 것이다.
도 2는 도 1a 또는 도 1b의 시스템에서 수행되는 본 발명의 일 실시예에 따른 DNN 기반 이미지 또는 비디오 코딩을 위한 방법을 보여 주는 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 DNN 기반 이미지 또는 비디오 코딩을 위한 전체 코덱 기반 방법에 따른 시스템의 구성을 보여 주는 것이다.
도 4는 도 3의 시스템에서 수행되는 본 발명의 일 실시예에 따른 DNN 기반 이미지 또는 비디오 코딩을 위한 방법을 보여 주는 흐름도이다.
도 5는 이미지/비디오 압축을 위한 오토인코더 신경망(autoencoder neural network)의 시스템 구성을 보여 주는 것이다.
도 6은 본 발명의 다른 실시예에 따른 DNN 기반 이미지 또는 비디오 코딩을 위한 전체 코덱 기반 방법에 따른 시스템의 구성을 보여 주는 것이다.
도 7은 이전 미팅에서 제안된 평가 프레임워크에서의 절차를 보여 주는 것이다.
도 8은 평가 프레임워크에서 양자화가 어떻게 적용되는 것인지를 보여 주는 도면이다.
도 9는 순차 양자화(Sequential Qantization)의 일례를 보여 주는 것으로서, 2단계 양자화이며 타겟 비트가 8인 경우이다.
도 10은 Nonuniform Quantization 과정을 보여 주는 흐름도이다.
도 11은 하위 랭크 근사법의 흐름도를 보여준다.
도 12는 하위 랭크 근사값의 예를 보여 준다.
이하, 도면을 참조하여 본 발명의 바람직한 실시형태 및 실시예를 설명한다. 다만, 이하의 실시형태 및 실시예는 본 발명의 바람직한 구성을 예시적으로 나타내는 것일 뿐이며, 본 발명의 범위는 이들 구성에 한정되지 않는다. 그리고 이하의 설명에 있어서, 장치의 하드웨어 구성 및 소프트웨어 구성, 처리 흐름, 제조조건, 크기, 재질, 형상 등은, 특히 특정적인 기재가 없는 한, 본 발명의 범위를 이것으로 한정하려는 취지인 것은 아니다.
전술한 바와 같이, 최근 심층 신경망(Deep Neural Network, DNN)은 다양한 응용 분야에서 높은 관심을 끌고 있으며, 이미지 또는 비디오(이하, 단순히 '비디오'라고도 한다)의 코딩 기술에도 적용하려는 시도가 있어 왔다. 예를 들어, 전술한 한국공개특허 제10-2018-0052651호에 개시된 바와 같이, 특정한 신호, 즉 재구성된 잔차(reconstructed residual)를 프로세싱하는 과정에 대하여 DNN 기술을 적용하는 것이 그 중의 하나이다.
다른 하나의 시도는, 본 발명의 실시예와 같이, 학습된 신경망(trained Neural Network)을 인코더와 디코더에 전달하여 인코더와 디코더의 추론 엔진(inference engine)에 적용하는 것이다. 이에 의하면, 두 가지 접근 방법이 있는데, 도구 단위 기반(tool-by-tool basis) 방법과 전체 코덱 기반(entire codec basis) 방법이 그것이다. 도구 단위 기반 방법에 의하면, 인코딩/디코딩 과정 또는 코덱을 구성하는 일부 기존의 구성요소 또는 기능이 DNN 기반 기술, 즉 DNN 기반 코딩 도구에 의하여 대체된다. 반면, 전체 코덱 기반 방법에 의하면, 코덱을 구성하는 전체 인코딩/디코딩 과정이 시작부터 끝까지 DNN 기반 기술, 즉 DNN 기반 인코더/디코더에 의하여 대체된다.
도구 단위 기반 방법
도구 단위 기반 방법에서, 용어 '도구'는 코덱을 구성하는 일부 기존의 구성요소 또는 기능을 수행하기 위한 모듈(컴퓨터 프로그램 또는 이를 구현한 컴퓨터 프로세서)을 가리킨다. 전체 코딩 프로세스에서 '도구'에 의하여 수행되는 코딩 과정이 범위는 특별한 제한이 없다. 예컨대, '도구'는 H.264나 HEVC 등과 같은 국제 비디오 부호화 표준에서 통상적으로 사용되는 인코딩/디코딩 블록도의 일 기능(예컨대, 인트라 예측 코딩 과정, 인터 예측 코딩 과정, 양자화/역양자화 과정, 엔트로피 코딩 과정, 인-루프 필터링 과정, 등)을 가리킬 수 있다. 또는, '도구'는 상기 인코딩/디코딩 블록도의 일 기능에 포함되는 일부 과정(예컨대, 인트라 예측 코딩을 위한 예측 모드 결정 과정, 양자화 과정을 위한 양자화 상수 결정 과정 등)을 가리킬 수도 있다.
도 1a는 본 발명의 일 실시예에 따른 DNN 기반 이미지 또는 비디오 코딩을 위한 시스템의 구성을 보여 주는 것으로서, 도구 단위 기반 방법에 따른 시스템이다. 도 1a를 참조하면, DNN 기반 비디오 코딩 시스템(100)은 네트워크 트레이닝 프레임워크(network training framework, 110), 인코더(encoder, 120) 및 디코더(decoder, 130)를 포함한다. 그리고 DNN 기반 비디오 코딩 시스템(100)은 신경망 압축부(Neural Network(NN) compression, 140)를 더 포함할 수 있다.
네트워크 트레이닝 프레임워크(110)는 DNN 기반 코딩 도구를 학습시켜서 기술한 학습된 도구 신경망을 생성한다. 이를 위하여, 네트워크 트레이닝 프레임워크(110)는 우선 DNN 기반 코딩 도구들의 일 집합을 고안하고 또한 이들을 각각 학습시킨다. 여기서, 고안된 DNN 기반 코딩 도구는 소정의 망 구조(network structure)를 갖는 소정의 네트워크 모델을 가리킨다.
DNN 기반 코딩 도구는 2가지 유형이 존재할 수 있다. 보다 구체적으로, DNN 기반 코딩 도구는 인코더(120) 및 디코더(130) 모두에 필수적인 기능을 구현하는 제1 코딩 도구(도 1a에서는 Type-A로 표시되어 있는 도구 A(tool A) 및 도구 B(tool B)가 이에 해당됨)와 인코더(120)와 디코더(130) 중에서 어느 하나에만 필수적인 기능을 구현하는 제2 코딩 도구(도 1a에서는 Type-B로 표시되어 있는 도구 C(tool C) 및 도구 D(tool D)가 이에 해당됨)의 두 가지 유형이 존재한다. 이것은 이미지/비디오 코딩에서, 일부의 코딩 도구, 즉 제1 코딩 도구는 인코더(120)와 디코더(130) 모두에 요구되는 것이고, 나머지 다른 일부의 코딩 도구, 즉 제2 코딩 도구는 인코더(120)와 디코더(130) 중에서 어느 하나에만 요구되는 기능이기 때문이다. 예를 들어, 비디오 코딩 과정에서, 인-루프 필터링 과정은 인코더(120)와 디코더(130) 모두에서 행해지는 제1 코딩 도구의 기능에 해당하지만, 인트라 모드 예측 과정은 오직 인코더(120)에서만 행해지는 제2 코딩 도구의 기능에 해당되며, 디코더(130)로는 오직 결정된 예측 모드 정보만이 보내진다.
따라서 두 가지 유형의 DNN 기반 코딩 도구가 고려되어야 하며, 이러한 DNN 기반 코딩 도구의 유형(type)은 반드시 학습된 DNN 기반 코딩 도구의 상위 레벨 정보로서 표시가 되어야 한다. 전술한 바와 같이, 도 1a에서는 인코더(120)와 디코더(130) 모두에게 필요한 도구 A(tool A) 및 도구 B(tool B)는 Type-A로 표시되어 있으며, 인코더(120)와 디코더(130) 중에서 하나에게만 필요한 도구 C(tool C) 및 도구 D(tool D)는 Type-B로 표시되어 있다.
그리고 네트워크 트레이닝 프레임워크(110)에서 학습된 DNN 기반 도구의 결과물(results of trained DNN based tool), 즉 학습된 신경망은 인코더(120) 및/또는 디코더(130)로 전달되어야 하며 또는 상호 호환이 가능하게 교환되어야 한다. 이것은 네트워크 구조와 학습된 가중치(network structure and trained weight)를 포함하는 학습된 신경망(trained network)을 기술하기 위한 호환가능한 포맷(interoperable format)을 규정함으로써 달성할 수 있다. 호환가능한 포맷은 학습된 신경망뿐만 아니라 시스템 구성(system configuration)에 관한 상위 레벨 정보(high-level information)를 기술할 필요가 있다. 예를 들어, 도구 단위 기반 방법의 경우에는, 해당 도구가 인코더(120)와 디코더(130) 모두에 공통적으로 적용되는지 또는 어느 하나에만 적용되는지를 지시하기 위한 도구의 유형 정보가 상호호환 가능한 포맷으로 기술되어야 한다.
이와 같이, 상호호환 가능한 포맷으로 기술된 학습된 신경망은 학습된 DNN 기반 도구 신경망뿐만 아니라 도 1a에 도시되어 있는 시스템의 전반적인 구성에 관한 상위 레벨 정보를 포함하고 있어야 한다.
보다 구체적으로, 학습된 DNN 기반 도구 신경망과 관련된 상위 레벨 정보로는, 인식(recognition), 분류(classification), 생성(generation), 차별화(discrimination) 등과 같은 해당 신경망의 기본 기능의 관점에서 본 목표 응용(target application)에 관한 정보, 도구 단위 기반 방법인지 또는 전체 코덱 단위 기반 방법인지에 관한 정보, 도구 단위 기반 방법에서 학습된 DNN 기반 코딩 도구의 유형을 지시하는 정보, 도구 단위 기반 방법에서 인코더가 특정 부호화 과정의 수행시에 학습된 도구 신경망을 추론 엔진에 적용하는 것과 규격화된 이미지 또는 비디오 부호화 도구를 적용하는 것 중에서 무엇을 선택하였는지를 지시하는 정보, 최적화된 콘텐츠 유형(customized content type)에 관한 정보, 오토인코더(autoencoder), CNN(Convolutional Neural Network), GAN(Generative Adversarial Network), RNN(Recurrent Neural Network) 등과 같은 학습된 DNN 기반 신경망의 알고리즘에 관한 기초 정보, 트레이닝 데이터 및/또는 테스트 데이터에 관한 기본 정보, 메모리 용량 및 컴퓨팅 파워의 관점에서 추론 엔진에 요구되는 능력에 관한 정보, 모델 압축에 관한 정보 등을 포함한다.
그리고 네트워크 트레이닝 프레임워크(110)는 하나 이상의 학습된 도구 신경망, 즉 학습된 도구 단위 신경망의 코딩된 기술(trained coded representation of neural network)을 선택하여 인코더(120) 및/또는 디코더(130)로 전송한다. 전술한 바와 같이, 학습된 도구 신경망의 유형, 즉 도구의 유형에 따라서 인코더(120)와 디코더(130) 모두에게 전송되거나 또는 인코더(120) 또는 디코더(130)에게만 전송될 수 있다. 보다 구체적으로, 도 1a에 예시적으로 도시된 바와 같이, 인코더(120)와 디코더(130) 모두에게 필요한 Type-A의 도구 A(tool A) 및 도구 B(tool B)는 인코더(120)와 디코더(130) 모두에게 전송되지만, 디코더(130)에게 필요한 Type-B의 도구C(tool C) 및 도구 D(tool D)는 디코더(130)에게만 전송된다.
이 때, 네트워크 트레이닝 프레임워크(110)로부터 인코더(120) 및/또는 디코더(130)로 전송되는 학습된 도구 신경망의 전부 또는 일부는 신경망 압축부(140)를 거쳐서 전송될 수도 있다. 즉, 네트워크 트레이닝 프레임워크(110)에서 생성되어 기술된 학습된 도구 신경망의 일부는 네트워크 트레이닝 프레임워크(110)로부터 인코더(120) 및/또는 디코더(130)로 바로 전송되지만, 학습된 도구 신경망의 나머지 일부는 신경망 압축부(140)를 경유하여 네트워크 트레이닝 프레임워크(110)로부터 인코더(120) 및/또는 디코더(130)로 전송될 수 있다.
신경망 압축부(140)는 학습된 도구 신경망을 압축하여 호환 가능한 포맷으로 기술하기 위한 수단이다. 이러한 신경망 압축부(140)의 일례는 가속기 라이브러리(accelerator library)이다. 가속기 라이브러리, 즉 신경망 압축부(140)를 이용한 학습된 도구 신경망의 압축은 선택적(optional) 과정이다. 즉, 학습된 도구 신경망이 압축을 거치지 않고서도 인코더(120) 및/또는 디코더(130)로 전송될 수 있을 정도로 충분히 컴팩트한 경우이거나 또는 압축으로 인하여 코덱의 성능을 심각하게 떨어뜨리는 경우 등에는, 학습된 도구 신경망은 신경망 압축부(140)를 거치지 않고 직접 인코더(120) 및/또는 디코더(130)로 전송될 수 있다.
본 실시예의 일 측면에 의하면, 네트워크 트레이닝 프레임워크(110)에는 동일한 코딩 기능을 구현하는 복수의 DNN 기반 코딩 도구, 즉 복수의 도구 단위 신경망 모델이 이용 가능하도록 준비되어 설정되어 있을 수 있다. 그리고 네트워크 트레이닝 프레임워크(110)는 소정의 기준에 따라 이용 가능한 상기 복수의 DNN 기반 코딩 도구 중에서 하나를 선택하여 학습된 도구 신경망을 생성할 수 있다. 예를 들어, 네트워크 트레이닝 프레임워크(110)는 부호화하고자 하는 입력 콘텐츠의 유형에 기초하여 따라서 보다 높은 성능을 보이는 보다 적절한 코딩 도구를 선택할 수 있다.
인코더(120)는 입력되는 이미지 또는 비디오를 부호화하여 부호화된 비트스트림을 생성하여 출력한다. 인코더(120)에서의 비디오 부호화 과정은 특정한 기존의 비디오 부호화 규격(표준), 예컨대 H.264 또는 HEVC 등에 규격에 따른 일련의 과정으로 이루어져 있다. 특히, 본 실시예에 따른 인코더(120)는 비디오 부호화 규격에 따른 일련의 과정 중에서 일부의 과정이 코딩 도구 단위로 DNN 기반 기술에 의하여 대체되어 수행된다. 이것은, 기존의 과정을 대체한 DNN 기반 기술, 즉 학습된 DNN 기반 코딩 도구에서의 출력은 비디오 부호화 규격에 규정되어 있는 사항을 따르며, 그 결과 비록 전체 부호화 과정의 일부 기능이 DNN 기반 기술에 의하여 대체되더라도 최종적으로 출력되는 부호화된 비트스트림도 기존의 비디오 부호화 규격에 따른 결과물과 동일하다는 것을 전제로 한다는 것은 자명하다.
이를 위하여, 인코더(120)는 DNN 기반 기술을 적용하기 위한 추론 엔진(inference engine)을 구비한다. 그리고 인코더(120)의 추론 엔진에서는, 호환가능한 포맷으로 기술되어 있는 학습된 DNN 기반 코딩 도구(학습된 신경망)가 사용된다.
보다 구체적으로, 본 실시예에 따른 인코더(120)는, 기존의 비디오 부호화 규격에 따른 전체 부호화 과정 중에서, 네트워크 트레이닝 프레임워크(110)로부터 수신되는 DNN 기반 코딩 도구에 대응되는 제1 부호화 과정에서는 학습된 도구 신경망을 내부의 추론 엔진에 적용하여 입력되는 비디오(또는 해당 과정의 이전 과정에서의 부호화 결과물)를 부호화하는 반면, 상기 제1 부호화 과정 이외의 부호화 과정(즉, 제2 부호화 과정)에서는 기존의 비디오 부호화 규격에 따른 방식(즉, 기존의 비디오 부호화 도구)를 적용하여 입력되는 비디오(또는 해당 과정의 이전 과정에서의 부호화 결과물)을 부호화한다.
본 실시예의 일 측면에 의하면, 인코더(120)는 부호화 과정 중에서 특정한 과정을 수행하는데 있어서, 소정의 기준, 예컨대 R-D 비용(cost) 등과 같은 코딩 효율을 지시하는 정보에 기초하여 DNN 기반 코딩 도구와 기존의 비디오 부호화 규격에 따른 코딩 도구 중에서 하나를 선택할 수 있다. 즉, 인코더(120)는 비록 네트워크 트레이닝 프레임워크(110)로부터 특정한 부호화 과정을 수행하기 위한 학습된 DNN 기반 코딩 도구, 즉 학습된 도구 신경망을 수신하였다고 하더라도, 해당 과정에서 반드시 DNN 기반 코딩 도구를 적용하여 해당 과정에 대한 부호화를 수행할 필요는 없으며, 코딩 효율을 더 향상시킬 수 있는 경우라면 기존의 비디오 부호화 규격에 따른 코딩 도구를 적용하여 해당 과정에 대한 부호화를 수행할 수도 있다. 그리고 인코더(120)는 해당 과정을 수행함에 있어서, DNN 기반 코딩 도구와 기존의 비디오 부호화 규격에 따른 코딩 도구를 선택하여 부호화를 했는지는, 상위 레벨 정보로 포함시킬 수 있다.
인코더(120)로부터 출력되는 부호화된 비트스트림은 출력되어 디코더(130)로 전송되거나 또는 소정의 저장 매체에 저장될 수도 있다. 그리고 어떤 경우이든 인코더(120)로부터 출력되는 부호화된 비트스트림은 디코더(130)의 입력으로 입력되어 복호화되며, 그 결과 재구성된 이미지 또는 비디오가 출력된다.
디코더(130)에서의 비디오 복호화 과정은 특정한 기존의 비디오 복호화 규격(표준), 예컨대 H.264 또는 HEVC 등에 규격에 따른 일련의 과정으로 이루어져 있다. 특히, 본 실시예에 따른 디코더(130)는 비디오 부호화 규격에 따른 일련의 과정 중에서 일부의 과정이 코딩 도구 단위로 DNN 기반 기술에 의하여 대체되어 수행된다. 이것은, 기존의 과정을 대체한 DNN 기반 기술, 즉 학습된 DNN 기반 코딩 도구에서의 출력은 비디오 부호화 규격에 규정되어 있는 사항을 따르며, 그 결과 비록 전체 복호화 과정의 일부 기능이 DNN 기반 기술에 의하여 대체되더라도 각 과정에서 출력되는 데이터도 기존의 비디오 부호화 규격에 따른 결과물과 동일하다는 것을 전제로 한다는 것은 자명하다.
이를 위하여, 디코더(130)는 DNN 기반 기술을 적용하기 위한 추론 엔진(inference engine)을 구비한다. 그리고 디코더(130)의 추론 엔진에서는, 호환가능한 포맷으로 기술되어 있는 학습된 DNN 기반 코딩 도구(학습된 신경망)가 사용된다.
디코더(130)는 기존의 비디오 부호화 규격에 따른 전체 복호화 과정 중에서, 네트워크 트레이닝 프레임워크(110)로부터 수신되는 DNN 기반 코딩 도구에 대응되는 제1 복호화 과정에서는 학습된 도구 신경망을 내부의 추론 엔진에 적용하여 입력되는 비트스트림(또는 해당 과정의 이전 과정에서의 복호화 결과물)를 복호화하는 반면, 상기 제1 복호화 과정 이외의 복호화 과정(즉, 제2 복호화 과정)에서는 기존의 비디오 부호화 규격에 따른 방식(즉, 기존의 비디오 복호화 도구)를 적용하여 입력되는 비트스트림(또는 해당 과정의 이전 과정에서의 복호화 결과물)을 복호화한다.
도 1b는 본 발명의 다른 실시예에 따른 DNN 기반 이미지 또는 비디오 코딩을 위한 시스템의 구성을 보여 주는 것으로서, 도 1a와 마찬가지로 도구 단위 기반 방법에 따른 시스템이다. 도 1b에 도시된 시스템의 구성은 대부분 도 1a에 도시된 시스템의 구성과 동일하며, Type-B의 도구 C(tool C) 및 도구 D(tool D)는 디코더에게만 전송된다는 점도 동일하다. 다만, 도 1b에서는 Type-A의 도구 A(tool A) 및 도구 B(tool B) 등과 Type-B의 도구 C(tool C) 및 도구 D(tool D) 등을 이진 포맷(binary format)압축하여 신경망 압축부(140, 도 1a 참조)로 전송하는 과정이 부가적으로 도시되어 있다는 점에서, 도 1a에 도시된 시스템의 구성과 차이가 있다. 따라서, 도 1a를 참조하여 시스템의 구성 및 동작에 대하여 설명한 대부분의 사항은 도 1b의 시스템에도 동일하게 적용될 수 있다.
도 1b를 참조하면, 파란색 블록을 통해 nn decompression을 수행하고(이 때, 압축 방법의 표현이 이진화 형태(이진화 형태는 하나의 예시임)로 저장, 노란색 블록을 통해 nn compression을 하면 compression이 수행되고, 이 압축된 모델이 추론 엔진으로 전송된다.
도 2는 본 발명의 일 실시예에 따른 DNN 기반 이미지 또는 비디오 코딩을 위한 방법을 보여 주는 흐름도이다. 도 2에 도시된 방법은 도 1a 또는 도 1b에 도시된 시스템에서 수행되는 것이다. 따라서, 불필요한 중복 설명을 피하기 위하여, 본 발명의 일 실시예에 따른 DNN 기반 이미지 또는 비디오 코딩을 위한 방법에 대하여 간략히 설명하기로 한다. 따라서 여기에서 설명되지 않은 사항은 도 1a 및 도 1b을 참조하여 전술한 내용이 동일하게 적용될 수 있다.
도 2를 참조하면, 우선 DNN 기반 코딩 도구를 학습시켜서 기술한 학습된 도구 신경망을 생성하여 인코더 및/또는 디코더를 위하여 전송한다(S10). 본 단계는 도 1a 또는 도 1b에 도시된 시스템(100)의 네트워크 트레이닝 프레임워크(110)에 의하여 수행될 수 있다.
그리고 입력되는 이미지 또는 비디오를 부호화하여 부호화된 비트스트림을 생성하는 부호화 과정이 수행된다(S11).부호화 과정 중에서, DNN 기반 코딩 도구에 대응되는 제1 부호화 과정에서는 학습된 도구 신경망을 인코더의 추론 엔진에 적용하고 또한 제1 부호화 과정 이외의 제2 부호화 과정에서는 인코더의 규격화된 이미지 또는 비디오 부호화 도구를 적용한다. 본 단계는 도 1a 또는 도 1b에 도시된 시스템(100)의 인코더(120)에서 수행될 수 있다.
또한, 부호화 단계에서 생성된 부호화된 비트스트림을 복호화하는 복호화 과정이 수행된다(S12). 복호화 과정 중에서, DNN 기반 코딩 도구에 대응되는 제1 복호화 과정에서는 학습된 도구 신경망을 디코더의 추론 엔진에 적용하고 또한 제1 복호화 과정 이외의 제2 복호화 과정에서는 디코더의 규격화된 이미지 또는 비디오 복호화 도구를 적용한다. 본 단계는 도 1a 또는 도 1b에 도시된 시스템(100)의 디코더(130)에서 수행될 수 있다.
전체 코덱 기반 방법
전체 코덱 기반 방법에서, 용어 '코덱'은 이미지 또는 비디오에 대한 부호화 또는 복호화의 전 과정을 수행하기 위한 모듈(컴퓨터 프로그램 또는 이를 구현한 컴퓨터 프로세서)을 가리킨다. 이러한 코덱은 부호화 또는 복호화의 전 과정을 수행하기 위한 일련의 과정으로 구성되어 있는데, 여기서 각 과정의 전부 또는 일부, 또는 복수의 과정은 전술한 '도구'의 대응된다. 따라서 '코덱'은 H.264나 HEVC 등과 같은 국제 비디오 부호화 표준에서 규정되어 있는 전체 인코딩 블록도 또는 전체 디코딩 블록도를 가리킨다.
도 3은 본 발명의 일 실시예에 따른 DNN 기반 이미지 또는 비디오 코딩을 위한 시스템의 구성을 보여 주는 것으로서, 전체 코덱 기반 방법에 따른 시스템이다. 도 31을 참조하면, DNN 기반 비디오 코딩 시스템(200)은 네트워크 트레이닝 프레임워크(network training framework, 210), 인코더(encoder, 220) 및 디코더(decoder, 230)를 포함한다. 그리고 DNN 기반 비디오 코딩 시스템(200)은 신경망 압축부(Neural Network(NN) compression, 240)를 더 포함할 수 있다.
네트워크 트레이닝 프레임워크(210)는 DNN 기반 인코더를 학습시켜서 기술한 학습된 인코더 신경망과 DNN 기반 디코더를 학습시켜서 기술한 학습된 디코더 신경망을 각각 생성한다. 이를 위하여, 네트워크 트레이닝 프레임워크(210)는 우선 DNN 기반 인코더 및 DNN 기반 디코더 각각의 일 집합을 고안하고 또한 이들을 각각 트레이닝시킨다. 여기서, 고안된 DNN 기반 인코더와 디코더는 각각 소정의 망 구조(network structure)를 갖는 소정의 네트워크 모델을 가리킨다.
그리고 네트워크 트레이닝 프레임워크(210)에서 학습된 DNN 인코더 및 디코더 각각의 결과물(results of each of trained DNN based encoder and decoder), 즉 학습된 인코더 신경망 및 디코더 신경망(이하, '학습된 신경망'이라고도 한다)은 각각 인코더(220) 또는 디코더(230)로 전달되어야 하며 또는 상호 호환이 가능하게 교환되어야 한다. 이것은 네트워크 구조와 학습된 가중치(network structure and trained weight)를 포함하는 학습된 신경망(trained network)을 기술하기 위한 호환가능한 포맷(interoperable format)을 규정함으로써 달성할 수 있다. 호환가능한 포맷은 학습된 신경망뿐만 아니라 시스템 구성(system configuration)에 관한 상위 레벨 정보(high-level information)를 기술할 필요가 있다.
이와 같이, 상호호환 가능한 포맷으로 기술된 학습된 신경망은 학습된 DNN 기반 인코더 신경망 또는 디코더 신경망뿐만 아니라 도 3에 도시되어 있는 시스템의 전반적인 구성에 관한 상위 레벨 정보를 포함하고 있어야 한다.
보다 구체적으로, 학습된 DNN 기반 인코더/디코더 신경망과 관련된 상위 레벨 정보로는, 인식(recognition), 분류(classification), 생성(generation), 차별화(discrimination) 등과 같은 해당 신경망의 기본 기능의 관점에서 본 목표 응용(target application)에 관한 정보, 도구 단위 기반 방법인지 또는 전체 코덱 단위 기반 방법인지에 관한 정보, 최적화된 콘텐츠 유형(customized content type)에 관한 정보, 오토인코더(autoencoder), CNN(Convolutional Neural Network), GAN(Generative Adversarial Network), RNN(Recurrent Neural Network) 등과 같은 학습된 DNN 기반 신경망의 알고리즘에 관한 기초 정보, 트레이닝 데이터 및/또는 테스트 데이터에 관한 기본 정보, 메모리 용량 및 컴퓨팅 파워의 관점에서 추론 엔진에 요구되는 능력에 관한 정보, 모델 압축에 관한 정보 등을 포함한다.
그리고 네트워크 트레이닝 프레임워크(210)는 학습된 신경망, 즉 학습된 인코더 신경망의 코딩된 기술(trained coded representation of encoder neural network)과 학습된 디코더 신경망의 코딩된 기술(trained coded representation of decoder neural network)을 각각 선택하여 인코더(220) 또는 디코더(230)로 전송한다.
이 때, 네트워크 트레이닝 프레임워크(210)로부터 인코더(220) 및/또는 디코더(230)로 전송되는 학습된 신경망의 전부 또는 일부는 신경망 압축부(240)를 거쳐서 전송될 수도 있다. 즉, 네트워크 트레이닝 프레임워크(210)에서 생성되어 기술된 학습된 신경망의 일부는 네트워크 트레이닝 프레임워크(210)로부터 인코더(220) 또는 디코더(230)로 바로 전송되지만, 학습된 도구 신경망의 나머지 일부는 신경망 압축부(240)를 경유하여 네트워크 트레이닝 프레임워크(210)로부터 인코더(220) 또는 디코더(230)로 전송될 수 있다.
신경망 압축부(240)는 학습된 인코더 신경망 및/또는 학습된 디코더 신경망 각각을 압축하여 호환 가능한 포맷으로 기술하기 위한 수단이다. 이러한 신경망 압축부(240)의 일례는 가속기 라이브러리(accelerator library)이다. 가속기 라이브러리, 즉 신경망 압축부(240)를 이용한 학습된 신경망의 압축은 선택적(optional) 과정이다. 즉, 학습된 신경망이 압축을 거치지 않고서도 인코더(220) 또는 디코더(230)로 전송될 수 있을 정도로 충분히 컴팩트한 경우이거나 또는 압축으로 인하여 코덱의 성능을 심각하게 떨어뜨리는 경우 등에는, 학습된 신경망은 신경망 압축부(240)를 거치지 않고 직접 인코더(220) 또는 디코더(230)로 전송될 수 있다.
본 실시예의 일 측면에 의하면, 네트워크 트레이닝 프레임워크(210)에는 동일한 인코더/디코더를 구현하는 복수의 DNN 기반 인코더/디코더, 즉 복수의 인코더/디코더 신경망 모델이 이용 가능하도록 준비되어 설정되어 있을 수 있다. 그리고 네트워크 트레이닝 프레임워크(210)는 소정의 기준에 따라 이용 가능한 상기 복수의 DNN 기반 인코더/디코더 중에서 하나를 선택하여 학습된 인코더/디코더 신경망을 생성할 수 있다. 예를 들어, 네트워크 트레이닝 프레임워크(210)는 부호화하고자 하는 입력 콘텐츠의 유형에 기초하여 따라서 보다 높은 성능을 보이는 보다 적절한 인코더/디코더를 선택할 수 있다.
인코더(220)는 입력되는 이미지 또는 비디오를 부호화하여 특성 벡터(feature vector)를 생성하여 출력한다. 특히, 본 실시예에 따른 인코더(220)는 비디오 부호화 규격에 따른 일련의 과정 전체가 전체 코덱 단위로 DNN 기반 기술에 의하여 대체되어 수행되며, 그 결과물로서 입력되는 이미지의 차원(dimensions)을 감소시킨 특성 벡터를 출력한다. 이를 위하여, 인코더(220)는 DNN 기반 기술을 적용하기 위한 추론 엔진(inference engine)을 구비한다. 그리고 인코더(220)의 추론 엔진에서는, 호환가능한 포맷으로 기술되어 있는 학습된 DNN 기반 인코더(학습된 신경망)가 사용된다.
인코더(220)로부터 출력되는 특성 벡터는 디코더(230)로 전송되거나 또는 소정의 저장 매체에 저장될 수도 있다. 그리고 어떤 경우이든 인코더(220)로부터 출력되는 특성 벡터는 디코더(230)의 입력으로 입력되어 복호화되며, 그 결과 재구성된 이미지 또는 비디오가 출력된다. 실시예에 따라서는, 인코더(220)로부터 출력되는 특성 벡터는 양자화 및 엔트로피 코딩 과정을 거쳐서 비트스트림화된 후에 소정의 매체를 통하여 전송되고 또한 디코더(230)로 입력되기 이전에 역양자화 및 엔트로피 코딩 과정을 거쳐서 특성 벡터로 복호화될 수 있다.
본 실시예에 따른 디코더(230)는 비디오 부호화 규격에 따른 일련의 복호화 과정 전체가 전체 코덱 단위로 DNN 기반 기술에 의하여 대체되어 수행되며, 그 결과물로서 입력되는 특성 벡터로부터 재구성된 이미지 또는 비디오를 생성한다. 이를 위하여, 디코더(230)는 DNN 기반 기술을 적용하기 위한 추론 엔진(inference engine)을 구비한다. 그리고 인코더(230)의 추론 엔진에서는, 호환가능한 포맷으로 기술되어 있는 학습된 DNN 기반 디코더(학습된 신경망)가 사용된다.
도 4는 본 발명의 다른 실시예에 따른 DNN 기반 이미지 또는 비디오 코딩을 위한 방법을 보여 주는 흐름도이다. 도 4에 도시된 방법은 도 3에 도시된 시스템에서 수행되는 것이다. 따라서, 불필요한 중복 설명을 피하기 위하여, 본 발명의 다른 실시예에 따른 DNN 기반 이미지 또는 비디오 코딩을 위한 방법에 대하여 간략히 설명하기로 한다. 따라서 여기에서 설명되지 않은 사항은 도 3을 참조하여 전술한 내용이 동일하게 적용될 수 있다.
도 4를 참조하면, 우선 DNN 기반 인코더와 DNN 기반 디코더를 각각 학습시켜서 기술한 학습된 인코더/디코더 신경망을 생성하여 인코더 및/또는 디코더를 위하여 전송한다(S20). 본 단계는 도 3에 도시된 시스템(200)의 네트워크 트레이닝 프레임워크(210)에 의하여 수행될 수 있다.
그리고 입력되는 이미지 또는 비디오를 부호화하여 특성 벡터를 생성하는 부호화 과정이 수행된다(S21). 본 단계에서는 전체 부호화 과정에서 학습된 인코더 신경망을 추론 엔진에 적용한다. 본 단계는 도 3에 도시된 시스템(200)의 인코더(220)에서 수행될 수 있다.
또한, 부호화 단계에서 생성된 특성 벡터를 복호화하는 복호화 과정이 수행된다(S22). 본 단계에서는 전체 복호화 과정에서 학습된 디코더 신경망을 추론 엔진에 적용한다. 본 단계는 도 3에 도시된 시스템(200)의 디코더(230)에서 수행될 수 있다.
다음으로 본 발명의 다른 실시예에 따른 전체 코덱 기반 방법에 따른 시스템의 구성 및 이러한 시스템에서의 평가 메트릭스(evaluation metrices)에 대하여 설명한다.
<Scenarios of Use Case>
오토인코더 신경망(autoencoder neural network)은 기본적으로 전체 코덱 기반 방법에 기초한 이미지/비디오 압축에 사용된다. 도 5에 도시한 바와 같이, 오토인코더는 인코더와 디코더를 포함하여 구성되는데, 이들 인코더와 디코더는 둘다 신경망 모델(neural model)이다. 인코더는 입력 이미지의 디멘젼(dimensions)을 축소시킨 특성 벡터(feature vector)를 출력하며, 디코더는 입력되는 특성 벡터로부터 입력 이미지를 재구성한다.
도 6은 본 발명의 다른 실시예에 따른 전체 코덱 기반 방법에 따른 시스템의 구성을 보여 주는 블록도이다. 도 6은 도 4와 마찬가지로 전체 코덱 기반 방법에 따른 시스템이다. 도 6에 도시된 시스템의 구성은 대부분 도 4에 도시된 시스템의 구성과 동일하다. 다만, 도 6에서는 Type-A의 도구 A(tool A) 및 도구 B(tool B) 등과 Type-B의 도구 C(tool C) 및 도구 D(tool D) 등을 이진 포맷(binary format)압축하여 신경망 압축부(240, 도 4 참조)로 전송하는 과정이 부가적으로 도시되어 있다는 점에서, 도 4에 도시된 시스템의 구성과 차이가 있다. 따라서, 도 4를 참조하여 시스템의 구성 및 동작에 대하여 설명한 대부분의 사항은 도 6의 시스템에도 동일하게 적용될 수 있다.
도 6에서, 모델이 추론 엔진에 적용되는 방법은 크게 세 가지 경우로 구분될 수 있는데, 원래 모델을 그대로 사용하는 경우(case when the original model as it is), 압축 모델을 사용하는 경우(case when the compression model is used) 및 재구성 모델을 사용하는 경우(case when the reconstruction model is used)가 그것이다. 압축과 복원 모두가 요구될 경우에, 특히 양자화 방법, 압축 처리(compression processing)는 원래 모델에서 이진화 형태로 진행되며, 추론 엔진에 적용하기 위하여 복원 처리(decompression processing)가 요구된다. 그리고 단지 압축 처리만이 요구될 경우에는, 특히 로우-랭크 근사화/방법(low-rank approximation/method), 원래 모델은 압축 처리를 통하여 추론 엔지에 직접 적용된다.
<Compression Methods>
원래 신경망(original neural networks)과 복원된 신경망(reconstructed neural networks) 사이의 성능 차이를 평가하기 위하여, 이들 신경망이 적용되는 특정 어플리케이션 및 고려되는 시스템 구성(이의 사용예(use case))에 따른 특정 성능 메트릭스를 고려할 필요가 있다. 이하에서는, 신경망이 전체 코덱 기반 방법에 따른 이미지/비디오 압축에 적용되는 시스템에서의 평가 결과를 제시한다. 평가는 이전 미팅에서 제안된 평가 프레임워크에서의 절차(도 7 참조)에 따라 수행되었다. 신경망 표현(NN representation)을 위하여 사용된 세 가지 압축 방법을 우선 간단히 기술한다.
-압축 방법 1: Uniform quantization
양자화는 신경망 모델의 압축을 위하여 사용되는 기본적이고 공통적인 방법이다. 이전에는, 전체 코덱 기반 방법과 도구 단위 기반 방법에서 사용된 신경망의 원래 표현을 압축하기 위하여, Tensorflow에서 제안된 심플 양자화(simple quantization)가 사용되었다. Tensorflow에 의하여 제안된 양자화는 trained weight를 압축하는데 적용되었으며, 최소값(min_value) 및 최대값(max_value)는 각각 ??2와 2로 설정되었다(전체 계층에 적용됨).
여기에서는, 최소값과 최대값은 각 계층의 trained weights에 의하여 결정되며, 양자화된 가중치(quantized weights)는 이진 포맷으로 저장된다. 도 8은 평가 프레임워크에서 양자화가 어떻게 적용되는 것인지를 보여 주는 도면이다. 최소값과 최대값의 절대치가 상이하기 때문에, 모든 가중치는 최소값에 의하여 감산되어 양의 값을 가지도록 한 이후에 양자화가 수행된다. 역양자화 절차에서는, 비트의 크기로 양자화 값을 나누며 또한 원래 모델 계층에 최소값을 더한다.
-압축 방법 1.1: Sequential Qantization
도 9는 순차 양자화(Sequential Qantization)의 일례를 보여 주는 것으로서, 2단계 양자화이며, 타겟 비트가 8인 경우이다. 순차 양자화는 원하는 비트의 양자화를위한 목표 비트보다 큰 시작 비트로 비트를 감소시킴으로써 목표 비트를 양자화 / 역양자화하는 프로세스이다. 이의 목적은, 타겟 비트의 양자화 과정에서의 양자화 에러(quantization error)를 감소시키는 것이다. 또한, 이 방법은 양자화 과정이 몇 단계로 구성되어 있는지와 함께 프로세스에서의 비트 수를 특정해야 한다.
-압축 방법 2: Nonuniform Quantization
도 10은 Nonuniform Quantization 과정을 보여 주는 흐름도이다.
Nonuniform Quantization에서는 양자화되는 입력값(input values to be qunatized)의 분포를 고려함으로써 양자화 에러를 감소시킬 수 있다. trained weight의 nonuniform 양자화에서, MSE에서 양자화 에러를 최소화하기 위한, i번째 계층에서 주어진 가중치 wi, 양자화 영역 경계의 파라미터 dk 및 k번째 영역의 양자화 레벨 rk은 각각 다음의 수학식 1에 의하여 결정된다.
Figure pat00001
파라미트들의 최적값을 결정하기위한 반복적인 Lloyd-Max의 알고리즘에서, dk 및 rk는 종래의 uniform quantization에서의 값들을 사용한다. 1회 반복을 수행한 이후에, MSE를 체크하여 만일 MSE가 충분히 작지 않은 경우에는 상기한 과정들을 반복한다. 이러한 방법에서는 MSE가 특정되거나 또는 반복 횟수가 특정되어야 한다.
-압축 방법 3: Low-rank Approximation
하위 랭크 근사(Low-rank Approximation)는 2개의 하위 순위 메트릭스로 분해하여 매개 변수의 수를 줄이는 방법이다. 두 개의 분해된 행렬의 곱셈은 현재 훈련된 가중치(trained weight)에 가능한 가깝게 있어야 한다. 또한, 이 방법은 복원(decompression) 처리가 필요하지 않으며 단지 압축만으로 추론 엔진에 사용할 수 있다.
하위 랭크의 주요 측면은 네트워크 압축 측면에서 매개 변수의 감소이다. 이 방법은 2D 기존 커널 WㅧH를 1D 커널, 1ㅧW 및 1ㅧH의 두 가지 유형으로 분리한다. 종래의 컨볼루션에서, nㅧn 커널의 파라미터는 n2ㅧ특성 맵(feature maps)을 갖는다. 그러나, 하위 랭크의 경우, nㅧn 커널의 파라미터는 2nㅧ특성 맵을 갖는다. 따라서, 이 방법의 압축 비율은 nㅧn 커널에서 2/n이다.
하위 랭크 근사를 위해 다음 방법이 사용된다. 2D-CNN에서 기존의 훈련된 컨볼루션 가중치는 4D 유형이며 (filter_size, filter_size, input_channel, output_channel)로 구성된다. W는 입력 원래 가중치(input original weight), (U, V)는 하위 랭크의 행렬이다. 또한 Wst는 (s, t) 채널 위치에서의 컨볼루션 가중치이며, R은 채널 수를 줄이기 위한 목표 값이다. 따라서 이 방법의 목적은 (W, (U ㅧ V))m의 최소 차이인 (U, V)를 찾는 것이며, 상세한 공식은 다음의 수학식 2와 같다.
Figure pat00002
필터 재구성 최적화(filter reconstruction optimization)를 위한, 비용 함수는 다음의 수학식 3과 같다.
Figure pat00003
도 11은 하위 랭크 근사법의 흐름도를 보여준다. 이 방법은 정보, 목표 손실 (매트릭스의 mse) 및 반복 횟수의 차원을 지정해야 한다. 이 압축 방법은 2개의 분해된 매트릭스를 산출하며, 이는 추론 엔진에 직접 전송될 수 있고, 선택적으로 재훈련 될 수 있다 (이 경우, 재훈련 후, 추론 엔진에 전송됨). 도 12는 하위 랭크 근사값의 예를 보여 준다. 왼쪽 블록은 일반적인 컨볼루션이고 오른쪽 블록은 하위 랭크의 컨볼루션이다.
표 1은 이상에서 설명한 압축 방법을 요약하고 이에 대한 추가 정보를 기술한 것이다.
Figure pat00004
전술한 바와 같이, 이상의 설명은 실시예에 불과할 뿐이며 이에 의하여 한정되는 것으로 해석되어서는 안된다. 본 발명의 기술 사상은 후술하는 특허청구범위에 기재된 발명에 의해서만 특정되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다. 따라서 전술한 실시예가 다양한 형태로 변형되어 구현될 수 있다는 것은 통상의 기술자에게 자명하다.

Claims (1)

  1. DNN 기반 인코더를 학습시켜서 기술한 학습된 인코더 신경망과 DNN 기반 디코더를 학습시켜서 기술한 학습된 디코더 신경망을 각각 생성하여 전송하는 네트워크 트레이닝 프레임워크(Network Training Framework);
    부호화 과정에서 상기 학습된 인코더 신경망을 추론 엔진에 적용하여, 입력되는 이미지 또는 비디오를 부호화하여 특성 벡터(feature vector)를 생성하는 인코더(Encoder); 및
    복호화 과정에서 상기 학습된 디코더 신경망을 추론 엔진에 적용하여, 상기 인코더에 의하여 생성된 상기 특성 벡터를 복호화하는 디코더(Decoder)를 포함하고,
    상기 네트워크 트레이닝 프레임워크는 상기 학습된 인코더 신경망과 상기 학습된 디코더 신경망을 압축하여 전송하는 것을 특징으로 하는 DNN 기반 이미지 또는 비디오 코딩을 위한 시스템.
KR1020190029715A 2019-03-15 2019-03-15 Dnn 기반 이미지 또는 비디오 코딩을 위한 시스템 및 방법 KR20200109904A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190029715A KR20200109904A (ko) 2019-03-15 2019-03-15 Dnn 기반 이미지 또는 비디오 코딩을 위한 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190029715A KR20200109904A (ko) 2019-03-15 2019-03-15 Dnn 기반 이미지 또는 비디오 코딩을 위한 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20200109904A true KR20200109904A (ko) 2020-09-23

Family

ID=72708667

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190029715A KR20200109904A (ko) 2019-03-15 2019-03-15 Dnn 기반 이미지 또는 비디오 코딩을 위한 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR20200109904A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022075754A1 (ko) * 2020-10-06 2022-04-14 한국항공대학교산학협력단 머신비전을 위한 영상의 처리 방법 및 장치
CN114900714A (zh) * 2022-04-12 2022-08-12 科大讯飞股份有限公司 一种基于神经网络的视频生成方法及相关装置
WO2022191361A1 (ko) * 2021-03-11 2022-09-15 에스케이플래닛 주식회사 무압축 합성곱 신경망 기반 소리 이상 탐지 장치 및 방법
WO2023055153A1 (ko) * 2021-09-29 2023-04-06 한국전자통신연구원 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
WO2023075488A1 (ko) * 2021-10-28 2023-05-04 엘지전자 주식회사 엔트로피 코딩에 기반한 피쳐 부호화/복호화 방법, 장치, 비트스트림을 저장한 기록 매체 및 비트스트림 전송 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180052651A (ko) 2015-09-03 2018-05-18 미디어텍 인크. 비디오 코딩에서의 신경망 기반 프로세싱의 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180052651A (ko) 2015-09-03 2018-05-18 미디어텍 인크. 비디오 코딩에서의 신경망 기반 프로세싱의 방법 및 장치

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022075754A1 (ko) * 2020-10-06 2022-04-14 한국항공대학교산학협력단 머신비전을 위한 영상의 처리 방법 및 장치
WO2022191361A1 (ko) * 2021-03-11 2022-09-15 에스케이플래닛 주식회사 무압축 합성곱 신경망 기반 소리 이상 탐지 장치 및 방법
WO2023055153A1 (ko) * 2021-09-29 2023-04-06 한국전자통신연구원 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
WO2023075488A1 (ko) * 2021-10-28 2023-05-04 엘지전자 주식회사 엔트로피 코딩에 기반한 피쳐 부호화/복호화 방법, 장치, 비트스트림을 저장한 기록 매체 및 비트스트림 전송 방법
CN114900714A (zh) * 2022-04-12 2022-08-12 科大讯飞股份有限公司 一种基于神经网络的视频生成方法及相关装置
CN114900714B (zh) * 2022-04-12 2023-11-21 科大讯飞股份有限公司 一种基于神经网络的视频生成方法及相关装置

Similar Documents

Publication Publication Date Title
KR20200109904A (ko) Dnn 기반 이미지 또는 비디오 코딩을 위한 시스템 및 방법
US11240492B2 (en) Neural network based residual coding and prediction for predictive coding
Lombardo et al. Deep generative video compression
KR20200005402A (ko) 도구 단위의 dnn 기반 이미지 또는 비디오 코딩을 위한 시스템 및 방법
JP7356513B2 (ja) ニューラルネットワークのパラメータを圧縮する方法および装置
US20230262243A1 (en) Signaling of feature map data
JP2023547941A (ja) ニューラルネットワーク・ベースのビットストリームのデコードとエンコード
KR20200115239A (ko) 훈련된 심층 신경망의 압축 장치 및 방법
JP7434604B2 (ja) ニューラル画像圧縮における画像置換を用いたコンテンツ適応型オンライン訓練
JP2023548507A (ja) セグメンテーション情報のシグナリングを用いた復号化
Han et al. Deep generative video compression
Ranjbar Alvar et al. Joint image compression and denoising via latent-space scalability
KR20210131894A (ko) 훈련된 심층 신경망의 압축 장치 및 방법
CN114731406A (zh) 编码方法、解码方法和编码装置、解码装置
CN116939218A (zh) 区域增强层的编解码方法和装置
KR20240050435A (ko) 조건부 이미지 압축
KR102368447B1 (ko) 동영상 코딩을 위한 훈련된 심층 인공 신경망의 압축 장치 및 방법
CN117915107B (zh) 图像压缩系统、图像压缩方法、存储介质与芯片
US20230316588A1 (en) Online training-based encoder tuning with multi model selection in neural image compression
US20230306239A1 (en) Online training-based encoder tuning in neural image compression
WO2022147745A1 (zh) 编码方法、解码方法和编码装置、解码装置
KR20210035679A (ko) 비디오 코딩 도구의 훈련된 심층 인공 신경망의 압축 장치 및 방법
KR20220041404A (ko) 훈련된 심층 신경망의 압축 장치 및 방법
KR20210119046A (ko) 멀티미디어 콘텐츠의 처리를 위한 훈련된 심층 신경망의 압축 장치 및 방법
CN116797674A (zh) 图像编解码方法和装置