JP7191240B2 - Video stream decoding method, device, terminal equipment and program - Google Patents

Video stream decoding method, device, terminal equipment and program Download PDF

Info

Publication number
JP7191240B2
JP7191240B2 JP2021545768A JP2021545768A JP7191240B2 JP 7191240 B2 JP7191240 B2 JP 7191240B2 JP 2021545768 A JP2021545768 A JP 2021545768A JP 2021545768 A JP2021545768 A JP 2021545768A JP 7191240 B2 JP7191240 B2 JP 7191240B2
Authority
JP
Japan
Prior art keywords
channel
video stream
target
decoding
graphics processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021545768A
Other languages
Japanese (ja)
Other versions
JP2022519855A (en
Inventor
江云 毛
涛 ▲楊▼
志博 ▲陳▼
娟 ▲趙▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Publication of JP2022519855A publication Critical patent/JP2022519855A/en
Application granted granted Critical
Publication of JP7191240B2 publication Critical patent/JP7191240B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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/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/127Prioritisation of hardware or computational resources
    • 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/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • 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/172Methods 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 picture, frame or field
    • 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/179Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scene or a shot
    • 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/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • 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
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • H04N7/181Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a plurality of remote sources
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

本願は、2019年7月15日にて中国特許庁に出願された、出願番号が201910636848.6で、出願の名称が「ビデオストリーム復号方法、装置、端末機器および記憶媒体」である中国特許出願に基づく優先権を主張し、その内容を全て参照により本願に組み込むものとする。 This application is a Chinese patent application with application number 201910636848.6 and titled "Video Stream Decoding Method, Apparatus, Terminal Equipment and Storage Medium" filed with the Chinese Patent Office on July 15, 2019. , the entire contents of which are hereby incorporated by reference into this application.

本願は、コンピュータ技術の分野に関し、具体的には、ビデオストリーム復号方法、装置、端末機器および記憶媒体に関する。 The present application relates to the field of computer technology, in particular to a video stream decoding method, apparatus, terminal equipment and storage medium.

インターネットおよびモバイルインターネットの急速な発展に伴い、人々が生成するデータの総量は劇的な増加傾向を示している。情報データの増加に伴い、情報データ処理能力への要求も高まってきている。特にビデオの分野では、インターネット、スマートシティの急速な発展に伴い、記憶・伝送・処理すべきビデオデータがますます増えていき、ビデオコーデックと呼ばれるビデオの符号化および復号が多く行われるようになる。 With the rapid development of Internet and mobile Internet, the total amount of data generated by people shows a dramatic increase trend. Along with the increase in information data, the demand for information data processing capability is also increasing. Especially in the field of video, with the rapid development of the Internet and smart cities, the amount of video data to be stored, transmitted, and processed is increasing more and more, and video encoding and decoding, called video codecs, are often performed. .

セキュリティ管理の強化に伴い、現在、多くのシーンで高密度のHDカメラ監視ネットワークが配置されている。しかしながら、関連技術では、これら大量のビデオデータを効率的に処理することは難しく、2Uのサーバ1台では4~8チャンネルのビデオストリームしか処理できず、一方、マルチチャンネルのビデオストリームは1000Mbpsにも達し、中央処理装置(Central Processing Unit、CPU)のリソースをたくさん占有してしまうため、高密度のHDカメラで取得されたマルチチャンネルのビデオストリームを処理するには、多数のサーバが必要となる。 With the enhancement of security management, many scenes now deploy high-density HD camera surveillance networks. However, with related technology, it is difficult to process such a large amount of video data efficiently. A large number of servers are required to process the multi-channel video streams captured by high-density HD cameras, as they occupy a lot of Central Processing Unit (CPU) resources.

従来のビデオストリーム復号の実際の展開方式では、例えば高性能なCPUなどのハードウェア性能に優れた端末機器を使用する必要があり、この方式では、ハードウェアコストが高くなり、エネルギー消費量が高くなる傾向がある。現在、ビデオストリームを復号するための効率的な解決策はまだない。 In the actual development method of conventional video stream decoding, it is necessary to use a terminal device with excellent hardware performance, such as a high-performance CPU, which leads to high hardware cost and high energy consumption. tend to become Currently, there is still no efficient solution for decoding video streams.

本願に係る様々な実施形態によれば、ビデオストリーム復号方法、装置、端末機器、および記憶媒体が提供される。 According to various embodiments of the present application, a video stream decoding method, apparatus, terminal equipment and storage medium are provided.

端末機器が実行するビデオストリーム復号方法であって、
監視機器から入力されたマルチチャンネルのビデオストリームを取得するステップと、
前記グラフィック処理装置に対応するスレッドプールにおいて、複数のスレッドを作成するステップと、
前記複数のスレッドに基づいて、前記マルチチャンネルのビデオストリームを前記グラフィック処理装置に伝送してビデオ復号処理を行わせることで、マルチチャンネルの復号ビデオデータを得るステップと、を含む。
A video stream decoding method performed by a terminal device,
obtaining multi-channel video streams input from surveillance equipment;
creating a plurality of threads in a thread pool corresponding to the graphics processing unit;
and transmitting the multi-channel video stream to the graphics processing device for video decoding processing based on the plurality of threads, thereby obtaining multi-channel decoded video data.

ビデオストリーム復号装置であって、
監視機器から入力されたマルチチャンネルのビデオストリームを取得する取得ユニットと、
前記グラフィック処理装置に対応するスレッドプールにおいて、複数のスレッドを作成する作成ユニットと、
前記複数のスレッドに基づいて、前記マルチチャンネルのビデオストリームを前記グラフィック処理装置に伝送してビデオ復号処理を行わせることで、マルチチャンネルの復号ビデオデータを得る復号ユニットと、を備える。
A video stream decoding device,
an acquisition unit for acquiring multi-channel video streams input from surveillance equipment;
a creation unit for creating a plurality of threads in a thread pool corresponding to the graphics processing device;
a decoding unit for obtaining multi-channel decoded video data by transmitting the multi-channel video stream to the graphics processing device for video decoding processing based on the plurality of threads.

コンピュータ読み取り可能な命令が記憶されている不揮発性記憶媒体であって、前記コンピュータ読み取り可能な命令は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサにビデオストリーム復号方法のステップを実行させる。 A non-volatile storage medium having computer readable instructions stored therein which, when executed by one or more processors, instruct the one or more processors to perform a video stream decoding method. perform the steps.

端末機器であって、メモリとプロセッサとを備え、前記メモリには、前記プロセッサによって実行されると、前記プロセッサにビデオストリーム復号方法のステップを実行させるコンピュータ読み取り可能な命令が記憶されている。 A terminal device comprising a memory and a processor in which computer readable instructions are stored which, when executed by the processor, cause the processor to perform steps of a video stream decoding method.

本願の1つまたは複数の実施形態の詳細は、以下の図面および説明に示されている。本願の他の特徴、目的、および利点は、明細書、図面、および特許請求の範囲から明らかになるであろう。 The details of one or more embodiments of the application are set forth in the drawings and description below. Other features, objects, and advantages of the present application will become apparent from the specification, drawings, and claims.

本願の実施形態中の技術案をより明確に説明するために、以下、実施形態の説明に使用される必要のある図面を簡単に紹介するが、明らかなように、以下の図面は、あくまでも本願のいくつかの実施形態に過ぎず、当業者であれば、創造的な労働無しには、これらの図面に基づいてさらに他の図面を取得することができる。 In order to more clearly describe the technical solutions in the embodiments of the present application, the following briefly introduces the drawings that need to be used in the description of the embodiments. and those skilled in the art can obtain other drawings based on these drawings without creative efforts.

本願の実施形態に係るビデオストリーム復号システムの一実施態様のシーンを示す模式図である。1 is a schematic diagram illustrating a scene of one implementation of a video stream decoding system according to embodiments of the present application; FIG. 本願の実施形態に係るビデオストリーム復号方法の一実施態様のフローを示す模式図である。FIG. 3 is a schematic diagram showing a flow of an implementation of a video stream decoding method according to an embodiment of the present application; 本願の実施形態に係るビデオストリーム復号方法の別の実施態様のフローを示す模式図である。FIG. 5 is a schematic diagram showing a flow of another implementation of a video stream decoding method according to an embodiment of the present application; 本願の実施形態に係るビデオストリーム復号装置の一実施態様の構造を示す模式図である。1 is a schematic diagram showing the structure of one embodiment of a video stream decoding device according to an embodiment of the present application; FIG. 本願の実施形態に係るビデオストリーム復号装置の別の実施態様の構造を示す模式図である。FIG. 4 is a schematic diagram showing the structure of another implementation of a video stream decoding device according to an embodiment of the present application; 本願の実施形態に係る端末機器の構造を示す模式図である。It is a schematic diagram which shows the structure of the terminal device which concerns on embodiment of this application.

本願の目的、技術案、および利点をより明確に理解してもらうために、以下、図面および実施形態と併せて、本願をさらに詳細に説明する。本明細書に説明されている具体的な実施形態は、本願を解釈するものに過ぎず、本願を限定することを意図していないことは、理解されるであろう。本願は、本願の実施形態に基づくものであり、当業者が創造的労働を伴わずに得た他のすべての実施形態は、本願の保護範囲内に含まれる。 In order to make the objectives, technical solutions and advantages of the present application more clearly understood, the present application will be described in further detail below in conjunction with the drawings and embodiments. It will be appreciated that the specific embodiments described herein are for interpretation of the application only and are not intended to limit the application. The present application is based on the embodiments of the present application, and all other embodiments obtained by persons skilled in the art without creative labor fall within the protection scope of the present application.

以下の説明では、本願の具体的な実施形態について、特別な説明がない限り、1つまたは複数のコンピュータで実行されるステップおよび操作を参照して説明する。したがって、これらのステップおよび操作は、コンピュータによって実行されるものとして何度か言及され、本明細書で言及されるコンピュータによる実行は、構造化された形でのデータの電子信号を表すコンピュータ処理ユニットによる操作を含む。この操作により、該データが変換されたり、このコンピュータのメモリシステム内の場所に保持され、このコンピュータの作動は、再構成されるか、当業者に知られている他の方法で変更されるようになる。該データが保持されているデータ構造は、そのメモリ内の物理的な位置であり、そのデータフォーマットで定義された特定の特性を持っている。しかし、本願の原理を上記文字記載の通り説明しているが、これは制限を表すものではなく、以下で説明されるステップおよび操作の多くがハードウェアでも実施可能であることは、当業者が理解するであろう。 In the description that follows, specific embodiments of the present application will be described with reference to steps and operations that are performed by one or more computers, unless specified otherwise. Thus, these steps and operations are sometimes referred to as being computer-executed, and the computer-execution referred to herein is a computer processing unit that represents electronic signals of data in structured form. including operation by This manipulation transforms or retains the data in locations within the memory system of the computer, and the operation of the computer may be reconfigured or altered in other ways known to those skilled in the art. become. The data structure in which the data is held is its physical location in memory and has certain characteristics defined by its data format. However, while the principles of the present application have been described in the literal terms above, this is not intended to be limiting, and those skilled in the art will appreciate that many of the steps and operations described below can also be implemented in hardware. will understand.

本明細書で使用される「モジュール」または「ユニット」は、このコンピューティングシステム上で実行されるソフトウェアオブジェクトと見なすことができる。本明細書で説明される異なるコンポーネント、モジュール、エンジンおよびサービスは、このコンピューティングシステム上で実施されるオブジェクトと見なすことができる。また、本明細書に説明される装置および方法は、好ましくはソフトウェアで実施されるが、もちろんハードウェアでも実施可能であり、これらはすべて本願の保護範囲内に含まれる。 A "module" or "unit" as used herein can be considered a software object that executes on the computing system. The different components, modules, engines and services described herein can be viewed as objects implemented on this computing system. Also, the devices and methods described herein are preferably implemented in software, but can of course also be implemented in hardware, all of which fall within the scope of protection of the present application.

図1を参照すると、図1は、本願の実施形態に係るビデオストリーム復号システムのシーンを示す模式図であり、このビデオストリーム復号システムは、端末機器102と少なくとも1つの監視機器101とを備えてもよく、監視機器は、ビデオストリームを撮影、監視して符号化し、そして、復号のために端末機器102に伝送する。各監視機器は、それぞれ1チャンネルのビデオストリームに対応してもよく、この監視機器101は監視カメラであってもよい。この端末機器102にはビデオストリーム復号装置を一体に備えており、この端末機器は、中央処理装置1021、グラフィック処理装置1022、およびメモリ1023を備え得る。本願の実施形態では、端末機器102は、主に、中央処理装置1021により、監視機器から入力されたマルチチャンネルのビデオストリームを取得し、グラフィック処理装置に対応するスレッドプールにおいて、複数のスレッドを作成し、複数のスレッドに基づいて、マルチチャンネルのビデオストリームをグラフィック処理装置に伝送してビデオ復号処理を行わせることで、マルチチャンネルの復号ビデオデータを得る。 Referring to FIG. 1, FIG. 1 is a schematic diagram showing a scene of a video stream decoding system according to an embodiment of the present application, which includes a terminal device 102 and at least one monitoring device 101. Alternatively, the monitoring equipment captures, monitors, encodes, and transmits the video stream to the terminal equipment 102 for decoding. Each monitoring device may correspond to one channel of video stream, and this monitoring device 101 may be a surveillance camera. The terminal equipment 102 is integrated with a video stream decoding device and may comprise a central processing unit 1021 , a graphics processing unit 1022 and a memory 1023 . In the embodiment of the present application, the terminal device 102 mainly uses the central processing unit 1021 to acquire the multi-channel video stream input from the monitoring device and create a plurality of threads in the thread pool corresponding to the graphics processing unit. Then, based on a plurality of threads, the multi-channel video stream is transmitted to the graphics processing device to perform video decoding processing, thereby obtaining multi-channel decoded video data.

本願の実施形態では、この端末機器102はサーバであってもよく、このサーバは、独立したサーバであってもよいし、サーバからなるサーバネットワークまたはサーバクラスタであってもよく、例えば、本願の実施形態で説明されるサーバは、コンピュータ、ネットワークホスト、単一のネットワークサーバ、複数のネットワークサーバ群、または複数のサーバからなるクラウドサーバを含むが、これらに限定されない。クラウドサーバは、クラウドコンピューティング(Cloud Computing)に基づく多数のコンピュータまたはネットワークサーバから構成される。本願の実施形態では、サーバと監視機器間の通信は、任意の通信手段によって達成されてもよく、これには、第3世代パートナーシッププロジェクト(3rd Generation Partnership Project、3GPP)、ロングタームエボリューション(Long Term Evolution、LTE)、世界規模相互運用マイクロ波アクセス(Worldwide Interoperability for Microwave Access、WiMAX)に基づく移動通信、またはTCP/IPプロトコルスイート(TCP/IP Protocol Suite、TCP/IP)、ユーザデータグラムプロトコル(User Datagram Protocol、UDP)に基づくコンピュータネットワーク通信などが含まれるが、これらに限定されない。 In embodiments of the present application, this terminal device 102 may be a server, which may be an independent server, or a server network or server cluster of servers, such as the Servers described in the embodiments include, but are not limited to, computers, network hosts, single network servers, multiple network servers, or cloud servers composed of multiple servers. A cloud server consists of a number of computers or network servers based on Cloud Computing. In embodiments of the present application, communication between the server and the monitoring equipment may be accomplished by any means of communication, including 3rd Generation Partnership Project (3GPP), Long Term Evolution Evolution, LTE), Mobile communications based on Worldwide Interoperability for Microwave Access (WiMAX) or TCP/IP Protocol Suite (TCP/IP), User Datagram Protocol (User Datagram Protocol, UDP) based computer network communication, etc., but not limited to these.

図1に示された適用環境は、本願発明の1つの適用シーンに過ぎず、本願発明の適用シーンを限定するものではなく、他の適用環境は図1に示されたものよりも多くの端末機器または監視機器も含み得ることは、当業者が理解するであろう。例えば、図1には、1つのサーバおよび2つの監視機器のみが示されているが、このビデオストリーム復号システムは、1つまたは複数の他のサーバ、または/およびサーバネットワークに接続された1つまたは複数の監視機器も含み得ることは理解でき、ここでは特に限定されるものではない。 The application environment shown in FIG. 1 is only one application scene of the present invention, and does not limit the application scene of the present invention. Those skilled in the art will appreciate that it may also include equipment or monitoring equipment. For example, although only one server and two monitoring devices are shown in FIG. 1, this video stream decoding system may include one or more other servers and/or one connected to a server network. or multiple monitoring devices, and is not limited herein.

また、図1に示すように、このビデオストリーム復号システムにおける端末機器102内のメモリは、後で必要なときに調べるために、例えば復号ビデオデータまたは監視ビデオデータなどのデータを記憶するためのものであり、メモリは、システムメモリ、共有メモリ、およびディスクのうちの少なくとも1つを含み得る。 Also, as shown in FIG. 1, the memory within the terminal equipment 102 in this video stream decoding system is for storing data such as decoded video data or surveillance video data for later examination when required. and the memory may include at least one of system memory, shared memory, and disk.

システムメモリは、システムがプログラム命令およびデータを一時的に記憶する主な領域であるランダムアクセスメモリ(random-access memory)の略称であるramと同義であり、ramにおける各位置はそれぞれメモリアドレスと呼ばれる番号によって識別され、端末機器システムを終了すると、ramに保存されたデータはすべて失われる。システムメモリは、物理メモリと仮想メモリから構成され、実行時に物理メモリが不足すると、システムは、通常、物理メモリの1.5~3倍である仮想メモリを作成する。 System memory is synonymous with ram, which is an abbreviation for random-access memory, which is the main area where the system temporarily stores program instructions and data, and each location in ram is called a memory address. Identified by number, when you exit the terminal equipment system, all data stored in ram will be lost. System memory consists of physical memory and virtual memory, and when physical memory runs out during runtime, the system creates virtual memory, which is typically 1.5 to 3 times the physical memory.

