WO2024057408A1 - Control device, control method, and program - Google Patents

Control device, control method, and program Download PDF

Info

Publication number
WO2024057408A1
WO2024057408A1 PCT/JP2022/034243 JP2022034243W WO2024057408A1 WO 2024057408 A1 WO2024057408 A1 WO 2024057408A1 JP 2022034243 W JP2022034243 W JP 2022034243W WO 2024057408 A1 WO2024057408 A1 WO 2024057408A1
Authority
WO
WIPO (PCT)
Prior art keywords
proxy
video
control
apl
data
Prior art date
Application number
PCT/JP2022/034243
Other languages
French (fr)
Japanese (ja)
Inventor
悠希 中原
健 桑原
亮太 石橋
Original Assignee
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to PCT/JP2022/034243 priority Critical patent/WO2024057408A1/en
Publication of WO2024057408A1 publication Critical patent/WO2024057408A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • H04L41/0897Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management

Definitions

  • the present invention relates to technology for providing services using applications in a virtualization infrastructure.
  • a video analysis application receives video data from a vehicle equipped with a camera, and controls automatic driving of the vehicle based on the video data.
  • the video analysis application for each vehicle is executed on a virtualization platform as needed, and the amount of resources allocated to the video analysis application is dynamically adjusted depending on the vehicle situation. It is assumed that this will be changed to
  • the conventional technology when changing the amount of resources allocated to a video analysis application, there was a problem in that video information was lost or service was interrupted. In other words, the conventional technology has a problem in that the amount of resources allocated to the video analysis application cannot be appropriately changed in the virtualization infrastructure.
  • the present invention has been made in view of the above points, and it is an object of the present invention to provide a technology that makes it possible to appropriately change the resource allocation amount of an application in a virtualization infrastructure.
  • an application proxy that receives data transmitted from a device; an application unit that receives the data retransmitted from the application proxy;
  • a control device comprising: a control proxy that receives a control request obtained based on processing of the data from the application section and transmits a control instruction to the device.
  • a technology that makes it possible to appropriately change the resource allocation amount of an application in a virtualization infrastructure.
  • FIG. 3 is a diagram for explaining a use case.
  • FIG. 2 is a diagram for explaining a problem.
  • FIG. 2 is a system configuration diagram in Examples 1-1 and 1-2.
  • FIG. 3 is a diagram for explaining the operation of a system control unit.
  • FIG. 3 is a sequence diagram in Example 1-1.
  • FIG. 3 is a sequence diagram in Example 1-1.
  • FIG. 3 is a sequence diagram in Example 1-2.
  • FIG. 3 is a sequence diagram in Example 1-2.
  • FIG. 3 is a system configuration diagram in Example 1-3.
  • FIG. 3 is a sequence diagram in Example 1-3.
  • FIG. 3 is a system configuration diagram in Examples 2-1 and 2-2.
  • FIG. 3 is a sequence diagram in Example 2-1.
  • FIG. 3 is a sequence diagram in Example 2-1.
  • FIG. 3 is a sequence diagram in Example 2-2.
  • FIG. 3 is a sequence diagram in Example 2-2.
  • FIG. 3 is a sequence diagram in Example 2-2.
  • the base is an edge base.
  • the edge base is equipped with a virtualization infrastructure device.
  • the virtualization infrastructure device is one or more computers (which may also be called a host or a server host).
  • the computer may be a physical machine or a virtual machine. Since the virtualization infrastructure device is a device that performs control, it may also be called a "control device.”
  • Kubernetes which is a container-based orchestration tool
  • Kubernetes which is a container-based orchestration tool
  • applications are deployed in units called Pods. Deployed applications operate as containers within Pods.
  • the application of the technology according to the present invention is not limited to environments using Kubernetes (registered trademark).
  • FIG. 1 shows an example of the configuration of a system related to this embodiment.
  • FIG. 1 shows a configuration that does not include a video proxy/control proxy, which will be described later.
  • this system includes a virtualization infrastructure device 100 and a vehicle device 200.
  • the vehicle device 200 is a device installed in a vehicle, includes a communication function, and is connected to a network via a mobile line or the like.
  • the virtualization infrastructure device 100 is also connected to a network, and the vehicle device 200 and the virtualization infrastructure device 100 can communicate via the network.
  • Vehicle device 200 may also be referred to as a "device.”
  • the vehicle device 200 is equipped with a camera/encoder 210 (camera and encoder) and a vehicle control system 220.
  • the virtualization infrastructure device 100 also includes a video analysis application 10.
  • the "application” will be referred to as "APL”.
  • each APL in the virtualization infrastructure device 100 operates within a Pod. In the following, it is assumed that one APL operates on one Pod, but a plurality of APLs may operate on one Pod.
  • FIG. 1 shows only one vehicle device 200 communicating with the virtualization infrastructure device 100, in reality, multiple vehicles (that is, multiple vehicle devices 200) communicate with the virtualization infrastructure device 100. communicate with.
  • a video analysis APL 10 in the virtualization infrastructure device 100 exists for each vehicle (vehicle device 200). Note that there may be a case where only one vehicle (vehicle device 200) communicates with the virtualization infrastructure device 100.
  • the camera/encoder 210 is an H.
  • the camera video is encoded using a high compression codec that supports interframe compression such as H.264. Further, the camera/encoder 210 transmits the encoded video data to the video analysis APL 10 of the virtualization infrastructure device 100 through one-way communication such as RTP/UDP.
  • the video analysis APL 10 decodes the video from the video data received from the camera/encoder 210 and analyzes the video.
  • the video analysis referred to here includes detection of obstacles (pedestrians, etc.) within the camera field of view, detection of deviations in the running position in the width direction of the road, and the like.
  • the video analysis APL 10 transmits vehicle control data determined based on the analysis results to the vehicle control system 220. Examples of control include "emergency stop due to pedestrian detection" and "temporary change in traveling direction 5 degrees counterclockwise for 3 seconds to correct travel position shift".
  • the vehicle control system 220 performs actuation on the vehicle based on the vehicle control data received from the video analysis APL 10.
  • ⁇ Vehicles are not in operation 24 hours a day, 365 days a year, and repeatedly start and stop running at any time.
  • the video analysis APL 10 exists for each vehicle and is deployed on the virtualization infrastructure device 100.
  • it is deployed in a container format rather than a bare metal VM.
  • the amount of resources (number of CPUs, amount of memory, etc.) required by the video analysis APL 10 changes depending on the vehicle situation (driving position/surrounding situation, speed, etc.).
  • resources for the video analysis APL 10 are secured only when the vehicle starts running/stops, and the video analysis APL 10 is deployed.
  • the resources for the video analysis APL 10 are increased or decreased at any time according to the situation of the running vehicle.
  • the number of real servers on which the video analysis APL 10 on the virtualization infrastructure device 100 is operating is minimized.
  • Non-Patent Document 2 discloses a technique for performing live migration between VMs in a VM-based server virtualization infrastructure.
  • Live migration is a technology in which APL copies the state (disk memory contents, etc.) of a VM in operation to a new VM and continues operation.
  • APL copies the state (disk memory contents, etc.) of a VM in operation to a new VM and continues operation.
  • ⁇ VM has a longer waiting time when running/terminating compared to containers. Furthermore, processing overhead during operation is large due to HW emulation and the like.
  • Non-Patent Document 1 discloses Kubernetes (registered trademark), which is a container-based server virtualization infrastructure.
  • Kubernetes registered trademark
  • Non-Patent Document 3 for a deployment APL in Kubernetes (registered trademark) (the unit of APL deployment is called a Pod), a terminal whose destination is a representative identifier (e.g. Master Node IP address/port number) Techniques for forwarding request packets for outgoing communications are shown. By utilizing these techniques, it is possible to launch a new Pod and distribute communications addressed to the representative identifier to the new Pod when the required resources of the APL change.
  • a representative identifier e.g. Master Node IP address/port number
  • Non-Patent Document 1 By using Kubernetes (registered trademark) shown in Non-Patent Document 1, there are the following benefits.
  • containers have shorter waiting time during operation/termination, and compared to VM, the processing overhead due to HW emulation during operation is smaller.
  • Non-Patent Document 3 is used in this use case in combination with Prior Art 1, there are the following two problems.
  • Non-Patent Document 4 discloses a proposal for a dynamic resource allocation change function during Pod operation, which is one of the KEP (Kubernetes Enhancement Proposals) in the OSS community that develops Kubernetes (registered trademark). .
  • KEP Kerpennetes Enhancement Proposals
  • Pods can be allocated within the remaining resource amount of the server host (the computer on which APL is running) without stopping the operation of APL. It is possible to change the amount of resources.
  • FIG. 2 shows a summary of the above-mentioned problems that occur when the conventional technology is assumed to be used for this user case.
  • a proxy function is provided between the camera/encoder 210 and vehicle control system 220 installed in the vehicle and the video analysis APL provided in the virtualization infrastructure device 100. This hides the activation of a new Pod and the termination of the old Pod of the video analysis APL, and solves the problem caused by states such as memory contents not being inherited between the old and new Pods.
  • Example 1-1 Variation 1 (key frame securing method) of Example 1 (video one-stage proxy method)
  • Example 1-2 Variation 2 (interframe decompression distribution method) of Example 1 (video one-stage proxy method)
  • Example 1-3 Variation 3 (interframe decompression storage method) of Example 1 (video one-stage proxy method)
  • Example 2-1 Variation 1 (key frame securing method) of Example 2 (video two-stage proxy method)
  • Example 2-2 Variation 2 (interframe decompression method) of Example 2 (video two-stage proxy method) (Example 1-1)
  • Example 1-1 will be explained.
  • Example 1-1 is variation 1 (key frame securing method) of Example 1 (video one-stage proxy method).
  • FIG. 3 shows an example of a system configuration in Example 1-1. A description will mainly be given of a configuration that is different from the configuration described with reference to FIG.
  • the virtualization infrastructure device 100 is equipped with one video proxy 105 and one control proxy 107 for each vehicle device 200.
  • the video proxy is an example of an "application proxy.”
  • FIG. 3 shows the video analysis APL 101 before switching and the video analysis APL 103 after switching. Note that the video analysis APL 101 before switching may be described as "old video analysis APL 101", and the video analysis APL 103 after switching may be described as "new video analysis APL 103".
  • Each proxy and each APL operates as a container within a Pod on a worker node (described as "worker” in the figure). In this embodiment, each proxy operates on one worker node, and each APL also operates on one worker node. However, multiple proxies and multiple APLs may exist in one worker node.
  • a worker node may be a physical machine or a virtual machine.
  • the virtualization infrastructure device 100 is equipped with a system control unit 150.
  • the system control unit 150 may be provided outside the virtualization infrastructure device 100.
  • the system control unit 150 is provided within the virtualization infrastructure device 100.
  • the system control unit 150 includes, for example, the function of a Kubernetes (registered trademark) master node, and is configured to assign a desired amount of resources to Pods (i.e., APL) can be generated.
  • Pods i.e., APL
  • FIG. 4 An example of the functions of the system control unit 150 will be described with reference to FIG. 4.
  • the resource amount of the video analysis APL 13 operating in the Pod 12 on the worker node has become insufficient compared to the processing amount.
  • the system control unit 150 when the user instructs the system control unit 150 to generate a new video analysis APL 16 that uses a desired amount of resources, the system control unit 150 generates a new image analysis APL 16 on the worker node 14 that has a sufficient amount of resources. Generate Pod 15 and video analysis APL 16. Note that if the worker node 11 has a sufficient amount of remaining resources, the Pod 15 may be generated on the worker node 11 as a result.
  • APL is generated (deployed) in units of Pods, and APLs operate on Pods; however, in the following figures and explanations, Pods may not be explicitly described for convenience of description. Note that a Pod on which an application operates may be referred to as an "application unit.”
  • Example 1-1 a video stream continues to be transmitted from the camera/encoder 210 of the vehicle device 200 to the video proxy 105 while the vehicle is in operation.
  • the video proxy 105 relays the video stream to the video analysis APL 101 (after switching, the video analysis APL 103).
  • the vehicle control system 220 in the vehicle device 200 and the control proxy 107 in the virtualization infrastructure device 100 are connected by gRPC, which is a session maintenance type communication protocol, and Server Streaming RPC, that is, the server (control proxy 107 here) is used.
  • gRPC a session maintenance type communication protocol
  • Server Streaming RPC that is, the server (control proxy 107 here) is used.
  • This form allows push communication from.
  • the control proxy 107 and the video analysis APL 101 (after switching, the video analysis APL 103) communicate in both directions using HTTP/Rest, a protocol that establishes a connection each time the communication occurs.
  • Communication between the vehicle control system 220 and the control proxy 107 involves a high delay because it goes through the WAN, and in order to save the time required for communication, it is desirable to be able to omit connection establishment processing each time communication occurs; (2) Low delay between control proxy 107 and video analysis APL 101/103 within the same data center; (3) There is no need to reconnect the connection when restarting the video analysis APL 101/103.
  • the video analysis APL 101/103 decodes the video stream received from the video proxy 105 and performs video analysis for each frame image.
  • the video analysis APL 101/103 notifies the control proxy 107 of the video analysis results as necessary.
  • the camera/encoder 210 continuously encodes video traffic using an interframe compression codec (H.264) and sends it to the video proxy 105 using RTP/UDP.
  • an interframe compression codec H.264
  • the video proxy 105 continuously rewrites the IP header of the RTP/UDP packet received from the camera/encoder 210 and retransmits it to the video analysis APL 101.
  • the video analysis APL 101 captures the plurality of received RTP/UDP packets into a buffer and reconstructs one frame worth of image.
  • the video analysis APL 101 performs obstacle detection analysis on one frame of the image. Any algorithm may be used as the obstacle detection algorithm. As an example, an intra-image rectangle detection function using off-the-shelf technology (OpenCV) can be used. Here, the video analysis APL 101 recognizes that a rectangular object exists within the image.
  • OpenCV off-the-shelf technology
  • the video analysis APL 101 requests the control proxy 107 to issue an emergency stop instruction to the vehicle control system 220 by calling the HTTP/REST API.
  • control proxy 107 instructs the vehicle control system 220 on the vehicle device 200 to perform an emergency stop using a server push using the established gRPC connection.
  • the camera/encoder 210 continuously encodes video traffic using an interframe compression codec (H.264) and sends it to the video proxy 105 using RTP/UDP.
  • H.264 interframe compression codec
  • the video proxy 105 continuously rewrites the IP headers of the RTP/UDP packets received from the camera/encoder 210 and retransmits them to the video analysis APL 101.
  • the user instructs the system control unit 150 to increase the resource amount of the video analysis APL of the camera video related to a certain vehicle identifier (for example, ⁇ 2 CPU, 4 GB RAM ⁇ ⁇ ⁇ 4 CPU, 8 GB RAM ⁇ ).
  • a certain vehicle identifier for example, ⁇ 2 CPU, 4 GB RAM ⁇ ⁇ ⁇ 4 CPU, 8 GB RAM ⁇ .
  • the system control unit 150 newly generates a video analysis APL 103 with ⁇ 4 CPU, 8 GB RAM ⁇ together with the Pod.
  • the system control unit 150 periodically views the log of the Pod of the new video analysis APL 103 and waits until normal operation of the video analysis APL 103 can be confirmed. Once you have confirmed normal operation, proceed to the next step.
  • the system control unit 150 notifies the video proxy 105 that the video retransmission destination will be changed when the next key frame arrives, and the video proxy 105 waits.
  • the video proxy 105 When the video proxy 105 receives the first key frame after S206, in S207, the video proxy 105 notifies the system control unit 150 of the arrival of the key frame, and performs video analysis of the RTP/UDP packet containing the key frame. Retransmission to APL 101 is suppressed.
  • the video proxy 105 needs to determine whether the received video data is a key frame or not.
  • the format of the RTP payload of an H.264 video stream is specified in IETF RFC 6184, so key frames can be identified according to this specification. Specifically, if the value of the NAL Unit Header stored at the beginning of the RTP payload is 5, the data can be determined to be a key frame.
  • the system control unit 150 instructs both the video proxy 105 and the control proxy 107 to switch the video analysis APL at the same time. In other words, an instruction is given to switch the connection destination from the video analysis APL 101 to the video analysis APL 103.
  • the video proxy 105 changes the retransmission destination of the RTP/UDP packet to the Pod of the new video analysis APL 103, and resumes retransmission.
  • the control proxy 107 changes the communication partner of the vehicle control information to the Pod of the new video analysis APL 103. That is, from now on, the control proxy 107 will not accept communication with the Pod of the old video analysis APL 101.
  • Example 1-2 is variation 2 (interframe decompression distribution method) of Example 1 (video one-stage proxy method).
  • the system configuration of Example 1-2 is the same as that of Example 1-1, and is as shown in FIG. 3.
  • the camera/encoder 210 continuously encodes video traffic using an interframe compression codec (H.264) and sends it to the video proxy 105 using RTP/UDP.
  • H.264 interframe compression codec
  • the video proxy continuously performs video decoding on the RTP/UDP packets received from the camera/encoder 210. Furthermore, the decoded video is re-encoded using an interframe non-compression codec (MJPEG, etc.). Furthermore, the re-encoded video data is packetized and re-transmitted to the video analysis APL 101.
  • MJPEG interframe non-compression codec
  • the subsequent steps S303 to S306 are the same as steps S103 to S106 in Example 1-1.
  • the camera/encoder 210 continuously encodes video traffic using an interframe compression codec (H.264) and sends it to the video proxy 105 using RTP/UDP.
  • an interframe compression codec H.264
  • the video proxy 105 continuously decodes the RTP/UDP packets received from the camera/encoder 210. Furthermore, the decoded video is re-encoded using an interframe non-compression codec (MJPEG, etc.). Furthermore, the re-encoded video data is packetized and re-transmitted to the video analysis APL 101.
  • MJPEG interframe non-compression codec
  • the user instructs the system control unit 150 to increase the resource amount of the video analysis APL of the camera video related to a certain vehicle identifier (for example, ⁇ 2 CPU, 4 GB RAM ⁇ ⁇ ⁇ 4 CPU, 8 GB RAM ⁇ ).
  • a certain vehicle identifier for example, ⁇ 2 CPU, 4 GB RAM ⁇ ⁇ ⁇ 4 CPU, 8 GB RAM ⁇ .
  • the system control unit 150 newly generates a Pod for the video analysis APL 103, which is ⁇ 4 CPU, 8 GB RAM ⁇ .
  • the system control unit 150 periodically views the log of the Pod of the new video analysis APL 103 and waits until it can confirm the normal operation of the video analysis APL 103. Once you have confirmed normal operation, proceed to the next step.
  • the system control unit 150 instructs both the video proxy 105 and the control proxy 107 to switch the video analysis APL at the same time.
  • the video proxy 105 starts transmitting the next RTP/UDP packet (the first RTP/UDP packet after S406) to the new video analysis APL 103.
  • the video proxy 105 starts transmitting the next RTP/UDP packet (the first RTP/UDP packet after S406) to the new video analysis APL 103.
  • an RTP/UDP packet in which the video data re-encoded using the interframe non-compression codec is packetized is transmitted.
  • control proxy 107 changes the communication partner of the vehicle control information to the Pod of the new video analysis APL 103. That is, from now on, communication with the Pod of the old video analysis APL 101 will not be accepted.
  • Example 1-3 is variation 3 (interframe decompression storage method) of Example 1 (video one-stage proxy method).
  • FIG. 9 shows an example of a system configuration in Example 1-3. As shown in FIG. 9, an image frame storage section 160 is added to the configuration shown in FIG. Image frame storage section 160 may also be referred to as a "data storage section.”
  • a video stream continues to be sent from the camera/encoder 210 to the video proxy 105.
  • the video proxy 105 decodes the received video stream and continues to store the latest image frames in the image frame storage unit 160.
  • the image frame identifier for example, file name
  • the latest image may be always overwritten and saved.
  • the vehicle control system 220 on the vehicle device 200 and the control proxy 107 are connected by gRPC, which is a session-maintaining communication protocol, and Server Streaming RPC, that is, the server (control proxy 107 ) allows for push communication.
  • gRPC a session-maintaining communication protocol
  • Server Streaming RPC that is, the server (control proxy 107 ) allows for push communication.
  • Bidirectional communication is performed between the control proxy 107 and the video analysis APL 101/103 using HTTP/Rest, a protocol that establishes a connection each time communication occurs.
  • the video analysis APL 101/103 acquires the latest image frame from the image frame storage unit 160 at a desired cycle and performs video analysis on it.
  • the video analysis APL 101/103 notifies the control proxy 107 of the video analysis results as necessary.
  • the camera/encoder 210 continuously encodes video traffic using an interframe compression codec (H.264) and sends it to the video proxy 105 using RTP/UDP.
  • an interframe compression codec H.264
  • the video proxy 105 continuously decodes the received video stream and stores the latest image frame in the image frame storage unit 160. For example, if the frame rate of the received video stream is 50 fps, an image frame will be saved every 20 ms.
  • the video analysis APL 101 acquires the latest image frame at the time from the image frame storage unit 160, for example, at a cycle of 100 ms.
  • the video analysis APL 101 performs obstacle detection analysis on the image acquired in S503. Any algorithm may be used as the obstacle detection algorithm. As an example, an intra-image rectangle detection function using off-the-shelf technology (OpenCV) can be used. Here, the video analysis APL 101 recognizes that a rectangular object exists within the image.
  • OpenCV off-the-shelf technology
  • S505-S506 are the same as S105-S106.
  • the camera/encoder 210 continuously encodes video traffic using an interframe compression codec (H.264) and sends it to the video proxy 105 using RTP/UDP.
  • H.264 interframe compression codec
  • the video proxy 105 continuously decodes the received video stream and stores the latest image frame in the image frame storage unit 160. If the frame rate of the received video stream is 50 fps, an image frame will be saved every 20 ms.
  • the video analysis APL 101 continuously acquires image frames from the image frame storage unit 160 at a cycle of, for example, 100 ms, and executes video analysis.
  • the user instructs the system control unit 150 to increase the amount of resources of the video analysis APL 101 of the camera video related to a certain vehicle identifier (for example, ⁇ 2 CPU, 4 GB RAM ⁇ ⁇ ⁇ 4 CPU, 8 GB RAM ⁇ ).
  • a certain vehicle identifier for example, ⁇ 2 CPU, 4 GB RAM ⁇ ⁇ ⁇ 4 CPU, 8 GB RAM ⁇ .
  • the system control unit 150 newly generates a video analysis APL 103 with ⁇ 4 CPU, 8 GB RAM ⁇ together with the Pod.
  • the new video analysis APL 103 starts acquiring image frames (from the image frame storage unit 160) at a cycle of 50 ms, for example, and starts executing video analysis.
  • the system control unit 150 periodically views the log of the Pod of the new video analysis APL 103 and waits until the normal operation of the video analysis APL 103 can be confirmed. If you can wait, move on to the next step.
  • the system control unit 150 instructs the control proxy 107 to switch the video analysis APL.
  • control proxy 107 changes the communication partner of the vehicle control information to the new video analysis APL 103. That is, from now on, communication with the old video analysis APL 101 will not be accepted.
  • Example 2-1 is variation 1 (key frame securing method) of Example 2 (video two-stage proxy method).
  • FIG. 12 shows an example of a system configuration in Example 2-1. As shown in FIG. 12, the configuration of Example 2-1 has a configuration in which a video proxy 2a (109) and a video proxy 2b (111) are added to the configuration shown in FIG. That is, the virtualization infrastructure device 100 of the second embodiment includes three video proxies 105, 109, and 111 and one control proxy 107.
  • the three video proxies may be deployed on the same host (that is, the same computer) in the virtualization infrastructure device 100, or may be deployed on different hosts (that is, two or three different computers).
  • the video proxy may be configured in three or more stages. Even when the video proxy is configured in three or more stages, it is possible to deploy them on the same host.
  • a video stream continues to be sent from the camera/encoder 210 to the video proxy 1 (105). Further, the video proxy 1 (105) always continues to transmit the video stream to the video proxy 2a (109) and the video proxy 2b (111). The video proxy 2a (109) and the video proxy 2b (111) each relay the video stream to the video analysis APL that they are in charge of.
  • the vehicle control system 220 on the vehicle device 200 and the control proxy 107 are connected by gRPC, which is a session maintenance type communication protocol, and Server Streaming RPC, that is, the server (control proxy 107) is possible.
  • gRPC a session maintenance type communication protocol
  • Server Streaming RPC that is, the server (control proxy 107) is possible.
  • Bidirectional communication is performed between the control proxy 107 and the video analysis APL 101/103 using HTTP/Rest, a protocol that establishes a connection each time communication occurs.
  • the video analysis APL 101/103 decodes the received video stream and performs video analysis for each frame image.
  • the video analysis APL 101/103 notifies the control proxy 107 of the video analysis results as necessary.
  • the camera/encoder 210 continuously encodes video traffic using an interframe compression codec (H.264) and transmits it to the video proxy 1 (105) using RTP/UDP.
  • an interframe compression codec H.264
  • the video proxy 1 (105) continuously rewrites the IP header of the RTP/UDP packet received from the camera/encoder 210 and sends it to the video proxy 2a (109) and the video analysis proxy 2b (111). and resend.
  • the video proxy 2a (109) continuously rewrites the IP header of the RTP packet received from the video proxy 1 (105) and retransmits it to the video analysis APL 101. Note that at this time, the video proxy 2b (111) discards the RTP packet received from the video proxy 1 (105).
  • S704 to S707 are the same as S103 to S106 in Example 1-1 (FIG. 5).
  • the camera/encoder 210 continuously encodes video traffic using an interframe compression codec (H.264) and transmits it to the video proxy 1 (105) using RTP/UDP.
  • H.264 interframe compression codec
  • the video proxy 1 (105) continuously rewrites the IP header of the RTP/UDP packet received from the camera/encoder 210 and sends it to the video proxy 2a (109) and the video analysis proxy 2b (111). and resend.
  • the video proxy 2a (109) continuously rewrites the IP header of the RTP packet received from the video proxy 1 (105) and retransmits it to the video analysis APL 101. Note that at this time, the video proxy 2b (111) discards the RTP packet received from the video proxy 1 (105).
  • the user instructs the system control unit 150 to increase the resource amount of the video analysis APL of the camera video related to a certain vehicle identifier (for example, ⁇ 2 CPU, 4 GB RAM ⁇ ⁇ ⁇ 4 CPU, 8 GB RAM ⁇ ).
  • a certain vehicle identifier for example, ⁇ 2 CPU, 4 GB RAM ⁇ ⁇ ⁇ 4 CPU, 8 GB RAM ⁇ .
  • the system control unit 150 newly generates the video analysis APL 103 and Pod, which are ⁇ 4 CPU, 8 GB RAM ⁇ .
  • the system control unit 150 periodically views the log of the newly generated Pod of the video analysis APL 103 and waits until normal operation of the video analysis APL 103 can be confirmed. Once you have confirmed normal operation, proceed to the next step.
  • the system control unit 150 notifies the video proxy 2b (111) that it will start retransmitting the video to the new video analysis APL 103, which is in charge of it, from the arrival of the next key frame, and Proxy 2b (111) waits.
  • the video proxy 2b (111) After S807, in S808, if the video proxy 2b (111) receives the key frame first, the video proxy 2b (111) notifies the system control unit 150 of the arrival of the key frame, and also sends an RTP containing the key frame. /Starts retransmission of the UDP packet to the new video analysis APL 103.
  • the video proxy 2b (111) needs to determine whether or not the received video data is a key frame.
  • H Since the format of the RTP payload of the H.264 video stream is specified in IETF RFC 6184, key frames can be determined according to the specification. Specifically, if the value of the NAL Unit Header stored at the beginning of the RTP payload is 5, it is determined that the data is a key frame.
  • the system control unit 150 instructs the control proxy 107 to switch the video analysis APL.
  • control proxy 107 changes the communication partner of the vehicle control information to the Pod of the new video analysis APL 103. That is, from now on, communication with the Pod of the old video analysis APL 101 will not be accepted.
  • Example 2-2 is variation 2 (interframe decompression method) of Example 2 (video two-stage proxy method).
  • the system configuration of Example 2-2 is the same as that of Example 2-1, and is as shown in FIG. 12.
  • the camera/encoder 210 continuously encodes video traffic using an interframe compression codec (H.264) and transmits it to the video proxy 1 (105) using RTP/UDP.
  • H.264 interframe compression codec
  • the video proxy 1 (105) continuously decodes the RTP/UDP packets received from the camera/encoder 210. Furthermore, the decoded video is re-encoded using an interframe non-compression codec (such as MJPEG). Furthermore, the re-encoded video data is packetized and retransmitted to the video proxy 2a (109) and the video proxy 2b (111). Subsequent steps S904 to S907 are the same as steps S703 to S707 in Example 2-1.
  • an interframe non-compression codec such as MJPEG
  • the camera/encoder 210 continuously encodes video traffic using an interframe compression codec (H.264) and transmits it to the video proxy 1 (105) using RTP/UDP.
  • H.264 interframe compression codec
  • the video proxy 1 (105) continuously decodes the RTP/UDP packets received from the camera/encoder 210. Furthermore, the decoded video is re-encoded using an interframe non-compression codec (MJPEG, etc.). Furthermore, the re-encoded video data is packetized and retransmitted to the video proxy 2a (109) and the video proxy 2b (111).
  • MJPEG interframe non-compression codec
  • the video proxy 2a (109) continuously rewrites the IP header of the RTP packet received from the video proxy 1 (105) and retransmits it to the video analysis APL 101. Note that at this time, the video proxy 2b (111) discards the RTP packet received from the video proxy 1 (105).
  • the user instructs the system control unit 150 to increase the resource amount of the video analysis APL of the camera video related to a certain vehicle identifier (for example, ⁇ 2 CPU, 4 GB RAM ⁇ ⁇ ⁇ 4 CPU, 8 GB RAM ⁇ ).
  • a certain vehicle identifier for example, ⁇ 2 CPU, 4 GB RAM ⁇ ⁇ ⁇ 4 CPU, 8 GB RAM ⁇ .
  • the system control unit 150 newly generates the video analysis APL 103 and Pod, which are ⁇ 4 CPU, 8 GB RAM ⁇ .
  • the system control unit 150 periodically views the log of the Pod of the new video analysis APL 103 and waits until normal operation of the video analysis APL 103 can be confirmed. Once you have confirmed normal operation, proceed to the next step.
  • the system control unit 150 instructs the video proxy 2b (111) to start retransmitting the video to the new video analysis APL 103 that is in charge of it. At the same time, it instructs the control proxy 107 to switch to the new video analysis APL 103.
  • the video proxy 2b (111) transmits the next RTP/UDP packet to the new video analysis APL 103.
  • this packet is a packetized packet of video data that has been re-encoded using an interframe non-compression codec.
  • control proxy 107 changes the communication partner of the vehicle control information to the new video analysis APL 103. That is, from now on, communication with the old video analysis APL 101 will not be accepted.
  • the virtualization infrastructure device 100 can be realized by having one or more computers execute a program.
  • This computer may be a physical computer or a virtual machine.
  • the virtualization infrastructure device 100 can be realized by using hardware resources such as a CPU and memory built into a computer to execute a program corresponding to the processing performed by the virtualization infrastructure device 100. It is.
  • the above program can be recorded on a computer-readable recording medium (such as a portable memory) and can be stored or distributed. It is also possible to provide the above program through a network such as the Internet or e-mail.
  • FIG. 17 is a diagram showing an example of the hardware configuration of the computer.
  • the computer in FIG. 17 includes a drive device 1000, an auxiliary storage device 1002, a memory device 1003, a CPU 1004, an interface device 1005, a display device 1006, an input device 1007, an output device 1008, etc., which are connected to each other by a bus B.
  • a program that realizes processing on the computer is provided, for example, on a recording medium 1001 such as a CD-ROM or a memory card.
  • a recording medium 1001 such as a CD-ROM or a memory card.
  • the program is installed from the recording medium 1001 to the auxiliary storage device 1002 via the drive device 1000.
  • the program does not necessarily need to be installed from the recording medium 1001, and may be downloaded from another computer via a network.
  • the auxiliary storage device 1002 stores installed programs as well as necessary files, data, and the like.
  • the memory device 1003 reads and stores the program from the auxiliary storage device 1002 when there is an instruction to start the program.
  • the CPU 1004 implements functions related to the virtualization infrastructure device 100 according to programs stored in the memory device 1003.
  • the interface device 1005 is used as an interface for connecting to a network or the like.
  • a display device 1006 displays a GUI (Graphical User Interface) and the like based on a program.
  • the input device 1007 is composed of a keyboard, a mouse, buttons, a touch panel, or the like, and is used to input various operation instructions.
  • An output device 1008 outputs the calculation result.
  • this embodiment employs a synchronous traffic switching technique using a video proxy and a control proxy.
  • the amount of resources allocated to the server side APL e.g. video analysis APL
  • service interruptions or terminal application e.g. The need for reconnection processing of the vehicle control system can be suppressed.
  • a container-type server virtualization infrastructure with less processing overhead than a VM can be configured while minimizing the number of idle servers in operation.
  • stable continuation of services can be achieved while reducing costs.
  • Example 1-1 (Variation 1 (key frame securing method) of Example 1 (video one-stage proxy method)
  • the arrival of the beginning of the key frame in the video proxy is used as an opportunity for the video at the video retransmission destination to The analysis APL is to be changed. If this device is not used, the retransmission destination video analysis APL will switch from an intermediate packet of a key frame or a certain difference frame, and the new video analysis APL will correctly reconstruct the image frame until the next key frame arrives.
  • the problem is that it is not possible.
  • the invention in Example 1-1 has the effect of preventing this problem.
  • Example 1-2 (Variation 2 (interframe decompression distribution method) of Example 1 (video one-stage proxy method)
  • the codec of the received video is changed in the video proxy, and We decided to send the video encoded by the codec to the video analysis APL. Without this measure, problems similar to those described above will occur. However, this problem can be prevented by this technique.
  • Example 1-2 for each image frame constituting a video encoded by an interframe non-compression type codec, there is a possibility that the video analysis APL of the retransmission destination will be switched from an intermediate packet of this image frame. In that case, there is a problem that the new video analysis APL cannot reconstruct the image frame. However, this reconstruction failure event is limited to only one image frame. Further, in the embodiment 1-2, the key frame detection function in the embodiment 1-1 is not required, and there is an advantage that the implementation is simple.
  • Example 1-3 Variation 3 (inter-frame decompression storage method) of Example 1 (video one-stage proxy method)
  • the video proxy decodes the received video and stores the image frame in the storage unit.
  • the video analysis APL acquires this image frame as necessary. This idea has the effect of being able to prevent damage to one image frame, which was a constraint in Example 1-2.
  • Example 2-1 (Variation 1 (key frame securing method) of Example 2 (two-stage video proxy method)
  • the video proxy is configured in multiple stages. Specifically, a video proxy 1 (105) that first receives video from the camera/encoder 210 on the vehicle, a video proxy 2a (109), and a video proxy 2b (109) that retransmit video to the old/new video analysis APL, respectively. 111) exists.
  • Example 2-1 If the video proxy is implemented in such a way that it takes time to change the video retransmission destination, there is a problem in Embodiment 1-1 that service interruption will occur.
  • the start of video retransmission to the new video analysis APL can be carried out independently of the video retransmission to the old video analysis APL, so this problem can be prevented. be.
  • control device that receives data sent from the device; an application unit that receives the data retransmitted from the application proxy;
  • a control device comprising: a control proxy that receives a control request obtained based on processing of the data from the application unit and transmits a control instruction to the device.
  • control device After a new application section is generated in the control device, The control device according to appendix 1, wherein connection destinations of the application proxy and the control proxy are switched from the application unit to the new application unit in synchronization.
  • the control device according to Supplementary Note 2, wherein the connection destination of the application proxy and the control proxy is switched from the application section to the new application section when the application proxy receives specific data from the device.
  • the control device includes a plurality of proxies forming a plurality of stages.
  • the data transmitted from the device is encoded data encoded using a first method, and the application proxy decodes the encoded data received from the device and converts the decoded data into a first method different from the first method.
  • the control device according to Supplementary Note 1, wherein the control device re-encodes the data using two methods and transmits the re-encoded data to the application unit.
  • the data transmitted from the device is encoded data
  • the control device further includes a data storage unit
  • the application proxy decodes the encoded data received from the device and stores the decoded data in the data storage unit, and the application unit acquires the data from the data storage unit and performs analysis.
  • the control device according to item 1.
  • (Supplementary Note 7) A control method executed by a control device including an application proxy, an application unit, and a control proxy, the application proxy receiving data sent from a device; the application unit receiving the data retransmitted from the application proxy; A control method comprising: the control proxy receiving a control request obtained based on processing of the data from the application unit, and transmitting a control instruction to the device.
  • a non-temporary storage medium storing a program for causing a computer to function as the control device according to any one of Supplementary Notes 1 to 6.

Abstract

This control device comprises: an application proxy that receives data transmitted from a device; an application unit that receives the data retransmitted from the application proxy; and a control proxy that receives, from the application unit, a control request obtained on the basis of processing performed on the data, and transmits a control indication to the device.

Description

制御装置、制御方法、及びプログラムControl device, control method, and program
 本発明は、仮想化基盤において、アプリケーションを用いてサービスを提供する技術に関連するものである。 The present invention relates to technology for providing services using applications in a virtualization infrastructure.
 映像解析アプリケーションが、カメラを備える車両から映像データを受信し、当該映像データに基づいて、車両の自動運転等を制御する技術がある。 There is a technology in which a video analysis application receives video data from a vehicle equipped with a camera, and controls automatic driving of the vehicle based on the video data.
 当該技術では、膨大な数の車両を制御することが想定される。そのため、計算リソースの有効活用の観点から、個々の車両に対する映像解析アプリケーションを、必要に応じて仮想化基盤上で実行するとともに、車両の状況に応じて、映像解析アプリケーションに割り当てるリソース量を動的に変更することが想定される。 With this technology, it is assumed that a huge number of vehicles will be controlled. Therefore, from the perspective of effective use of computational resources, the video analysis application for each vehicle is executed on a virtualization platform as needed, and the amount of resources allocated to the video analysis application is dynamically adjusted depending on the vehicle situation. It is assumed that this will be changed to
 しかしながら、従来技術では、映像解析アプリケーションに割り当てるリソース量を変更する際に、映像情報の喪失やサービス断が発生するという課題があった。つまり、従来技術では、仮想化基盤において、映像解析アプリケーションに割り当てるリソース量を適切に変更できないという課題があった。 However, in the conventional technology, when changing the amount of resources allocated to a video analysis application, there was a problem in that video information was lost or service was interrupted. In other words, the conventional technology has a problem in that the amount of resources allocated to the video analysis application cannot be appropriately changed in the virtualization infrastructure.
 なお、上記の課題は、映像解析アプリケーションによる車両制御の分野に限定して生じるわけではなく、仮想化基盤において、アプリケーションのリソース割当量を変更する必要がある分野全般に生じ得る課題である。 Note that the above problem does not occur only in the field of vehicle control using video analysis applications, but can occur in any field where it is necessary to change the resource allocation amount of an application in a virtualization platform.
 本発明は上記の点に鑑みてなされたものであり、仮想化基盤において、アプリケーションのリソース割当量を適切に変更することを可能とする技術を提供することを目的とする。 The present invention has been made in view of the above points, and it is an object of the present invention to provide a technology that makes it possible to appropriately change the resource allocation amount of an application in a virtualization infrastructure.
 開示の技術によれば、デバイスから送信されたデータを受信するアプリケーションプロキシと、
 前記アプリケーションプロキシから再送信された前記データを受信するアプリケーション部と、
 前記アプリケーション部から、前記データに対する処理に基づき得られた制御要求を受信し、前記デバイスに対して制御指示を送信する制御プロキシと
 を備える制御装置が提供される。
According to the disclosed technology, an application proxy that receives data transmitted from a device;
an application unit that receives the data retransmitted from the application proxy;
A control device is provided, comprising: a control proxy that receives a control request obtained based on processing of the data from the application section and transmits a control instruction to the device.
 開示の技術によれば、仮想化基盤において、アプリケーションのリソース割当量を適切に変更することを可能とする技術が提供される。 According to the disclosed technology, a technology is provided that makes it possible to appropriately change the resource allocation amount of an application in a virtualization infrastructure.
ユースケースを説明するための図である。FIG. 3 is a diagram for explaining a use case. 課題を説明するための図である。FIG. 2 is a diagram for explaining a problem. 実施例1-1、1-2におけるシステム構成図である。FIG. 2 is a system configuration diagram in Examples 1-1 and 1-2. システム制御部の動作を説明するための図である。FIG. 3 is a diagram for explaining the operation of a system control unit. 実施例1-1におけるシーケンス図である。FIG. 3 is a sequence diagram in Example 1-1. 実施例1-1におけるシーケンス図である。FIG. 3 is a sequence diagram in Example 1-1. 実施例1-2におけるシーケンス図である。FIG. 3 is a sequence diagram in Example 1-2. 実施例1-2におけるシーケンス図である。FIG. 3 is a sequence diagram in Example 1-2. 実施例1-3におけるシステム構成図である。FIG. 3 is a system configuration diagram in Example 1-3. 実施例1-3におけるシーケンス図である。FIG. 3 is a sequence diagram in Example 1-3. 実施例1-3におけるシーケンス図である。FIG. 3 is a sequence diagram in Example 1-3. 実施例2-1、2-2におけるシステム構成図である。FIG. 3 is a system configuration diagram in Examples 2-1 and 2-2. 実施例2-1におけるシーケンス図である。FIG. 3 is a sequence diagram in Example 2-1. 実施例2-1におけるシーケンス図である。FIG. 3 is a sequence diagram in Example 2-1. 実施例2-2におけるシーケンス図である。FIG. 3 is a sequence diagram in Example 2-2. 実施例2-2におけるシーケンス図である。FIG. 3 is a sequence diagram in Example 2-2. 装置のハードウェア構成例を示す図である。It is a diagram showing an example of the hardware configuration of the device.
 以下、図面を参照して本発明の実施の形態(本実施の形態)を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。 Hereinafter, an embodiment of the present invention (this embodiment) will be described with reference to the drawings. The embodiments described below are merely examples, and embodiments to which the present invention is applied are not limited to the following embodiments.
 以下、本発明を、自動運転を行う車両に対する制御に適用する場合について説明するが、これは本発明の適用先の一例である。本発明は、自動運転を行う車両に対する制御に限らない様々な分野に適用可能である。 Hereinafter, a case will be described in which the present invention is applied to control of a vehicle that performs automatic driving, but this is an example of an application of the present invention. INDUSTRIAL APPLICATION This invention is applicable to various fields not only the control of the vehicle which performs automatic driving.
 (実施の形態で想定するユースケース)
 まず、本実施の形態において想定しているユースケースについて説明する。本実施の形態では、遠隔の拠点から、自動運転を行う車両に対して停止等の制御を行うことを想定している。ここでの車両は、特定の種類のものに限定されないが、例えばトラクタ、バスなどである。
(Use case assumed in the embodiment)
First, a use case assumed in this embodiment will be explained. In this embodiment, it is assumed that control such as stopping of an automatically driving vehicle is performed from a remote base. The vehicle here is not limited to a specific type, but includes, for example, a tractor, a bus, and the like.
 拠点としては、例えばエッジ拠点を想定する。エッジ拠点には、仮想化基盤装置が備えられる。仮想化基盤装置は、具体的には、1つ又は複数のコンピュータ(ホスト又はサーバホストと呼んでもよい)である。当該コンピュータは、物理マシンであってもよいし、仮想マシンであってもよい。仮想化基盤装置は制御を実施する装置であるので、これを「制御装置」と呼んでもよい。 For example, assume that the base is an edge base. The edge base is equipped with a virtualization infrastructure device. Specifically, the virtualization infrastructure device is one or more computers (which may also be called a host or a server host). The computer may be a physical machine or a virtual machine. Since the virtualization infrastructure device is a device that performs control, it may also be called a "control device."
 また、本実施の形態では、仮想化基盤装置におけるアプリケーションの運用管理に、コンテナベースのオーケストレーションツールであるKubernetes(登録商標)を使用することを想定している。Kubernetes(登録商標)では、Podと呼ばれる単位でアプリケーションがデプロイされる。デプロイされたアプリケーションはPod内でコンテナとして動作する。ただし、本発明に係る技術の適用先は、Kubernetes(登録商標)を使用した環境に限定されるわけではない。 Furthermore, in this embodiment, it is assumed that Kubernetes (registered trademark), which is a container-based orchestration tool, will be used for operational management of applications in the virtualization infrastructure device. In Kubernetes (registered trademark), applications are deployed in units called Pods. Deployed applications operate as containers within Pods. However, the application of the technology according to the present invention is not limited to environments using Kubernetes (registered trademark).
 図1に、本実施の形態に関連するシステムの構成例を示す。図1は、後述する映像プロキシ/制御プロキシを備えない構成を示している。図1に示すように、本システムは、仮想化基盤装置100と車両デバイス200を有する。車両デバイス200は、車両に備えられたデバイスであり、通信機能を含み、モバイル回線等によりネットワークに接続される。仮想化基盤装置100もネットワークに接続されており、車両デバイス200と仮想化基盤装置100は、当該ネットワークを介して通信可能である。車両デバイス200を「デバイス」と呼んでもよい。 FIG. 1 shows an example of the configuration of a system related to this embodiment. FIG. 1 shows a configuration that does not include a video proxy/control proxy, which will be described later. As shown in FIG. 1, this system includes a virtualization infrastructure device 100 and a vehicle device 200. The vehicle device 200 is a device installed in a vehicle, includes a communication function, and is connected to a network via a mobile line or the like. The virtualization infrastructure device 100 is also connected to a network, and the vehicle device 200 and the virtualization infrastructure device 100 can communicate via the network. Vehicle device 200 may also be referred to as a "device."
 図1に示すとおり、車両デバイス200は、カメラ/エンコーダ210(カメラとエンコーダ)、及び、車両制御システム220を搭載している。また、仮想化基盤装置100は、映像解析アプリケーション10を備える。以降、「アプリケーション」を「APL」と記述する。本実施の形態では、仮想化基盤装置100における各APLは、Pod内で動作する。以下では、1つのPodに1つのAPLが動作すると想定するが、1つのPodに複数のAPLが動作してもよい。 As shown in FIG. 1, the vehicle device 200 is equipped with a camera/encoder 210 (camera and encoder) and a vehicle control system 220. The virtualization infrastructure device 100 also includes a video analysis application 10. Hereinafter, the "application" will be referred to as "APL". In this embodiment, each APL in the virtualization infrastructure device 100 operates within a Pod. In the following, it is assumed that one APL operates on one Pod, but a plurality of APLs may operate on one Pod.
 なお、図1には、仮想化基盤装置100と通信する車両デバイス200が1つだけ示されているが、実際には複数台の車両(つまり、複数の車両デバイス200)が仮想化基盤装置100と通信する。 Although FIG. 1 shows only one vehicle device 200 communicating with the virtualization infrastructure device 100, in reality, multiple vehicles (that is, multiple vehicle devices 200) communicate with the virtualization infrastructure device 100. communicate with.
 仮想化基盤装置100における映像解析APL10は、車両(車両デバイス200)ごとに存在する。なお、仮想化基盤装置100と通信する車両(車両デバイス200)が1台だけの場合があってもよい。 A video analysis APL 10 in the virtualization infrastructure device 100 exists for each vehicle (vehicle device 200). Note that there may be a case where only one vehicle (vehicle device 200) communicates with the virtualization infrastructure device 100.
 カメラ/エンコーダ210は、H.264等のフレーム間圧縮をサポートする高圧縮コーデックにより、カメラ映像を符号化する。また、カメラ/エンコーダ210は、符号化した映像データを、RTP/UDP等の片方向通信により、仮想化基盤装置100の映像解析APL10に送信する。 The camera/encoder 210 is an H. The camera video is encoded using a high compression codec that supports interframe compression such as H.264. Further, the camera/encoder 210 transmits the encoded video data to the video analysis APL 10 of the virtualization infrastructure device 100 through one-way communication such as RTP/UDP.
 映像解析APL10は、カメラ/エンコーダ210から受信した映像データから映像をデコードし、当該映像の解析を行う。ここでいう映像の解析とは、カメラ画角内の障害物(歩行者など)検知、走行路内の横幅方向の走行位置ずれ検知などである。映像解析APL10は、解析結果を基にした判断による、車両制御データを車両制御システム220に送信する。制御の例としては、「歩行者検知のため緊急停止」、「走行位置ずれ補正のため、3秒間のみ進行方向を5度反時計回りに一時的変更」などがある。 The video analysis APL 10 decodes the video from the video data received from the camera/encoder 210 and analyzes the video. The video analysis referred to here includes detection of obstacles (pedestrians, etc.) within the camera field of view, detection of deviations in the running position in the width direction of the road, and the like. The video analysis APL 10 transmits vehicle control data determined based on the analysis results to the vehicle control system 220. Examples of control include "emergency stop due to pedestrian detection" and "temporary change in traveling direction 5 degrees counterclockwise for 3 seconds to correct travel position shift".
 車両制御システム220は、映像解析APL10から受信した車両制御データを元に、車両に対するアクチュエーションを行う。 The vehicle control system 220 performs actuation on the vehicle based on the vehicle control data received from the video analysis APL 10.
 本実施の形態に係るユースケースにおいては、特に以下の想定をする。なお、本発明に係る技術は下記の想定に限定されるわけではない。 In the use case according to this embodiment, the following assumptions are made in particular. Note that the technology according to the present invention is not limited to the following assumptions.
 ・収容する車両数は、10万台以上の大規模である。 ・The number of vehicles accommodated is large-scale, exceeding 100,000.
 ・車両は24時間365日動作状態にあるわけでは無く、随時、走行開始と停止を繰り返す。 ・Vehicles are not in operation 24 hours a day, 365 days a year, and repeatedly start and stop running at any time.
 ・映像解析APL10は、車両ごとに存在し、仮想化基盤装置100上にデプロイされる。特に、仮想化基盤装置100におけるコンピュータリソースを有効活用し、かつ起動/終了および動作時のオーバヘッドを低減させるため、ベアメタル・VMではなくコンテナ形式にてデプロイされる。 - The video analysis APL 10 exists for each vehicle and is deployed on the virtualization infrastructure device 100. In particular, in order to effectively utilize computer resources in the virtualization infrastructure device 100 and reduce startup/termination and operation overhead, it is deployed in a container format rather than a bare metal VM.
 ・車両の状況(走行位置/周囲状況・速度等)によって、映像解析APL10が必要とするリソース量(CPU数・メモリ量など)は変化する。 - The amount of resources (number of CPUs, amount of memory, etc.) required by the video analysis APL 10 changes depending on the vehicle situation (driving position/surrounding situation, speed, etc.).
 (要求条件)
 本ユースケースにおける要求条件は下記のとおりである。
(Requirements)
The requirements for this use case are as follows.
 ・仮想化基盤装置100側のリソースを有効活用するため、車両の走行開始/停止時のみ映像解析APL10用のリソースを確保し、映像解析APL10をデプロイする。 ・In order to effectively utilize the resources on the virtualization infrastructure device 100 side, resources for the video analysis APL 10 are secured only when the vehicle starts running/stops, and the video analysis APL 10 is deployed.
 ・仮想化基盤装置100側のリソースを有効活用するため、走行中の車両の状況に合わせて、映像解析APL10用のリソースを随時増減させる。 ・In order to effectively utilize the resources on the virtualization infrastructure device 100 side, the resources for the video analysis APL 10 are increased or decreased at any time according to the situation of the running vehicle.
 ・安全確保のため、走行中の車両用の映像解析APL10のリソース増減時においても、自動運転・遠隔監視サービスを一定時間以上瞬断させない。具体的には、瞬断時間が1秒を上回らない。 ・In order to ensure safety, automatic driving and remote monitoring services will not be momentarily interrupted for more than a certain period of time even when the resources of the video analysis APL 10 for a running vehicle are increased or decreased. Specifically, the instantaneous interruption time does not exceed 1 second.
 ・仮想化基盤装置100側の管理コスト・電力配電コストを削減するため、仮想化基盤装置100上の映像解析APL10が動作中である実サーバ台数を最小化する。 - In order to reduce management costs and power distribution costs on the virtualization infrastructure device 100 side, the number of real servers on which the video analysis APL 10 on the virtualization infrastructure device 100 is operating is minimized.
 (従来技術を本ユースケースに用いた場合の問題点)
 上述したユースケースにおける要求条件を満たすシステムを実現するために、従来技術を使用することが考えられる。しかし、以下で説明するように、従来技術には問題があるため、従来技術のみでは、上述したユースケースにおける要求条件を満たすシステムを実現することができない。
(Problems when using conventional technology for this use case)
It is conceivable to use conventional techniques to realize a system that satisfies the requirements in the use case described above. However, as explained below, there are problems with the conventional techniques, and therefore it is not possible to realize a system that satisfies the requirements of the above-mentioned use cases using only the conventional techniques.
 なお、以下で参照する文献に開示された技術は公知であるが、文献に開示された技術の活用の説明、文献に開示された技術の組み合わせにより想定される技術の説明、文献に開示された技術による効用の説明、問題点についての説明、などは公知ではない。 Although the technologies disclosed in the documents referred to below are publicly known, explanations of the utilization of the technologies disclosed in the documents, explanations of technologies envisioned by the combination of technologies disclosed in the documents, and explanations of the technologies disclosed in the documents are provided. Explanations of the benefits of technology, explanations of problems, etc. are not publicly known.
 非特許文献2には、VMベースのサーバ仮想化基盤において、VM間のライブマイグレーションを行う技術が開示されている。ライブマイグレーションとは、APLが動作中のVMのステート(ディスク・メモリ内容など)を新たなVMにコピーし、動作を継続する技術である。この技術を活用することにより、APLの必要リソースが変化した際に、新たなVMを立ち上げ、ステートを旧VMから新VMにコピーし、継続的にサービス提供することが考えられる。 Non-Patent Document 2 discloses a technique for performing live migration between VMs in a VM-based server virtualization infrastructure. Live migration is a technology in which APL copies the state (disk memory contents, etc.) of a VM in operation to a new VM and continues operation. By utilizing this technology, when the required resources of APL change, it is possible to start up a new VM, copy the state from the old VM to the new VM, and continuously provide services.
 しかしながら、VMベースのサーバ仮想化基盤、及び当該基盤におけるライブマイグレーション技術を本ユースケースに用いた場合、以下の2つの問題がある。 However, when using a VM-based server virtualization platform and live migration technology on the platform for this use case, there are the following two problems.
 ・VMはコンテナと比較して動作/終了時の待機時間が長い。また、HWエミュレーション等により動作中の処理オーバヘッドが大きい。 ・VM has a longer waiting time when running/terminating compared to containers. Furthermore, processing overhead during operation is large due to HW emulation and the like.
 ・ライブマイグレーションにおいては、数秒程度の瞬断が発生する。 ・During live migration, a momentary interruption of about a few seconds occurs.
 非特許文献1には、コンテナベースのサーバ仮想化基盤であるKubernetes(登録商標)が開示されている。Kubernetes(登録商標)にはコンテナ形式APLのオーケストレーションを行う機能があり、Topology Manager等の機能により、デプロイAPLに対してリソースの割当を行うことが出来る。また、非特許文献3には、Kubernetes(登録商標)におけるデプロイAPL(APLのデプロイ単位をPodと呼ぶ)に対して、代表識別子(例: Master NodeのIPアドレス・ポート番号)を宛先とする端末発通信のリクエストパケットを転送する技術が示されている。これら技術を活用することにより、APLの必要リソースが変化した時に、新たなPodを立ち上げ、代表識別子宛ての通信を新Podに振り分けることが考えられる。 Non-Patent Document 1 discloses Kubernetes (registered trademark), which is a container-based server virtualization infrastructure. Kubernetes (registered trademark) has a function to orchestrate container-format APLs, and functions such as Topology Manager can allocate resources to deployed APLs. Additionally, in Non-Patent Document 3, for a deployment APL in Kubernetes (registered trademark) (the unit of APL deployment is called a Pod), a terminal whose destination is a representative identifier (e.g. Master Node IP address/port number) Techniques for forwarding request packets for outgoing communications are shown. By utilizing these techniques, it is possible to launch a new Pod and distribute communications addressed to the representative identifier to the new Pod when the required resources of the APL change.
 非特許文献1に示されるKubernetes(登録商標)を使用することによって、以下の効用がある。 By using Kubernetes (registered trademark) shown in Non-Patent Document 1, there are the following benefits.
 ・コンテナはVM及びベアメタルに比べて動作/終了時の待機時間が短く、またVMに比べてHWエミュレーションなどによる動作中の処理オーバヘッドが小さい。 ・Compared to VM and bare metal, containers have shorter waiting time during operation/termination, and compared to VM, the processing overhead due to HW emulation during operation is smaller.
 しかしながら、従来技術1と組み合わせて非特許文献3を本ユースケースに用いた場合、以下の2点の問題がある。 However, when Non-Patent Document 3 is used in this use case in combination with Prior Art 1, there are the following two problems.
 ・旧Podと新Podとの間でステートが引き継がれないため、車両デバイス-映像解析APL間のgRPCセッションを再度接続する必要があり、再接続のための車両デバイス側ソフトウェアが複雑になる。 - Since the state is not inherited between the old Pod and the new Pod, it is necessary to reconnect the gRPC session between the vehicle device and the video analysis APL, and the vehicle device side software for reconnection becomes complicated.
 ・旧Podと新Podとの間でステートが引き継がれないため、旧Pod側APLのメモリ上に保存されていた、H.264などのフレーム間圧縮をサポートする高圧縮コーデックのキーフレーム情報が引き継げないため、次のキーフレーム到着までの映像フレームを正しく再構築出来ない。 - Since the state is not inherited between the old Pod and the new Pod, the H. Since the key frame information of a high compression codec that supports interframe compression such as H.264 cannot be inherited, it is not possible to correctly reconstruct the video frames up to the arrival of the next key frame.
 非特許文献4には、Kubernetes(登録商標)を開発するOSSコミュニティにおける、KEP(Kubernetes Enhancement Proposal)の一つである、Pod動作中の動的なリソース割当量変更機能の提案が開示されている。この技術、及び非特許文献1に開示された技術を活用することにより、APLの動作を停止すること無く、サーバホスト(APLが動作しているコンピュータ)の残リソース量の範囲で、Podの割当リソース量の変更が可能である。 Non-Patent Document 4 discloses a proposal for a dynamic resource allocation change function during Pod operation, which is one of the KEP (Kubernetes Enhancement Proposals) in the OSS community that develops Kubernetes (registered trademark). . By utilizing this technology and the technology disclosed in Non-Patent Document 1, Pods can be allocated within the remaining resource amount of the server host (the computer on which APL is running) without stopping the operation of APL. It is possible to change the amount of resources.
 しかしながら、非特許文献1の技術と組み合わせて非特許文献4の技術を本ユースケースに用いた場合、以下の問題がある。 However, when the technology of Non-Patent Document 4 is used in this use case in combination with the technology of Non-Patent Document 1, there are the following problems.
 ・異なるサーバホスト間でのPod移設が不可能であるため、当該ホストにてリソースの残量が枯渇した場合、割当リソース量の増加が出来ない。 - Since it is not possible to relocate Pods between different server hosts, if the remaining amount of resources on the host is exhausted, the amount of allocated resources cannot be increased.
 ・異なるサーバホスト間でのPod移設が不可能であるため、システム全体の消費リソース量が減少した際に、使用サーバホストのマージが出来ない。 - Since it is impossible to relocate Pods between different server hosts, it is not possible to merge the used server hosts when the amount of consumed resources of the entire system decreases.
 従来技術でリソース割当量変更を実現するには、リソースが不足したPod(旧Pod)の利用を停止し、所望のリソース量を持った新たにPod(新Pod)を生成することが考えられるが、その場合、旧Podの消滅(利用停止)から新Pod利用開始まで10秒程度の間隔があいてしまい、要求条件を満たすことができない。 In order to change the resource allocation using conventional technology, it is conceivable to stop using a Pod (old Pod) that lacks resources and generate a new Pod (new Pod) with the desired amount of resources. In that case, there will be an interval of about 10 seconds between the disappearance (stopping of use) of the old Pod and the start of use of the new Pod, making it impossible to satisfy the required conditions.
 図2に、従来技術を本ユーザケースに用いることを想定した場合に生じる上述した問題点をまとめたものを示す。 FIG. 2 shows a summary of the above-mentioned problems that occur when the conventional technology is assumed to be used for this user case.
 (実施の形態の概要)
 本実施の形態では、車両に配備されるカメラ/エンコーダ210および車両制御システム220と、仮想化基盤装置100に具備される映像解析APLとの間にプロキシ機能を配備する。これにより、映像解析APLの新Pod起動および旧Pod終了を隠蔽すると共に、旧-新Podの間でメモリ内容などのステートが引き継がれないことに起因する問題が解決される。
(Summary of embodiment)
In this embodiment, a proxy function is provided between the camera/encoder 210 and vehicle control system 220 installed in the vehicle and the video analysis APL provided in the virtualization infrastructure device 100. This hides the activation of a new Pod and the termination of the old Pod of the video analysis APL, and solves the problem caused by states such as memory contents not being inherited between the old and new Pods.
 具体的には、新Podの生成時及び旧Podの終了時に車両デバイス200が終端するメッセージングセッションを切れないようにできる。また、映像の切り替えタイミング制御あるいはコーデック変換によりフレーム情報の喪失を防ぐことができる。 Specifically, it is possible to prevent the messaging session that is terminated by the vehicle device 200 from being disconnected when a new Pod is generated or when an old Pod is terminated. Furthermore, loss of frame information can be prevented by video switching timing control or codec conversion.
 以下、本実施の形態に係る構成及び動作を、実施例1、2を用いて詳細に説明する。具体的には下記の実施例1-1~実施例2-2について順に説明をする。 Hereinafter, the configuration and operation according to this embodiment will be explained in detail using Examples 1 and 2. Specifically, Examples 1-1 to 2-2 below will be explained in order.
 (1)実施例1-1:実施例1(映像1段プロキシ方式)のバリエーション1(キーフレーム確保方式)
 (2)実施例1-2:実施例1(映像1段プロキシ方式)のバリエーション2(フレーム間圧縮解除配信方式)
 (3)実施例1-3:実施例1(映像1段プロキシ方式)のバリエーション3(フレーム間圧縮解除保存方式)
 (4)実施例2-1:実施例2(映像2段プロキシ方式)のバリエーション1(キーフレーム確保方式)
 (5)実施例2-2:実施例2(映像2段プロキシ方式)のバリエーション2(フレーム間圧縮解除方式)
 (実施例1-1)
 まず、実施例1-1を説明する。実施例1-1は、実施例1(映像1段プロキシ方式)のバリエーション1(キーフレーム確保方式)である。図3に、実施例1-1におけるシステム構成例を示す。図1を参照して説明した構成と異なる構成を主に説明する。
(1) Example 1-1: Variation 1 (key frame securing method) of Example 1 (video one-stage proxy method)
(2) Example 1-2: Variation 2 (interframe decompression distribution method) of Example 1 (video one-stage proxy method)
(3) Example 1-3: Variation 3 (interframe decompression storage method) of Example 1 (video one-stage proxy method)
(4) Example 2-1: Variation 1 (key frame securing method) of Example 2 (video two-stage proxy method)
(5) Example 2-2: Variation 2 (interframe decompression method) of Example 2 (video two-stage proxy method)
(Example 1-1)
First, Example 1-1 will be explained. Example 1-1 is variation 1 (key frame securing method) of Example 1 (video one-stage proxy method). FIG. 3 shows an example of a system configuration in Example 1-1. A description will mainly be given of a configuration that is different from the configuration described with reference to FIG.
 図3に示すように、実施例1-1のシステムにおいて、仮想化基盤装置100に、各車両デバイス200に対して1つの映像プロキシ105と、1つの制御プロキシ107が備えられる。なお、映像プロキシは「アプリケーションプロキシ」の例である。 As shown in FIG. 3, in the system of Example 1-1, the virtualization infrastructure device 100 is equipped with one video proxy 105 and one control proxy 107 for each vehicle device 200. Note that the video proxy is an example of an "application proxy."
 また、図3には、切り替え前の映像解析APL101と、切り替え後の映像解析APL103が示されている。なお、切り替え前の映像解析APL101を「旧映像解析APL101」と記述し、切り替え後の映像解析APL103を「新映像解析APL103」と記述する場合がある。 Further, FIG. 3 shows the video analysis APL 101 before switching and the video analysis APL 103 after switching. Note that the video analysis APL 101 before switching may be described as "old video analysis APL 101", and the video analysis APL 103 after switching may be described as "new video analysis APL 103".
 各プロキシ及び各APLは、ワーカーノード(図では「worker」と記載)上でPod内のコンテナとして動作する。本実施の形態では、各プロキシは1つのワーカーノード上で動作し、各APLも1つのワーカーノード上で動作する場合の例を示している。ただし、1つのワーカーノードの中に複数のプロキシや複数のAPLが存在してもよい。ワーカーノードは、物理マシンでもよいし、仮想マシンでもよい。 Each proxy and each APL operates as a container within a Pod on a worker node (described as "worker" in the figure). In this embodiment, each proxy operates on one worker node, and each APL also operates on one worker node. However, multiple proxies and multiple APLs may exist in one worker node. A worker node may be a physical machine or a virtual machine.
 また、仮想化基盤装置100には、システム制御部150が備えられる。なお、システム制御部150は、仮想化基盤装置100の外部に備えられていてもよい。ここでは、仮想化基盤装置100内にシステム制御部150が備えられていると想定する。 Additionally, the virtualization infrastructure device 100 is equipped with a system control unit 150. Note that the system control unit 150 may be provided outside the virtualization infrastructure device 100. Here, it is assumed that the system control unit 150 is provided within the virtualization infrastructure device 100.
 システム制御部150は、例えば、Kubernetes(登録商標)のマスターノードの機能を含み、ユーザ(例:ユーザ端末、車両デバイス200)からの指示に基づいて、所望のリソース量を割り当てたPod(つまり、APL)を生成することができる。 The system control unit 150 includes, for example, the function of a Kubernetes (registered trademark) master node, and is configured to assign a desired amount of resources to Pods (i.e., APL) can be generated.
 システム制御部150の機能の例を、図4を参照して説明する。図4の例において、ワーカーノード上のPod12内で動作している映像解析APL13のリソース量が、処理量に比べて不足してきたとする。このとき、ユーザが、システム制御部150に対して、所望のリソース量を使用する新たな映像解析APL16の生成を指示すると、システム制御部150は、十分なリソース量を持つワーカーノード14上で、Pod15と映像解析APL16を生成する。なお、ワーカーノード11の残りリソース量に十分な余裕がある場合には、結果としてワーカーノード11上でPod15を生成しても良い。 An example of the functions of the system control unit 150 will be described with reference to FIG. 4. In the example of FIG. 4, it is assumed that the resource amount of the video analysis APL 13 operating in the Pod 12 on the worker node has become insufficient compared to the processing amount. At this time, when the user instructs the system control unit 150 to generate a new video analysis APL 16 that uses a desired amount of resources, the system control unit 150 generates a new image analysis APL 16 on the worker node 14 that has a sufficient amount of resources. Generate Pod 15 and video analysis APL 16. Note that if the worker node 11 has a sufficient amount of remaining resources, the Pod 15 may be generated on the worker node 11 as a result.
 上述のように、APLはPod単位で生成(デプロイ)され、APLはPod上で動作するが、以降の図及び説明では、記載の便宜上、Podを明示的には記載しない場合がある。なお、アプリケーションが動作するPodを「アプリケーション部」と呼んでもよい。 As described above, APL is generated (deployed) in units of Pods, and APLs operate on Pods; however, in the following figures and explanations, Pods may not be explicitly described for convenience of description. Note that a Pod on which an application operates may be referred to as an "application unit."
 図3に示す実施例1-1の構成において、車両の動作中は、常に車両デバイス200のカメラ/エンコーダ210から映像プロキシ105に対して映像ストリームが送信され続ける。映像プロキシ105は、映像解析APL101(切り替え後は映像解析APL103)に対して映像ストリームを中継する。 In the configuration of Example 1-1 shown in FIG. 3, a video stream continues to be transmitted from the camera/encoder 210 of the vehicle device 200 to the video proxy 105 while the vehicle is in operation. The video proxy 105 relays the video stream to the video analysis APL 101 (after switching, the video analysis APL 103).
 車両デバイス200における車両制御システム220と、仮想化基盤装置100における制御プロキシ107との間は、セッション維持型の通信プロトコルであるgRPCにより接続され、Server Streaming RPC、すなわちサーバ(ここでは制御プロキシ107)からのプッシュ通信が可能な形態となる。制御プロキシ107と映像解析APL101(切り替え後は映像解析APL103)は、双方向それぞれ、HTTP/Restによる、通信の都度コネクション確立を行うプロトコルで通信を行う。 The vehicle control system 220 in the vehicle device 200 and the control proxy 107 in the virtualization infrastructure device 100 are connected by gRPC, which is a session maintenance type communication protocol, and Server Streaming RPC, that is, the server (control proxy 107 here) is used. This form allows push communication from. The control proxy 107 and the video analysis APL 101 (after switching, the video analysis APL 103) communicate in both directions using HTTP/Rest, a protocol that establishes a connection each time the communication occurs.
 上記のようなプロトコルを使用する理由は、下記の(1)~(3)のとおりである。 The reasons for using the above protocol are as follows (1) to (3).
 (1)車両制御システム220-制御プロキシ107間の通信は、WANを経由するため高遅延であり、通信にかかる時間を節約するためには、通信の都度のコネクション確立処理を省略できることが望ましい;
 (2)制御プロキシ107-映像解析APL101/103間は同一データセンタ内で低遅延である;
 (3)映像解析APL101/103の再起動時のコネクション再接続を不要とする。
(1) Communication between the vehicle control system 220 and the control proxy 107 involves a high delay because it goes through the WAN, and in order to save the time required for communication, it is desirable to be able to omit connection establishment processing each time communication occurs;
(2) Low delay between control proxy 107 and video analysis APL 101/103 within the same data center;
(3) There is no need to reconnect the connection when restarting the video analysis APL 101/103.
 映像解析APL101/103は、映像プロキシ105から受信した映像ストリームをデコードし、1フレーム画像ごとに映像解析を行う。映像解析APL101/103は、映像解析の結果を、必要に応じて制御プロキシ107に通知する。 The video analysis APL 101/103 decodes the video stream received from the video proxy 105 and performs video analysis for each frame image. The video analysis APL 101/103 notifies the control proxy 107 of the video analysis results as necessary.
 続いて、下記の(a)、(b)のそれぞれの場合についてのシステムの動作を、シーケンス図を参照して説明する。 Next, the operation of the system in each of the following cases (a) and (b) will be explained with reference to sequence diagrams.
 (a)カメラ映像を映像解析APL101が解析し、障害物を検知した場合に映像解析APL101が車両制御システム220に対して緊急停止を指示する場合
 (b)車両走行中に映像解析APLのリソース割当量を{2CPU,4GB RAM}から{4CPU,8GB RAM}に増加させる処理を行う場合
 まず、上記の(a)の場合の動作を図5のシーケンス図を参照して説明する。
(a) When the video analysis APL 101 analyzes the camera video and instructs the vehicle control system 220 to make an emergency stop when an obstacle is detected (b) Resource allocation of the video analysis APL while the vehicle is running When performing processing to increase the amount from {2 CPU, 4 GB RAM} to {4 CPU, 8 GB RAM} First, the operation in case (a) above will be described with reference to the sequence diagram of FIG. 5.
 S101において、カメラ/エンコーダ210は継続的に、映像トラフィックをフレーム間圧縮コーデック(H.264)により符号化し、RTP/UDPにより映像プロキシ105に送信している。 At S101, the camera/encoder 210 continuously encodes video traffic using an interframe compression codec (H.264) and sends it to the video proxy 105 using RTP/UDP.
 S102において、映像プロキシ105は継続的に、カメラ/エンコーダ210から受信したRTP/UDPパケットに対して、IPヘッダを書き換えて映像解析APL101に対して再送信する。 In S102, the video proxy 105 continuously rewrites the IP header of the RTP/UDP packet received from the camera/encoder 210 and retransmits it to the video analysis APL 101.
 S103において、映像解析APL101は、受信した複数のRTP/UDPパケットをバッファに取り込み、1フレーム分の画像を再構成する。 In S103, the video analysis APL 101 captures the plurality of received RTP/UDP packets into a buffer and reconstructs one frame worth of image.
 S104において、映像解析APL101は、1フレーム分の画像に対して障害物検知解析を行う。障害物検知のアルゴリズムとしてはどのようなアルゴリズムを使用してもよい。一例として、市中技術(OpenCV)を用いた画像内矩形検出機能を用いることができる。ここでは、画像内に矩形物体が存在することを、映像解析APL101が認識する。 In S104, the video analysis APL 101 performs obstacle detection analysis on one frame of the image. Any algorithm may be used as the obstacle detection algorithm. As an example, an intra-image rectangle detection function using off-the-shelf technology (OpenCV) can be used. Here, the video analysis APL 101 recognizes that a rectangular object exists within the image.
 S105において、映像解析APL101は、制御プロキシ107に対して、HTTP/REST APIをコールすることにより、車両制御システム220への緊急停止指示を要求する。 In S105, the video analysis APL 101 requests the control proxy 107 to issue an emergency stop instruction to the vehicle control system 220 by calling the HTTP/REST API.
 S106において、制御プロキシ107は、車両デバイス200上の車両制御システム220に対して、確立済みのgRPCコネクションを使用してサーバプッシュにて緊急停止を指示する。 In S106, the control proxy 107 instructs the vehicle control system 220 on the vehicle device 200 to perform an emergency stop using a server push using the established gRPC connection.
 次に、上記の(b)の場合の動作を図6のシーケンス図を参照して説明する。 Next, the operation in case (b) above will be explained with reference to the sequence diagram of FIG. 6.
 S201において、カメラ/エンコーダ210は継続的に、映像トラフィックをフレーム間圧縮コーデック(H.264)により符号化し、RTP/UDPにより映像プロキシ105に送信している。 In S201, the camera/encoder 210 continuously encodes video traffic using an interframe compression codec (H.264) and sends it to the video proxy 105 using RTP/UDP.
 S202において、映像プロキシ105は継続的に、カメラ/エンコーダ210から受信したRTP/UDPパケットに対して、IPヘッダを書き換えて映像解析APL101に対して再送信する。 In S202, the video proxy 105 continuously rewrites the IP headers of the RTP/UDP packets received from the camera/encoder 210 and retransmits them to the video analysis APL 101.
 S203において、ユーザが、システム制御部150に対して、ある車両識別子にかかるカメラ映像の映像解析APLのリソース量の増加(例えば、{2CPU,4GB RAM}→{4CPU,8GB RAM})を指示する。 In S203, the user instructs the system control unit 150 to increase the resource amount of the video analysis APL of the camera video related to a certain vehicle identifier (for example, {2 CPU, 4 GB RAM} → {4 CPU, 8 GB RAM}). .
 S204において、システム制御部150は、{4CPU,8GB RAM}である映像解析APL103をPodとともに新たに生成する。 In S204, the system control unit 150 newly generates a video analysis APL 103 with {4 CPU, 8 GB RAM} together with the Pod.
 S205において、システム制御部150は、新映像解析APL103のPodのログを定期的に閲覧し、映像解析APL103の正常動作を確認できるまで待機する。正常動作を確認できたら次に進む。 In S205, the system control unit 150 periodically views the log of the Pod of the new video analysis APL 103 and waits until normal operation of the video analysis APL 103 can be confirmed. Once you have confirmed normal operation, proceed to the next step.
 S206において、システム制御部150は、映像プロキシ105に対して、次のキーフレーム到着時に映像再送信先を変更する旨を通知し、映像プロキシ105は待機する。 In S206, the system control unit 150 notifies the video proxy 105 that the video retransmission destination will be changed when the next key frame arrives, and the video proxy 105 waits.
 映像プロキシ105がS206以降で最初のキーフレームを受信した場合、S207において、映像プロキシ105はシステム制御部150にキーフレーム到着の旨を通知すると共に、当該キーフレームを含むRTP/UDPパケットの映像解析APL101への再送信を抑止する。 When the video proxy 105 receives the first key frame after S206, in S207, the video proxy 105 notifies the system control unit 150 of the arrival of the key frame, and performs video analysis of the RTP/UDP packet containing the key frame. Retransmission to APL 101 is suppressed.
 上記のとおり、映像プロキシ105は、受信した映像データについて、それがキーフレームであるか否かを判断する必要がある。H.264映像ストリームのRTPペイロードのフォーマットは、IETF RFC 6184に規定されているので、その規定に従ってキーフレームを判別することができる。具体的には、RTPペイロードの先頭に格納されるNAL Unit Headerの値が5であった場合に、当該データはキーフレームのものであると判断できる。 As mentioned above, the video proxy 105 needs to determine whether the received video data is a key frame or not. The format of the RTP payload of an H.264 video stream is specified in IETF RFC 6184, so key frames can be identified according to this specification. Specifically, if the value of the NAL Unit Header stored at the beginning of the RTP payload is 5, the data can be determined to be a key frame.
 S208において、システム制御部150は、映像プロキシ105と制御プロキシ107両方に対して、同時に映像解析APLの切り替えを指示する。つまり、接続先を映像解析APL101から映像解析APL103へ切り替えることを指示する。 In S208, the system control unit 150 instructs both the video proxy 105 and the control proxy 107 to switch the video analysis APL at the same time. In other words, an instruction is given to switch the connection destination from the video analysis APL 101 to the video analysis APL 103.
 S209において、映像プロキシ105は、RTP/UDPパケットの再送信先を新映像解析APL103のPodに変更し、再送信を再開する。 In S209, the video proxy 105 changes the retransmission destination of the RTP/UDP packet to the Pod of the new video analysis APL 103, and resumes retransmission.
 S209と同時に、S210において、制御プロキシ107は、車両制御情報の通信相手を新映像解析APL103のPodに変更する。すなわちこれ以降、制御プロキシ107は、旧映像解析APL101のPodとの通信を受け付けない。 Simultaneously with S209, in S210, the control proxy 107 changes the communication partner of the vehicle control information to the Pod of the new video analysis APL 103. That is, from now on, the control proxy 107 will not accept communication with the Pod of the old video analysis APL 101.
 (実施例1-2)
 次に、実施例1-2を説明する。実施例1-2は、実施例1(映像1段プロキシ方式)におけるバリエーション2(フレーム間圧縮解除配信方式)である。実施例1-2のシステム構成は実施例1-1におけるシステム構成と同じであり、図3に示したとおりである。
(Example 1-2)
Next, Example 1-2 will be explained. Example 1-2 is variation 2 (interframe decompression distribution method) of Example 1 (video one-stage proxy method). The system configuration of Example 1-2 is the same as that of Example 1-1, and is as shown in FIG. 3.
 下記の(a)、(b)のそれぞれの場合についてのシステムの動作を、シーケンス図を参照して説明する。 The operation of the system in each of the following cases (a) and (b) will be explained with reference to sequence diagrams.
 (a)カメラ映像を映像解析APL101が解析し、障害物を検知した場合に映像解析APL101が車両制御システム210に対して緊急停止を指示する場合
 (b)車両走行中に映像解析APLのリソース割当量を{2CPU,4GB RAM}から{4CPU,8GB RAM}に増加させる処理を行う場合
 まず、上記の(a)の場合の動作を図7のシーケンス図を参照して説明する。
(a) When the video analysis APL 101 analyzes the camera video and instructs the vehicle control system 210 to make an emergency stop when an obstacle is detected (b) Resource allocation of the video analysis APL while the vehicle is running When performing processing to increase the amount from {2 CPU, 4 GB RAM} to {4 CPU, 8 GB RAM} First, the operation in case (a) above will be described with reference to the sequence diagram of FIG. 7.
 S301において、カメラ/エンコーダ210は継続的に、映像トラフィックをフレーム間圧縮コーデック(H.264)により符号化し、RTP/UDPにより映像プロキシ105に送信している。 At S301, the camera/encoder 210 continuously encodes video traffic using an interframe compression codec (H.264) and sends it to the video proxy 105 using RTP/UDP.
 S302において、映像プロキシは継続的に、カメラ/エンコーダ210から受信したRTP/UDPパケットに対して、映像のデコードを実施する。また、デコードした映像をフレーム間非圧縮コーデック(MJPEGなど)により再エンコードする。また、再エンコードされた映像データをパケタイズし、映像解析APL101に対して再送信する。 In S302, the video proxy continuously performs video decoding on the RTP/UDP packets received from the camera/encoder 210. Furthermore, the decoded video is re-encoded using an interframe non-compression codec (MJPEG, etc.). Furthermore, the re-encoded video data is packetized and re-transmitted to the video analysis APL 101.
 以降のS303~S306は、実施例1-1におけるS103~S106と同様である。 The subsequent steps S303 to S306 are the same as steps S103 to S106 in Example 1-1.
 次に、上記の(b)の場合の動作を図8のシーケンス図を参照して説明する。 Next, the operation in case (b) above will be explained with reference to the sequence diagram of FIG.
 S401において、カメラ/エンコーダ210は継続的に、映像トラフィックをフレーム間圧縮コーデック(H.264)により符号化し、RTP/UDPにより映像プロキシ105に送信している。 At S401, the camera/encoder 210 continuously encodes video traffic using an interframe compression codec (H.264) and sends it to the video proxy 105 using RTP/UDP.
 S402において、映像プロキシ105は継続的に、カメラ/エンコーダ210から受信したRTP/UDPパケットに対して、映像のデコードを実施する。また、デコードした映像をフレーム間非圧縮コーデック(MJPEGなど)により再エンコードする。また、再エンコードされた映像データをパケタイズし、映像解析APL101に対して再送信する。 In S402, the video proxy 105 continuously decodes the RTP/UDP packets received from the camera/encoder 210. Furthermore, the decoded video is re-encoded using an interframe non-compression codec (MJPEG, etc.). Furthermore, the re-encoded video data is packetized and re-transmitted to the video analysis APL 101.
 S403において、ユーザが、システム制御部150に対して、ある車両識別子にかかるカメラ映像の映像解析APLのリソース量の増加(例えば、{2CPU,4GB RAM}→{4CPU,8GB RAM})を指示する。 In S403, the user instructs the system control unit 150 to increase the resource amount of the video analysis APL of the camera video related to a certain vehicle identifier (for example, {2 CPU, 4 GB RAM} → {4 CPU, 8 GB RAM}). .
 S404において、システム制御部150は、{4CPU,8GB RAM}である映像解析APL103のPodを新たに生成する。 In S404, the system control unit 150 newly generates a Pod for the video analysis APL 103, which is {4 CPU, 8 GB RAM}.
 S405において、システム制御部150は、新たな映像解析APL103のPodのログを定期的に閲覧し、映像解析APL103の正常動作を確認できるまで待機する。正常動作を確認できたら次に進む。 In S405, the system control unit 150 periodically views the log of the Pod of the new video analysis APL 103 and waits until it can confirm the normal operation of the video analysis APL 103. Once you have confirmed normal operation, proceed to the next step.
 S406において、システム制御部150は、映像プロキシ105と制御プロキシ107両方に対して、同時に映像解析APLの切り替えを指示する。 In S406, the system control unit 150 instructs both the video proxy 105 and the control proxy 107 to switch the video analysis APL at the same time.
 S407において、映像プロキシ105は、次のRTP/UDPパケット(S406以降の最初のRTP/UDPパケット)から、新映像解析APL103への送信を開始する。S407でもS402で説明したとおり、フレーム間非圧縮コーデックにより再エンコードされた映像データをパケタイズしたRTP/UDPパケットを送信する。 In S407, the video proxy 105 starts transmitting the next RTP/UDP packet (the first RTP/UDP packet after S406) to the new video analysis APL 103. In S407, as explained in S402, an RTP/UDP packet in which the video data re-encoded using the interframe non-compression codec is packetized is transmitted.
 S408において、S407と同時に、制御プロキシ107は、車両制御情報の通信相手を新映像解析APL103のPodに変更する。すなわちこれ以降、旧映像解析APL101のPodとの通信を受け付けない。 In S408, simultaneously with S407, the control proxy 107 changes the communication partner of the vehicle control information to the Pod of the new video analysis APL 103. That is, from now on, communication with the Pod of the old video analysis APL 101 will not be accepted.
 (実施例1-3)
 次に、実施例1-3を説明する。実施例1-3は、実施例1(映像1段プロキシ方式)のバリエーション3(フレーム間圧縮解除保存方式)である。図9に、実施例1-3におけるシステム構成例を示す。図9に示すように、図3に示した構成に、画像フレーム保存部160が追加される。画像フレーム保存部160を「データ保存部」と呼んでもよい。
(Example 1-3)
Next, Example 1-3 will be explained. Example 1-3 is variation 3 (interframe decompression storage method) of Example 1 (video one-stage proxy method). FIG. 9 shows an example of a system configuration in Example 1-3. As shown in FIG. 9, an image frame storage section 160 is added to the configuration shown in FIG. Image frame storage section 160 may also be referred to as a "data storage section."
 車両の動作中は、常にカメラ/エンコーダ210から映像プロキシ105に対して映像ストリームが送信され続ける。映像プロキシ105は、受信した映像ストリームをデコードし、最新の画像フレームを画像フレーム保存部160に保存し続ける。この時、画像フレームの識別子(例えばファイル名)を1ずつインクリメントし保存しても良いし、常に最新の画像を上書き保存しても良い。 While the vehicle is in operation, a video stream continues to be sent from the camera/encoder 210 to the video proxy 105. The video proxy 105 decodes the received video stream and continues to store the latest image frames in the image frame storage unit 160. At this time, the image frame identifier (for example, file name) may be incremented by 1 and saved, or the latest image may be always overwritten and saved.
 実施例1-1と同様に、車両デバイス200上の車両制御システム220と制御プロキシ107との間は、セッション維持型の通信プロトコルであるgRPCにより接続され、Server Streaming RPC、すなわちサーバ(制御プロキシ107)からのプッシュ通信が可能な形態となる。制御プロキシ107と映像解析APL101/103との間は、双方向それぞれ、HTTP/Restによる、通信の都度コネクション確立を行うプロトコルで通信を行う。 As in Example 1-1, the vehicle control system 220 on the vehicle device 200 and the control proxy 107 are connected by gRPC, which is a session-maintaining communication protocol, and Server Streaming RPC, that is, the server (control proxy 107 ) allows for push communication. Bidirectional communication is performed between the control proxy 107 and the video analysis APL 101/103 using HTTP/Rest, a protocol that establishes a connection each time communication occurs.
 映像解析APL101/103は、所望の周期で最新の画像フレームを画像フレーム保存部160から取得し、これに対して映像解析を行う。映像解析APL101/103は、映像解析の結果を、必要に応じて制御プロキシ107に通知する。 The video analysis APL 101/103 acquires the latest image frame from the image frame storage unit 160 at a desired cycle and performs video analysis on it. The video analysis APL 101/103 notifies the control proxy 107 of the video analysis results as necessary.
 続いて、下記の(a)、(b)のそれぞれの場合についてのシステムの動作を、シーケンス図を参照して説明する。 Next, the operation of the system in each of the following cases (a) and (b) will be explained with reference to sequence diagrams.
 (a)カメラ映像を映像解析APL101が解析し、障害物を検知した場合に映像解析APLが車両制御システム220に対して緊急停止を指示する場合
 (b)車両走行中に映像解析APLのリソース割当量を{2CPU,4GB RAM}から{4CPU,8GB RAM}に増加させる処理を行う場合
 まず、上記の(a)の場合の動作を図10のシーケンス図を参照して説明する。
(a) When the video analysis APL 101 analyzes the camera video and instructs the vehicle control system 220 to make an emergency stop when an obstacle is detected (b) Resource allocation of the video analysis APL while the vehicle is running Case of increasing the amount from {2 CPU, 4 GB RAM} to {4 CPU, 8 GB RAM} First, the operation in case (a) above will be explained with reference to the sequence diagram of FIG. 10.
 S501において、カメラ/エンコーダ210は継続的に、映像トラフィックをフレーム間圧縮コーデック(H.264)により符号化し、RTP/UDPにより映像プロキシ105に送信している。 At S501, the camera/encoder 210 continuously encodes video traffic using an interframe compression codec (H.264) and sends it to the video proxy 105 using RTP/UDP.
 S502において、映像プロキシ105は継続的に、受信した映像ストリームをデコードし、最新の画像フレームを画像フレーム保存部160に保存し続ける。例えば、受信した映像ストリームのフレームレートが50fpsである場合、20msごとに画像フレームが保存されることになる。 In S502, the video proxy 105 continuously decodes the received video stream and stores the latest image frame in the image frame storage unit 160. For example, if the frame rate of the received video stream is 50 fps, an image frame will be saved every 20 ms.
 S503において、映像解析APL101は、例えば100ms周期で、当該時点で最新の画像フレームを画像フレーム保存部160から取得する。 In S503, the video analysis APL 101 acquires the latest image frame at the time from the image frame storage unit 160, for example, at a cycle of 100 ms.
 S504において、映像解析APL101は、S503で取得した画像に対して障害物検知解析を行う。障害物検知のアルゴリズムとしてはどのようなアルゴリズムを使用してもよい。一例として、市中技術(OpenCV)を用いた画像内矩形検出機能を用いることができる。ここでは、画像内に矩形物体が存在することを、映像解析APL101が認識する。 In S504, the video analysis APL 101 performs obstacle detection analysis on the image acquired in S503. Any algorithm may be used as the obstacle detection algorithm. As an example, an intra-image rectangle detection function using off-the-shelf technology (OpenCV) can be used. Here, the video analysis APL 101 recognizes that a rectangular object exists within the image.
 S505~S506は、S105~S106と同じである。 S505-S506 are the same as S105-S106.
 次に、(b)の場合の動作を図11のシーケンス図を参照して説明する。 Next, the operation in case (b) will be explained with reference to the sequence diagram in FIG.
 S601において、カメラ/エンコーダ210は継続的に、映像トラフィックをフレーム間圧縮コーデック(H.264)により符号化し、RTP/UDPにより映像プロキシ105に送信している。 At S601, the camera/encoder 210 continuously encodes video traffic using an interframe compression codec (H.264) and sends it to the video proxy 105 using RTP/UDP.
 S602において、映像プロキシ105は継続的に、受信した映像ストリームをデコードし、最新の画像フレームを画像フレーム保存部160に保存し続ける。受信した映像ストリームのフレームレートが50fpsである場合、20msごとに画像フレームが保存されることになる。 In S602, the video proxy 105 continuously decodes the received video stream and stores the latest image frame in the image frame storage unit 160. If the frame rate of the received video stream is 50 fps, an image frame will be saved every 20 ms.
 S603において、映像解析APL101は継続的に、例えば100msの周期で画像フレームを画像フレーム保存部160から取得し、映像解析を実行する。 In S603, the video analysis APL 101 continuously acquires image frames from the image frame storage unit 160 at a cycle of, for example, 100 ms, and executes video analysis.
 S604において、ユーザが、システム制御部150に対して、ある車両識別子にかかるカメラ映像の映像解析APL101のリソース量の増加(例えば、{2CPU,4GB RAM}→{4CPU,8GB RAM})を指示する。 In S604, the user instructs the system control unit 150 to increase the amount of resources of the video analysis APL 101 of the camera video related to a certain vehicle identifier (for example, {2 CPU, 4 GB RAM} → {4 CPU, 8 GB RAM}). .
 S605において、システム制御部150は、{4CPU,8GB RAM}である映像解析APL103をPodとともに新たに生成する。 In S605, the system control unit 150 newly generates a video analysis APL 103 with {4 CPU, 8 GB RAM} together with the Pod.
 S606において、新たな映像解析APL103は、例えば50msの周期での画像フレーム取得(画像フレーム保存部160からの取得)と、映像解析の実行を開始する。 In S606, the new video analysis APL 103 starts acquiring image frames (from the image frame storage unit 160) at a cycle of 50 ms, for example, and starts executing video analysis.
 S607において、システム制御部150は、新たな映像解析APL103のPodのログを定期的に閲覧し、映像解析APL103の正常動作を確認できるまで待機する。待機出来たら次に進む。 In S607, the system control unit 150 periodically views the log of the Pod of the new video analysis APL 103 and waits until the normal operation of the video analysis APL 103 can be confirmed. If you can wait, move on to the next step.
 S608において、システム制御部150は、制御プロキシ107に対して、映像解析APLの切り替えを指示する。 In S608, the system control unit 150 instructs the control proxy 107 to switch the video analysis APL.
 S609において、制御プロキシ107は、車両制御情報の通信相手を新映像解析APL103に変更する。すなわちこれ以降、旧映像解析APL101との通信を受け付けない。 In S609, the control proxy 107 changes the communication partner of the vehicle control information to the new video analysis APL 103. That is, from now on, communication with the old video analysis APL 101 will not be accepted.
 (実施例2-1)
 次に、実施例2-1を説明する。実施例2-1は、実施例2(映像2段プロキシ方式)のバリエーション1(キーフレーム確保方式)である。図12に、実施例2-1におけるシステム構成例を示す。図12に示すように、実施例2-1の構成は、図3に示した構成に対して、映像プロキシ2a(109)、及び映像プロキシ2b(111)が追加された構成を有する。すなわち、実施例2の仮想化基盤装置100は、3つの映像プロキシ105、109、111と、1つの制御プロキシ107を備える。
(Example 2-1)
Next, Example 2-1 will be explained. Example 2-1 is variation 1 (key frame securing method) of Example 2 (video two-stage proxy method). FIG. 12 shows an example of a system configuration in Example 2-1. As shown in FIG. 12, the configuration of Example 2-1 has a configuration in which a video proxy 2a (109) and a video proxy 2b (111) are added to the configuration shown in FIG. That is, the virtualization infrastructure device 100 of the second embodiment includes three video proxies 105, 109, and 111 and one control proxy 107.
 3つの映像プロキシは、仮想化基盤装置100における、同一ホスト(つまり、同一のコンピュータ)にデプロイしても良いし、異なるホスト(つまり、異なる2又は3つのコンピュータ)にデプロイしても良い。3つの映像プロキシを同一ホストにデプロイした場合は、多段となる映像プロキシ間の通信遅延を小さくする効果がある。なお、図12は、映像プロキシが2段構成の例であるが、映像プロキシを3段以上の構成としてもよい。映像プロキシを3段以上の構成とした場合でも、それらを同一ホストにデプロイすることが可能である。 The three video proxies may be deployed on the same host (that is, the same computer) in the virtualization infrastructure device 100, or may be deployed on different hosts (that is, two or three different computers). When three video proxies are deployed on the same host, there is an effect of reducing the communication delay between the multi-stage video proxies. Although FIG. 12 shows an example in which the video proxy is configured in two stages, the video proxy may be configured in three or more stages. Even when the video proxy is configured in three or more stages, it is possible to deploy them on the same host.
 車両の動作中は、常にカメラ/エンコーダ210から映像プロキシ1(105)に対して映像ストリームが送信され続ける。また、映像プロキシ1(105)は、常に映像ストリームを映像プロキシ2a(109)と映像プロキシ2b(111)へ送信し続ける。映像プロキシ2a(109)、映像プロキシ2b(111)は、それぞれ自身の担当先となる映像解析APLに対して映像ストリームを中継する。 While the vehicle is in operation, a video stream continues to be sent from the camera/encoder 210 to the video proxy 1 (105). Further, the video proxy 1 (105) always continues to transmit the video stream to the video proxy 2a (109) and the video proxy 2b (111). The video proxy 2a (109) and the video proxy 2b (111) each relay the video stream to the video analysis APL that they are in charge of.
 実施例1-1等と同様に、車両デバイス200上の車両制御システム220と制御プロキシ107との間は、セッション維持型の通信プロトコルであるgRPCにより接続され、Server Streaming RPC、すなわちサーバ(制御プロキシ107)からのプッシュ通信が可能な形態となる。制御プロキシ107と映像解析APL101/103との間は、双方向それぞれ、HTTP/Restによる、通信の都度コネクション確立を行うプロトコルで通信を行う。 Similar to Embodiment 1-1, the vehicle control system 220 on the vehicle device 200 and the control proxy 107 are connected by gRPC, which is a session maintenance type communication protocol, and Server Streaming RPC, that is, the server (control proxy 107) is possible. Bidirectional communication is performed between the control proxy 107 and the video analysis APL 101/103 using HTTP/Rest, a protocol that establishes a connection each time communication occurs.
 映像解析APL101/103は、受信した映像ストリームをデコードし、1フレーム画像ごとに映像解析を行う。映像解析APL101/103は、映像解析の結果を、必要に応じて制御プロキシ107に通知する。 The video analysis APL 101/103 decodes the received video stream and performs video analysis for each frame image. The video analysis APL 101/103 notifies the control proxy 107 of the video analysis results as necessary.
 続いて、下記の(a)、(b)のそれぞれの場合についてのシステムの動作を、シーケンス図を参照して説明する。 Next, the operation of the system in each of the following cases (a) and (b) will be explained with reference to sequence diagrams.
 (a)カメラ映像を映像解析APL101が解析し、障害物を検知した場合に映像解析APL101が車両制御システム220に対して緊急停止を指示する場合
 (b)車両走行中に映像解析APLのリソース割当量を{2CPU,4GB RAM}から{4CPU,8GB RAM}に増加させる処理を行う場合
 まず、上記の(a)の場合の動作を図13のシーケンス図を参照して説明する。
(a) When the video analysis APL 101 analyzes the camera video and instructs the vehicle control system 220 to make an emergency stop when an obstacle is detected (b) Resource allocation of the video analysis APL while the vehicle is running When performing processing to increase the amount from {2 CPU, 4 GB RAM} to {4 CPU, 8 GB RAM} First, the operation in case (a) above will be described with reference to the sequence diagram of FIG. 13.
 S701において、カメラ/エンコーダ210は継続的に、映像トラフィックをフレーム間圧縮コーデック(H.264)により符号化し、RTP/UDPにより映像プロキシ1(105)に送信している。 At S701, the camera/encoder 210 continuously encodes video traffic using an interframe compression codec (H.264) and transmits it to the video proxy 1 (105) using RTP/UDP.
 S702において、映像プロキシ1(105)は継続的に、カメラ/エンコーダ210から受信したRTP/UDPパケットに対して、IPヘッダを書き換えて映像プロキシ2a(109)および映像解析プロキシ2b(111)に対して再送信する。 In S702, the video proxy 1 (105) continuously rewrites the IP header of the RTP/UDP packet received from the camera/encoder 210 and sends it to the video proxy 2a (109) and the video analysis proxy 2b (111). and resend.
 S703において、映像プロキシ2a(109)は継続的に、映像プロキシ1(105)から受信したRTPパケットに対して、IPヘッダを書き換えて映像解析APL101に対して再送信する。なおこの際、映像プロキシ2b(111)は、映像プロキシ1(105)から受信したRTPパケットを破棄する。S704~S707は、実施例1-1(図5)のS103~S106と同じである。 In S703, the video proxy 2a (109) continuously rewrites the IP header of the RTP packet received from the video proxy 1 (105) and retransmits it to the video analysis APL 101. Note that at this time, the video proxy 2b (111) discards the RTP packet received from the video proxy 1 (105). S704 to S707 are the same as S103 to S106 in Example 1-1 (FIG. 5).
 次に、上記の(b)の場合の動作を図14のシーケンス図を参照して説明する。 Next, the operation in case (b) above will be explained with reference to the sequence diagram of FIG. 14.
 S801において、カメラ/エンコーダ210は継続的に、映像トラフィックをフレーム間圧縮コーデック(H.264)により符号化し、RTP/UDPにより映像プロキシ1(105)に送信している。 In S801, the camera/encoder 210 continuously encodes video traffic using an interframe compression codec (H.264) and transmits it to the video proxy 1 (105) using RTP/UDP.
 S802において、映像プロキシ1(105)は継続的に、カメラ/エンコーダ210から受信したRTP/UDPパケットに対して、IPヘッダを書き換えて映像プロキシ2a(109)および映像解析プロキシ2b(111)に対して再送信する。 In S802, the video proxy 1 (105) continuously rewrites the IP header of the RTP/UDP packet received from the camera/encoder 210 and sends it to the video proxy 2a (109) and the video analysis proxy 2b (111). and resend.
 S803において、映像プロキシ2a(109)は継続的に、映像プロキシ1(105)から受信したRTPパケットに対して、IPヘッダを書き換えて映像解析APL101に対して再送信する。なおこの際、映像プロキシ2b(111)は映像プロキシ1(105)から受信したRTPパケットを破棄する。 In S803, the video proxy 2a (109) continuously rewrites the IP header of the RTP packet received from the video proxy 1 (105) and retransmits it to the video analysis APL 101. Note that at this time, the video proxy 2b (111) discards the RTP packet received from the video proxy 1 (105).
 S804において、ユーザが、システム制御部150に対して、ある車両識別子にかかるカメラ映像の映像解析APLのリソース量の増加(例えば、{2CPU,4GB RAM}→{4CPU, 8GB RAM})を指示する。 In S804, the user instructs the system control unit 150 to increase the resource amount of the video analysis APL of the camera video related to a certain vehicle identifier (for example, {2 CPU, 4 GB RAM} → {4 CPU, 8 GB RAM}). .
 S805において、システム制御部150は、{4CPU,8GB RAM}である映像解析APL103とPodを新たに生成する。 In S805, the system control unit 150 newly generates the video analysis APL 103 and Pod, which are {4 CPU, 8 GB RAM}.
 S806において、システム制御部150は、新たに生成した映像解析APL103のPodのログを定期的に閲覧し、映像解析APL103の正常動作を確認できるまで待機する。正常動作を確認できたら次に進む。 In S806, the system control unit 150 periodically views the log of the newly generated Pod of the video analysis APL 103 and waits until normal operation of the video analysis APL 103 can be confirmed. Once you have confirmed normal operation, proceed to the next step.
 S807において、システム制御部150は、映像プロキシ2b(111)に対して、次のキーフレーム到着時から、自担当であるところの新映像解析APL103に映像再送信を開始する旨を通知し、映像プロキシ2b(111)は待機する。 In S807, the system control unit 150 notifies the video proxy 2b (111) that it will start retransmitting the video to the new video analysis APL 103, which is in charge of it, from the arrival of the next key frame, and Proxy 2b (111) waits.
 S807以降、S808において、映像プロキシ2b(111)が最初にキーフレームを受信した場合、映像プロキシ2b(111)はシステム制御部150にキーフレーム到着の旨を通知すると共に、当該キーフレームを含むRTP/UDPパケットから新映像解析APL103への再送信を開始する。 After S807, in S808, if the video proxy 2b (111) receives the key frame first, the video proxy 2b (111) notifies the system control unit 150 of the arrival of the key frame, and also sends an RTP containing the key frame. /Starts retransmission of the UDP packet to the new video analysis APL 103.
 なお、映像プロキシ2b(111)は、受信した映像データについて、それがキーフレームであるか否かを判断する必要がある。H.264映像ストリームのRTPペイロードのフォーマットは、IETF RFC 6184に規定されているので、その規定に従ってキーフレームを判別できる。具体的には、RTPペイロードの先頭に格納されるNAL Unit Headerの値が5であった場合に、当該データはキーフレームのものであると判断する。 Note that the video proxy 2b (111) needs to determine whether or not the received video data is a key frame. H. Since the format of the RTP payload of the H.264 video stream is specified in IETF RFC 6184, key frames can be determined according to the specification. Specifically, if the value of the NAL Unit Header stored at the beginning of the RTP payload is 5, it is determined that the data is a key frame.
 S809において、システム制御部150は、制御プロキシ107に対して、映像解析APLの切り替えを指示する。 In S809, the system control unit 150 instructs the control proxy 107 to switch the video analysis APL.
 S810において、制御プロキシ107は、車両制御情報の通信相手を新映像解析APL103のPodに変更する。すなわちこれ以降、旧映像解析APL101のPodとの通信を受け付けない。 In S810, the control proxy 107 changes the communication partner of the vehicle control information to the Pod of the new video analysis APL 103. That is, from now on, communication with the Pod of the old video analysis APL 101 will not be accepted.
 (実施例2-2)
 次に、実施例2-2を説明する。実施例2-2は、実施例2(映像2段プロキシ方式)のバリエーション2(フレーム間圧縮解除方式)である。実施例2-2のシステム構成は実施例2-1におけるシステム構成と同じであり、図12に示したとおりである。
(Example 2-2)
Next, Example 2-2 will be explained. Example 2-2 is variation 2 (interframe decompression method) of Example 2 (video two-stage proxy method). The system configuration of Example 2-2 is the same as that of Example 2-1, and is as shown in FIG. 12.
 下記の(a)、(b)のそれぞれの場合についてのシステムの動作を、シーケンス図を参照して説明する。 The operation of the system in each of the following cases (a) and (b) will be explained with reference to sequence diagrams.
 (a)カメラ映像を映像解析APL101が解析し、障害物を検知した場合に映像解析APL101が車両制御システム220に対して緊急停止を指示する場合
 (b)車両走行中に映像解析APLのリソース割当量を{2CPU,4GB RAM}から{4CPU,8GB RAM}に増加させる処理を行う場合
 まず、上記の(a)の場合の動作を図15のシーケンス図を参照して説明する。
(a) When the video analysis APL 101 analyzes the camera video and instructs the vehicle control system 220 to make an emergency stop when an obstacle is detected (b) Resource allocation of the video analysis APL while the vehicle is running When performing processing to increase the amount from {2 CPU, 4 GB RAM} to {4 CPU, 8 GB RAM} First, the operation in case (a) above will be described with reference to the sequence diagram of FIG. 15.
 S901において、カメラ/エンコーダ210は継続的に、映像トラフィックをフレーム間圧縮コーデック(H.264)により符号化し、RTP/UDPにより映像プロキシ1(105)に送信している。 In S901, the camera/encoder 210 continuously encodes video traffic using an interframe compression codec (H.264) and transmits it to the video proxy 1 (105) using RTP/UDP.
 S902において、映像プロキシ1(105)は継続的に、カメラ/エンコーダ210から受信したRTP/UDPパケットに対して、映像のデコードを実施する。また、デコードした映像をフレーム間非圧縮コーデック(MJPEGなど)により再エンコードする。また、再エンコードされた映像データをパケタイズし、映像プロキシ2a(109)および映像プロキシ2b(111)に対して再送信する。以降のS904~S907は、実施例2-1におけるS703~S707と同様である。 In S902, the video proxy 1 (105) continuously decodes the RTP/UDP packets received from the camera/encoder 210. Furthermore, the decoded video is re-encoded using an interframe non-compression codec (such as MJPEG). Furthermore, the re-encoded video data is packetized and retransmitted to the video proxy 2a (109) and the video proxy 2b (111). Subsequent steps S904 to S907 are the same as steps S703 to S707 in Example 2-1.
 次に、上記の(b)の場合の動作を図16のシーケンス図を参照して説明する。 Next, the operation in case (b) above will be explained with reference to the sequence diagram of FIG. 16.
 S1001において、カメラ/エンコーダ210は継続的に、映像トラフィックをフレーム間圧縮コーデック(H.264)により符号化し、RTP/UDPにより映像プロキシ1(105)に送信している。 In S1001, the camera/encoder 210 continuously encodes video traffic using an interframe compression codec (H.264) and transmits it to the video proxy 1 (105) using RTP/UDP.
 S1002において、映像プロキシ1(105)は継続的に、カメラ/エンコーダ210から受信したRTP/UDPパケットに対して、映像のデコードを実施する。また、デコードした映像をフレーム間非圧縮コーデック(MJPEGなど)により再エンコードする。また、再エンコードされた映像データをパケタイズし、映像プロキシ2a(109)および映像プロキシ2b(111)に対して再送信する。 In S1002, the video proxy 1 (105) continuously decodes the RTP/UDP packets received from the camera/encoder 210. Furthermore, the decoded video is re-encoded using an interframe non-compression codec (MJPEG, etc.). Furthermore, the re-encoded video data is packetized and retransmitted to the video proxy 2a (109) and the video proxy 2b (111).
 S1003において、映像プロキシ2a(109)は継続的に、映像プロキシ1(105)から受信したRTPパケットに対して、IPヘッダを書き換えて映像解析APL101に対して再送信する。なおこの際、映像プロキシ2b(111)は映像プロキシ1(105)から受信したRTPパケットを破棄する。 In S1003, the video proxy 2a (109) continuously rewrites the IP header of the RTP packet received from the video proxy 1 (105) and retransmits it to the video analysis APL 101. Note that at this time, the video proxy 2b (111) discards the RTP packet received from the video proxy 1 (105).
 S1004において、ユーザが、システム制御部150に対して、ある車両識別子にかかるカメラ映像の映像解析APLのリソース量の増加(例えば、{2CPU,4GB RAM}→{4CPU,8GB RAM})を指示する。 In S1004, the user instructs the system control unit 150 to increase the resource amount of the video analysis APL of the camera video related to a certain vehicle identifier (for example, {2 CPU, 4 GB RAM} → {4 CPU, 8 GB RAM}). .
 S1005において、システム制御部150は、{4CPU,8GB RAM}である映像解析APL103とPodを新たに生成する。 In S1005, the system control unit 150 newly generates the video analysis APL 103 and Pod, which are {4 CPU, 8 GB RAM}.
 S1006において、システム制御部150は、新映像解析APL103のPodのログを定期的に閲覧し、映像解析APL103の正常動作を確認できるまで待機する。正常動作を確認できたら次に進む。 In S1006, the system control unit 150 periodically views the log of the Pod of the new video analysis APL 103 and waits until normal operation of the video analysis APL 103 can be confirmed. Once you have confirmed normal operation, proceed to the next step.
 S1007において、システム制御部150は、映像プロキシ2b(111)に対して、自担当であるところの新映像解析APL103に対して映像再送信を開始する旨指示する。また同時に、制御プロキシ107に対して、新映像解析APL103への切り替えを指示する。 In S1007, the system control unit 150 instructs the video proxy 2b (111) to start retransmitting the video to the new video analysis APL 103 that is in charge of it. At the same time, it instructs the control proxy 107 to switch to the new video analysis APL 103.
 S1008において、映像プロキシ2b(111)は、次のRTP/UDPパケットから新映像解析APL103へ送信する。なお、このパケットは、フレーム間非圧縮コーデックにより再エンコードされた映像データをパケタイズしたパケットである。 In S1008, the video proxy 2b (111) transmits the next RTP/UDP packet to the new video analysis APL 103. Note that this packet is a packetized packet of video data that has been re-encoded using an interframe non-compression codec.
 S1008と同時に、S1009において、制御プロキシ107は、車両制御情報の通信相手を新映像解析APL103に変更する。すなわちこれ以降、旧映像解析APL101との通信を受け付けない。 Simultaneously with S1008, in S1009, the control proxy 107 changes the communication partner of the vehicle control information to the new video analysis APL 103. That is, from now on, communication with the old video analysis APL 101 will not be accepted.
 (ハードウェア構成例)
 仮想化基盤装置100は、1つ又は複数のコンピュータにプログラムを実行させることにより実現できる。このコンピュータは、物理的なコンピュータであってもよいし、仮想マシンであってもよい。
(Hardware configuration example)
The virtualization infrastructure device 100 can be realized by having one or more computers execute a program. This computer may be a physical computer or a virtual machine.
 すなわち、仮想化基盤装置100は、コンピュータに内蔵されるCPUやメモリ等のハードウェア資源を用いて、仮想化基盤装置100で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。 That is, the virtualization infrastructure device 100 can be realized by using hardware resources such as a CPU and memory built into a computer to execute a program corresponding to the processing performed by the virtualization infrastructure device 100. It is. The above program can be recorded on a computer-readable recording medium (such as a portable memory) and can be stored or distributed. It is also possible to provide the above program through a network such as the Internet or e-mail.
 図17は、上記コンピュータのハードウェア構成例を示す図である。図17のコンピュータは、それぞれバスBで相互に接続されているドライブ装置1000、補助記憶装置1002、メモリ装置1003、CPU1004、インタフェース装置1005、表示装置1006、入力装置1007、出力装置1008等を有する。 FIG. 17 is a diagram showing an example of the hardware configuration of the computer. The computer in FIG. 17 includes a drive device 1000, an auxiliary storage device 1002, a memory device 1003, a CPU 1004, an interface device 1005, a display device 1006, an input device 1007, an output device 1008, etc., which are connected to each other by a bus B.
 当該コンピュータでの処理を実現するプログラムは、例えば、CD-ROM又はメモリカード等の記録媒体1001によって提供される。プログラムを記憶した記録媒体1001がドライブ装置1000にセットされると、プログラムが記録媒体1001からドライブ装置1000を介して補助記憶装置1002にインストールされる。但し、プログラムのインストールは必ずしも記録媒体1001より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置1002は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。 A program that realizes processing on the computer is provided, for example, on a recording medium 1001 such as a CD-ROM or a memory card. When the recording medium 1001 storing the program is set in the drive device 1000, the program is installed from the recording medium 1001 to the auxiliary storage device 1002 via the drive device 1000. However, the program does not necessarily need to be installed from the recording medium 1001, and may be downloaded from another computer via a network. The auxiliary storage device 1002 stores installed programs as well as necessary files, data, and the like.
 メモリ装置1003は、プログラムの起動指示があった場合に、補助記憶装置1002からプログラムを読み出して格納する。CPU1004は、メモリ装置1003に格納されたプログラムに従って、仮想化基盤装置100に係る機能を実現する。インタフェース装置1005は、ネットワーク等に接続するためのインタフェースとして用いられる。表示装置1006はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置1007はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。出力装置1008は演算結果を出力する。 The memory device 1003 reads and stores the program from the auxiliary storage device 1002 when there is an instruction to start the program. The CPU 1004 implements functions related to the virtualization infrastructure device 100 according to programs stored in the memory device 1003. The interface device 1005 is used as an interface for connecting to a network or the like. A display device 1006 displays a GUI (Graphical User Interface) and the like based on a program. The input device 1007 is composed of a keyboard, a mouse, buttons, a touch panel, or the like, and is used to input various operation instructions. An output device 1008 outputs the calculation result.
 (実施の形態の効果)
 以上説明したとおり、本実施の形態では、映像プロキシおよび制御プロキシを用いた同期的トラフィック切り替え技術を採用した。これにより、車両自動運転・遠隔監視サービスの実行中随時に、サーバ側APL(例:映像解析APL)の割当リソース量の変更を行いつつ、その際にサービス断の発生や、端末アプリ(例:車両制御システム)の再接続処理の必要を抑止することが出来る。
(Effects of embodiment)
As described above, this embodiment employs a synchronous traffic switching technique using a video proxy and a control proxy. As a result, while the automatic vehicle driving/remote monitoring service is being executed, the amount of resources allocated to the server side APL (e.g. video analysis APL) can be changed at any time, and at that time, service interruptions or terminal application (e.g. The need for reconnection processing of the vehicle control system can be suppressed.
 これにより、VMに比べて処理オーバヘッドの少ないコンテナ型サーバ仮想化基盤を、動作中のアイドルサーバを最小減に押さえて構成することができる。結果として、コスト削減をしつつサービスの安定的な継続を実現できる。 As a result, a container-type server virtualization infrastructure with less processing overhead than a VM can be configured while minimizing the number of idle servers in operation. As a result, stable continuation of services can be achieved while reducing costs.
 特に、実施例1-1(実施例1(映像1段プロキシ方式)のバリエーション1(キーフレーム確保方式))においては、映像プロキシにおけるキーフレームの先頭の到着を契機に、映像再送信先の映像解析APLを切り替えることとしている。この工夫がない場合は、キーフレームの中間パケットあるいはある差分フレームから再送信先の映像解析APLが切り替わることとなり、新映像解析APLは次のキーフレーム到着までの間、画像フレームを正しく再構築することが出来ないという問題がある。しかしながら、実施例1-1における工夫により、この問題を防ぐことが出来る効用がある。 In particular, in Example 1-1 (Variation 1 (key frame securing method) of Example 1 (video one-stage proxy method)), the arrival of the beginning of the key frame in the video proxy is used as an opportunity for the video at the video retransmission destination to The analysis APL is to be changed. If this device is not used, the retransmission destination video analysis APL will switch from an intermediate packet of a key frame or a certain difference frame, and the new video analysis APL will correctly reconstruct the image frame until the next key frame arrives. The problem is that it is not possible. However, the invention in Example 1-1 has the effect of preventing this problem.
 また、実施例1-2(実施例1(映像1段プロキシ方式)のバリエーション2(フレーム間圧縮解除配信方式))においては、映像プロキシにおいて受信映像のコーデックを変更し、フレーム間非圧縮型のコーデックにより符号化された映像を映像解析APLへ送信することとした。この工夫が無い場合は、前記と同様の問題が発生する。しかしながら、この工夫により、この問題を防ぐことが出来る。 In addition, in Example 1-2 (Variation 2 (interframe decompression distribution method) of Example 1 (video one-stage proxy method)), the codec of the received video is changed in the video proxy, and We decided to send the video encoded by the codec to the video analysis APL. Without this measure, problems similar to those described above will occur. However, this problem can be prevented by this technique.
 なお、実施例1-2においては、フレーム間非圧縮型のコーデックにより符号化された映像を構成する各画像フレームについて、この画像フレームの中間パケットより再送信先の映像解析APLが切り替わる可能性があり、その場合は新映像解析APLにおいては当該画像フレームを再構築出来ないという問題がある。しかしながら、この再構築不可事象は1画像フレームのみに限定される。また、実施例1-2では、実施例1-1におけるキーフレームの検出機能が不要となり、実現が簡便であるという効用がある。 In addition, in Example 1-2, for each image frame constituting a video encoded by an interframe non-compression type codec, there is a possibility that the video analysis APL of the retransmission destination will be switched from an intermediate packet of this image frame. In that case, there is a problem that the new video analysis APL cannot reconstruct the image frame. However, this reconstruction failure event is limited to only one image frame. Further, in the embodiment 1-2, the key frame detection function in the embodiment 1-1 is not required, and there is an advantage that the implementation is simple.
 また、実施例1-3(実施例1(映像1段プロキシ方式)のバリエーション3(フレーム間圧縮解除保存方式))においては、映像プロキシにおいて受信映像をデコードし、画像フレームを保存部に保存し、映像解析APLはこの画像フレームを必要に応じて取得することとした。この工夫により、実施例1-2において制約事項となっていた1画像フレームの破損を抑止することが出来るという効用がある。 In addition, in Example 1-3 (Variation 3 (inter-frame decompression storage method) of Example 1 (video one-stage proxy method)), the video proxy decodes the received video and stores the image frame in the storage unit. , the video analysis APL acquires this image frame as necessary. This idea has the effect of being able to prevent damage to one image frame, which was a constraint in Example 1-2.
 また、実施例2-1(実施例2(映像2段プロキシ方式)のバリエーション1(キーフレーム確保方式))においては、実施例1-1と異なり、映像プロキシが多段構成されている。具体的には、車両上のカメラ/エンコーダ210から映像をまず受け取る映像プロキシ1(105)と、旧/新映像解析APLそれぞれに対して映像再送信する映像プロキシ2a(109)、映像プロキシ2b(111)が存在する。 Furthermore, in Example 2-1 (Variation 1 (key frame securing method) of Example 2 (two-stage video proxy method)), unlike Example 1-1, the video proxy is configured in multiple stages. Specifically, a video proxy 1 (105) that first receives video from the camera/encoder 210 on the vehicle, a video proxy 2a (109), and a video proxy 2b (109) that retransmit video to the old/new video analysis APL, respectively. 111) exists.
 映像プロキシの実装として、映像再送信先の変更に時間がかかる実装であった場合、実施例1-1においては、サービス断が発生してしまうという問題がある。しかしながら、実施例2-1においては新映像解析APLへの映像再送信開始を、旧映像解析APLへの映像再送信と独立して実施することが出来るため、この問題を防ぐことが出来る効用がある。 If the video proxy is implemented in such a way that it takes time to change the video retransmission destination, there is a problem in Embodiment 1-1 that service interruption will occur. However, in Example 2-1, the start of video retransmission to the new video analysis APL can be carried out independently of the video retransmission to the old video analysis APL, so this problem can be prevented. be.
 <付記>
 本明細書には、少なくとも下記各項の制御装置、制御方法、及びプログラムが開示されている。
(付記項1)
 デバイスから送信されたデータを受信するアプリケーションプロキシと、
 前記アプリケーションプロキシから再送信された前記データを受信するアプリケーション部と、
 前記アプリケーション部から、前記データに対する処理に基づき得られた制御要求を受信し、前記デバイスに対して制御指示を送信する制御プロキシと
 を備える制御装置。
(付記項2)
 前記制御装置において、新アプリケーション部が生成された後、
 前記アプリケーションプロキシ及び前記制御プロキシの接続先を、前記アプリケーション部から前記新アプリケーション部へ同期して切り替える
 付記項1に記載の制御装置。
(付記項3)
 前記アプリケーションプロキシが特定のデータを前記デバイスから受信したことを契機として、前記アプリケーションプロキシ及び前記制御プロキシの接続先を、前記アプリケーション部から前記新アプリケーション部へ切り替える
 付記項2に記載の制御装置。
(付記項4)
 前記アプリケーションプロキシは、複数の段を構成する複数のプロキシを含む
 付記項1に記載の制御装置。
(付記項5)
 前記デバイスから送信されるデータは、第1方式でエンコードされた符号化データであり、前記アプリケーションプロキシは、前記デバイスから受信した符号化データをデコードし、デコードしたデータを前記第1方式と異なる第2方式で再エンコードし、再エンコードしたデータを前記アプリケーション部に送信する
 付記項1に記載の制御装置。
(付記項6)
 前記デバイスから送信されるデータは、符号化データであり、前記制御装置は、データ保存部を更に備え、
 前記アプリケーションプロキシは、前記デバイスから受信した符号化データをデコードし、デコードしたデータを前記データ保存部に保存し、前記アプリケーション部は、前記データ保存部からデータを取得して、解析を実行する
 付記項1に記載の制御装置。
(付記項7)
 アプリケーションプロキシ、アプリケーション部、及び制御プロキシを備える制御装置が実行する制御方法であって、
 前記アプリケーションプロキシが、デバイスから送信されたデータを受信するステップと、
 前記アプリケーション部が、前記アプリケーションプロキシから再送信された前記データを受信するステップと、
 前記制御プロキシが、前記アプリケーション部から、前記データに対する処理に基づき得られた制御要求を受信し、前記デバイスに対して制御指示を送信するステップと
 を備える制御方法。
(付記項8)
 コンピュータを、付記項1ないし6のうちいずれか1項に記載の制御装置として機能させるためのプログラムを記憶した非一時的記憶媒体。
<Additional notes>
This specification discloses at least the following control device, control method, and program.
(Additional note 1)
an application proxy that receives data sent from the device;
an application unit that receives the data retransmitted from the application proxy;
A control device comprising: a control proxy that receives a control request obtained based on processing of the data from the application unit and transmits a control instruction to the device.
(Additional note 2)
After a new application section is generated in the control device,
The control device according to appendix 1, wherein connection destinations of the application proxy and the control proxy are switched from the application unit to the new application unit in synchronization.
(Additional note 3)
The control device according to Supplementary Note 2, wherein the connection destination of the application proxy and the control proxy is switched from the application section to the new application section when the application proxy receives specific data from the device.
(Additional note 4)
The control device according to supplementary note 1, wherein the application proxy includes a plurality of proxies forming a plurality of stages.
(Additional note 5)
The data transmitted from the device is encoded data encoded using a first method, and the application proxy decodes the encoded data received from the device and converts the decoded data into a first method different from the first method. The control device according to Supplementary Note 1, wherein the control device re-encodes the data using two methods and transmits the re-encoded data to the application unit.
(Additional note 6)
The data transmitted from the device is encoded data, and the control device further includes a data storage unit,
The application proxy decodes the encoded data received from the device and stores the decoded data in the data storage unit, and the application unit acquires the data from the data storage unit and performs analysis. The control device according to item 1.
(Supplementary Note 7)
A control method executed by a control device including an application proxy, an application unit, and a control proxy,
the application proxy receiving data sent from a device;
the application unit receiving the data retransmitted from the application proxy;
A control method comprising: the control proxy receiving a control request obtained based on processing of the data from the application unit, and transmitting a control instruction to the device.
(Supplementary Note 8)
A non-temporary storage medium storing a program for causing a computer to function as the control device according to any one of Supplementary Notes 1 to 6.
 以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。 The present embodiment has been described above, but the present invention is not limited to this specific embodiment, and various modifications and variations are possible within the scope of the gist of the present invention as described in the claims.
100 仮想化基盤装置
101、103 映像解析APL
105、109、111 映像プロキシ
107 制御プロキシ
150 システム制御部
160 画像フレーム保存部
200 車両デバイス
210 カメラ/エンコーダ
220 車両制御システム
1000 ドライブ装置
1001 記録媒体
1002 補助記憶装置
1003 メモリ装置
1004 CPU
1005 インタフェース装置
1006 表示装置
1007 入力装置
1008 出力装置
100 Virtualization infrastructure device 101, 103 Video analysis APL
105, 109, 111 Video proxy 107 Control proxy 150 System control section 160 Image frame storage section 200 Vehicle device 210 Camera/encoder 220 Vehicle control system 1000 Drive device 1001 Recording medium 1002 Auxiliary storage device 1003 Memory device 1004 CPU
1005 Interface device 1006 Display device 1007 Input device 1008 Output device

Claims (8)

  1.  デバイスから送信されたデータを受信するアプリケーションプロキシと、
     前記アプリケーションプロキシから再送信された前記データを受信するアプリケーション部と、
     前記アプリケーション部から、前記データに対する処理に基づき得られた制御要求を受信し、前記デバイスに対して制御指示を送信する制御プロキシと
     を備える制御装置。
    an application proxy that receives data sent from the device;
    an application unit that receives the data retransmitted from the application proxy;
    A control device comprising: a control proxy that receives a control request obtained based on processing of the data from the application unit and transmits a control instruction to the device.
  2.  前記制御装置において、新アプリケーション部が生成された後、
     前記アプリケーションプロキシ及び前記制御プロキシの接続先を、前記アプリケーション部から前記新アプリケーション部へ同期して切り替える
     請求項1に記載の制御装置。
    After a new application section is generated in the control device,
    The control device according to claim 1, wherein connection destinations of the application proxy and the control proxy are switched from the application section to the new application section in synchronization.
  3.  前記アプリケーションプロキシが特定のデータを前記デバイスから受信したことを契機として、前記アプリケーションプロキシ及び前記制御プロキシの接続先を、前記アプリケーション部から前記新アプリケーション部へ切り替える
     請求項2に記載の制御装置。
    The control device according to claim 2, wherein the connection destinations of the application proxy and the control proxy are switched from the application unit to the new application unit when the application proxy receives specific data from the device.
  4.  前記アプリケーションプロキシは、複数の段を構成する複数のプロキシを含む
     請求項1に記載の制御装置。
    The control device according to claim 1, wherein the application proxy includes a plurality of proxies forming a plurality of stages.
  5.  前記デバイスから送信されるデータは、第1方式でエンコードされた符号化データであり、前記アプリケーションプロキシは、前記デバイスから受信した符号化データをデコードし、デコードしたデータを前記第1方式と異なる第2方式で再エンコードし、再エンコードしたデータを前記アプリケーション部に送信する
     請求項1に記載の制御装置。
    The data transmitted from the device is encoded data encoded using a first method, and the application proxy decodes the encoded data received from the device and converts the decoded data into a first method different from the first method. The control device according to claim 1, further comprising: re-encoding the data using two methods, and transmitting the re-encoded data to the application unit.
  6.  前記デバイスから送信されるデータは、符号化データであり、前記制御装置は、データ保存部を更に備え、
     前記アプリケーションプロキシは、前記デバイスから受信した符号化データをデコードし、デコードしたデータを前記データ保存部に保存し、前記アプリケーション部は、前記データ保存部からデータを取得して、解析を実行する
     請求項1に記載の制御装置。
    The data transmitted from the device is encoded data, and the control device further includes a data storage unit,
    The application proxy decodes the encoded data received from the device and stores the decoded data in the data storage unit, and the application unit acquires data from the data storage unit and performs analysis. The control device according to item 1.
  7.  アプリケーションプロキシ、アプリケーション部、及び制御プロキシを備える制御装置が実行する制御方法であって、
     前記アプリケーションプロキシが、デバイスから送信されたデータを受信するステップと、
     前記アプリケーション部が、前記アプリケーションプロキシから再送信された前記データを受信するステップと、
     前記制御プロキシが、前記アプリケーション部から、前記データに対する処理に基づき得られた制御要求を受信し、前記デバイスに対して制御指示を送信するステップと
     を備える制御方法。
    A control method executed by a control device including an application proxy, an application unit, and a control proxy,
    the application proxy receiving data sent from a device;
    the application unit receiving the data retransmitted from the application proxy;
    A control method comprising: the control proxy receiving a control request obtained based on processing of the data from the application unit, and transmitting a control instruction to the device.
  8.  コンピュータを、請求項1ないし6のうちいずれか1項に記載の制御装置として機能させるためのプログラム。 A program for causing a computer to function as the control device according to any one of claims 1 to 6.
PCT/JP2022/034243 2022-09-13 2022-09-13 Control device, control method, and program WO2024057408A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/034243 WO2024057408A1 (en) 2022-09-13 2022-09-13 Control device, control method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/034243 WO2024057408A1 (en) 2022-09-13 2022-09-13 Control device, control method, and program

Publications (1)

Publication Number Publication Date
WO2024057408A1 true WO2024057408A1 (en) 2024-03-21

Family

ID=90274475

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/034243 WO2024057408A1 (en) 2022-09-13 2022-09-13 Control device, control method, and program

Country Status (1)

Country Link
WO (1) WO2024057408A1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008059312A (en) * 2006-08-31 2008-03-13 Hitachi Ltd Controller and development system therefor
WO2017098644A1 (en) * 2015-12-10 2017-06-15 三菱電機株式会社 Information processing device, information processing method, and information processing program
WO2018190015A1 (en) * 2017-04-12 2018-10-18 ソニー株式会社 Information processing device, information processing method, and computer program
JP2019101866A (en) * 2017-12-05 2019-06-24 コニカミノルタ株式会社 Application update method and program
JP2019133424A (en) * 2018-01-31 2019-08-08 沖電気工業株式会社 Communication system, communication method, management device, management program, management method, information processing device, information processing program, and information processing method
JP2021057882A (en) * 2019-09-28 2021-04-08 インテル コーポレイション Adaptive dataflow transformation in edge computing environments

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008059312A (en) * 2006-08-31 2008-03-13 Hitachi Ltd Controller and development system therefor
WO2017098644A1 (en) * 2015-12-10 2017-06-15 三菱電機株式会社 Information processing device, information processing method, and information processing program
WO2018190015A1 (en) * 2017-04-12 2018-10-18 ソニー株式会社 Information processing device, information processing method, and computer program
JP2019101866A (en) * 2017-12-05 2019-06-24 コニカミノルタ株式会社 Application update method and program
JP2019133424A (en) * 2018-01-31 2019-08-08 沖電気工業株式会社 Communication system, communication method, management device, management program, management method, information processing device, information processing program, and information processing method
JP2021057882A (en) * 2019-09-28 2021-04-08 インテル コーポレイション Adaptive dataflow transformation in edge computing environments

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NOBUHIRO AZUMA, HIROKI IWASAWA, TAKAHIDE KITSU, HITOSHI MASUTANI, TAKESHI KUWAHARA: "Proposal of Deterministic Periodic Control Architecture for Networked Control Systems in Cyber-Physical Systems", IEICE TECHNICAL REPORT, IEICE, JP, vol. 121, no. 170 (NS2021-62), 2 September 2021 (2021-09-02), JP , pages 30 - 35, XP009553279, ISSN: 2432-6380 *

Similar Documents

Publication Publication Date Title
US9582272B1 (en) Method and system for remote computing session management
US20140068045A1 (en) Network system and virtual node migration method
JP6648893B2 (en) Provide functional requirements for network connection from local library
CN103544043A (en) Hierarchical system for managing a plurality of virtual machines, method and computer program
US9788077B1 (en) Rendition switching
US10630746B1 (en) Streaming playlist including future encoded segments
US10742699B1 (en) Requesting transmission of future encoded segments
US10327040B1 (en) Forward error correction for low latency streaming
WO2016070302A1 (en) Virtual network function example migration method, device and system
GB2536299A (en) Method of communicating data packets within data communication systems
WO2019209181A1 (en) System and method for accelerating data delivery
US10306425B2 (en) Mesh architecture for distributed telecommunication systems
US20240098142A1 (en) Migration of remote data processing between servers
US11121960B2 (en) Detecting and managing relocation of network communication endpoints in a distributed computing environment
EP2879362A1 (en) Communication system, method, and program
WO2024057408A1 (en) Control device, control method, and program
US11146834B1 (en) Server-based encoded version selection
US10735783B1 (en) Intra-rendition latency variation
JP4619943B2 (en) Packet communication method and packet communication system
EP3526936B1 (en) Shared bearer node resources for control nodes for distributed telecommunication systems
KR101740234B1 (en) Method for providing http/2 proxy gateway server in virtualized environment
JP2009015392A (en) Communication device and communication method
US10484701B1 (en) Rendition switch indicator
US10306021B1 (en) Streaming content to multiple clients
EP3526935B1 (en) Independent scaling of control and bearer nodes for distributed telecommunication systems