CN109167965B - Data processing method and device - Google Patents

Data processing method and device Download PDF

Info

Publication number
CN109167965B
CN109167965B CN201811142159.1A CN201811142159A CN109167965B CN 109167965 B CN109167965 B CN 109167965B CN 201811142159 A CN201811142159 A CN 201811142159A CN 109167965 B CN109167965 B CN 109167965B
Authority
CN
China
Prior art keywords
packet
media
erasure
mth
erasure correction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811142159.1A
Other languages
Chinese (zh)
Other versions
CN109167965A (en
Inventor
李云鹏
张新博
袁庆宁
谢文龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hainan Shilian Communication Technology Co.,Ltd.
Original Assignee
Visionvera Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Visionvera Information Technology Co Ltd filed Critical Visionvera Information Technology Co Ltd
Priority to CN201811142159.1A priority Critical patent/CN109167965B/en
Publication of CN109167965A publication Critical patent/CN109167965A/en
Application granted granted Critical
Publication of CN109167965B publication Critical patent/CN109167965B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • H04N21/64792Controlling the complexity of the content stream, e.g. by dropping packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The invention provides a method and a device for processing data, wherein the method comprises the steps of receiving a media packet and an erasure correction packet corresponding to an Mth erasure correction frame, adding the received media packet to a first cache queue, and adding the received erasure correction packet to a second cache queue; when the loss of the Kth media packet is detected, judging whether the media packet in the first cache queue and the erasure packet in the second cache queue meet preset conditions or not; when the judgment meets the preset condition, recovering the Kth media packet by adopting the media packet in the first cache queue and the erasure packet in the second cache queue, and adding the K th media packet into the first cache queue; when detecting that the media packet corresponding to the Mth erasure correcting frame is completely received, organizing the media packet corresponding to the Mth erasure correcting frame in the first cache queue into video frame data; by the method and the device, packet loss recovery is realized, data redundancy is reduced, the capability of resisting packet loss is improved, and the real-time performance of video transmission and the quality of video watching are improved.

Description

Data processing method and device
Technical Field
The present invention relates to the field of video networking technologies, and in particular, to a method and an apparatus for data processing.
Background
With the development of science and technology, the video networking technology is widely applied to various industries, such as the fields of office work, remote medical treatment, security protection, emergency command and the like, and the application of the video networking technology brings great convenience.
When video service is performed by using video networking, packet loss and disorder may occur, and in the prior art, a plurality of repeated data packets are usually sent to avoid loss of a certain data packet, but this way increases redundancy of the data packet and occupies more network load.
Disclosure of Invention
In view of the above, the present invention has been made to provide a method and apparatus for data processing that overcomes or at least partially solves the above problems, comprising:
a data processing method is applied to a video network terminal and comprises the following steps:
the video networking terminal receives a media packet and an erasure correction packet corresponding to the Mth erasure correction frame, adds the received media packet to a first cache queue, and adds the received erasure correction packet to a second cache queue;
when the video networking terminal detects that the Kth media packet is lost, judging whether the media packet in the first cache queue and the erasure correcting packet in the second cache queue meet preset conditions or not;
when the video network terminal judges that the preset condition is met, recovering a Kth media packet by adopting the media packet in the first cache queue and the erasure correction packet in the second cache queue, and adding the K th media packet to the first cache queue;
when detecting that the media packet corresponding to the Mth erasure correcting frame is completely received, the video networking terminal organizes the media packet corresponding to the Mth erasure correcting frame in the first cache queue into video frame data;
wherein M and K are positive integers greater than or equal to 1.
Optionally, the method further comprises:
and when the condition that the recovery fails to meet the preset condition is judged, generating a recovery failure packet as a Kth media packet, and adding the recovery failure packet to the first cache queue.
Optionally, each erasure correction packet corresponds to N media packets, and determining whether the preset condition is met by using the following method includes:
when the number of erasure correction packets corresponding to the mth erasure correction frame in the second cache queue is equal to 0 and a media packet corresponding to the M + L erasure correction frames has been received, determining that a preset condition is not satisfied;
when the number of erasure correction packets corresponding to the mth erasure correction frame in the second buffer queue is greater than 0 and the sum of the number of erasure correction packets corresponding to the mth erasure correction frame in the second buffer queue and the number of media packets corresponding to the mth erasure correction frame in the first buffer queue is greater than or equal to N, determining that a preset condition is satisfied;
wherein, L is a positive integer greater than or equal to 1, and N is a positive integer greater than 1.
Optionally, the header of the media packet corresponding to the mth erasure correcting frame includes:
the serial number of the media packet, the position type of the media packet, and the serial number of the mth erasure correcting frame.
Optionally, the header of the erasure correction packet corresponding to the mth erasure correction frame includes:
the serial number of the erasure correction packet, the serial number of the 1 st media packet corresponding to the Mth erasure correction frame, the number of the media packets corresponding to the Mth erasure correction frame, and the number of the erasure correction packets corresponding to the Mth erasure correction frame.
A data processing device is applied to a video network terminal and comprises:
the data packet caching module is used for receiving the media packet and the erasure correction packet corresponding to the Mth erasure correction frame, adding the received media packet to the first caching queue and adding the received erasure correction packet to the second caching queue;
the preset condition judgment module is used for judging whether the media packets in the first cache queue and the erasure correcting packets in the second cache queue meet preset conditions or not when the loss of the Kth media packet is detected;
a media packet recovery module, configured to recover, when it is determined that a preset condition is met, a kth media packet by using the media packet in the first cache queue and the erasure correction packet in the second cache queue, and add the kth media packet to the first cache queue;
a video frame data organizing module, configured to organize the media packet corresponding to the mth erasure correcting frame in the first cache queue into video frame data when it is detected that the media packet corresponding to the mth erasure correcting frame is completely received;
wherein M and K are positive integers greater than or equal to 1.
Optionally, the method further comprises:
and the media packet replacement module is used for generating a recovery failure packet as a Kth media packet and adding the recovery failure packet to the first cache queue when the condition that the media packet does not meet the preset condition is judged.
Optionally, each erasure correction packet corresponds to N media packets, and determining whether the preset condition is met by using the following method includes:
when the number of erasure correction packets corresponding to the mth erasure correction frame in the second cache queue is equal to 0 and a media packet corresponding to the M + L erasure correction frames has been received, determining that a preset condition is not satisfied;
when the number of erasure correction packets corresponding to the mth erasure correction frame in the second buffer queue is greater than 0 and the sum of the number of erasure correction packets corresponding to the mth erasure correction frame in the second buffer queue and the number of media packets corresponding to the mth erasure correction frame in the first buffer queue is greater than or equal to N, determining that a preset condition is satisfied;
wherein, L is a positive integer greater than or equal to 1, and N is a positive integer greater than 1.
Optionally, the header of the media packet corresponding to the mth erasure correcting frame includes:
the serial number of the media packet, the position type of the media packet, and the serial number of the mth erasure correcting frame.
Optionally, the header of the erasure correction packet corresponding to the mth erasure correction frame includes:
the serial number of the erasure correction packet, the serial number of the 1 st media packet corresponding to the Mth erasure correction frame, the number of the media packets corresponding to the Mth erasure correction frame, and the number of the erasure correction packets corresponding to the Mth erasure correction frame.
The invention has the following advantages:
in the invention, by receiving the media packet and the erasure correction packet corresponding to the Mth erasure correction frame, adding the received media packet to the first buffer queue, adding the received erasure correction packet to the second buffer queue, when detecting that the Kth media packet is lost, judging whether the media packets in the first buffer queue and the erasure packets in the second buffer queue meet the preset condition, when the judgment meets the preset condition, the media packet in the first buffer queue and the erasure correction packet in the second buffer queue are adopted to recover the K media packet and added into the first buffer queue, when the media packet corresponding to the Mth erasure correcting frame is detected to be completely received, the media packets corresponding to the Mth erasure correcting frame in the first cache queue are organized into video frame data, so that packet loss recovery is realized, data redundancy is reduced, the capability of packet loss resistance is improved, and the real-time performance of video transmission and the quality of video watching are improved.
Drawings
In order to more clearly illustrate the technical solution of the present invention, the drawings needed to be used in the description of the present invention will be briefly introduced below, and it is obvious that the drawings in the following description are only some embodiments of the present invention, and it is obvious for those skilled in the art to obtain other drawings based on these drawings without inventive exercise.
Fig. 1 is a schematic networking diagram of a video network according to an embodiment of the present invention;
fig. 2 is a schematic hardware structure diagram of a node server according to an embodiment of the present invention;
fig. 3 is a schematic hardware structure diagram of an access switch according to an embodiment of the present invention;
fig. 4 is a schematic hardware structure diagram of an ethernet protocol conversion gateway according to an embodiment of the present invention;
FIG. 5 is a flow chart illustrating steps of a method for data processing according to an embodiment of the present invention;
fig. 6 is a block diagram of a data processing apparatus according to an embodiment of the present invention.
Detailed Description
In order to make the aforementioned objects, features and advantages of the present invention comprehensible, embodiments accompanied with figures are described in further detail below. It is to be understood that the embodiments described are only a few embodiments of the present invention, and not all embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
The video networking is an important milestone for network development, is a real-time network, can realize high-definition video real-time transmission, and pushes a plurality of internet applications to high-definition video, and high-definition faces each other.
The video networking adopts a real-time high-definition video exchange technology, can integrate required services such as dozens of services of video, voice, pictures, characters, communication, data and the like on a system platform on a network platform, such as high-definition video conference, video monitoring, intelligent monitoring analysis, emergency command, digital broadcast television, delayed television, network teaching, live broadcast, VOD on demand, television mail, Personal Video Recorder (PVR), intranet (self-office) channels, intelligent video broadcast control, information distribution and the like, and realizes high-definition quality video broadcast through a television or a computer.
To better understand the embodiments of the present invention, the following description refers to the internet of view:
some of the technologies applied in the video networking are as follows:
network Technology (Network Technology)
Network technology innovation in video networking has improved over traditional Ethernet (Ethernet) to face the potentially enormous video traffic on the network. Unlike pure network Packet Switching (Packet Switching) or network Circuit Switching (Circuit Switching), the Packet Switching is adopted by the technology of the video networking to meet the Streaming requirement. The video networking technology has the advantages of flexibility, simplicity and low price of packet switching, and simultaneously has the quality and safety guarantee of circuit switching, thereby realizing the seamless connection of the whole network switching type virtual circuit and the data format.
Switching Technology (Switching Technology)
The video network adopts two advantages of asynchronism and packet switching of the Ethernet, eliminates the defects of the Ethernet on the premise of full compatibility, has end-to-end seamless connection of the whole network, is directly communicated with a user terminal, and directly bears an IP data packet. The user data does not require any format conversion across the entire network. The video networking is a higher-level form of the Ethernet, is a real-time exchange platform, can realize the real-time transmission of the whole-network large-scale high-definition video which cannot be realized by the existing Internet, and pushes a plurality of network video applications to high-definition and unification.
Server Technology (Server Technology)
The server technology on the video networking and unified video platform is different from the traditional server, the streaming media transmission of the video networking and unified video platform is established on the basis of connection orientation, the data processing capacity of the video networking and unified video platform is independent of flow and communication time, and a single network layer can contain signaling and data transmission. For voice and video services, the complexity of video networking and unified video platform streaming media processing is much simpler than that of data processing, and the efficiency is greatly improved by more than one hundred times compared with that of a traditional server.
Storage Technology (Storage Technology)
The super-high speed storage technology of the unified video platform adopts the most advanced real-time operating system in order to adapt to the media content with super-large capacity and super-large flow, the program information in the server instruction is mapped to the specific hard disk space, the media content is not passed through the server any more, and is directly sent to the user terminal instantly, and the general waiting time of the user is less than 0.2 second. The optimized sector distribution greatly reduces the mechanical motion of the magnetic head track seeking of the hard disk, the resource consumption only accounts for 20% of that of the IP internet of the same grade, but concurrent flow which is 3 times larger than that of the traditional hard disk array is generated, and the comprehensive efficiency is improved by more than 10 times.
Network Security Technology (Network Security Technology)
The structural design of the video network completely eliminates the network security problem troubling the internet structurally by the modes of independent service permission control each time, complete isolation of equipment and user data and the like, generally does not need antivirus programs and firewalls, avoids the attack of hackers and viruses, and provides a structural carefree security network for users.
Service Innovation Technology (Service Innovation Technology)
The unified video platform integrates services and transmission, and is not only automatically connected once whether a single user, a private network user or a network aggregate. The user terminal, the set-top box or the PC are directly connected to the unified video platform to obtain various multimedia video services in various forms. The unified video platform adopts a menu type configuration table mode to replace the traditional complex application programming, can realize complex application by using very few codes, and realizes infinite new service innovation.
Networking of the video network is as follows:
the video network is a centralized control network structure, and the network can be a tree network, a star network, a ring network and the like, but on the basis of the centralized control node, the whole network is controlled by the centralized control node in the network.
As shown in fig. 1, the video network is divided into an access network and a metropolitan network.
The devices of the access network part can be mainly classified into 3 types: node server, access switch, terminal (including various set-top boxes, coding boards, memories, etc.). The node server is connected to an access switch, which may be connected to a plurality of terminals and may be connected to an ethernet network.
The node server is a node which plays a centralized control function in the access network and can control the access switch and the terminal. The node server can be directly connected with the access switch or directly connected with the terminal.
Similarly, devices of the metropolitan network portion may also be classified into 3 types: a metropolitan area server, a node switch and a node server. The metro server is connected to a node switch, which may be connected to a plurality of node servers.
The node server is a node server of the access network part, namely the node server belongs to both the access network part and the metropolitan area network part.
The metropolitan area server is a node which plays a centralized control function in the metropolitan area network and can control a node switch and a node server. The metropolitan area server can be directly connected with the node switch or directly connected with the node server.
Therefore, the whole video network is a network structure with layered centralized control, and the network controlled by the node server and the metropolitan area server can be in various structures such as tree, star and ring.
The access network part can form a unified video platform (the part in the dotted circle), and a plurality of unified video platforms can form a video network; each unified video platform may be interconnected via metropolitan area and wide area video networking.
1. Video networking device classification
1.1 devices in the video network of the embodiment of the present invention can be mainly classified into 3 types: server, exchanger (including Ethernet protocol conversion gateway), terminal (including various set-top boxes, code board, memory, etc.). The video network as a whole can be divided into a metropolitan area network (or national network, global network, etc.) and an access network.
1.2 wherein the devices of the access network part can be mainly classified into 3 types: node server, access exchanger (including Ethernet protocol conversion gateway), terminal (including various set-top boxes, coding board, memory, etc.).
The specific hardware structure of each access network device is as follows:
a node server:
as shown in fig. 2, the system mainly includes a network interface module 201, a switching engine module 202, a CPU module 203, and a disk array module 204;
the network interface module 201, the CPU module 203, and the disk array module 204 all enter the switching engine module 202; the switching engine module 202 performs an operation of looking up the address table 205 on the incoming packet, thereby obtaining the direction information of the packet; and stores the packet in a queue of the corresponding packet buffer 206 based on the packet's steering information; if the queue of the packet buffer 206 is nearly full, it is discarded; the switching engine module 202 polls all packet buffer queues for forwarding if the following conditions are met: 1) the port send buffer is not full; 2) the queue packet counter is greater than zero. The disk array module 204 mainly implements control over the hard disk, including initialization, read-write, and other operations on the hard disk; the CPU module 203 is mainly responsible for protocol processing with an access switch and a terminal (not shown in the figure), configuring an address table 205 (including a downlink protocol packet address table, an uplink protocol packet address table, and a data packet address table), and configuring the disk array module 204.
The access switch:
as shown in fig. 3, the network interface module mainly includes a network interface module (a downlink network interface module 301 and an uplink network interface module 302), a switching engine module 303 and a CPU module 304;
wherein, the packet (uplink data) coming from the downlink network interface module 301 enters the packet detection module 305; the packet detection module 305 detects whether the Destination Address (DA), the Source Address (SA), the packet type, and the packet length of the packet meet the requirements, and if so, allocates a corresponding stream identifier (stream-id) and enters the switching engine module 303, otherwise, discards the stream identifier; the packet (downstream data) coming from the upstream network interface module 302 enters the switching engine module 303; the incoming data packet of the CPU module 304 enters the switching engine module 303; the switching engine module 303 performs an operation of looking up the address table 306 on the incoming packet, thereby obtaining the direction information of the packet; if the packet entering the switching engine module 303 is from the downstream network interface to the upstream network interface, the packet is stored in the queue of the corresponding packet buffer 307 in association with the stream-id; if the queue of the packet buffer 307 is nearly full, it is discarded; if the packet entering the switching engine module 303 is not from the downlink network interface to the uplink network interface, the data packet is stored in the queue of the corresponding packet buffer 307 according to the guiding information of the packet; if the queue of the packet buffer 307 is nearly full, it is discarded.
The switching engine module 303 polls all packet buffer queues, which in this embodiment of the present invention is divided into two cases:
if the queue is from the downlink network interface to the uplink network interface, the following conditions are met for forwarding: 1) the port send buffer is not full; 2) the queued packet counter is greater than zero; 3) obtaining a token generated by a code rate control module;
if the queue is not from the downlink network interface to the uplink network interface, the following conditions are met for forwarding: 1) the port send buffer is not full; 2) the queue packet counter is greater than zero.
The rate control module 308 is configured by the CPU module 304, and generates tokens for packet buffer queues from all downstream network interfaces to upstream network interfaces at programmable intervals to control the rate of upstream forwarding.
The CPU module 304 is mainly responsible for protocol processing with the node server, configuration of the address table 306, and configuration of the code rate control module 308.
Ethernet protocol conversion gateway
As shown in fig. 4, the apparatus mainly includes a network interface module (a downlink network interface module 401 and an uplink network interface module 402), a switching engine module 403, a CPU module 404, a packet detection module 405, a rate control module 408, an address table 406, a packet buffer 407, a MAC adding module 409, and a MAC deleting module 410.
Wherein, the data packet coming from the downlink network interface module 401 enters the packet detection module 405; the packet detection module 405 detects whether the ethernet MACDA, the ethernet MACSA, the ethernet length or frame type, the video network destination address DA, the video network source address SA, the video network packet type, and the packet length of the packet meet the requirements, and if so, allocates a corresponding stream identifier (stream-id); then, the MAC deletion module 410 subtracts MACDA, MACSA, length or frame type (2byte) and enters the corresponding receiving buffer, otherwise, discards it;
the downlink network interface module 401 detects the sending buffer of the port, and if there is a packet, acquires the ethernet MACDA of the corresponding terminal according to the video network destination address DA of the packet, adds the ethernet MACDA of the terminal, the MACSA of the ethernet coordination gateway, and the ethernet length or frame type, and sends the packet.
The other modules in the ethernet protocol gateway function similarly to the access switch.
A terminal:
the system mainly comprises a network interface module, a service processing module and a CPU module; for example, the set-top box mainly comprises a network interface module, a video and audio coding and decoding engine module and a CPU module; the coding board mainly comprises a network interface module, a video and audio coding engine module and a CPU module; the memory mainly comprises a network interface module, a CPU module and a disk array module.
1.3 devices of the metropolitan area network part can be mainly classified into 2 types: node server, node exchanger, metropolitan area server. The node switch mainly comprises a network interface module, a switching engine module and a CPU module; the metropolitan area server mainly comprises a network interface module, a switching engine module and a CPU module.
2. Video networking packet definition
2.1 Access network packet definition
The data packet of the access network mainly comprises the following parts: destination Address (DA), Source Address (SA), reserved bytes, payload (pdu), CRC.
As shown in the following table, the data packet of the access network mainly includes the following parts:
DA SA Reserved Payload CRC
wherein:
the Destination Address (DA) is composed of 8 bytes (byte), the first byte represents the type of the data packet (such as various protocol packets, multicast data packets, unicast data packets, etc.), there are 256 possibilities at most, the second byte to the sixth byte are metropolitan area network addresses, and the seventh byte and the eighth byte are access network addresses;
the Source Address (SA) is also composed of 8 bytes (byte), defined as the same as the Destination Address (DA);
the reserved byte consists of 2 bytes;
the payload part has different lengths according to different types of datagrams, and is 64 bytes if the datagram is various types of protocol packets, and is 32+1024 or 1056 bytes if the datagram is a unicast packet, of course, the length is not limited to the above 2 types;
the CRC consists of 4 bytes and is calculated in accordance with the standard ethernet CRC algorithm.
2.2 metropolitan area network packet definition
The topology of a metropolitan area network is a graph and there may be 2, or even more than 2, connections between two devices, i.e., there may be more than 2 connections between a node switch and a node server, a node switch and a node switch, and a node switch and a node server. However, the metro network address of the metro network device is unique, and in order to accurately describe the connection relationship between the metro network devices, parameters are introduced in the embodiment of the present invention: a label to uniquely describe a metropolitan area network device.
In this specification, the definition of the Label is similar to that of the Label of MPLS (Multi-Protocol Label Switch), and assuming that there are two connections between the device a and the device B, there are 2 labels for the packet from the device a to the device B, and 2 labels for the packet from the device B to the device a. The label is classified into an incoming label and an outgoing label, and assuming that the label (incoming label) of the packet entering the device a is 0x0000, the label (outgoing label) of the packet leaving the device a may become 0x 0001. The network access process of the metro network is a network access process under centralized control, that is, address allocation and label allocation of the metro network are both dominated by the metro server, and the node switch and the node server are both passively executed, which is different from label allocation of MPLS, and label allocation of MPLS is a result of mutual negotiation between the switch and the server.
As shown in the following table, the data packet of the metro network mainly includes the following parts:
DA SA Reserved label (R) Payload CRC
Namely Destination Address (DA), Source Address (SA), Reserved byte (Reserved), tag, payload (pdu), CRC. The format of the tag may be defined by reference to the following: the tag is 32 bits with the upper 16 bits reserved and only the lower 16 bits used, and its position is between the reserved bytes and payload of the packet.
Referring to fig. 5, a flowchart illustrating steps of a method for data processing according to an embodiment of the present invention is shown, where the method may be applied to a video network terminal, and specifically may include the following steps:
step 501, the video networking terminal receives a media packet and an erasure correction packet corresponding to the mth erasure correction frame, adds the received media packet to a first cache queue, and adds the received erasure correction packet to a second cache queue;
wherein M is a positive integer greater than or equal to 1.
As shown in the following table, the header of the media packet corresponding to the mth erasure correcting frame may include: the MPC1 of the media packet, the PPT of the location type of the media packet, and the FC of the mth erasure frame may further include a padding indication F indicating whether padding is needed when the media packet participates in the computation.
Figure GDA0002649353690000111
MPC1 takes 2 bytes, PPT takes 2 bits, F takes 1 Bit, FC takes 4 bits, and for the location type PPT of a media packet, the location type corresponding to the first media packet is "000", the location type corresponding to the middle media packet is "101", the location type corresponding to the last media packet is "110", and when there is only one media packet, the location type corresponding to the media packet is "111".
As shown in the following table, the header of the erasure correction packet corresponding to the mth erasure correction frame may include: the sequence number EC Index of the erasure correction packet, the sequence number MPC2 of the 1 st media packet corresponding to the mth erasure correction frame, the number MP Count of media packets corresponding to the mth erasure correction frame, and the number EC Count of erasure correction packets corresponding to the mth erasure correction frame.
Figure GDA0002649353690000121
EC Index takes 4 bits, MPC2 takes 2 bytes, MPC2 takes 1 byte, and EC Count takes 1 byte.
In specific implementation, a user can carry out video on demand through the video networking terminal, the video networking terminal can send a video on demand request to the video networking server, and the video networking server can obtain video frame data corresponding to the video on demand request and then send the video frame data to the erasure code encoder.
After receiving the video frame data, the erasure code encoder may block the video frame data, generate a media data block with a size greater than or equal to a preset size, and fill a packet header in the media data block to obtain one or more media packets.
For each obtained media packet, after the media packet is obtained, the media packet may be sent to a video networking terminal through a UDP (User Datagram Protocol) Protocol, and the media packet may be copied in a media packet cache.
When the number of the media packets in the media packet cache is equal to N, where N is a positive integer greater than 1, the erasure codes corresponding to the N media packets may be calculated, and the header of the erasure codes is filled to obtain an erasure code packet, and the erasure codes are sent to the internet of view terminal through a UDP protocol.
In fact, the media packet and the erasure correction packet corresponding to the same video frame data may belong to the same erasure correction frame, and for the mth erasure correction frame, after receiving the data packet, the video networking terminal may determine the type of the data packet by using a preset erasure correction code adder, and when the data packet is the media packet, the media packet and the erasure correction packet may be added to the first cache queue, and when the data packet is the erasure correction packet, the media packet and the erasure correction packet may be added to the second cache queue.
Step 502, when detecting that the kth media packet is lost, the video networking terminal determines whether the media packet in the first cache queue and the erasure correction packet in the second cache queue meet a preset condition;
wherein K is a positive integer greater than or equal to 1.
After receiving a media packet, the video networking terminal may attempt to acquire a next media packet, and when attempting to acquire a kth media packet fails, it may be determined that the kth media packet is lost, and then it may be further determined whether a previous cache state meets a preset condition.
Specifically, since the erasure correction code encoder generates an erasure correction packet according to the N media packets, that is, each erasure correction packet corresponds to the N media packets, the following method may be adopted to determine whether the preset condition is satisfied, including:
when the number of erasure correction packets corresponding to the mth erasure correction frame in the second cache queue is equal to 0 and a media packet corresponding to the M + L erasure correction frames has been received, determining that a preset condition is not satisfied;
and when the number of erasure correction packets corresponding to the Mth erasure correction frame in the second cache queue is greater than 0 and the sum of the number of erasure correction packets corresponding to the Mth erasure correction frame in the second cache queue and the number of media packets corresponding to the Mth erasure correction frame in the first cache queue is greater than or equal to N, determining that a preset condition is met.
Wherein L is a positive integer greater than or equal to 1.
Because the currently packaged video frame data is the video frame data corresponding to the mth erasure correcting frame, when the number of erasure correcting packets corresponding to the mth erasure correcting frame in the second cache queue is equal to 0 and the media packet corresponding to the M + L erasure correcting frame has been received, that is, the subsequent erasure correcting frame of the mth erasure correcting frame has been received, it is determined that the current cache state does not satisfy the preset condition.
Because the erasure code encoder generates an erasure packet according to the N media packets, when the number of erasure packets corresponding to the mth erasure frame in the second buffer queue is greater than 0 and the sum of the number of erasure packets corresponding to the mth erasure frame in the second buffer queue and the number of media packets corresponding to the mth erasure frame in the first buffer queue is greater than or equal to N, it is determined that the current buffer status satisfies the preset condition.
When the preset condition is not determined to be not met or the preset condition is not determined to be met, the method can continue to wait to try to obtain the K-th media packet again, or determine whether the preset condition is met again.
Step 503, when the terminal of the video network judges that the preset condition is met, recovering a K-th media packet by using the media packet in the first buffer queue and the erasure correction packet in the second buffer queue, and adding the K-th media packet to the first buffer queue;
when the media packet corresponding to the mth erasure correcting frame in the first buffer queue and the erasure correcting packet corresponding to the mth erasure correcting frame in the second buffer queue are judged to meet the preset condition, a recovery operation can be performed by using the media packet corresponding to the mth erasure correcting frame in the first buffer queue and the erasure correcting packet corresponding to the mth erasure correcting frame in the second buffer queue to obtain a kth media packet, and then the kth media packet is added to the first buffer queue.
In an embodiment of the present application, the method may further include the following steps:
and when the condition that the recovery fails to meet the preset condition is judged, generating a recovery failure packet as a Kth media packet, and adding the recovery failure packet to the first cache queue.
And when the preset condition is judged not to be met, generating a blank recovery failure packet, taking the recovery failure packet as the Kth media packet, and adding the K th media packet to the first cache queue.
Step 504, when detecting that the media packet corresponding to the mth erasure correcting frame is completely received, the video networking terminal organizes the media packet corresponding to the mth erasure correcting frame in the first buffer queue into video frame data.
Because the header of the erasure correction packet stores the number of media packets MPCount corresponding to the mth erasure correction frame, when it is detected that the number of media packets corresponding to the mth erasure correction frame in the second cache queue is equal to the MPCount, it can be determined that the media packets corresponding to the mth erasure correction frame are received completely, or it can be determined whether the media packets corresponding to the mth erasure correction frame are received completely according to the header of the media packets.
When the media packet corresponding to the mth erasure correcting frame is judged to be completely received, the media packet corresponding to the mth erasure correcting frame in the first cache queue may be packaged to obtain video frame data.
In the invention, by receiving the media packet and the erasure correction packet corresponding to the Mth erasure correction frame, adding the received media packet to the first buffer queue, adding the received erasure correction packet to the second buffer queue, when detecting that the Kth media packet is lost, judging whether the media packets in the first buffer queue and the erasure packets in the second buffer queue meet the preset condition, when the judgment meets the preset condition, the media packet in the first buffer queue and the erasure correction packet in the second buffer queue are adopted to recover the K media packet and added into the first buffer queue, when the media packet corresponding to the Mth erasure correcting frame is detected to be completely received, the media packets corresponding to the Mth erasure correcting frame in the first cache queue are organized into video frame data, so that packet loss recovery is realized, data redundancy is reduced, the capability of packet loss resistance is improved, and the real-time performance of video transmission and the quality of video watching are improved.
It should be noted that, for simplicity of description, the method embodiments are described as a series of acts or combination of acts, but those skilled in the art will recognize that the present invention is not limited by the illustrated order of acts, as some steps may occur in other orders or concurrently in accordance with the embodiments of the present invention. Further, those skilled in the art will appreciate that the embodiments described in the specification are presently preferred and that no particular act is required to implement the invention.
Referring to fig. 6, a flowchart illustrating steps of a data processing apparatus according to an embodiment of the present invention is shown, and is applied to a video network terminal, where the apparatus may specifically include the following modules:
a data packet caching module 601, configured to receive a media packet and an erasure correction packet corresponding to an mth erasure correction frame, add the received media packet to a first cache queue, and add the received erasure correction packet to a second cache queue;
a preset condition determining module 602, configured to determine whether the media packet in the first cache queue and the erasure correction packet in the second cache queue meet a preset condition when the kth media packet is detected to be lost;
a media packet recovery module 603, configured to recover, when it is determined that a preset condition is met, a kth media packet by using the media packet in the first cache queue and the erasure correction packet in the second cache queue, and add the kth media packet to the first cache queue;
a video frame data organizing module 604, configured to organize the media packet corresponding to the mth erasure correcting frame in the first cache queue into video frame data when it is detected that the media packet corresponding to the mth erasure correcting frame is completely received;
wherein M and K are positive integers greater than or equal to 1.
In an embodiment of the present application, the method further includes:
and the media packet replacement module is used for generating a recovery failure packet as a Kth media packet and adding the recovery failure packet to the first cache queue when the condition that the media packet does not meet the preset condition is judged.
In an embodiment of the present application, each erasure correction packet corresponds to N media packets, and determining whether a preset condition is met by using the following method includes:
when the number of erasure correction packets corresponding to the mth erasure correction frame in the second cache queue is equal to 0 and a media packet corresponding to the M + L erasure correction frames has been received, determining that a preset condition is not satisfied;
when the number of erasure correction packets corresponding to the mth erasure correction frame in the second buffer queue is greater than 0 and the sum of the number of erasure correction packets corresponding to the mth erasure correction frame in the second buffer queue and the number of media packets corresponding to the mth erasure correction frame in the first buffer queue is greater than or equal to N, determining that a preset condition is satisfied;
wherein, L is a positive integer greater than or equal to 1, and N is a positive integer greater than 1.
In an embodiment of the present application, the header of the media packet corresponding to the mth erasure correcting frame includes:
the serial number of the media packet, the position type of the media packet, and the serial number of the mth erasure correcting frame.
In an embodiment of the present application, a header of an erasure correction packet corresponding to the mth erasure correction frame includes:
a serial number of the erasure correction packet, a serial number of a 1 st media packet corresponding to the Mth erasure correction frame, a number of media packets corresponding to the Mth erasure correction frame, and a number of erasure correction packets corresponding to the Mth erasure correction frame
For the device embodiment, since it is basically similar to the method embodiment, the description is simple, and for the relevant points, refer to the partial description of the method embodiment.
An embodiment of the present invention also provides an electronic device, which may include a processor, a memory, and a computer program stored on the memory and capable of running on the processor, and when the computer program is executed by the processor, the steps of the method for processing data as above are implemented.
An embodiment of the present invention further provides a computer-readable storage medium, on which a computer program is stored, which, when executed by a processor, implements the steps of the above method of data processing.
The embodiments in the present specification are described in a progressive manner, each embodiment focuses on differences from other embodiments, and the same and similar parts among the embodiments are referred to each other.
As will be appreciated by one skilled in the art, embodiments of the present invention may be provided as a method, apparatus, or computer program product. Accordingly, embodiments of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, embodiments of the present invention may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
Embodiments of the present invention are described with reference to flowchart illustrations and/or block diagrams of methods, terminal devices (systems), and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing terminal to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing terminal, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing terminal to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing terminal to cause a series of operational steps to be performed on the computer or other programmable terminal to produce a computer implemented process such that the instructions which execute on the computer or other programmable terminal provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
While preferred embodiments of the present invention have been described, additional variations and modifications of these embodiments may occur to those skilled in the art once they learn of the basic inventive concepts. Therefore, it is intended that the appended claims be interpreted as including preferred embodiments and all such alterations and modifications as fall within the scope of the embodiments of the invention.
Finally, it should also be noted that, herein, relational terms such as first and second, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Also, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or terminal that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or terminal. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other like elements in a process, method, article, or terminal that comprises the element.
The method and apparatus for data processing provided by the present invention are described in detail above, and the principle and the implementation of the present invention are explained in detail herein by applying specific examples, and the description of the above examples is only used to help understanding the method and the core idea of the present invention; meanwhile, for a person skilled in the art, according to the idea of the present invention, there may be variations in the specific embodiments and the application scope, and in summary, the content of the present specification should not be construed as a limitation to the present invention.