ディスク(disk)とは、磁気記録技術を用いてデータを記憶するメモリのことである。ディスクはコンピュータの主な記憶媒体で、大量のバイナリデータを記憶でき、停電してもデータを失わずに保存できる。初期のコンピュータで使用されたディスクはソフトディスク(soft disk)であり、現在、一般的に使用されているディスクはハードディスク(hard disk)であり、本願の実施形態で言及されるディスクはソフトディスクまたは/およびハードディスクであり得る。 A disk is a memory that stores data using magnetic recording technology. Disks are the main storage medium for computers, and can store large amounts of binary data, which can be preserved even after a power failure. The disks used in early computers were soft disks, the disks commonly used today are hard disks, and the disks referred to in the embodiments of this application are soft disks or / and can be a hard disk.

共有メモリ(shared memory)とは、端末機器内の異なる中央処理装置(CPU)からアクセス可能な大容量のメモリのことである。CPUはディスクにすばやくアクセスする必要があるため、ディスクをキャッシュ(Cache)する必要があり、キャッシュされたいずれかのデータが更新された後、他のプロセッサもアクセスする必要があるため、共有メモリをすぐに更新する必要があり、そうでないと、異なるプロセッサは異なるデータを使用する可能性がある。 Shared memory is a large amount of memory that is accessible from different central processing units (CPUs) within a terminal device. Since the CPU needs to access the disk quickly, it needs to cache the disk, and after any cached data is updated, other processors also need to access it, so shared memory is used. It must be updated immediately or different processors may use different data.

なお、図1に示されたビデオストリーム復号システムのシーンの模式図は一例に過ぎず、本願の実施形態で説明されるビデオストリーム復号システムおよびシーンは、本願の実施形態の技術案をより明確に説明するためのものであり、本願の実施形態に係る技術案を限定するものではなく、当業者であれば知っているように、ビデオストリーム復号システムの進化および新たな業務シーンの誕生に伴って、本願の実施形態に係る技術案は類似した技術的課題にも同様に適用可能である。 It should be noted that the schematic diagram of the scene of the video stream decoding system shown in FIG. It is for explanation and does not limit the technical solutions according to the embodiments of the present application. As those skilled in the art know, with the evolution of video stream decoding systems and the emergence of new business scenes , the technical solutions according to the embodiments of the present application are equally applicable to similar technical problems.

以下、具体的な実施形態と併せて詳細に説明する。 Hereinafter, it will be described in detail together with specific embodiments.

本実施形態では、ビデオストリーム復号装置の観点から説明するが、このビデオストリーム復号装置は、具体的には、中央処理装置とグラフィック処理装置とを備える端末機器に一体化されてもよく、本願の実施形態におけるビデオストリーム復号方法は、中央処理装置によって実行される。 This embodiment will be described from the viewpoint of a video stream decoding device. Specifically, this video stream decoding device may be integrated into a terminal device having a central processing unit and a graphics processing unit. A video stream decoding method in an embodiment is performed by a central processing unit.

本願は、ビデオストリーム復号方法を提供し、この方法は、監視機器から入力されたマルチチャンネルのビデオストリームを取得するステップと、グラフィック処理装置に対応するスレッドプールにおいて、複数のスレッドを作成するステップと、複数のスレッドに基づいて、マルチチャンネルのビデオストリームをグラフィック処理装置に伝送してビデオ復号処理を行わせることで、マルチチャンネルの復号ビデオデータを得るステップと、を含む。 The present application provides a video stream decoding method, comprising the steps of obtaining a multi-channel video stream input from a surveillance device, and creating multiple threads in a thread pool corresponding to a graphics processing device. and transmitting the multi-channel video stream to a graphics processing device for video decoding processing based on multiple threads to obtain multi-channel decoded video data.

図2を参照すると、図2は、本願の実施形態に係るビデオストリーム復号方法の一実施態様のフローを示す模式図であり、このビデオストリーム復号方法は以下のステップ201~203を含む。 Referring to FIG. 2, FIG. 2 is a schematic diagram showing the flow of an embodiment of a video stream decoding method according to an embodiment of the present application, which video stream decoding method includes steps 201-203 as follows.

201では、監視機器から入力されたマルチチャンネルのビデオストリームを取得する。 At 201, a multi-channel video stream is acquired from the surveillance equipment.

本願の実施形態では、監視機器は、図1に示すような監視機器101を指してもよく、監視機器は、ビデオ画像を監視し撮影することができ、具体的には、監視機器は、監視カメラであってもよく。監視機器は、1つの監視機器であってもよいし、複数の監視機器であってもよく、各監視機器は、それぞれ1チャンネルのビデオストリームを伝送し、監視機器は、撮影されたビデオをビデオファイルの形でビデオストリームとして端末機器に直接伝送することができる。一例では、端末機器は、有線または無線などを介して監視機器との接続を確立して、監視機器によって撮影されたビデオストリームを受信してもよい。端末機器は、Rtspプロトコル、GB/T28181プロトコル、またはサードパーティ製ソフトウェア開発キット(Software Development Kit、SDK)などを介して、監視機器からのビデオストリームを取得してもよい。 In embodiments of the present application, monitoring equipment may refer to monitoring equipment 101 as shown in FIG. It can also be a camera. The monitoring device may be one monitoring device or a plurality of monitoring devices, each monitoring device transmits a video stream of one channel, and the monitoring device transmits the captured video to the video. It can be transmitted directly to the terminal equipment as a video stream in the form of a file. In one example, the terminal device may establish a connection, such as via wire or wireless, with the surveillance equipment to receive the video stream captured by the surveillance equipment. The terminal equipment may obtain the video stream from the monitoring equipment via Rtsp protocol, GB/T28181 protocol, or third-party Software Development Kit (SDK).

また、監視機器によって撮影されたビデオ画像は、端末機器へ伝送するためのビデオストリームを形成するために、例えばマルチメディアコンテナ(Multimedia Container、MKV)フォーマットまたはストリームビデオフォーマット(Flash Video、FLV)のような異なるフォーマットにパッケージ化されることができ、また、mp4フォーマット、rmvbフォーマットなどの他のビデオフォーマットであってもよいことは理解でき、ここでは特に限定されるものではない。 Also, the video images captured by the surveillance equipment are stored in, for example, the Multimedia Container (MKV) format or the Stream Video format (Flash Video, FLV) to form a video stream for transmission to the terminal equipment. It can be understood that it can be packaged in various different formats and may be other video formats such as mp4 format, rmvb format, etc., and is not particularly limited herein.

なお、監視機器から入力されたビデオストリームデータを取得するステップは、監視機器から入力された元のビデオストリームを取得し、元のビデオストリームを解析処理した後、監視機器から入力されたビデオストリームデータを取得するステップを含んでもよい。この場合、監視機器から入力されたビデオストリームデータはパケットの形で記憶され、同様に、後述するように、復号されたビデオストリームデータは復号されたデータの形で記憶されてもよく、一般的に、復号処理後のビデオストリームは、画像フレームの形で記憶される。 The step of obtaining the video stream data input from the monitoring equipment includes obtaining the original video stream input from the monitoring equipment, analyzing the original video stream, and analyzing the video stream data input from the monitoring equipment. may include the step of obtaining In this case, the video stream data input from the surveillance equipment is stored in the form of packets, and similarly, as will be described later, the decoded video stream data may be stored in the form of decoded data. Second, the decoded video stream is stored in the form of image frames.

202では、グラフィック処理装置に対応するスレッドプールにおいて、複数のスレッドを作成する。 At 202, multiple threads are created in a thread pool corresponding to the graphics processing unit.

グラフィックスコアとも呼ばれるグラフィック処理装置(Graphics Processing Unit、GPU)は、パーソナルコンピュータ、ワークステーション、ゲーム機および一部のモバイル機器などでの画像演算作業に特化したマイクロプロセッサである。コンピュータシステムが必要とする表示情報を変換して駆動し、ディスプレイに走査信号を提供して、ディスプレイが正しく表示するように制御することができる。本願の実施形態では、端末機器にGPUが備えられており、GPUの浮動小数点演算能力はCPUよりもはるかに強力であり、一方、現在の監視機器は一般的にローエンドで、CPUの処理能力が低いため、本願の実施形態では、ビデオストリームをGPUに伝送し、ビデオストリームの復号作業をGPUに担当させることで、CPUの負担を大幅に軽減し、ビデオコーデックの作業効率を向上させることができる。 A graphics processing unit (GPU), also called a graphics core, is a microprocessor specialized for image computation tasks in personal computers, workstations, game consoles, and some mobile devices. It can convert and drive the display information required by the computer system, provide scanning signals to the display, and control the display to display correctly. In the embodiments of the present application, the terminal equipment is equipped with a GPU, and the floating point computing power of the GPU is much stronger than that of the CPU, while current monitoring equipment is generally low-end, and the processing power of the CPU is Therefore, in the embodiment of the present application, by transmitting the video stream to the GPU and having the GPU take charge of decoding the video stream, the load on the CPU can be greatly reduced and the work efficiency of the video codec can be improved. .

本願の実施形態では、端末機器に複数のGPUが備えられてもよく、ここではGPUの数には特に限定されない。このとき、グラフィック処理装置に伝送されるビデオストリームを、これら複数のGPUにランダムに割り当てることができる。例えば、監視機器から入力されたビデオストリームが10チャンネルであり、端末機器に2つのGPUがある場合、10チャンネルのうち3チャンネルを一方のGPUに、残りの7チャンネルを他方のGPUにランダムに割り当てることができる。もちろん、グラフィック処理装置に伝送されるビデオストリームを、これら複数のGPUに均等に割り当てることもでき、例えば、監視機器から入力されたビデオストリームが10チャンネルであり、端末機器に2つのGPUがある場合、それぞれ5チャンネルのビデオストリームを該2つのGPUに割り当てることができる。 In the embodiments of the present application, the terminal device may be provided with multiple GPUs, and the number of GPUs is not particularly limited here. The video streams transmitted to the graphics processing unit can then be randomly assigned to these multiple GPUs. For example, if the video stream input from the monitoring device has 10 channels and the terminal device has 2 GPUs, 3 of the 10 channels are randomly assigned to one GPU and the remaining 7 channels to the other GPU. be able to. Of course, the video stream transmitted to the graphics processing device can be equally allocated to these multiple GPUs. , a video stream of 5 channels each can be assigned to the two GPUs.

本願の他のいくつかの実施形態では、端末機器に複数のGPUが含まれている場合、さらに、対応する動的負荷分散規則を事前に設定してもよく、この場合、ビデオストリームをグラフィック処理装置に伝送することは、さらに、端末機器がマルチチャンネルのビデオストリームを受信すると、事前に設定された動的負荷分散規則に従って、監視機器から入力されたビデオストリームを複数のGPUに割り当てるように行われてもよい。動的負荷分散規則は、これら複数のGPUのそれぞれがバランスよく使用されることを保証できる。 In some other embodiments of the present application, if the terminal device includes multiple GPUs, the corresponding dynamic load balancing rules may be preconfigured, in which case the video stream is used for graphics processing. The transmitting to the device further causes the video streams input from the monitoring device to be allocated to multiple GPUs according to a preset dynamic load balancing rule when the terminal device receives the multi-channel video stream. may be broken. Dynamic load balancing rules can ensure balanced use of each of these multiple GPUs.

この動的負荷分散規則では、最初の割り当てで各GPUに割り当てるビデオストリームのチャンネル数を設定してもよく、例えば、最初の割り当てで各GPUに20チャンネルのビデオストリームを割り当ててもよい。異なるビデオストリームについて、GPUがコーデックを終えるまでの時間が異なり、その後のビデオストリームの割り当てでは、動的負荷分散規則によれば、各GPUの処理状況に基づいて、動的に割り当てることができる。例えば、端末機器にGPU1、GPU2、およびGPU3の3つのGPUが搭載されており、最初の割り当てで各GPUに20チャンネルのビデオストリームが割り当てられた場合、GPU1は、割り当てられた20チャンネルのビデオストリームの処理を最初に終了した可能性があり、このとき、この動的負荷分散規則に従って、GPU1に20チャンネルのビデオストリームを再割り当てることができる。 In this dynamic load balancing rule, the initial allocation may set the number of channels of video streams to allocate to each GPU, for example, the initial allocation may allocate 20 channels of video streams to each GPU. For different video streams, the time for the GPU to finish the codec is different, and the allocation of subsequent video streams can be dynamically allocated based on the processing status of each GPU according to the dynamic load balancing rule. For example, if the terminal device is equipped with three GPUs, GPU1, GPU2, and GPU3, and 20 channels of video streams are assigned to each GPU in the initial assignment, GPU1 is assigned 20 channels of video streams. may have ended first, at which time the 20-channel video streams could be reallocated to GPU1 according to this dynamic load balancing rule.

ハードウェアリソースの呼び出しでは、共有データ操作の整合性を確保するために、相互排他ロックの概念が導入されている。各ハードウェアオブジェクトは「相互排他ロック」と呼ばれるマークに対応しており、このマークは、いずれの時刻においても1つのスレッドのみがこのハードウェアオブジェクトにアクセスできることを確保する。したがって、上記のように端末機器に複数のGPUが備えられる場合、GPUにビデオストリームを割り当てる際に、GPU間の相互作用を避けるために、各GPUに対応する相互排他ロックを設定することができ、この相互排他ロックは、同一の時刻においてマルチチャンネルのビデオストリームが1つのGPUのみに割り当てられることを確保する。1つのGPUに対応するスレッドプールにおいて複数のスレッドが含まれている可能性があることを考慮すると、スレッド間の相互作用を避けるために、各スレッドに対して、対応する相互排除ロックを設定することができ、この相互排他ロックは、同一の時刻において1つのスレッドだけがGPUを呼び出すことを確保する。 Hardware resource calls introduce the concept of mutual exclusion locks to ensure the integrity of shared data operations. Each hardware object corresponds to a mark called a "mutual exclusion lock", which ensures that only one thread can access this hardware object at any one time. Therefore, when a terminal device is provided with multiple GPUs as described above, a mutual exclusion lock corresponding to each GPU can be set in order to avoid interaction between GPUs when allocating video streams to GPUs. , this mutual exclusion lock ensures that a multi-channel video stream is assigned to only one GPU at the same time. Considering that there may be multiple threads in the thread pool corresponding to one GPU, set a corresponding mutex lock for each thread to avoid interaction between threads. This mutex lock ensures that only one thread calls the GPU at the same time.

端末機器に複数のGPUが備えられる場合、GPUごとに、ユーザが入力したスレッド数の情報に基づいて、そのGPUに対応するスレッドプールにおいて複数のスレッドを設定し、そして、受信されたマルチチャンネルのビデオストリームを解析処理し、複数のスレッドを使用してGPUを呼び出し、解析処理後のマルチチャンネルのビデオストリームに対してコーデック処理を行うことができる。このように、1つのスレッドがGPUを呼び出すことで、解析された1チャンネルのビデオストリームのコーデック処理を実現することができ、1つのGPUに対して複数のスレッドを設定することができ、即ち、複数のスレッドは、同時にGPUを呼び出して、解析されたビデオストリームを処理することができ、これにより、1つのGPUによるマルチチャンネルのビデオストリームの並列処理を実現し、ビデオコーデックの作業効率を効果的に向上させる。 If the terminal device is equipped with multiple GPUs, for each GPU, based on the information on the number of threads input by the user, multiple threads are set in the thread pool corresponding to that GPU, and the received multi-channel A video stream can be parsed, multiple threads can be used to call the GPU, and codec processing can be performed on the parsed multi-channel video stream. In this way, one thread can call the GPU to realize the codec processing of the analyzed one-channel video stream, and multiple threads can be set for one GPU, namely: Multiple threads can simultaneously call the GPU to process the parsed video stream, thus realizing parallel processing of multi-channel video streams by one GPU and effectively improving the work efficiency of the video codec. improve to

本願の実施形態では、端末機器は、少なくとも1つのGPUを含み、各GPUに1つのスレッドプールが対応しており、各スレッドプールに少なくとも1つのスレッドが設けられることができ、各チャンネルのビデオストリームを1つのスレッドプールに設けられたスレッドの数の分だけ、同時に処理することができる。 In an embodiment of the present application, the terminal device includes at least one GPU, each GPU corresponds to one thread pool, each thread pool can be provided with at least one thread, and each channel video stream can be simultaneously processed by the number of threads provided in one thread pool.

スレッドは、GPUを呼び出してコーデックを実現するためのインターフェース情報と理解することができ、このスレッドプールを使用すると、GPUを呼び出してビデオストリームのコーデックを実現することができる。スレッドプールはスレッドを記憶することができ、1つのスレッドプールに記憶されるスレッドの数は、ユーザの要求に応じて設定されることができる。スレッドプールに含まれるスレッドの数は、ユーザが関連するインターフェースを介して端末機器に入力することができ、このとき、グラフィック処理装置に対応するスレッドプールにおいて、複数のスレッドを作成するステップは、具体的には、ユーザが入力したスレッド数の情報を取得するステップと、スレッド数の情報に従って、グラフィック処理装置に対応するスレッドプールにおいて複数のスレッドを作成するステップとを含むことができる。このスレッド数の具体的な値は、GPUの処理能力に応じて決定されてもよく、例えば、1つのGPUが、10チャンネルのビデオストリームを同時に処理できる演算能力を持っている場合、ユーザはスレッドプールにおけるスレッド数を10に設定し、ユーザが設定したスレッド数が10を超えた場合、例えば20である場合、これを無効にしてもよい。なお、各GPUに対応するスレッドプールに含まれるスレッドの数は、同じでも異なっていてもよく、ここでは限定されない。 A thread can be understood as interface information for calling the GPU to implement the codec, and using this thread pool, the GPU can be called to implement the codec of the video stream. Thread pools can store threads, and the number of threads stored in one thread pool can be set according to user requirements. The number of threads included in the thread pool can be input by the user to the terminal device through a related interface, and at this time, the step of creating a plurality of threads in the thread pool corresponding to the graphics processing unit specifically includes: Specifically, it can include the steps of obtaining information on the number of threads input by a user, and creating a plurality of threads in a thread pool corresponding to the graphics processing device according to the information on the number of threads. A specific value for the number of threads may be determined according to the processing power of the GPU. If the number of threads in the pool is set to 10 and the number of threads set by the user exceeds 10, say 20, it may be disabled. Note that the number of threads included in the thread pool corresponding to each GPU may be the same or different, and is not limited here.

本願のいくつかの実施形態では、複数のスレッドに基づいて、マルチチャンネルのビデオストリームをグラフィック処理装置に伝送してビデオ復号処理を行わせることで、マルチチャンネルの復号ビデオデータを得るステップは、具体的には、マルチチャンネルのビデオストリームの各チャンネルのビデオストリームに対して、複数のスレッドのうち1つのスレッドを1対1で割り当てるステップと、複数のスレッドのうちのスレッドをそれぞれターゲットスレッドとし、ターゲットスレッドを使用してターゲットチャンネルのビデオストリームをグラフィック処理装置に入力するステップであって、ターゲットチャンネルのビデオストリームは、マルチチャンネルのビデオストリームのうちターゲットスレッドに対応する1チャンネルのビデオストリームであるステップと、を含んでもよい。この場合、グラフィック処理装置を介してマルチチャンネルの復号ビデオデータをメモリに出力するステップは、グラフィック処理装置によりターゲットビデオストリームを復号処理することで、ターゲット復号ビデオデータを得るステップを含む。 In some embodiments of the present application, the step of transmitting multi-channel video streams to a graphics processing device for video decoding processing on the basis of multiple threads to obtain multi-channel decoded video data includes: Specifically, a step of assigning one thread out of a plurality of threads to a video stream of each channel of a multi-channel video stream on a one-to-one basis; inputting the target channel video stream to the graphics processing device using the thread, wherein the target channel video stream is a one-channel video stream corresponding to the target thread among the multi-channel video streams; , may include In this case, the step of outputting the multi-channel decoded video data to the memory via the graphics processor includes the step of decoding the target video stream by the graphics processor to obtain the target decoded video data.

例えば、端末機器にGPU1とGPU2の2つのGPUが含まれており、GPU1に対応するスレッドプールにおいて5つのスレッドを作成し、GPU2に対応するスレッドプールにおいて10個のスレッドを作成した場合、端末機器のグラフィック処理装置に対応するスレッドプールにおいて、複数のスレッドを作成し、すなわち、15個のスレッドを含むことができる。 For example, if the terminal device includes two GPUs, GPU1 and GPU2, and five threads are created in the thread pool corresponding to GPU1 and ten threads are created in the thread pool corresponding to GPU2, the terminal device In the thread pool corresponding to the graphics processing unit, multiple threads can be created, ie, 15 threads.

なお、端末機器に複数のGPUが含まれている場合、グラフィック処理装置に対応するスレッドプールにおいて、複数のスレッドを作成する際に、どのGPUに該複数のスレッドを作成するかは、実際の状況に応じて設定されることができ、例えば、監視機器から入力されたビデオストリームの復号を1つまたは複数のGPUに専門に扱わせ、他の画像の処理を他の1つまたは複数のGPUに担当させることができる。 If the terminal device includes a plurality of GPUs, when creating a plurality of threads in the thread pool corresponding to the graphics processing device, which GPU to create the plurality of threads depends on the actual situation. for example, dedicating decoding of video streams input from surveillance equipment to one or more GPUs and processing of other images to other one or more GPUs. can be in charge.

本願の他の可能な実施態様において、作成するスレッドの数は、監視機器から入力されたビデオストリームのビデオチャンネル数に基づいて決定されてもよく、具体的には、グラフィック処理装置に対応するスレッドプールにおいて、複数のスレッドを作成するステップは、監視機器から入力されたビデオストリームのビデオチャンネル数を取得するステップと、グラフィック処理装置に対応するスレッドプールにおいて、ビデオチャンネル数と同じ数のスレッドを作成して、複数のスレッドを得るステップとを含んでもよい。端末機器におけるGPUの処理能力は常に制限されており、監視機器から入力されたビデオストリームのチャンネル数が、端末機器におけるGPUに対応するスレッドプールで作成可能なスレッドの最大数(端末機器が複数のGPUを含む場合、この最大数は複数のGPUが作成可能なスレッドの最大数の合計)を超えた場合、該複数のスレッドは、この端末機器におけるGPUに対応するスレッドプールで作成可能なスレッドの最大数であってもよく、つまり、端末機器は該最大数のチャンネル数のビデオストリームのみを受信してもよい。 In another possible embodiment of the present application, the number of threads to create may be determined based on the number of video channels of the video stream input from the surveillance equipment, specifically the threads corresponding to the graphics processing unit. The step of creating a plurality of threads in the pool includes the step of obtaining the number of video channels of the video stream input from the monitoring device, and creating the same number of threads as the number of video channels in the thread pool corresponding to the graphics processing device. to obtain a plurality of threads. The processing capacity of the GPU in the terminal equipment is always limited, and the number of channels of the video stream input from the monitoring equipment is limited to the maximum number of threads that can be created in the thread pool corresponding to the GPU in the terminal equipment (when the terminal equipment has multiple When GPU is included, if this maximum number exceeds the maximum number of threads that can be created by multiple GPUs), the multiple threads are the number of threads that can be created in the thread pool corresponding to the GPU in this terminal device. It may be the maximum number, ie the terminal device may receive only the maximum number of channels of video streams.

203では、該複数のスレッドに基づいて、マルチチャンネルのビデオストリームをグラフィック処理装置に伝送してビデオ復号処理を行わせることで、マルチチャンネルの復号ビデオデータを得る。 At 203 , multi-channel decoded video data is obtained by transmitting the multi-channel video stream to the graphics processing device for video decoding processing based on the plurality of threads.

本願のいくつかの実施形態では、複数のスレッドに基づいて、マルチチャンネルのビデオストリームをグラフィック処理装置に伝送してビデオ復号処理を行わせることで、マルチチャンネルの復号ビデオデータを得るステップは、具体的には、マルチチャンネルのビデオストリームの各チャンネルのビデオストリームに対して、複数のスレッドのうち1つのスレッドを1対1で割り当てるステップと、複数のスレッドのうちのスレッドをそれぞれターゲットスレッドとし、ターゲットスレッドを使用してターゲットビデオストリームをグラフィック処理装置に入力するステップであって、ターゲットチャンネルのビデオストリームは、マルチチャンネルのビデオストリームのうちターゲットスレッドに対応する1チャンネルのビデオストリームであるステップと、を含んでもよい。この場合、グラフィック処理装置を介してマルチチャンネルの復号ビデオデータをメモリに出力するステップは、グラフィック処理装置によりターゲットビデオストリームを復号処理することで、ターゲット復号ビデオデータを得るステップを含む。 In some embodiments of the present application, the step of transmitting multi-channel video streams to a graphics processing device for video decoding processing on the basis of multiple threads to obtain multi-channel decoded video data includes: Specifically, a step of assigning one thread out of a plurality of threads to a video stream of each channel of a multi-channel video stream on a one-to-one basis; inputting the target video stream to the graphics processing device using the thread, wherein the target channel video stream is a one-channel video stream corresponding to the target thread among the multi-channel video streams; may contain. In this case, the step of outputting the multi-channel decoded video data to the memory via the graphics processor includes the step of decoding the target video stream by the graphics processor to obtain the target decoded video data.

端末機器に複数のGPUがある場合、ターゲットスレッドを使用してグラフィック処理装置を呼び出し、ここでいうグラフィック処理装置は、ターゲットスレッドに対応するグラフィック処理装置あり、すなわち、ターゲットスレッドは、グラフィック処理装置に対応するスレッドプールにおけるスレッドである。 If the terminal device has multiple GPUs, the target thread is used to call the graphics processing unit, where the graphics processing unit is the graphics processing unit corresponding to the target thread, that is, the target thread is the graphics processing unit corresponding to the target thread. A thread in the corresponding thread pool.

スレッドによりGPUを呼び出してビデオストリームのコーデック処理を行う際に、マルチスレッドを例にとると、各スレッドは監視機器から入力された1チャンネルのビデオストリームに対応しており、具体的な実現では、スレッドは、GPUを呼び出してビデオストリームを復号処理する際に、復号の作業効率を高めるために、ビデオストリームを解析処理し、処理されたビデオストリームは、より小さな構成要素に分割されたものになり、例えば、パケットの形で存在し、つまり、1チャンネルのビデオストリームに少なくとも1つのパケットが含まれていてもよい。GPUがマルチチャンネルのビデオストリームを復号処理する際に、各チャンネルのビデオストリームは少なくとも1つのパケットに分割され、各チャンネルのビデオストリームに対応するパケットを管理しやすくするために、各スレッドごとにバッファを設定することができる。具体的には、GPU上で各スレッドに対応する第1のバッファと第2のバッファを設定することができる。第1のバッファは、復号されるべきビデオストリームデータを記憶するために使用されてもよく、第2のバッファは、復号されたビデオストリームデータを記憶するために使用されてもよい。 Taking multithreading as an example, when a thread calls the GPU to perform codec processing on a video stream, each thread corresponds to one channel of the video stream input from the monitoring device. When calling the GPU to decode the video stream, the thread analyzes the video stream to improve the decoding work efficiency, and the processed video stream is divided into smaller components. , for example, may be present in the form of packets, ie at least one packet may be included in a video stream of one channel. When the GPU decodes a multi-channel video stream, each channel's video stream is divided into at least one packet, and each thread buffers each channel's video stream in order to facilitate management of the packets corresponding to each channel's video stream. can be set. Specifically, a first buffer and a second buffer corresponding to each thread can be set on the GPU. A first buffer may be used to store video stream data to be decoded and a second buffer may be used to store decoded video stream data.

監視機器で撮影されたビデオストリームは、通常、夜間の無人シーンのように、対象物のない画像フレームが長時間続くシーンもあるため、そのようなシーンのビデオ画像はあまり意味のない画像であり、大量の復号は端末機器に大きな負荷をかける一方で、復号後のストレージが大きなメモリ空間を占めることになる。そのため、本願の実施形態では、ビデオストリームにおける各フレームの画像に対してフレームスキップ判定を行い、復号効率を向上させることができる。 Video streams captured by surveillance equipment usually include long stretches of image frames with no objects of interest, such as unmanned scenes at night, so the video images of such scenes are not very meaningful. , while a large amount of decoding imposes a heavy load on the terminal equipment, the storage after decoding occupies a large memory space. Therefore, in the embodiments of the present application, it is possible to improve the decoding efficiency by performing frame skip determination on the image of each frame in the video stream.

具体的には、以上説明した、ターゲットスレッドを使用してグラフィック処理装置ユニットを呼び出し、ターゲットチャンネルのビデオストリームを復号処理することで、ターゲット復号ビデオデータを得るステップは、ターゲットチャンネルのビデオストリームにおける各フレームの画像を順次、ターゲット画像とし、ターゲット画像を復号した後、ターゲット画像をフレームスキップする必要があるか否かを判定するステップと、必要がある場合、このターゲット画像を棄却するステップと、を含んでもよい。 Specifically, the step of obtaining the target decoded video data by using the target thread to call the graphics processing unit and decode the target channel video stream as described above includes: a step of determining whether or not the target image needs to be frame-skipped after the target image is decoded, and a step of rejecting the target image if necessary; may contain.

ターゲット画像をフレームスキップする必要があるか否かを判定するステップは、ターゲット画像に所定の種類のオブジェクトが含まれているか否かを検出するステップと、ターゲット画像に所定の種類のオブジェクトが含まれていない場合、ターゲット画像をフレームスキップする必要があると決定するステップと、を含んでもよい。所定の種類のオブジェクトは、具体的なシーンのニーズに応じて設定されてもよく、例えば、監視機器の場合、その撮影したビデオにおける画像は、監視機器が監視する必要のあるオブジェクト、例えば人または車両に応じて決定されてもよい。例えば、監視機器が人の往来を監視するためのものであれば、該所定の種類のオブジェクトは人であってもよく、この監視機器が車両を監視するためのものであれば、所定の種類のオブジェクトは車両であってもよいが、もちろん、上記は一例に過ぎず、実際の適用において、所定の種類のオブジェクトは、1つまたは複数のオブジェクトを含んでもよく、上述した人、車両などのオブジェクトに加えて、動物、航空機などの様々な移動体をさらに含んでもよい。また、ターゲット画像内のオブジェクト(例えば車両、人など)の検出は、本分野では一般的な技術的手段であり、具体的には従来技術を参照することができ、ここでは説明が省略される。 The step of determining whether the target image needs to be frame-skipped includes the step of detecting whether the target image contains a predetermined type of object; if not, determining that the target image needs to be frame-skipped. Predetermined types of objects may be set according to the needs of a specific scene, for example, in the case of surveillance equipment, the images in the captured video are the objects that the surveillance equipment needs to monitor, such as people or It may be determined according to the vehicle. For example, if the monitoring equipment is for monitoring the traffic of people, the predetermined type of object may be a person, and if the monitoring equipment is for monitoring vehicles, the predetermined type The object of may be a vehicle, but of course the above is only an example, and in a practical application, a given type of object may include one or more objects, such as people, vehicles, etc. In addition to objects, various moving objects such as animals and aircraft may also be included. In addition, the detection of objects (such as vehicles, people, etc.) in the target image is a common technical means in this field, and specific reference can be made to the prior art, and the description is omitted here. .

本願の実施形態では、監視機器から入力された各チャンネルのビデオストリームに対して、ポーリングチェックを行うことができ、あるチャンネルのビデオストリームの復号が終了したことが判明したとき、そのチャンネルのビデオストリームを再生する必要があるか否かを検出して、ビデオストリームの復号が異常であるか否かを決定するようにしてもよい。ビデオストリームの復号が異常である場合、これを再生して再復号することができる。具体的には、本願の実施形態におけるビデオストリーム復号方法は、ターゲットチャンネルのビデオストリームの復号が終了すると、ターゲットチャンネルのビデオストリームを再生する必要があるか否かを判断するステップと、必要がある場合、ターゲットスレッドを再起動し、再びターゲットスレッドを使用してグラフィック処理装置を呼び出し、ターゲットチャンネルのビデオストリームを復号処理することで、ターゲット復号ビデオデータを得るステップと、必要がない場合、ターゲットスレッドを回収するステップと、をさらに含む。端末機器システム内のGPUに対応するスレッドプールにおけるスレッドリソースは限られているため、同時に実行できるスレッド数は限られている。また、デフォルトの条件下では、あるスレッドが終了した後、その対応するGPUリソースは解放されないため、プログラムにおいてスレッドが繰り返し作成されながら、デフォルトでスレッドが終了していれば、最終的にスレッドリソースが枯渇し、GPUに対応するスレッドプールでは新しいスレッドを作成できなくなるため、スレッドを適度に回収することで、端末機器によるビデオストリームの復号能力をタイムリーに復元させることができ、これにより復号の効率化を図ることができる。 In the embodiment of the present application, a polling check can be performed on the video stream of each channel input from the monitoring equipment, and when it is found that the video stream of a certain channel has been decoded, the video stream of that channel is need to be played to determine if the decoding of the video stream is abnormal. If the decoding of the video stream is abnormal, it can be played back and re-decoded. Specifically, the video stream decoding method in the embodiments of the present application includes the steps of determining whether or not the video stream of the target channel needs to be reproduced when the decoding of the video stream of the target channel is finished; if not, a step of restarting the target thread, using the target thread again to call the graphics processing unit, and decoding the video stream of the target channel to obtain the target decoded video data; and recovering. Since thread resources in thread pools corresponding to GPUs in terminal equipment systems are limited, the number of threads that can be executed simultaneously is limited. Also, under default conditions, after a thread terminates, its corresponding GPU resource is not freed. As the thread pool for the GPU becomes exhausted and new threads cannot be created, the threads can be recovered in an appropriate manner so that the video stream decoding capability of the terminal device can be restored in a timely manner, thereby improving the decoding efficiency. can be improved.

現在、ビデオストリームの符号化には様々な方法があり、それぞれの符号化方法には対応する復号方法がある。ビデオストリームを復号する際に、このビデオストリームをどのような方法で符号化したか、また、ビデオストリームの解像度、色、およびサイズなどの要素を知る必要があり、GPUはこれらのパラメータ情報を自動的に認識することができないため、本願の実施形態では、スレッドがGPUを呼び出して復号処理を行う前に、これらのパラメータ情報(符号化パラメータ情報に対応する復号パラメータ情報)、すなわち、復号規則を取得する必要がある。パラメータ情報は、復号フォーマット、解像度、色、およびサイズなどを含み得る。コーデックの主な機能は、ビデオストリームを圧縮・解凍することであり、復号フォーマットは、ビデオストリームがどのような方法で解凍されるかを示すために使用できる。これらのパラメータ情報を特定のフォーマット要件に従って整理して、復号規則を得る。復号規則は、ビデオストリームを復号するための要件を示すために使用できる。 Currently, there are various methods for encoding video streams, and each encoding method has a corresponding decoding method. When decoding a video stream, it is necessary to know how this video stream was coded, as well as elements such as resolution, color, and size of the video stream. Therefore, in the embodiment of the present application, these parameter information (decoding parameter information corresponding to encoding parameter information), i.e., decoding rules, are set before the thread calls the GPU to perform decoding processing. need to get. Parameter information may include decoding format, resolution, color, size, and the like. A codec's main function is to compress and decompress a video stream, and the decoding format can be used to indicate how the video stream is decompressed. These parameter information are arranged according to specific format requirements to obtain decoding rules. Decoding rules can be used to indicate requirements for decoding a video stream.