Claims (6)

1. A data processing method is applied to a video network terminal and comprises the following steps:
the erasure encoder sends the media packets to the video networking terminal through a UDP protocol after obtaining the media packets for each obtained media packet, and copies the media packets in a media packet cache;
when the number of the media packets in the media packet cache is equal to N, calculating erasure codes corresponding to the N media packets, filling packet headers with the erasure codes to obtain erasure packets, and sending the erasure codes to the video networking terminal through a UDP (user Datagram protocol) protocol;
the video networking terminal receives a media packet and an erasure correction packet corresponding to the Mth erasure correction frame, adds the received media packet to a first cache queue, and adds the received erasure correction packet to a second cache queue;
when the video networking terminal detects that the Kth media packet is lost, judging whether the media packet in the first cache queue and the erasure correcting packet in the second cache queue meet preset conditions or not;
when the video network terminal judges that the preset condition is met, recovering a Kth media packet by adopting the media packet in the first cache queue and the erasure correction packet in the second cache queue, and adding the K th media packet to the first cache queue;
when the condition is judged not to meet the preset condition, generating a recovery failure packet as a Kth media packet, and adding the K th media packet to the first cache queue;
when detecting that the media packet corresponding to the Mth erasure correcting frame is completely received, the video networking terminal organizes the media packet corresponding to the Mth erasure correcting frame in the first cache queue into video frame data;
wherein M and K are positive integers greater than or equal to 1;
wherein, every erasure packet corresponds to N media package, and whether the following mode is adopted to judge whether the preset condition is satisfied includes:
when the number of erasure correction packets corresponding to the mth erasure correction frame in the second cache queue is equal to 0 and a media packet corresponding to the M + L erasure correction frames has been received, determining that a preset condition is not satisfied;
when the number of erasure correction packets corresponding to the mth erasure correction frame in the second buffer queue is greater than 0 and the sum of the number of erasure correction packets corresponding to the mth erasure correction frame in the second buffer queue and the number of media packets corresponding to the mth erasure correction frame in the first buffer queue is greater than or equal to N, determining that a preset condition is satisfied;
wherein, L is a positive integer greater than or equal to 1, and N is a positive integer greater than 1.
2. The method of claim 1, wherein the header of the media packet corresponding to the mth erasure correcting frame comprises:
the serial number of the media packet, the position type of the media packet, and the serial number of the mth erasure correcting frame.
3. The method of claim 1, wherein the header of the erasure correction packet corresponding to the mth erasure correction frame comprises:
the serial number of the erasure correction packet, the serial number of the 1 st media packet corresponding to the Mth erasure correction frame, the number of the media packets corresponding to the Mth erasure correction frame, and the number of the erasure correction packets corresponding to the Mth erasure correction frame.
4. A data processing device is applied to a video network terminal and comprises:
the erasure encoder sends the media packets to the video networking terminal through a UDP protocol after obtaining the media packets for each obtained media packet, and copies the media packets in a media packet cache;
when the number of the media packets in the media packet cache is equal to N, calculating erasure codes corresponding to the N media packets, filling packet headers with the erasure codes to obtain erasure packets, and sending the erasure codes to the video networking terminal through a UDP (user Datagram protocol) protocol;
the data packet caching module is used for receiving the media packet and the erasure correction packet corresponding to the Mth erasure correction frame, adding the received media packet to the first caching queue and adding the received erasure correction packet to the second caching queue;
the preset condition judgment module is used for judging whether the media packets in the first cache queue and the erasure correcting packets in the second cache queue meet preset conditions or not when the loss of the Kth media packet is detected;
a media packet recovery module, configured to recover, when it is determined that a preset condition is met, a kth media packet by using the media packet in the first cache queue and the erasure correction packet in the second cache queue, and add the kth media packet to the first cache queue;
the media packet replacement module is used for generating a recovery failure packet as a Kth media packet when the condition that the media packet does not meet the preset condition is judged, and adding the recovery failure packet to the first cache queue;
a video frame data organizing module, configured to organize the media packet corresponding to the mth erasure correcting frame in the first cache queue into video frame data when it is detected that the media packet corresponding to the mth erasure correcting frame is completely received;
wherein M and K are positive integers greater than or equal to 1;
wherein, every erasure packet corresponds to N media package, and whether the following mode is adopted to judge whether the preset condition is satisfied includes:
when the number of erasure correction packets corresponding to the mth erasure correction frame in the second cache queue is equal to 0 and a media packet corresponding to the M + L erasure correction frames has been received, determining that a preset condition is not satisfied;
when the number of erasure correction packets corresponding to the mth erasure correction frame in the second buffer queue is greater than 0 and the sum of the number of erasure correction packets corresponding to the mth erasure correction frame in the second buffer queue and the number of media packets corresponding to the mth erasure correction frame in the first buffer queue is greater than or equal to N, determining that a preset condition is satisfied;
wherein, L is a positive integer greater than or equal to 1, and N is a positive integer greater than 1.
5. The apparatus of claim 4, wherein the header of the media packet corresponding to the Mth erasure frame comprises:
the serial number of the media packet, the position type of the media packet, and the serial number of the mth erasure correcting frame.
6. The apparatus of claim 4, wherein the header of the erasure correction packet corresponding to the Mth erasure correction frame comprises:
the serial number of the erasure correction packet, the serial number of the 1 st media packet corresponding to the Mth erasure correction frame, the number of the media packets corresponding to the Mth erasure correction frame, and the number of the erasure correction packets corresponding to the Mth erasure correction frame.
CN201811142159.1A 2018-09-28 2018-09-28 Data processing method and device Active CN109167965B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811142159.1A CN109167965B (en) 2018-09-28 2018-09-28 Data processing method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811142159.1A CN109167965B (en) 2018-09-28 2018-09-28 Data processing method and device