本願の実施形態では、この事前に取得した復号規則に従っていれば、ビデオ復号ライブラリの関連アーキテクチャ、例えば並列コンピューティングデバイスアーキテクチャ(Compute Unified Device Architecture、CUDA)またはCUVIDアーキテクチャなどを設定することができ、そのうえ、GPUは、監視機器から入力されたビデオストリームパケットの復号処理を実現することができる。具体的な実現では、監視機器から入力されたビデオストリームパケットを復号処理する際に、フォーマット変更コールバック関数(format change callback)、復号コールバック関数(decode callback)、および表示コールバック関数(display callback)の3つのコールバック関数が使用される。フォーマット変更コールバック関数は、主にビデオストリームのフォーマットが変更されたときに呼び出される。ネットワークの異常によって、ビデオストリームのフォーマットが変更されることがあり、この場合、フォーマット変更コールバック関数を呼び出して、変更されたビデオストリームのフォーマットを元のフォーマットに変更することができる。復号コールバック関数は、パケットの復号に使用されることができ、復号されたパケットは、フレームの形態で存在してもよく、表示コールバック関数は、フレームの表示または記憶に使用されることができる。 According to embodiments of the present application, if this pre-obtained decoding rule is followed, the related architecture of the video decoding library, such as the Compute Unified Device Architecture (CUDA) or the CUVID architecture, can be set, and , the GPU can realize decoding processing of video stream packets input from the monitoring equipment. In a specific implementation, a format change callback function, a decode callback function, and a display callback function are used when decoding video stream packets input from a monitoring device. ) are used. The format change callback function is called mainly when the format of the video stream is changed. A network glitch may change the format of the video stream, in which case a format change callback function can be called to change the format of the changed video stream back to the original format. The decode callback function can be used to decode packets, the decoded packets can be in the form of frames, and the display callback function can be used to display or store frames. can.

なお、本願の実施形態では、GPUが、監視機器から入力されたビデオストリームの復号に対応している場合、GPUは、CUDAアーキテクチャに基づくCUVIDビデオ復号ライブラリを使用して、監視機器から入力されたビデオストリームを復号してもよく、本願の実施形態ではGPUが使用する復号アーキテクチャに限定されるものではない。 It should be noted that in the embodiment of the present application, if the GPU is capable of decoding the video stream input from the surveillance equipment, the GPU uses the CUVID video decoding library based on the CUDA architecture to A video stream may be decoded, and embodiments herein are not limited to the decoding architecture used by the GPU.

可能な一実現態様において、監視機器から入力されたビデオストリームのフォーマットはH.264フォーマットであってもよく、GPUにより、監視機器から入力されたビデオストリームを復号した後、得られた復号ビデオデータのフォーマットはNV12フォーマットであってもよい。本願の実施形態では、GPUにより、監視機器から入力されたビデオストリームを復号して、復号ビデオデータを得る工程において、フォーマット変換工程をさらに含んでもよい。例えば、GPUにより、監視機器から入力されたビデオストリームを復号して、復号ビデオデータを得るステップは、GPUにより、監視機器から入力されたビデオストリームを復号して、第1の復号ビデオデータを得て、第1の復号ビデオデータに対してフォーマット変換処理を行い、第2の復号ビデオデータを得るステップを含んでもよい。例えば、監視機器から入力されたビデオストリームのフォーマットがH.264フォーマットで、第1の復号ビデオデータがNV12フォーマットであるとすると、第1の復号ビデオデータのフォーマットに対してフォーマット変換処理を行い、すなわち、NV12フォーマットの第1の復号ビデオデータのフォーマット変換を行って、RGB24フォーマットの第2復号ビデオデータを得る。一例では、GPUは、CUDAアーキテクチャを用いて第1の復号ビデオデータのフォーマット変換を行ってもよく、本願の実施形態ではGPUが用いるフォーマット変換方法に限定されるものではない。監視機器から入力されたビデオストリームが複数チャンネルを含む場合、GPUが異なるマルチチャンネルのビデオストリームを復号する際に、このフォーマット変換工程は異なる場合があり、例えば、それぞれ異なるフォーマットに変換する。このようにして、ビデオ画像フレームをマルチフォーマット、異なる色空間でシステムメモリ、共有メモリ、およびディスクファイルなどのメモリへ出力することが実現できるようになる。 In one possible implementation, the format of the video stream input from the surveillance equipment is H.264. H.264 format, and after the GPU decodes the video stream input from the surveillance equipment, the format of the resulting decoded video data may be NV12 format. In an embodiment of the present application, the process of obtaining decoded video data by decoding the video stream input from the surveillance equipment by the GPU may further include a format conversion process. For example, the step of decoding the video stream input from the monitoring equipment by the GPU to obtain the decoded video data includes decoding the video stream input from the monitoring equipment by the GPU to obtain the first decoded video data. and performing a format conversion process on the first decoded video data to obtain second decoded video data. For example, if the format of the video stream input from the surveillance equipment is H.264. 264 format and the first decoded video data is NV12 format, format conversion processing is performed on the format of the first decoded video data, that is, format conversion of the first decoded video data in NV12 format is performed. to obtain the second decoded video data in RGB24 format. In one example, the GPU may use a CUDA architecture to format convert the first decoded video data, and embodiments herein are not limited to the format conversion method used by the GPU. If the video stream input from the surveillance equipment contains multiple channels, the format conversion process may be different when the GPU decodes different multi-channel video streams, for example, converting to different formats. In this way, it becomes possible to output video image frames in multiple formats, in different color spaces, to memories such as system memory, shared memory, and disk files.

可能な一実現態様では、GPUは、第2の復号ビデオデータに対してフォーマット変換処理を行った後、さらに、第2の復号ビデオデータのスケーリング処理を行うことで、適切なサイズの復号データを得るようにしてもよい。このとき、GPUにより、監視機器から入力されたビデオストリームを復号処理することで、復号ビデオデータを得るステップは、第2の復号ビデオデータのスケーリング処理を行って、第3の復号ビデオデータを得るステップをさらに含んでもよい。なお、監視機器から入力されたビデオストリームが複数チャンネルを含む場合、GPUが異なるマルチチャンネルのビデオストリームを復号する際のスケーリング処理に対応するパラメータは同じでなくてもよい。このようにして、ビデオ画像フレームをマルチサイズでシステムメモリ、共有メモリ、およびディスクファイルなどのメモリへ出力することが実現できるようになる。 In one possible implementation, the GPU performs format conversion processing on the second decoded video data, and then performs scaling processing on the second decoded video data to obtain decoded data of an appropriate size. You can get it. At this time, the step of obtaining decoded video data by decoding the video stream input from the monitoring equipment by the GPU performs scaling processing of the second decoded video data to obtain third decoded video data. Further steps may be included. Note that when the video stream input from the monitoring device includes multiple channels, the parameters corresponding to the scaling process when decoding the multi-channel video streams with different GPUs may not be the same. In this way, output of video image frames in multiple sizes to memory such as system memory, shared memory, and disk files can be achieved.

可能な一実現態様では、本願の実施形態のビデオストリーム復号装置にフレームレートコントローラがさらに備えられており、ユーザによって設定された復号フレームレート情報を受信し、この復号フレームレート情報に従って、グラフィック処理装置によるビデオストリームの復号処理の速度を、例えば20フレーム/秒などのように制御することができる。監視機器から入力されたビデオストリームがマルチチャンネルのビデオストリームを含む場合、各チャンネルのビデオストリームに対応する復号フレームレート情報を個別に設定することができ、例えば、第1のチャンネルのビデオストリームの復号フレームレートを20フレーム/秒、第2のチャンネルのビデオストリームの復号フレームレートを30フレーム/秒などとすることができ、ここでは限定されるものではないことは、理解されるであろう。 In one possible implementation, the video stream decoding device of the present embodiment further comprises a frame rate controller for receiving decoding frame rate information set by the user, and according to this decoding frame rate information, the graphics processing device The speed of the decoding process of the video stream by can be controlled, for example, 20 frames/second. When the video stream input from the monitoring equipment includes a multi-channel video stream, the decoding frame rate information corresponding to each channel video stream can be set individually. It will be appreciated that the frame rate may be 20 frames/second, the decoding frame rate of the second channel video stream may be 30 frames/second, etc., and is not limited here.

具体的には、グラフィック処理装置は、監視機器から入力されたマルチチャンネルのビデオストリームを受信した後、マルチチャンネルのビデオストリームに対して並列復号処理を行うことで、復号ビデオデータを得ることができる。GPUは通常、すべてのフォーマットのビデオストリームの復号に対応しているわけではないため、本願の実施形態では、GPUが現在のビデオストリームの復号に対応しているか否かを判断することができる。 Specifically, the graphics processing device can obtain decoded video data by performing parallel decoding processing on the multi-channel video stream after receiving the multi-channel video stream input from the monitoring equipment. . Since GPUs typically do not support decoding video streams of all formats, embodiments herein may determine whether the GPU supports decoding the current video stream.

具体的には、可能な一実現態様では、中央処理装置は、GPUの性能パラメータを取得し、GPUの性能パラメータおよび現在受信しているビデオストリーム(すなわち、監視機器から入力されたビデオストリーム)のフォーマットに基づいて、GPUが現在受信しているビデオストリームのハードウェアデコーディングに対応しているか否かを判断してもよい。例えば、監視機器から入力されたビデオストリームのフォーマットがH.264フォーマットである場合、ビデオストリーム復号装置は、GPUの性能パラメータを取得し、GPUの性能パラメータに基づいて、GPUが当該フォーマットのビデオストリームのハードウェアデコーディングに対応していると決定していれば、GPUが当該フォーマットのハードウェアデコーディングに対応していると決定し、その後で、監視機器から入力されたビデオストリームを復号処理することで、復号ビデオデータを得ることができる。 Specifically, in one possible implementation, the central processing unit obtains the performance parameters of the GPU and performs Based on the format, it may be determined whether the GPU supports hardware decoding of the currently received video stream. For example, if the format of the video stream input from the surveillance equipment is H.264. H.264 format, the video stream decoding device obtains the performance parameters of the GPU, and based on the performance parameters of the GPU, determines that the GPU supports hardware decoding of the video stream of that format. , the GPU can determine that it supports hardware decoding of the format, and then decode the video stream input from the monitoring equipment to obtain decoded video data.

本願の実施形態では、端末機器における中央処理装置(Central Processing Unit、CPU)は、コンピュータの演算コア(Core)と制御コア(Control Unit)を担う超大規模集積回路である。その機能は、主にコンピュータの命令を解釈し、コンピュータソフトウェアにおけるデータを処理することである。中央処理装置は、主に演算器(算術論理演算装置、ALU、Arithmetic Logic Unit)、キャッシュメモリ(Cache)、およびそれらの間でデータ(Data)、制御およびステータスの送受信を実現するバス(Bus)を含み、内部メモリ(Memory)および入出力(I/O)デバイスとまとめて電子計算機の3つのコアコンポーネントと呼ばれる。 In the embodiments of the present application, a central processing unit (CPU) in a terminal device is a very large scale integrated circuit that serves as a computing core (Core) and a control core (Control Unit) of a computer. Its function is mainly to interpret computer instructions and process data in computer software. The central processing unit mainly includes arithmetic logic unit (ALU, Arithmetic Logic Unit), cache memory (Cache), and a bus (Bus) for transmitting and receiving data, control and status between them. are collectively referred to as the three core components of a computer, including internal memory (Memory) and input/output (I/O) devices.

現在、1つの実現可能な方法として、ビデオの復号は中央処理装置(CPU、Central Processing Unit)が単独で行うことができるが、しかし、CPUのコーデック能力には限界があるため、ビデオストリームを復号することは非常に困難である。したがって、本願の実施形態では、グラフィック処理装置により、監視機器から入力されたビデオストリームをグラフィック処理装置復号処理することで、復号ビデオデータを得ることが好ましい。 At present, as one possible method, video decoding can be performed by a central processing unit (CPU, Central Processing Unit) alone. is very difficult to do. Therefore, in the embodiment of the present application, it is preferable to obtain decoded video data by decoding the video stream input from the monitoring equipment by the graphics processing device.

可能な一実現態様では、監視機器から入力されたビデオストリームのハードウェアデコーディング処理にGPUが対応していないとビデオストリーム復号装置が判断した場合、端末機器のCPUは、監視機器から入力されたビデオストリームを復号し、復号処理後の復号ビデオデータをGPUに送信してもよい。一例では、CPUは、FFMPGE(Fast Forward Mpeg)を使用して、監視機器から入力されたビデオストリームを復号処理することができ、FFMPGEは、デジタルオーディオおよびビデオの記録、変換に使用でき、それらをストリームに変換できるオープンソースのコンピュータプログラムのセットである。このようにして、GPUが復号に対応しているビデオフォーマットについては、GPUによる復号を優先して行い、GPUが復号に対応していないビデオフォーマットについては、CPUを使って復号を行うことで、GPUの利用率を大幅に向上させ、復号効率を向上させることができる一方で、CPUのリソースを節約し、CPUによる他の業務の処理効率を向上させることができる。 In one possible implementation mode, when the video stream decoding device determines that the GPU does not support hardware decoding of the video stream input from the monitoring equipment, the CPU of the terminal equipment decodes the video input from the monitoring equipment. The stream may be decoded and the decoded video data after the decoding process may be transmitted to the GPU. In one example, the CPU can use FFMPGE (Fast Forward Mpeg) to decode the video stream input from the surveillance equipment, and FFMPGE can be used to record, convert, and convert digital audio and video. A set of open source computer programs that can be converted to streams. In this way, the video formats supported by the GPU are decoded preferentially by the GPU, and the video formats not supported by the GPU are decoded using the CPU. While the utilization rate of the GPU can be greatly improved and the decoding efficiency can be improved, the resources of the CPU can be saved and the processing efficiency of other tasks by the CPU can be improved.

本願の実施形態では、端末機器のメモリは、異なる種類の1つまたは複数のメモリを含んでもよく、具体的には、端末機器のメモリは、例えば、端末機器内のシステムメモリ、共有メモリ、およびディスクファイルなどの複数のメモリを含んでもよい。このとき、ビデオストリーム復号方法は、マルチチャンネルの復号ビデオデータのそれぞれに対応するメモリを取得するステップと、グラフィック処理装置を介して、マルチチャンネルの復号ビデオデータをメモリに出力するステップとをさらに含む。 In embodiments of the present application, the memory of the terminal device may include one or more memories of different types, specifically the memory of the terminal device may include, for example, system memory, shared memory, and It may contain multiple memories such as disk files. At this time, the video stream decoding method further includes obtaining a memory corresponding to each of the multi-channel decoded video data, and outputting the multi-channel decoded video data to the memory via the graphics processing unit. .

本願の実施形態におけるマルチチャンネルの復号ビデオデータには、第1の復号ビデオデータおよび第2の復号ビデオデータが含まれてもよく、このとき、マルチチャンネルの復号ビデオデータのそれぞれに対応するメモリを取得するステップは、第1の復号ビデオデータに対応する第1のメモリを取得するステップと、第2の復号ビデオデータに対応する第2のメモリを取得するステップと、を含み、また、グラフィック処理装置を介して、マルチチャンネルの復号ビデオデータをメモリに出力するステップは、グラフィック処理装置を介して、第1の復号ビデオデータを第1のメモリに出力し、第2の復号ビデオデータを第2のメモリに出力するステップを含んでもよく、第1のメモリと第2のメモリは、端末機器内の異なるメモリである。このようにして、GPUによるマルチチャンネルのビデオストリームの復号と、異なるメモリへの分割出力が可能となり、そのうえ、ビデオストリームに対応する画像フレームデータをGPU以外の記憶媒体、例えばシステムメモリ、共有メモリ、およびディスクなどに出力する必要があるような実際の適用シーンによりよく対応できるようになる。 The multi-channel decoded video data in the embodiments of the present application may include first decoded video data and second decoded video data, wherein a memory corresponding to each of the multi-channel decoded video data is stored as: The obtaining step includes obtaining a first memory corresponding to the first decoded video data and obtaining a second memory corresponding to the second decoded video data, and graphics processing The step of outputting the multi-channel decoded video data to the memory via the device includes outputting the first decoded video data to the first memory and outputting the second decoded video data to the second memory via the graphics processing device. , wherein the first memory and the second memory are different memories within the terminal device. In this way, decoding of a multi-channel video stream by the GPU and divisional output to different memories become possible, and moreover, image frame data corresponding to the video stream are stored in a storage medium other than the GPU, such as system memory, shared memory, and more compatible with practical application scenes, such as those that need to be output to a disc or the like.

第1の復号ビデオデータは、少なくとも1チャンネルのビデオストリームに対応する復号ビデオデータを含んでもよく、第2の復号ビデオデータも、少なくとも1チャンネルのビデオストリームに対応する復号ビデオデータを含んでもよく、本願のいくつかの実施形態では、マルチチャンネルの復号ビデオデータは、第1の復号ビデオデータおよび第2の復号ビデオデータを含み、すなわち、該マルチチャンネルのビデオストリームは、第1のビデオストリームと第2のビデオストリームに分けられ、該マルチチャンネルの復号ビデオデータは、第1の復号ビデオデータと第2の復号ビデオデータに分けられ、例えば、マルチチャンネルのビデオストリームに10チャンネルのビデオストリームがあり、第1のビデオストリームは5チャンネルのビデオストリームを含み、第2のビデオストリームは5チャンネルのビデオストリームを含み、第1のビデオストリーム内の5チャンネルのビデオストリームに対する第1の復号ビデオデータを第1のメモリに出力し、第2のビデオストリーム内の5チャンネルのビデオストリームに対する第2の復号ビデオデータを第2のメモリに出力してもよい。 The first decoded video data may comprise decoded video data corresponding to at least one channel of video stream, the second decoded video data may also comprise decoded video data corresponding to at least one channel of video stream, In some embodiments of the present application, the multi-channel decoded video data comprises first decoded video data and second decoded video data, i.e. the multi-channel video stream comprises a first video stream and a second decoded video data. divided into two video streams, the multi-channel decoded video data is divided into first decoded video data and second decoded video data, for example, the multi-channel video stream has 10 channels; The first video stream includes a 5-channel video stream, the second video stream includes a 5-channel video stream, and the first decoded video data for the 5-channel video stream in the first video stream is , and the second decoded video data for the 5-channel video stream in the second video stream may be output to the second memory.

本願の他のいくつかの実施形態では、第1の復号ビデオデータおよび第2の復号ビデオデータは、該マルチチャンネルの復号ビデオデータの一部であってもよく、例えば、マルチチャンネルのビデオストリームに10チャンネルのビデオストリームがあり、第1のビデオストリームは5チャンネルのビデオストリームを含み、第2のビデオストリームは2チャンネルのビデオストリームを含み、該マルチチャンネルのビデオストリームには、第1のビデオストリームおよび第2のビデオストリームに加えて別のビデオストリームがある。1つの具体的な実施形態では、該マルチチャンネルのビデオストリームは、第3のビデオストリームをさらに含み、すなわち、該マルチチャンネルの復号ビデオデータは、第3の復号ビデオデータをさらに含み、このとき、マルチチャンネルの復号ビデオデータのそれぞれに対応するメモリを取得するステップは、第3の復号ビデオデータに対応する第3のメモリを取得するステップをさらに含み、この場合、グラフィック処理装置を介して、復号ビデオデータをメモリに出力するステップは、グラフィック処理装置を介して、第3の復号ビデオデータを第3のメモリに出力するステップを含む。 In some other embodiments of the present application, the first decoded video data and the second decoded video data may be part of the multi-channel decoded video data, e.g. There are 10-channel video streams, the first video stream comprises a 5-channel video stream, the second video stream comprises a 2-channel video stream, the multi-channel video stream includes the first video stream and there is another video stream in addition to the second video stream. In one specific embodiment, said multi-channel video stream further comprises a third video stream, i.e. said multi-channel decoded video data further comprises third decoded video data, wherein: Obtaining a memory corresponding to each of the multi-channel decoded video data further includes obtaining a third memory corresponding to a third decoded video data, wherein, via the graphics processing unit, decoding Outputting the video data to the memory includes outputting third decoded video data to the third memory via the graphics processing unit.

コンピュータの最も重要な機能ユニットの一つである「Memory」は、多数のメモリの集合である。CPUが、ある情報を記憶したメモリを正確に見つけるには、これらのユニットに相互に識別可能な「ID番号」を割り当てる必要があり、この「ID番号」がアドレスコードである。組込みプロセッサでは、複数種のMemoryが統合されており、通常、同じ種類のMemoryをMemory Blockと呼ぶ。一般的に、プロセッサの設計者は、それぞれのMemory Blockに対して、そのメモリ数と同じ数の、16進数で表す連続した自然数の集合を割り当て、当該Memory Blockのアドレスコードとする。このような自然数の集合とMemory Blockとの対応関係がMemory Map(メモリマップ)であり、Address Map(アドレスマッピング)と呼ばれることもある。実際には、文字通りの意味ではAddress Mapの方が関連性がより高い。Memory Mapは、コンピュータシステムのリセット(電源投入)時の準備動作であり、プロセッサが所有しているアドレスコードリソースをシステム内のそれぞれの物理メモリブロックに割り当てる自動プロセスである。 "Memory", one of the most important functional units of a computer, is a collection of many memories. In order for the CPU to accurately find the memory that stores certain information, it is necessary to assign mutually identifiable "ID numbers" to these units, and this "ID number" is the address code. In an embedded processor, multiple types of Memories are integrated, and the same type of Memory is usually called a Memory Block. In general, a processor designer allocates a set of consecutive natural numbers expressed in hexadecimal numbers equal to the number of memories to each Memory Block, and uses them as address codes of the Memory Block. A correspondence relationship between such a set of natural numbers and a memory block is a memory map, which is sometimes called an address map. In fact, the Address Map is more relevant in a literal sense. Memory Map is an operation that prepares a computer system for reset (power-on) and is an automatic process that assigns processor-owned address code resources to respective physical memory blocks in the system.

本願の実施形態では、グラフィック処理装置を利用して、GPU COPY技術およびメモリマッピング(Memory Map)により、復号ビデオデータをメモリに出力することができる。具体的には、従来技術におけるメモリマッピング作業は、GPUの実行ユニット(Execution Unit、EU)に任されている。EUとは、GPUプロセッサ内の実行ユニットであり、命令の実行を担当し、実際には、制御器の機能と演算器の機能の両方を兼ね備える。 In embodiments of the present application, the graphics processing unit can be used to output decoded video data to memory through GPU COPY technology and memory mapping (Memory Map). Specifically, the memory mapping task in the prior art is left to the execution unit (Execution Unit, EU) of the GPU. The EU is the execution unit within the GPU processor, responsible for executing instructions, and in fact combines both the functions of a controller and an arithmetic unit.

1つの具体的な実施形態では、グラフィック処理装置を介して、マルチチャンネルの復号ビデオデータをメモリに出力するステップは、グラフィック処理装置により、マルチチャンネルの復号ビデオデータに対応するメモリのアドレスコードを取得するステップと、グラフィック処理装置により、このメモリのアドレスコードに基づいてメモリマッピングを行うことで、マルチチャンネルの復号ビデオデータに対応するターゲットメモリを決定するステップと、グラフィック処理装置を介して、マルチチャンネルの復号ビデオデータをターゲットメモリに出力するステップと、を含む。 In one specific embodiment, the step of outputting the multi-channel decoded video data to the memory via the graphics processing unit includes obtaining, by the graphics processing unit, a memory address code corresponding to the multi-channel decoded video data. determining a target memory corresponding to multi-channel decoded video data by performing memory mapping based on the address code of this memory by a graphics processing unit; and outputting the decoded video data of to a target memory.

本願の実施形態では、監視機器から入力されたマルチチャンネルのビデオストリームを取得し、グラフィック処理装置に対応するスレッドプールにおいて、複数のスレッドを作成し、該複数のスレッドに基づいて、マルチチャンネルのビデオストリームをグラフィック処理装置に伝送してビデオ復号処理を行わせることで、マルチチャンネルの復号ビデオデータを得る。本願の実施形態では、GPUに対応するスレッドプールにおいて複数のスレッドを作成することにより、CPUの代わりにGPUを使用して、マルチチャンネルのビデオストリームデータを並列復号する作業を完了することで、デバイス全体のエネルギー消費を大幅に削減し、ビデオ復号効率およびGPUデバイスの利用率を向上させ、CPUへの依存度を低減し、端末機器のCPU処理能力が強くないようなビデオストリーム復号シーンに広く利用されることができる。 In an embodiment of the present application, a multi-channel video stream input from a monitoring device is acquired, multiple threads are created in a thread pool corresponding to a graphics processing unit, and multi-channel video is generated based on the multiple threads. Multi-channel decoded video data is obtained by transmitting the stream to a graphics processing device to perform video decoding processing. In an embodiment of the present application, by creating multiple threads in a thread pool corresponding to the GPU, the GPU is used instead of the CPU to complete the task of parallel decoding of multi-channel video stream data, thereby enabling the device Greatly reduces overall energy consumption, improves video decoding efficiency and GPU device utilization, reduces CPU dependency, and is widely used in video stream decoding scenes where the CPU processing power of terminal equipment is not strong can be

図3に示すように、以下、本願の実施形態におけるビデオストリーム復号方法を、具体的な適用シーンと併せて説明する。 As shown in FIG. 3, the video stream decoding method in the embodiment of the present application will be described below together with specific application scenes.

301では、監視機器から入力された10チャンネルのビデオストリームを取得する。 At 301, a 10-channel video stream is acquired from the surveillance equipment.

本実施形態では、端末機器は、CPU、GPU、およびメモリを含み、メモリは、共有メモリおよびシステムメモリを含み、端末機器に接続される監視機器は、10台であってもよく、各監視機器は、1チャンネルの監視ビデオに対応するビデオストリームを送信する。 In this embodiment, the terminal device includes a CPU, a GPU, and a memory, the memory includes a shared memory and a system memory, and the number of monitoring devices connected to the terminal device may be ten, each monitoring device transmits a video stream corresponding to one channel of surveillance video.

302では、10チャンネルのビデオストリームを端末機器のGPUに伝送する。 At 302, the 10-channel video stream is transmitted to the GPU of the terminal device.

本実施形態では、端末機器に1つのGPUのみが含まれている場合を例にとると、そのGPUに対応するスレッドプールにおいて20個のスレッドを設定することができ、これは、GPUが最大で20チャンネルのビデオストリームの処理に対応でき、GPUの処理能力がビデオストリームのチャンネル数よりも大きいことを示している。この場合、10チャンネルのビデオストリームを直接この端末機器のGPUに伝送することができる。 In this embodiment, assuming that the terminal device includes only one GPU, 20 threads can be set in the thread pool corresponding to the GPU. It can handle processing of 20 channels of video streams, indicating that the processing capability of the GPU is greater than the number of video stream channels. In this case, the 10-channel video stream can be directly transmitted to the GPU of this terminal device.

303では、GPUに対応するスレッドプールにおいて、10個のスレッドを作成する。 At 303, 10 threads are created in the thread pool corresponding to the GPU.

本実施形態では、GPUに対応するスレッドプールにおいて、10個のスレッドを作成するステップは、ユーザが入力したスレッド数(10個)の情報を取得し、スレッド数(10個)の情報に基づいて、GPUに対応するスレッドプールにおいて10個のスレッドを作成するように行われてもよい。また、GPUに対応するスレッドプールにおいて、10個のスレッドを作成するステップは、10個の監視ビデオから入力されたビデオストリームのビデオチャンネル数(10チャンネル)を取得し、GPUに対応するスレッドプールにおいて、ビデオチャンネル数と同じ数のスレッドを作成して10個のスレッドを得るように行われてもよい。 In this embodiment, the step of creating 10 threads in the thread pool corresponding to the GPU acquires information on the number of threads (10) input by the user, and based on the information on the number of threads (10) , to create 10 threads in the thread pool corresponding to the GPU. Further, the step of creating 10 threads in the thread pool corresponding to the GPU obtains the number of video channels (10 channels) of the video streams input from the 10 surveillance videos, and in the thread pool corresponding to the GPU , to create as many threads as the number of video channels to get 10 threads.

304では、10チャンネルのビデオストリームの各チャンネルのビデオストリームに対して、10個のスレッドのうち1つのスレッドを1対1で割り当てる。 At 304, one thread of the ten threads is assigned on a one-to-one basis to each channel video stream of the ten channel video streams.

305では、10個のスレッドを使用してGPUを呼び出し、10チャンネルのビデオストリームをそれぞれ並列復号処理することで、10チャンネルの復号ビデオデータを得る。 At 305, 10 threads are used to call the GPU to decode the 10-channel video streams in parallel, thereby obtaining 10-channel decoded video data.

端末機器にフレームレートコントローラが備えられており、ユーザが設定した復号フレームレート情報を受信し、この復号フレームレート情報に従って、GPUによる各チャンネルのビデオストリームの復号処理の速度を、例えば20フレーム/秒などのように制御することができる。もちろん、これら10チャンネルのビデオストリームの復号フレームレートは個別に設定されてもよく、例えば、第1のチャンネルのビデオストリームの復号フレームレートを20フレーム/秒、第2のチャンネルのビデオストリームの復号フレームレートを30フレーム/秒などとすることができる。 The terminal device is provided with a frame rate controller, receives the decoding frame rate information set by the user, and according to this decoding frame rate information, the speed of the decoding processing of the video stream of each channel by the GPU is adjusted to, for example, 20 frames/second. etc. can be controlled. Of course, the decoding frame rate of these 10 channel video streams may be set individually, for example, the decoding frame rate of the video stream of the first channel is 20 frames per second, and the decoding frame rate of the video stream of the second channel is 20 frames per second. The rate may be 30 frames/second, or the like.

306では、GPUを介して、5チャンネルの復号ビデオデータを端末機器のシステムメモリに出力し、5チャンネルの復号ビデオデータを端末機器の共有メモリに出力する。 At 306, the five channels of decoded video data are output to the terminal's system memory and the five channels of decoded video data are output to the terminal's shared memory via the GPU.

本実施形態では、端末機器のメモリにシステムメモリおよび共有メモリが含まれていると仮定し、これら10チャンネルのビデオストリームはシステムメモリおよび共有メモリにそれぞれ出力されるものであり、そのうち、5チャンネルの復号ビデオデータはシステムメモリに出力され、5チャンネルの復号ビデオデータは共有メモリに出力される。このため、GPUを介して5チャンネルの復号ビデオデータを端末機器のシステムメモリに直接出力し、5チャンネルの復号ビデオデータを端末機器の共有メモリに出力することが可能となる。 In this embodiment, it is assumed that the memory of the terminal device includes a system memory and a shared memory, and these 10-channel video streams are output to the system memory and the shared memory respectively. The decoded video data is output to the system memory and the 5-channel decoded video data is output to the shared memory. Therefore, it is possible to directly output the 5-channel decoded video data to the system memory of the terminal device via the GPU and output the 5-channel decoded video data to the shared memory of the terminal device.

本実施形態では、監視機器から入力された10チャンネルのビデオストリームを取得し、10チャンネルのビデオストリームを端末機器のGPUに伝送し、端末機器のGPUにより10チャンネルのビデオストリームを復号処理することで、10チャンネルの復号ビデオデータを得て、GPUを介して復号ビデオデータを端末機器のシステムメモリおよび共有メモリにそれぞれ出力する。本願の実施形態では、CPUの代わりにGPUを使用して、ビデオストリームデータの復号作業を完了することで、デバイス全体のエネルギー消費を大幅に削減し、ビデオ復号効率およびGPUデバイスの利用率を向上させると同時に、復号データをGPUからシステムメモリに直接出力し、CPUへの依存度をさらに低減し、フレームデータをGPU以外の記憶媒体に出力する必要があるような実際の適用シーンによりよく対応でき、より多くの適用シーンに応えられるようになる。 In this embodiment, a 10-channel video stream input from a monitoring device is acquired, the 10-channel video stream is transmitted to the GPU of the terminal device, and the GPU of the terminal device decodes the 10-channel video stream. , 10 channels of decoded video data are obtained, and the decoded video data are output to the system memory and shared memory of the terminal device via the GPU, respectively. Embodiments of the present application use the GPU instead of the CPU to complete the decoding work of the video stream data, which greatly reduces the energy consumption of the entire device and improves the video decoding efficiency and utilization of the GPU device. At the same time, it can directly output the decoded data from the GPU to the system memory, further reducing the dependence on the CPU, and better meet the actual application scene where the frame data needs to be output to a storage medium other than the GPU. , to meet more application scenes.

前述の実施形態における各フローチャートの個々のステップは、矢印で示すように順番に示されているが、これらのステップは必ずしも矢印で示すように順番に実行されるわけではないことは、理解されるであろう。本明細書では明確な指示がない限り、これらのステップの実行は、厳密な順序の制限はなく、これらのステップは他の順序で実行されてもよい。また、各フローチャートのステップの少なくとも一部は、複数のステップまたは複数のステージを含むことができ、これらのステップまたはステージの実行順序は、必ずしも同一の時刻で実行されるとは限らず、異なる時刻で実行されてもよく、また、これらのステップまたはステージの実行順序は必ずしも順次実行されるとは限らず、他のステップまたは他のステップにおけるステップまたはステージの少なくとも一部と交替してまたは交互に実行されてもよい。 Although the individual steps of each flowchart in the foregoing embodiments are shown in order as indicated by the arrows, it is understood that these steps are not necessarily performed in order as indicated by the arrows. Will. Unless explicitly indicated herein, there is no strict order of performance of these steps, and these steps may be performed in other orders. Also, at least some of the steps in each flowchart may include multiple steps or multiple stages, and the execution order of these steps or stages is not necessarily executed at the same time. and the order of execution of these steps or stages is not necessarily sequential, but may alternate or alternate with other steps or at least portions of steps or stages in other steps. may be executed.

本願の実施形態に係るビデオストリーム復号方法をよりよく実施するために、本願の実施形態は、上述したビデオストリーム復号方法に基づく装置をさらに提供する。名詞の意味は、上述したビデオストリーム復号方法と同じであり、具体的な実現の詳細については、方法の実施形態での説明を参照することができる。 To better implement the video stream decoding method according to the embodiments of the present application, the embodiments of the present application further provide an apparatus based on the above video stream decoding method. The meaning of the noun is the same as in the video stream decoding method described above, and the description in the method embodiment can be referred to for specific implementation details.