Publications (2)

Publication Number Publication Date
CN109167965A CN109167965A (en) 2019-01-08
CN109167965B true CN109167965B (en) 2020-12-04

Family

ID=64892728

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811142159.1A Active CN109167965B (en) 2018-09-28 2018-09-28 Data processing method and device

Country Status (1)

Country Link
CN (1) CN109167965B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110149240A (en) * 2019-04-04 2019-08-20 视联动力信息技术股份有限公司 A kind of data package processing method and device
CN111277864B (en) * 2020-02-18 2021-09-10 北京达佳互联信息技术有限公司 Encoding method and device of live data, streaming system and electronic equipment

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101098209A (en) * 2006-06-28 2008-01-02 株式会社东芝 FEC encoding method, FEC decoding method, and FEC decoding apparatus
CN101193060A (en) * 2006-12-01 2008-06-04 武汉烽火网络有限责任公司 Method for reliable E1 transmission based on forward error correction mechanism in packet network
CN101272221A (en) * 2008-05-04 2008-09-24 中兴通讯股份有限公司 Transmission, receiving method and device of file data
CN101588504A (en) * 2009-05-21 2009-11-25 中兴通讯股份有限公司 Sending and receiving devices of video communication system, and sending and receiving method thereof
WO2016152063A1 (en) * 2015-03-24 2016-09-29 ソニー株式会社 Data reception device, data transmission system, data reception method, and data transmission method
CN108183774A (en) * 2018-03-26 2018-06-19 浙江齐聚科技有限公司 The forward error correction and system of a kind of streaming media

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101778295B (en) * 2009-12-25 2012-11-14 中兴通讯股份有限公司 Video monitor system and method for forward correcting thereof
CN102143367B (en) * 2010-01-30 2013-01-30 华为技术有限公司 Method, device and system for checking error correction
EP3346618B1 (en) * 2014-02-10 2021-09-15 SZ DJI Technology Co., Ltd. Adaptive communication mode switching
CN105933342A (en) * 2016-06-24 2016-09-07 浙江宇视科技有限公司 Video monitoring data transmission method and device

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101098209A (en) * 2006-06-28 2008-01-02 株式会社东芝 FEC encoding method, FEC decoding method, and FEC decoding apparatus
CN101193060A (en) * 2006-12-01 2008-06-04 武汉烽火网络有限责任公司 Method for reliable E1 transmission based on forward error correction mechanism in packet network
CN101272221A (en) * 2008-05-04 2008-09-24 中兴通讯股份有限公司 Transmission, receiving method and device of file data
CN101588504A (en) * 2009-05-21 2009-11-25 中兴通讯股份有限公司 Sending and receiving devices of video communication system, and sending and receiving method thereof
WO2016152063A1 (en) * 2015-03-24 2016-09-29 ソニー株式会社 Data reception device, data transmission system, data reception method, and data transmission method
CN108183774A (en) * 2018-03-26 2018-06-19 浙江齐聚科技有限公司 The forward error correction and system of a kind of streaming media