本願のいくつかの実施形態では、復号ユニット403は、具体的には、マルチチャンネルのビデオストリームの各チャンネルのビデオストリームに対して、複数のスレッドのうち1つのスレッドを1対1で割り当て、複数のスレッドのうちのスレッドをそれぞれターゲットスレッドとし、ターゲットスレッドを使用してターゲットチャンネルのビデオストリームをグラフィック処理装置に入力し、ターゲットチャンネルのビデオストリームは、マルチチャンネルのビデオストリームのうちターゲットスレッドに対応する1チャンネルのビデオストリームであり、さらに、グラフィック処理装置によりターゲットチャンネルのビデオストリームを復号処理することで、ターゲット復号ビデオデータを得る。 In some embodiments of the present application, the decoding unit 403 specifically allocates one thread of the plurality of threads to each channel video stream of the multi-channel video stream on a one-to-one basis. each of the threads is a target thread, and the target thread is used to input the video stream of the target channel to the graphics processing device, and the video stream of the target channel corresponds to the target thread among the multi-channel video streams. The target channel video stream is a one-channel video stream, and the target channel video stream is decoded by the graphics processing device to obtain target decoded video data.

取得ユニット401は、監視機器から入力されたマルチチャンネルのビデオストリームを取得する。 The acquisition unit 401 acquires multi-channel video streams input from surveillance equipment.

本願のいくつかの実施形態では、復号ユニット403は、具体的には、ターゲットチャンネルのビデオストリームの復号が終了しており、かつターゲットチャンネルのビデオストリームを再生する必要がある場合、ターゲットスレッドを再起動し、再びターゲットスレッドを使用してターゲットチャンネルのビデオストリームをグラフィック処理装置に入力し、グラフィック処理装置によりターゲットチャンネルのビデオストリームを復号処理することで、ターゲット復号ビデオデータを得る。 In some embodiments of the present application, the decoding unit 403 specifically restarts the target thread when the decoding of the target channel video stream is finished and the target channel video stream needs to be played. When activated, the target thread is used again to input the video stream of the target channel to the graphics processing device, and the video stream of the target channel is decoded by the graphics processing device to obtain target decoded video data.

復号ユニット403は、複数のスレッドに基づいて、マルチチャンネルのビデオストリームをグラフィック処理装置に伝送してビデオ復号処理を行わせることで、マルチチャンネルの復号ビデオデータを得る。 The decoding unit 403 transmits the multi-channel video stream to the graphics processing device for video decoding processing based on multiple threads to obtain multi-channel decoded video data.

本願のいくつかの実施形態では、作成ユニット402は、具体的には、入力されたスレッド数を取得し、スレッド数に基づいて、グラフィック処理装置に対応するスレッドプールにおいて複数のスレッドを作成し、複数のスレッドの数はスレッド数と等しい。 In some embodiments of the present application, the creation unit 402 specifically obtains an input number of threads, creates multiple threads in a thread pool corresponding to the graphics processing device based on the number of threads, and The number of threads equals the number of threads.

本願のいくつかの実施形態では、作成ユニット402は、具体的には、中央処理装置を介してマルチチャンネルのビデオストリームのビデオチャンネル数を取得し、グラフィック処理装置に対応するスレッドプールにおいて、ビデオチャンネル数と同じ数のスレッドを作成する。 In some embodiments of the present application, the production unit 402 specifically obtains the video channel number of the multi-channel video stream via the central processing unit, and in the thread pool corresponding to the graphics processing unit, the video channel Create as many threads as the number.

本願のいくつかの実施形態では、復号ユニット403は、具体的には、マルチチャンネルのビデオストリームの各チャンネルのビデオストリームに対して、複数のスレッドのうち1つのスレッドを1対1で割り当て、複数のスレッドのうちのスレッドをそれぞれターゲットスレッドとし、ターゲットスレッドを使用してターゲットビデオストリームをグラフィック処理装置に入力し、ターゲットチャンネルのビデオストリームは、マルチチャンネルのビデオストリームのうちターゲットスレッドに対応する1チャンネルのビデオストリームであり、さらに、グラフィック処理装置によりターゲットチャンネルのビデオストリームを復号処理することで、ターゲット復号ビデオデータを得る。 In some embodiments of the present application, the decoding unit 403 specifically allocates one thread of the plurality of threads to each channel video stream of the multi-channel video stream on a one-to-one basis. Each of the threads is a target thread, and the target thread is used to input the target video stream to the graphics processing device, and the video stream of the target channel is one channel of the multi-channel video stream corresponding to the target thread. The video stream of the target channel is further decoded by the graphics processing device to obtain target decoded video data.

本願のいくつかの実施形態では、復号ユニット403は、具体的には、ターゲットチャンネルのビデオストリームにおける各フレームの画像を順次、ターゲット画像とし、グラフィック処理装置によりターゲット画像を復号処理し、ターゲット画像に所定の種類のオブジェクトが含まれていない場合、ターゲット画像をフレームスキップする必要があると決定する。 In some embodiments of the present application, the decoding unit 403 specifically sequentially takes the image of each frame in the video stream of the target channel as the target image, decodes the target image by the graphics processing device, and converts the target image into the target image. If the predetermined type of object is not included, it is determined that the target image should be frame-skipped.

本願のいくつかの実施形態では、復号ユニット403は、具体的には、ターゲットチャンネルのビデオストリームの復号が終了しており、かつターゲットチャンネルのビデオストリームを再生する必要がある場合、ターゲットスレッドを再起動し、再びターゲットスレッドを使用してターゲットビデオストリームをグラフィック処理装置に入力し、グラフィック処理装置によりターゲットチャンネルのビデオストリームを復号処理することで、ターゲット復号ビデオデータを得る。 In some embodiments of the present application, the decoding unit 403 specifically restarts the target thread when the decoding of the target channel video stream is finished and the target channel video stream needs to be played. When activated, the target thread is used again to input the target video stream to the graphics processing device, and the graphics processing device decodes the video stream of the target channel to obtain target decoded video data.

本願のいくつかの実施形態では、復号ユニット403は、具体的には、さらに、ターゲットビデオストリームの復号が終了しており、かつターゲットチャンネルのビデオストリームを再生する必要がない場合、ターゲットスレッドを回収する。 In some embodiments of the present application, the decoding unit 403 specifically further reclaims the target thread when the decoding of the target video stream is finished and there is no need to play the video stream of the target channel. do.

本願のいくつかの実施形態では、端末機器がメモリをさらに備え、装置は、出力ユニットをさらに備え、出力ユニットは、マルチチャンネルの復号ビデオデータのそれぞれに対応するメモリを取得し、グラフィック処理装置を介して、マルチチャンネルの復号ビデオデータをメモリに出力する。 In some embodiments of the present application, the terminal device further comprises a memory, the device further comprises an output unit, the output unit obtains the memory corresponding to each of the multi-channel decoded video data, and the graphics processing device output the multi-channel decoded video data to the memory via.

本願のいくつかの実施形態では、マルチチャンネルの復号ビデオデータには、第1の復号ビデオデータおよび第2の復号ビデオデータが含まれており、出力ユニットは、具体的には、第1の復号ビデオデータに対応する第1のメモリを取得し、第2の復号ビデオデータに対応する第2のメモリを取得し、グラフィック処理装置を介して、第1の復号ビデオデータを第1のメモリに出力し、第2の復号ビデオデータを第2のメモリに出力する。 In some embodiments of the present application, the multi-channel decoded video data includes first decoded video data and second decoded video data, and the output unit specifically decodes the first decoded video data. Obtaining a first memory corresponding to video data; obtaining a second memory corresponding to second decoded video data; and outputting the first decoded video data to the first memory via a graphics processing unit. and outputs the second decoded video data to the second memory.

本願のいくつかの実施形態では、マルチチャンネルの復号ビデオデータには、第1の復号ビデオデータおよび第2の復号ビデオデータが含まれている。 In some embodiments herein, the multi-channel decoded video data includes first decoded video data and second decoded video data.

本願のいくつかの実施形態では、マルチチャンネルの復号ビデオデータには、第3の復号ビデオデータがさらに含まれており、出力ユニットは、具体的には、第3の復号ビデオデータに対応する第3のメモリを取得し、グラフィック処理装置を介して、第3の復号ビデオデータを第3のメモリに出力する。 In some embodiments of the present application, the multi-channel decoded video data further includes third decoded video data, and the output unit specifically outputs the third decoded video data corresponding to the third decoded video data. 3 memory, and outputs third decoded video data to the third memory via the graphics processing unit.

本願のいくつかの実施形態では、メモリは、システムメモリ、共有メモリ、およびディスクのうちの少なくとも1つを含む。 In some embodiments herein, the memory includes at least one of system memory, shared memory, and disk.

本願のいくつかの実施形態では、出力ユニットは、具体的には、グラフィック処理装置により、マルチチャンネルの復号ビデオデータに対応するメモリのアドレスコードを取得し、グラフィック処理装置により、アドレスコードに基づいてメモリマッピングを行うことで、マルチチャンネルの復号ビデオデータに対応するターゲットメモリを決定し、グラフィック処理装置を介して、マルチチャンネルの復号ビデオデータをターゲットメモリに出力する。 In some embodiments of the present application, the output unit specifically obtains the address code of the memory corresponding to the multi-channel decoded video data by the graphics processing device, and the graphics processing device performs the A target memory corresponding to the multi-channel decoded video data is determined by performing memory mapping, and the multi-channel decoded video data is output to the target memory via the graphics processing unit.

本願の実施形態では、取得ユニット401が、監視機器から入力されたマルチチャンネルのビデオストリームを取得し、作成ユニット402が、グラフィック処理装置に対応するスレッドプールにおいて、複数のスレッドを作成し、復号ユニット403が、該複数のスレッドに基づいて、マルチチャンネルのビデオストリームをグラフィック処理装置に伝送してビデオ復号処理を行わせることで、マルチチャンネルの復号ビデオデータを得る。本願の実施形態では、GPUに対応するスレッドプールにおいて複数のスレッドを作成することにより、CPUの代わりにGPUを使用して、マルチチャンネルのビデオストリームデータを並列復号する作業を完了することで、デバイス全体のエネルギー消費を大幅に削減し、ビデオ復号効率およびGPUデバイスの利用率を向上させ、CPUへの依存度を低減し、端末機器のCPU処理能力が強くないようなビデオストリーム復号シーンに広く利用されることができる。 In an embodiment of the present application, the acquisition unit 401 acquires the multi-channel video stream input from the surveillance equipment, the creation unit 402 creates multiple threads in a thread pool corresponding to the graphics processing device, and the decoding unit 403 transmits the multi-channel video stream to the graphics processing device for video decoding processing according to the plurality of threads, thereby obtaining multi-channel decoded video data. In an embodiment of the present application, by creating multiple threads in a thread pool corresponding to the GPU, the GPU is used instead of the CPU to complete the task of parallel decoding of multi-channel video stream data, thereby enabling the device Greatly reduces overall energy consumption, improves video decoding efficiency and GPU device utilization, reduces CPU dependency, and is widely used in video stream decoding scenes where the CPU processing power of terminal equipment is not strong can be

具体的な実施では、上記の各ユニットを独立したエンティティとして実現してもよいし、任意に組み合わせて同一または若干のエンティティとして実現してもよく、上記の各ユニットの具体的な実施については、前述の方法の実施形態を参照することができる。 In the specific implementation, each of the above units may be implemented as an independent entity, or may be implemented as the same or several entities in any combination. Reference can be made to the foregoing method embodiments.

図5は、本願の実施形態におけるビデオストリーム復号装置の別の実施態様の構造を示す模式図であり、このビデオストリーム復号装置500は、管理制御モジュール501と復号モジュール502とを備える。ビデオストリーム復号装置に含まれる各モジュールは、その全部または一部がソフトウェア、ハードウェア、またはそれらの組み合わせによって実現されてもよい。 FIG. 5 is a schematic diagram showing the structure of another implementation of a video stream decoding device 500 in an embodiment of the present application, which video stream decoding device 500 comprises a management control module 501 and a decoding module 502 . Each module included in the video stream decoding device may be implemented in whole or in part by software, hardware, or a combination thereof.

管理制御モジュール501は、監視機器から入力されたビデオストリームを取得し、ビデオストリームをグラフィック処理装置に伝送する。 The management control module 501 acquires the video stream input from the monitoring equipment and transmits the video stream to the graphics processing device.

復号モジュール502は、グラフィック処理装置によりビデオストリームを復号処理することで、復号ビデオデータを得て、グラフィック処理装置を介して復号ビデオデータをメモリに出力する。 The decoding module 502 obtains decoded video data by decoding the video stream through the graphics processing device, and outputs the decoded video data to the memory via the graphics processing device.

管理制御モジュール501および復号モジュール502には、さらなるモジュールが含まれていてもよく、例えば、図5において、管理制御モジュール501は、パラメータ管理モジュール、スレッド管理モジュール、状態検出モジュール、および再接続制御モジュールを含んでもよい。パラメータ管理モジュールは、復号規則および復号に関連するパラメータ(例えば色空間、出力フレームサイズなど)を管理し、スレッド管理モジュールは、GPUに対応するスレッドプールにおけるスレッドを管理し、状態検出モジュールは、現在の復号状態などを検出し、再接続制御モジュールは、復号異常を回避するために、ターゲットビデオストリームを再復号して再生する必要があるか否かを検出する。同様に、復号モジュール502は、パラメータ管理部、ビデオ接続部、復号フレームスキップ制御部、復号フレームレート制御部、出力フレーム選択部などのモジュールを含んでもよい。パラメータ管理部は、管理制御モジュール501内のパラメータ管理モジュールにおける復号規則および復号に関連するパラメータを取得し、ビデオ接続部は、監視機器に接続されて、監視機器から入力されたマルチチャンネルのビデオストリームを取得し、復号フレームスキップ制御部は、ビデオストリームの復号中に、現在の画像フレームをフレームスキップする必要があるか否かを判断し、例えば、上述の実施形態で説明されたように、画像に所定の種類のオブジェクトが含まれているか否かを検出することで、画像をフレームスキップする必要があるか否かを判断する。復号フレームレート制御部は、復号フレームレートを設定し、復号フレームレートを制御することでビデオストリームの復号レートを制御する。出力フレーム選択部は、出力された復号データの画像フレームを選別し、例えば、出力フレーム選択部において選別オブジェクトが「車」であると設定された場合、復号データに「車」が含まれている画像フレームを選別して出力する。 Management control module 501 and decoding module 502 may include further modules, for example, in FIG. 5 management control module 501 includes parameter management module, thread management module, state detection module, and reconnection control module may include The parameter management module manages decoding rules and parameters related to decoding (e.g. color space, output frame size, etc.), the thread management module manages threads in the thread pool corresponding to the GPU, and the state detection module manages the current and the reconnection control module detects whether the target video stream needs to be re-decoded and played back to avoid decoding anomalies. Similarly, the decoding module 502 may include modules such as a parameter manager, a video splicer, a decoded frame skip controller, a decoded frame rate controller, an output frame selector, and the like. The parameter management unit acquires the decoding rules and decoding-related parameters in the parameter management module in the management control module 501, and the video connection unit is connected to the monitoring equipment for multi-channel video streams input from the monitoring equipment. and the decoding frame skip control determines whether the current image frame needs to be frame-skipped during decoding of the video stream, for example, as described in the above embodiments, the image By detecting whether or not a predetermined type of object is included in the image, it is determined whether or not the image needs to be frame-skipped. The decoding frame rate control unit sets the decoding frame rate and controls the decoding frame rate to control the decoding rate of the video stream. The output frame selection unit selects the image frames of the output decoded data. For example, when the output frame selection unit sets the selected object to be "car", the decoded data includes "car". Select and output image frames.

なお、本実施形態では、管理制御モジュール501は1つだけ備えられてもよく、復号モジュール502は複数備えられてもよい。復号モジュール502の数は、入力されたビデオストリームのビデオチャンネル数に対応することができ、例えば、10チャンネルのビデオストリームが入力された場合、復号モジュール502を10個設定することができる。 Note that in this embodiment, only one management control module 501 may be provided, and a plurality of decryption modules 502 may be provided. The number of decoding modules 502 can correspond to the number of video channels of the input video stream. For example, if a 10-channel video stream is input, 10 decoding modules 502 can be set.

本願の実施形態は端末機器をさらに提供し、プロセッサとメモリとを備え、メモリには、コンピュータ読み取り可能な命令が記憶されており、このコンピュータ読み取り可能な命令は、プロセッサによって実行されると、プロセッサに、本願で提供されるビデオストリーム復号方法のステップを実行させる。 Embodiments of the present application further provide a terminal device, comprising a processor and a memory, the memory storing computer readable instructions, the computer readable instructions being executed by the processor to to perform the steps of the video stream decoding method provided herein.

具体的には、一実施態様では、プロセッサは、中央処理装置とグラフィック処理装置とを含み、コンピュータ読み取り可能な命令は、第1のコンピュータ読み取り可能な命令および第2のコンピュータ読み取り可能な命令を含み、第1のコンピュータ読み取り可能な命令は、中央処理装置によって実行されると、中央処理装置に、監視機器から入力されたマルチチャンネルのビデオストリームを取得するステップと、グラフィック処理装置に対応するスレッドプールにおいて、複数のスレッドを作成するステップと、複数のスレッドに基づいて、マルチチャンネルのビデオストリームをグラフィック処理装置に伝送するステップと、を実行させる。また、第2のコンピュータ読み取り可能な命令は、グラフィック処理装置によって実行されると、グラフィック処理装置に、マルチチャンネルのビデオストリームに対して並列復号処理を行うことで、マルチチャンネルの復号ビデオデータを得るステップを実行させる。 Specifically, in one embodiment, the processor includes a central processing unit and a graphics processing unit, and the computer readable instructions include first computer readable instructions and second computer readable instructions. , the first computer readable instructions, when executed by the central processing unit, cause the central processing unit to acquire a multi-channel video stream input from the monitoring equipment; and a thread pool corresponding to the graphics processing unit. in creating a plurality of threads; and transmitting a multi-channel video stream to a graphics processing device based on the plurality of threads. Also, the second computer-readable instructions, when executed by the graphics processing device, cause the graphics processing device to perform parallel decoding processing on the multi-channel video stream to obtain multi-channel decoded video data. perform the steps.

図6に本願の実施形態に係わる端末機器の構造を示す模式図を示している。具体的には、この端末機器は、1つ以上の処理コアのプロセッサ601、1つ以上のコンピュータ読み取り可能な記憶媒体のメモリ602、電源603、および入力ユニット604などの構成要素を含み得る。図6に示される端末機器の構造は、端末機器を限定するものではなく、図示されたものよりも多いかまたは少ない構成要素、あるいは特定の構成要素の組み合わせ、あるいは構成要素の異なる配置を含んでもよいことは、当業者が理解するであろう。 FIG. 6 shows a schematic diagram showing the structure of the terminal device according to the embodiment of the present application. Specifically, the terminal device may include components such as one or more processing core processors 601 , one or more computer-readable storage media memory 602 , power supply 603 and input unit 604 . The structure of the terminal equipment shown in FIG. 6 is not intended to limit the terminal equipment and may include more or fewer components than those shown, or specific combinations of components, or different arrangements of components. A good thing will be understood by those skilled in the art.

プロセッサ601は、この端末機器の制御センターであり、端末機器全体の各部分を様々なインターフェースおよび回線を用いて接続し、メモリ602に記憶されたソフトウェアプログラムおよび/またはモジュールを実行し、メモリ602に記憶されたデータを呼び出すことにより、端末機器の様々な機能およびデータ処理を実行し、端末機器の全体的な監視を行う。あるいはまた、プロセッサ601は、1つまたは複数の処理コアを含んでもよい。好ましくは、プロセッサ601にはアプリケーションプロセッサおよびモデムプロセッサを一体に備えてもよく、アプリケーションプロセッサは、主に、オペレーティングシステム、ユーザインタフェース、およびアプリケーションプログラムなどを扱い、モデムプロセッサは、主に、無線通信を扱う。上記モデムプロセッサがプロセッサ601に一体に備えられていなくてもよいことは、理解されるであろう。 Processor 601 is the control center for this terminal equipment, connecting parts of the overall terminal equipment using various interfaces and lines, executing software programs and/or modules stored in memory 602, executing software programs and/or modules stored in memory 602, Various functions and data processing of the terminal equipment are performed by calling up the stored data, and overall monitoring of the terminal equipment is performed. Alternatively, processor 601 may include one or more processing cores. Preferably, the processor 601 may be integrated with an application processor and a modem processor, the application processor mainly handling operating systems, user interfaces, application programs, etc., and the modem processor mainly handling wireless communications. deal. It will be appreciated that the modem processor need not be integral with processor 601 .

メモリ602は、ソフトウェアプログラムおよびモジュールを記憶するために使用されてもよく、プロセッサ601は、メモリ602に記憶されたソフトウェアプログラムおよびモジュールを実行することによって、様々な機能適用およびデータ処理を実行する。メモリ602は、主にプログラム記憶領域とデータ記憶領域とを含んでもよく、プログラム記憶領域には、オペレーティングシステム、少なくとも1つの機能(例えば、音声再生機能、画像再生機能など)に必要とされるアプリケーションプログラムが記憶されていてもよく、データ記憶領域には、端末機器の使用状況に応じて作成されたデータなどが記憶されていてもよい。また、メモリ602は、高速ランダムアクセスメモリを含んでもよく、さらに、例えば少なくとも1つのディスクメモリデバイス、フラッシュメモリデバイスなどの不揮発性メモリ、または他の揮発性ソリッドステートメモリデバイスを含んでもよい。これに応じて、メモリ602は、プロセッサ601によるメモリ602へのアクセスを提供するメモリコントローラをさらに含んでもよい。 Memory 602 may be used to store software programs and modules, and processor 601 performs various functional applications and data processing by executing the software programs and modules stored in memory 602. The memory 602 may primarily include a program storage area and a data storage area, where the program storage area includes an operating system, applications required for at least one function (e.g., audio playback function, image playback function, etc.). A program may be stored, and the data storage area may store data created according to the usage status of the terminal device. Memory 602 may also include high speed random access memory and may also include non-volatile memory such as, for example, at least one disk memory device, flash memory device, or other volatile solid-state memory device. Accordingly, memory 602 may further include a memory controller that provides access to memory 602 by processor 601 .

端末機器は、各コンポーネントに電力を供給するための電源603をさらに含んでおり、好ましくは、電源603は、電源管理システムを介してプロセッサ601に論理的に接続されていてもよく、これにより、電源管理システムを介して、充電、放電、および消費電力の管理などの機能を実現する。また、電源603は、1つ以上のDCまたはAC電源、再充電システム、電源障害検出回路、電力変換器またはインバータ、電源状態インジケータなどの任意の構成要素をさらに含んでもよい。 The terminal equipment further includes a power supply 603 for powering each component, preferably the power supply 603 may be logically connected to the processor 601 via a power management system, whereby Through the power management system, it implements functions such as charging, discharging, and managing power consumption. Also, power supply 603 may further include optional components such as one or more DC or AC power supplies, recharging systems, power failure detection circuitry, power converters or inverters, power status indicators, and the like.

この端末機器は、入力されたデジタルまたは文字情報を受信し、ユーザの設定および機能の制御に関連するキーボード、マウス、ジョイスティック、光学式またはトラックボール信号入力を生成する入力ユニット604をさらに含んでもよい。 The terminal may further include an input unit 604 for receiving input digital or textual information and for generating keyboard, mouse, joystick, optical or trackball signal inputs associated with controlling user settings and functions. .

また、図示されていないが、端末機器は、表示ユニットなどをさらに含んでもよい。具体的には、本実施形態では、端末機器におけるプロセッサ601は、以下のような命令に従って、1つ以上のアプリケーションプログラムのプロセスに対応する実行可能なファイルをメモリ602にロードし、プロセッサ601がメモリ602に記憶されたアプリケーションプログラムを実行することで、各種機能を実現する。その命令は、 Also, although not shown, the terminal device may further include a display unit and the like. Specifically, in this embodiment, the processor 601 in the terminal device loads executable files corresponding to one or more application program processes into the memory 602 according to instructions such as Various functions are realized by executing the application programs stored in the memory 602 . The command is

監視機器から入力されたマルチチャンネルのビデオストリームを取得する命令と、グラフィック処理装置に対応するスレッドプールにおいて、複数のスレッドを作成する命令と、該複数のスレッドに基づいて、マルチチャンネルのビデオストリームをグラフィック処理装置に伝送してビデオ復号処理を行わせることで、マルチチャンネルの復号ビデオデータを得る命令と、を含む。 An instruction to acquire a multi-channel video stream input from a monitoring device, an instruction to create a plurality of threads in a thread pool corresponding to the graphics processing device, and a multi-channel video stream based on the plurality of threads. and instructions for obtaining multi-channel decoded video data by transmitting it to a graphics processing unit to perform a video decoding process.

一実施態様では、コンピュータ読み取り可能な命令が記憶されているコンピュータ読み取り可能な記憶媒体を提供し、コンピュータ読み取り可能な命令は、プロセッサによって実行されると、プロセッサに上述したビデオストリーム復号方法のステップを実行させる。ここでいうビデオストリーム復号方法のステップは、上述した各実施形態におけるビデオストリーム復号方法のステップであってもよい。 In one embodiment, there is provided a computer readable storage medium having computer readable instructions stored therein which, when executed by a processor, cause the processor to perform the steps of the video stream decoding method described above. let it run. The steps of the video stream decoding method referred to here may be the steps of the video stream decoding method in each of the above-described embodiments.

上述した実施形態の方法におけるフローの全部または一部を実現することは、コンピュータ読み取り可能な命令によって関連するハードウェアを命令して完成させることができ、このプログラムは、不揮発性のコンピュータ読み取り可能な記憶媒体に記憶されてもよく、このプログラムは、実行されると上述した各方法の実施形態のフローを含み得ることは、当業者が理解するであろう。本願で提供される各実施形態で使用されるメモリ、ストレージ、データベース、または他の媒体への任意の参照は、不揮発性および/または揮発性メモリを含み得る。不揮発性メモリは、リードオンリーメモリ(ROM)、プログラマブルROM(PROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、またはフラッシュメモリを含み得る。揮発性メモリは、ランダムアクセスメモリ(RAM)または外部キャッシュメモリを含み得る。限定ではないが、一例として、RAMは、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、ダブルデータレートSDRAM(DDRSDRAM)、拡張型SDRAM(ESDRAM)、同期リンク(Synchlink) DRAM(SLDRAM)、メモリバス(Rambus)ダイレクトRAM(RDRAM)、ダイレクトメモリバスダイナミックRAM(DRDRAM)、およびメモリバスダイナミックRAM(RDRAM)など、様々の形で使用可能である。 Implementing all or part of the flow in the methods of the above-described embodiments can be completed by instructing relevant hardware by computer-readable instructions, and the program is a non-volatile computer-readable Those skilled in the art will appreciate that this program, which may be stored in a storage medium, may include the flow of each method embodiment described above when executed. Any reference to memory, storage, database, or other medium used in each of the embodiments provided herein may include non-volatile and/or volatile memory. Nonvolatile memory may include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory. Volatile memory can include random access memory (RAM) or external cache memory. By way of example and not limitation, RAM may be Static RAM (SRAM), Dynamic RAM (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDRSDRAM), Enhanced SDRAM (ESDRAM), Synchlink It is available in various forms such as DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM).

上記実施形態の各技術的特徴は、任意の組み合わせが可能であり、説明を簡潔にするために、上記実施形態の各技術的特徴のすべての可能な組み合わせを説明していないが、これらの技術的特徴の組み合わせが矛盾しない限り、本明細書に記載の範囲内であると考えられるべきである。 The technical features of the above embodiments can be combined arbitrarily, and for the sake of brevity, not all possible combinations of the technical features of the above embodiments have been described. So long as the combination of features is not inconsistent, it should be considered within the scope described herein.

上記実施形態は、本願のいくつかの実施形態を示したに過ぎず、その説明は比較的具体的かつ詳細であるが、本発明特許の範囲を限定するものと理解してはならない。また、当業者であれば、本願の思想から逸脱しない限り、いくつかの変形や改良が可能であり、これらはすべて本願の保護範囲に含まれることに留意すべきである。したがって、添付の請求項に基づいて本出願特許の保護範囲が定められるべきである。 The above embodiments merely show some embodiments of the present application, and although the descriptions thereof are relatively specific and detailed, they should not be understood to limit the scope of the invention patent. In addition, it should be noted that those skilled in the art can make several modifications and improvements without departing from the spirit of the present application, and they are all within the protection scope of the present application. Therefore, the scope of protection of the present patent application should be determined based on the attached claims.

101 監視機器
102 端末機器
1021 中央処理装置
1022 グラフィック処理装置
1023 メモリ
400 ビデオストリーム復号装置
401 取得ユニット
402 作成ユニット
403 復号ユニット
500 ビデオストリーム復号装置
501 管理制御モジュール
502 復号モジュール
601 プロセッサ
602 メモリ
603 電源
604 入力ユニット
101 monitoring equipment 102 terminal equipment 1021 central processing unit 1022 graphics processing unit 1023 memory 400 video stream decoding device 401 acquisition unit 402 creation unit 403 decoding unit 500 video stream decoding device 501 management control module 502 decoding module 601 processor 602 memory 603 power supply 604 input unit

Claims (14)