Also Published As

Publication number Publication date
CN109167965A (en) 2019-01-08

Similar Documents

Publication Publication Date Title
CN110475102B (en) Monitoring data processing method and system based on video network
CN110381030B (en) Method and device for processing synchronization request
CN109547163B (en) Method and device for controlling data transmission rate
CN109818960B (en) Data processing method and device
CN110557319B (en) Message processing method and device based on video network
CN110138513B (en) Data transmission method and video networking system
CN110224988B (en) Image data processing method, system and device and storage medium
CN111224889A (en) Data transmission method and device
CN110650147A (en) Data acquisition method and system
CN109167965B (en) Data processing method and device
CN110493149B (en) Message processing method and device
CN110677314B (en) Network interface testing method, system, electronic device and storage medium
CN110022500B (en) Packet loss processing method and device
CN110446058B (en) Video acquisition method, system, device and computer readable storage medium
CN109586851B (en) Data transmission method and device based on video network
CN109889516B (en) Method and device for establishing session channel
CN111478880A (en) Data processing method and device
CN110677315A (en) Method and system for monitoring state
CN111245733A (en) Data transmission method and device
CN110557658A (en) Monitoring system and method
CN110445701B (en) Business object processing method and device and storage medium
CN110267110B (en) Concurrent on-demand processing method and system based on video network
CN110139060B (en) Video conference method and device
CN110191202B (en) Method and device for determining access address of equipment
CN110062259B (en) Video acquisition method, system, device and computer readable storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201230

Address after: 571924 building C07, Zone C, Hainan Ecological Software Park, hi tech Industrial Demonstration Zone, old town, Haikou City, Hainan Province

Patentee after: Hainan Shilian Communication Technology Co.,Ltd.

Address before: 100000 Beijing Dongcheng District Qinglong Hutong 1 Song Hua Building A1103-1113

Patentee before: VISIONVERA INFORMATION TECHNOLOGY Co.,Ltd.