端末機器が実行するビデオストリーム復号方法であって、
監視機器から入力されたマルチチャンネルのビデオストリームを取得するステップと、
グラフィック処理装置に対応するスレッドプールにおいて、複数のスレッドを作成するステップと、
前記複数のスレッドに基づいて、前記マルチチャンネルのビデオストリームを前記グラフィック処理装置に伝送してビデオ復号処理を行わせることで、マルチチャンネルの復号ビデオデータを得るステップであって、
前記マルチチャンネルのビデオストリームの各チャンネルのビデオストリームに対して、前記複数のスレッドのうち1つのスレッドを割り当てるステップと、
前記複数のスレッドのうちのスレッドをそれぞれターゲットスレッドとし、前記ターゲットスレッドを使用してターゲットチャンネルのビデオストリームを前記グラフィック処理装置に入力するステップと、
前記ターゲットチャンネルのビデオストリームの復号が終了しており、かつ前記ターゲットチャンネルのビデオストリームを再生する必要がある場合、前記ターゲットスレッドを再起動し、再び前記ターゲットスレッドを使用して前記ターゲットチャンネルのビデオストリームを前記グラフィック処理装置に入力し、前記グラフィック処理装置により前記ターゲットチャンネルのビデオストリームを復号処理することで、ターゲット復号ビデオデータを得るステップとを含む、ステップと、
を含むことを特徴とするビデオストリーム復号方法。
A video stream decoding method performed by a terminal device,
obtaining multi-channel video streams input from surveillance equipment;
creating a plurality of threads in a thread pool corresponding to the graphics processing unit;
A step of obtaining multi-channel decoded video data by transmitting the multi-channel video stream to the graphics processing device for video decoding processing based on the plurality of threads,
assigning one thread out of the plurality of threads to each channel video stream of the multi-channel video stream;
each thread of the plurality of threads being a target thread, and using the target thread to input a video stream of a target channel to the graphics processing unit;
When the decoding of the target channel video stream is finished and the target channel video stream needs to be played, restart the target thread and use the target thread again to play the target channel video. inputting a stream to the graphics processing unit, and decoding the video stream of the target channel by the graphics processing unit to obtain target decoded video data ;
A video stream decoding method comprising:
前記グラフィック処理装置に対応するスレッドプールにおいて、複数のスレッドを作成する前記ステップは、
入力されたスレッド数を取得するステップと、
前記スレッド数に基づいて、前記グラフィック処理装置に対応するスレッドプールにおいて前記複数のスレッドを作成するステップであって、前記複数のスレッドの数は、前記スレッド数と等しいステップと、を含むことを特徴とする請求項1に記載のビデオストリーム復号方法。
creating a plurality of threads in a thread pool corresponding to the graphics processing unit;
obtaining the number of threads entered;
creating the plurality of threads in a thread pool corresponding to the graphics processing device based on the number of threads, wherein the number of the plurality of threads is equal to the number of threads. 2. The video stream decoding method according to claim 1, wherein:
前記グラフィック処理装置に対応するスレッドプールにおいて、複数のスレッドを作成する前記ステップは、
前記マルチチャンネルのビデオストリームのビデオチャンネル数を取得するステップと、
前記グラフィック処理装置に対応するスレッドプールにおいて、前記ビデオチャンネル数と同じ数のスレッドを作成するステップと、を含むことを特徴とする請求項1に記載のビデオストリーム復号方法。
creating a plurality of threads in a thread pool corresponding to the graphics processing unit;
obtaining a number of video channels of the multi-channel video stream;
2. The video stream decoding method according to claim 1, further comprising: creating a number of threads equal to the number of video channels in a thread pool corresponding to the graphics processing device.
前記割り当てるステップは、前記マルチチャンネルのビデオストリームの各チャンネルのビデオストリームに対して、前記複数のスレッドのうち1つのスレッドを1対1で割り当てるステップを含み
前記ターゲットチャンネルのビデオストリームは、前記マルチチャンネルのビデオストリームのうち前記ターゲットスレッドに対応する1チャンネルのビデオストリームであることを特徴とする請求項3に記載のビデオストリーム復号方法。
The assigning step includes assigning one thread of the plurality of threads to each channel video stream of the multi-channel video stream on a one-to-one basis;
4. The method of claim 3, wherein the target channel video stream is a one-channel video stream corresponding to the target thread among the multi-channel video streams.
前記グラフィック処理装置によりターゲットチャンネルのビデオストリームを復号処理することで、ターゲット復号ビデオデータを得る前記ステップは、
前記ターゲットチャンネルのビデオストリームにおける各フレームの画像を順次、ターゲット画像とし、前記グラフィック処理装置により前記ターゲット画像を復号処理するステップと、
前記ターゲット画像に所定の種類のオブジェクトが含まれていない場合、前記ターゲット画像をフレームスキップする必要があると決定するステップと、を含むことを特徴とする請求項4に記載のビデオストリーム復号方法。
The step of obtaining target decoded video data by decoding the video stream of the target channel by the graphics processing device,
a step of sequentially setting an image of each frame in the video stream of the target channel as a target image, and decoding the target image by the graphics processing device;
5. The method of claim 4, comprising determining that the target image needs to be frame-skipped if the target image does not contain a predetermined type of object.
前記ターゲットチャンネルのビデオストリームの復号が終了しており、かつ前記ターゲットチャンネルのビデオストリームを再生する必要がない場合、前記ターゲットスレッドを回収するステップ、をさらに含むことを特徴とする請求項4に記載のビデオストリーム復号方法。 5. The method of claim 4, further comprising reclaiming the target thread when decoding of the target channel video stream is finished and there is no need to play the target channel video stream. video stream decoding method. 前記端末機器は、メモリをさらに備え、
前記ビデオストリーム復号方法は、
前記マルチチャンネルの復号ビデオデータのそれぞれに対応するメモリを取得するステップと、
前記グラフィック処理装置を介して、前記マルチチャンネルの復号ビデオデータを前記メモリに出力するステップと、をさらに含むことを特徴とする請求項1に記載のビデオストリーム復号方法。
The terminal device further comprises a memory,
The video stream decoding method comprises:
obtaining a memory corresponding to each of the multi-channel decoded video data;
2. The method of claim 1, further comprising outputting the multi-channel decoded video data to the memory via the graphics processing unit.
前記マルチチャンネルの復号ビデオデータには、第1の復号ビデオデータおよび第2の復号ビデオデータが含まれており、
前記マルチチャンネルの復号ビデオデータのそれぞれに対応するメモリを取得する前記ステップは、
前記第1の復号ビデオデータに対応する第1のメモリを取得するステップと、
前記第2の復号ビデオデータに対応する第2のメモリを取得するステップと、を含み、
前記グラフィック処理装置を介して、前記マルチチャンネルの復号ビデオデータを前記メモリに出力する前記ステップは、
前記グラフィック処理装置を介して、前記第1の復号ビデオデータを前記第1のメモリに出力し、前記第2の復号ビデオデータを前記第2のメモリに出力するステップを含むことを特徴とする請求項に記載のビデオストリーム復号方法。
the multi-channel decoded video data includes first decoded video data and second decoded video data;
The step of obtaining memory corresponding to each of the multi-channel decoded video data comprises:
obtaining a first memory corresponding to the first decoded video data;
obtaining a second memory corresponding to the second decoded video data;
The step of outputting the multi-channel decoded video data to the memory via the graphics processing unit comprises:
outputting said first decoded video data to said first memory and outputting said second decoded video data to said second memory via said graphics processing unit. 8. A video stream decoding method according to Item 7 .
前記マルチチャンネルの復号ビデオデータには、第3の復号ビデオデータがさらに含まれており、
前記マルチチャンネルの復号ビデオデータのそれぞれに対応するメモリを取得する前記ステップは、
前記第3の復号ビデオデータに対応する第3のメモリを取得するステップをさらに含み、
前記グラフィック処理装置を介して、前記マルチチャンネルの復号ビデオデータを前記メモリに出力する前記ステップは、
前記グラフィック処理装置を介して、前記第3の復号ビデオデータを前記第3のメモリに出力するステップをさらに含むことを特徴とする請求項に記載のビデオストリーム復号方法。
the multi-channel decoded video data further includes third decoded video data;
The step of obtaining memory corresponding to each of the multi-channel decoded video data comprises:
further comprising obtaining a third memory corresponding to the third decoded video data;
The step of outputting the multi-channel decoded video data to the memory via the graphics processing unit comprises:
9. The method of claim 8 , further comprising outputting the third decoded video data to the third memory via the graphics processing unit.
前記メモリは、システムメモリ、共有メモリ、およびディスクのうちの少なくとも1つを含むことを特徴とする請求項に記載のビデオストリーム復号方法。 8. The method of claim 7 , wherein the memory comprises at least one of system memory, shared memory, and disk. 前記グラフィック処理装置を介して、前記マルチチャンネルの復号ビデオデータを前記メモリに出力する前記ステップは、
前記グラフィック処理装置により、マルチチャンネルの復号ビデオデータに対応するメモリのアドレスコードを取得するステップと、
前記グラフィック処理装置により、前記アドレスコードに基づいてメモリマッピングを行うことで、前記マルチチャンネルの復号ビデオデータに対応するターゲットメモリを決定するステップと、
前記グラフィック処理装置を介して、マルチチャンネルの復号ビデオデータを前記ターゲットメモリに出力するステップと、を含むことを特徴とする請求項に記載のビデオストリーム復号方法。
The step of outputting the multi-channel decoded video data to the memory via the graphics processing unit comprises:
obtaining, by the graphics processing unit, a memory address code corresponding to multi-channel decoded video data;
determining, by the graphics processing unit, a target memory corresponding to the multi-channel decoded video data by performing memory mapping based on the address code;
and outputting multi - channel decoded video data to the target memory via the graphics processing unit.
監視機器から入力されたマルチチャンネルのビデオストリームを取得する取得ユニットと、
グラフィック処理装置に対応するスレッドプールにおいて、複数のスレッドを作成する作成ユニットと、
前記複数のスレッドに基づいて、前記マルチチャンネルのビデオストリームを前記グラフィック処理装置に伝送してビデオ復号処理を行わせることで、マルチチャンネルの復号ビデオデータを得る復号ユニットであって、
前記マルチチャンネルのビデオストリームの各チャンネルのビデオストリームに対して、前記複数のスレッドのうち1つのスレッドを割り当て、
前記複数のスレッドのうちのスレッドをそれぞれターゲットスレッドとし、前記ターゲットスレッドを使用してターゲットチャンネルのビデオストリームを前記グラフィック処理装置に入力し、
前記ターゲットチャンネルのビデオストリームの復号が終了しており、かつ前記ターゲットチャンネルのビデオストリームを再生する必要がある場合、前記ターゲットスレッドを再起動し、再び前記ターゲットスレッドを使用して前記ターゲットチャンネルのビデオストリームを前記グラフィック処理装置に入力し、前記グラフィック処理装置により前記ターゲットチャンネルのビデオストリームを復号処理することで、ターゲット復号ビデオデータを得るように構成された復号ユニットと、
を備えることを特徴とするビデオストリーム復号装置。
an acquisition unit for acquiring multi-channel video streams input from surveillance equipment;
a creation unit for creating a plurality of threads in a thread pool corresponding to the graphics processing unit;
a decoding unit for obtaining multi-channel decoded video data by transmitting the multi-channel video stream to the graphics processing device to perform video decoding processing based on the plurality of threads ,
Allocating one thread out of the plurality of threads to each channel video stream of the multi-channel video stream;
Each thread of the plurality of threads is set as a target thread, and a video stream of a target channel is input to the graphics processing device using the target thread;
When the decoding of the target channel video stream is finished and the target channel video stream needs to be played, restart the target thread and use the target thread again to play the target channel video. a decoding unit configured to input a stream to the graphics processing device and decode the video stream of the target channel by the graphics processing device to obtain target decoded video data ;
A video stream decoding device comprising:
コンピュータ読み取り可能な命令が記憶されているメモリと、
プロセッサと、を備え、
前記コンピュータ読み取り可能な命令は、前記プロセッサによって実行されると、前記プロセッサに、請求項1から11のうちのいずれか1項に記載の方法のステップを実行させる、端末機器。
a memory in which computer readable instructions are stored;
a processor;
A terminal device, wherein the computer readable instructions, when executed by the processor, cause the processor to perform the method steps of any one of claims 1 to 11 .
コンピュータに、請求項1~11のいずれか一項に記載の方法のステップを実行させるためのプログラム。 A program for causing a computer to perform the steps of the method according to any one of claims 1-11 .
JP2021545768A 2019-07-15 2020-06-17 Video stream decoding method, device, terminal equipment and program Active JP7191240B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201910636848.6A CN110381322B (en) 2019-07-15 2019-07-15 Video stream decoding method and device, terminal equipment and storage medium
CN201910636848.6 2019-07-15
PCT/CN2020/096511 WO2021008290A1 (en) 2019-07-15 2020-06-17 Video stream decoding method and apparatus, terminal device and storage medium

Publications (2)

Publication Number Publication Date
JP2022519855A JP2022519855A (en) 2022-03-25
JP7191240B2 true JP7191240B2 (en) 2022-12-16

Family

ID=68253294

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021545768A Active JP7191240B2 (en) 2019-07-15 2020-06-17 Video stream decoding method, device, terminal equipment and program

Country Status (4)

Country Link
US (1) US20220038724A1 (en)
JP (1) JP7191240B2 (en)
CN (1) CN110381322B (en)
WO (1) WO2021008290A1 (en)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110381322B (en) * 2019-07-15 2023-03-14 腾讯科技(深圳)有限公司 Video stream decoding method and device, terminal equipment and storage medium
CN111010599B (en) * 2019-12-18 2022-04-12 浙江大华技术股份有限公司 Method and device for processing multi-scene video stream and computer equipment
CN111507245A (en) * 2020-04-15 2020-08-07 海信集团有限公司 Embedded system and method for face detection
CN111654674B (en) * 2020-06-04 2021-10-22 上海鸢安智能科技有限公司 Method, software system and terminal for processing multiple video sources in parallel based on single ffmpeg process
CN111918025A (en) * 2020-06-29 2020-11-10 北京大学 Scene video processing method and device, storage medium and terminal
CN111787185B (en) * 2020-08-04 2023-09-05 成都云图睿视科技有限公司 Method for processing multi-path camera data in real time under VPU platform
CN112235579B (en) * 2020-09-28 2022-09-06 深圳市洲明科技股份有限公司 Video processing method, computer-readable storage medium and electronic device
CN112637634B (en) * 2020-12-24 2022-08-05 北京睿芯高通量科技有限公司 High-concurrency video processing method and system for multi-process shared data
CN114979772B (en) * 2021-02-24 2023-05-12 腾讯科技(深圳)有限公司 Decoder configuration method, decoder configuration device, medium and electronic equipment
CN113052748B (en) * 2021-03-02 2023-05-16 长沙景嘉微电子股份有限公司 Graphics processor and video decoding display method
CN112835651B (en) * 2021-04-01 2023-10-20 中国空空导弹研究院 Multipath image parallel decoding processing method
CN113271493A (en) * 2021-04-06 2021-08-17 中国电子科技集团公司第十五研究所 Video stream decoding method and computer-readable storage medium
CN113395489B (en) * 2021-06-09 2023-03-24 哈尔滨低空探索智能科技有限责任公司 Video switching method and video switching system suitable for network camera
CN114222166B (en) * 2021-09-29 2024-02-13 重庆创通联达智能技术有限公司 Multi-channel video code stream real-time processing and on-screen playing method and related system
CN113905273A (en) * 2021-09-29 2022-01-07 上海阵量智能科技有限公司 Task execution method and device
CN113946373B (en) * 2021-10-11 2023-06-09 成都中科合迅科技有限公司 Virtual reality multiple video stream rendering method based on load balancing
CN114268796A (en) * 2021-12-22 2022-04-01 天翼云科技有限公司 Method and device for processing video stream
CN114339412B (en) * 2021-12-30 2024-02-27 咪咕文化科技有限公司 Video quality enhancement method, mobile terminal, storage medium and device
CN114640854A (en) * 2022-03-09 2022-06-17 广西高重厚泽科技有限公司 Real-time high-speed decoding method for multi-channel video stream
CN114630184A (en) * 2022-03-23 2022-06-14 广州方硅信息技术有限公司 Video rendering method, device, equipment and computer readable storage medium
CN114860440B (en) * 2022-04-29 2023-01-10 北京天融信网络安全技术有限公司 GPU (graphics processing Unit) video memory management method and device
CN115119053A (en) * 2022-05-09 2022-09-27 福思(杭州)智能科技有限公司 Video decoding method, memory, video memory, electronic device and storage medium
CN115065824B (en) * 2022-08-18 2023-02-24 荣耀终端有限公司 Decoder determination method, device, chip, electronic equipment and medium
CN116416563A (en) * 2023-04-24 2023-07-11 北京拙河科技有限公司 Diversified video stream decoding module matching method and device
CN116320448B (en) * 2023-05-19 2023-07-14 北京麟卓信息科技有限公司 Video decoding session multiplexing optimization method based on dynamic self-adaptive resolution
CN116744000B (en) * 2023-08-16 2023-10-13 北京麟卓信息科技有限公司 Video coding and decoding mode detection method based on dynamic algorithm reconstruction
CN117475013A (en) * 2023-12-21 2024-01-30 杭州海康威视数字技术股份有限公司 Computer equipment and video data processing method

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001189906A (en) 1999-12-28 2001-07-10 Kawasaki Heavy Ind Ltd Image processing unit
JP2007158410A (en) 2005-11-30 2007-06-21 Sony Computer Entertainment Inc Image encoder, image decoder, and image processing system
JP2007221323A (en) 2006-02-15 2007-08-30 Sony Computer Entertainment Inc Method for processing information, method for displaying thumbnail of moving picture, decoding device, and information processor
JP2012142905A (en) 2011-01-06 2012-07-26 Nippon Telegr & Teleph Corp <Ntt> Parallel resource search method, device, and program
US20130243329A1 (en) 2012-03-15 2013-09-19 Herta Security, S.L. Parallel object detection method for heterogeneous multithreaded microarchitectures
JP2013247455A (en) 2012-05-24 2013-12-09 Hitachi Ltd Video recording device and video processing device control method
WO2015025705A1 (en) 2013-08-23 2015-02-26 日本電気株式会社 Video processing device, video processing method, and video processing program
CN106878736A (en) 2017-03-17 2017-06-20 郑州云海信息技术有限公司 A kind of method and apparatus of coding and decoding video
JP2018011258A (en) 2016-07-15 2018-01-18 日本電気株式会社 Processing control device, processing control method and program

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101668206B (en) * 2009-09-15 2011-12-14 武汉大学 Multichannel video decoding display method and system based on H.264
CN102148959B (en) * 2010-02-09 2016-01-20 北京中星微电子有限公司 The moving target detecting method of a kind of video monitoring system and image thereof
US9311721B1 (en) * 2013-04-04 2016-04-12 Sandia Corporation Graphics processing unit-assisted lossless decompression
US20170214930A1 (en) * 2016-01-26 2017-07-27 Sandia Corporation Gpu-assisted lossless data compression
US20170354887A1 (en) * 2016-06-08 2017-12-14 Bruce Bollermann Systems & methods for parachute flight simulation
CN109005455B (en) * 2017-06-07 2021-01-22 杭州海康威视系统技术有限公司 Video data processing method and device
CN107241598B (en) * 2017-06-29 2020-03-24 贵州电网有限责任公司 GPU (graphics processing Unit) decoding method for multi-channel h.264 video conference
CN108881918A (en) * 2017-11-29 2018-11-23 北京视联动力国际信息技术有限公司 A kind of processing method of multi-channel video and a kind of multimedia terminal
KR102533241B1 (en) * 2018-01-25 2023-05-16 삼성전자주식회사 Heterogeneous computing system configured to adaptively control cache coherency
CN108833915A (en) * 2018-06-21 2018-11-16 杭州雄迈集成电路技术有限公司 A kind of intelligent coding method of adaptive frame skipping
JP6644231B1 (en) * 2019-04-26 2020-02-12 Awl株式会社 Image analysis device and image analysis system
CN110381322B (en) * 2019-07-15 2023-03-14 腾讯科技(深圳)有限公司 Video stream decoding method and device, terminal equipment and storage medium

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001189906A (en) 1999-12-28 2001-07-10 Kawasaki Heavy Ind Ltd Image processing unit
JP2007158410A (en) 2005-11-30 2007-06-21 Sony Computer Entertainment Inc Image encoder, image decoder, and image processing system
JP2007221323A (en) 2006-02-15 2007-08-30 Sony Computer Entertainment Inc Method for processing information, method for displaying thumbnail of moving picture, decoding device, and information processor
JP2012142905A (en) 2011-01-06 2012-07-26 Nippon Telegr & Teleph Corp <Ntt> Parallel resource search method, device, and program
US20130243329A1 (en) 2012-03-15 2013-09-19 Herta Security, S.L. Parallel object detection method for heterogeneous multithreaded microarchitectures
JP2013247455A (en) 2012-05-24 2013-12-09 Hitachi Ltd Video recording device and video processing device control method
WO2015025705A1 (en) 2013-08-23 2015-02-26 日本電気株式会社 Video processing device, video processing method, and video processing program
JP2018011258A (en) 2016-07-15 2018-01-18 日本電気株式会社 Processing control device, processing control method and program
CN106878736A (en) 2017-03-17 2017-06-20 郑州云海信息技术有限公司 A kind of method and apparatus of coding and decoding video

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
中澤 仁,都市のスマートセンシング 情報還流を基盤としたスマートシティの実現,計測と制御 2013年 11月号,公益社団法人計測自動制御学会,2013年11月10日,第52巻 第11号,第953頁-第959頁

Also Published As

Publication number Publication date
CN110381322A (en) 2019-10-25
WO2021008290A1 (en) 2021-01-21
US20220038724A1 (en) 2022-02-03
CN110381322B (en) 2023-03-14
JP2022519855A (en) 2022-03-25

Similar Documents

Publication Publication Date Title
JP7191240B2 (en) Video stream decoding method, device, terminal equipment and program
JP4519082B2 (en) Information processing method, moving image thumbnail display method, decoding device, and information processing device
US9148669B2 (en) High performance AVC encoder on a multi-core platform
JP5545288B2 (en) Task allocation device, task allocation method, and task allocation program
CN105163127A (en) Video analysis method and device
US9307258B2 (en) Parallel transcoding
US20170220283A1 (en) Reducing memory usage by a decoder during a format change
US8532196B2 (en) Decoding device, recording medium, and decoding method for coded data
JP5788865B2 (en) Accelerating image compression using multiple processors
US10437601B2 (en) Centralized memory management for multiple device streams
US20200169783A1 (en) High-speed parallel engine for processing file-based high-resolution images
JP2010141821A (en) Streaming processor and processor system
CN111147926B (en) Data transcoding method and device
US20170127070A1 (en) Image processing apparatus, image processing method, and non-transitory computer readable storage medium
KR102296987B1 (en) Apparatus, method and system for hevc decoding image based on distributed system and machine learning model using block chain network
CN111654674B (en) Method, software system and terminal for processing multiple video sources in parallel based on single ffmpeg process
US10440359B2 (en) Hybrid video encoder apparatus and methods
US20160142723A1 (en) Frame division into subframes
US10972788B1 (en) Distortion-based video re-encoding
CN116132719A (en) Video processing method, device, electronic equipment and readable storage medium
JP5236386B2 (en) Image decoding apparatus and image decoding method
JP2018011258A (en) Processing control device, processing control method and program
JP7223760B2 (en) Techniques for optimizing encoding tasks
US9336557B2 (en) Apparatus and methods for processing of media signals
JP5120324B2 (en) Image decoding apparatus and image decoding method

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210804

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220815

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221111

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221128

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221206

R150 Certificate of patent or registration of utility model

Ref document number: 7191240

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150