[0001] This application claims priority to Chinese Patent Application No.
201810234918.0, filed with the China National Intellectual Property Administration on March 21,
2018 and entitled "DATA PROCESSING METHOD AND CLIENT", which is incorporated herein
by reference in its entirety.
TECHNICAL FIELD
[0002] This application relates to the communications field, and in particular, to a data
processing method and a client.
BACKGROUND
[0003] VoLTE (voice over LTE) is a voice service based on an IP multimedia subsystem (IP
multimedia system, IMS), is an end-to-end voice solution provided in an LTE network
under an all-IP condition, and can implement integration of data and voice services
in a same network. Introduction of high-definition voice and video coding/decoding
improves call quality, shortens a connection waiting time for a user, and brings in
a higher-quality and more-natural audio and/or video call effect for the user.
[0004] In key performance indicators for measuring user experience of a VoLTE service, voice
and video quality is crucial. Evaluation methods of voice and video quality include
two types: subjective evaluation and objective evaluation. Subjective evaluation is
people-oriented voice quality evaluation in which an evaluation listener participating
in evaluation listening scores for voice and video quality according to an evaluation
criterion agreed on in advance. This evaluation method reflects a subjective opinion
of the evaluation listener on voice and video quality, and reflects real voice and
video quality. Currently, common subjective evaluation methods include a mean opinion
score (mean opinion Score, MOS) method, diagnostic rhyme tests (diagnostic rhyme tests,
DRT), and the like. Objective evaluation is automatic determining of voice and video
quality with a machine, and may be divided into active evaluation based on input and
output manners and passive evaluation based on an output manner in principles. Active
evaluation is based on an error comparison between original voice, video signals and
distorted voice, video signals. Currently, common active evaluation methods include
perceptual evaluation of speech quality (perceptual evaluation of speech quality,
PESQ), perceptual objective listening quality assessment (perceptual objective listening
quality assessment, POLQA), and the like. Passive evaluation is to establish a relationship
between perceived voice and video quality and parameters related to a network and
audio and video streams and the like, to capture a network parameter or a voice and
video stream parameter and perceive voice and video quality by using a mathematical
model. Currently, a common passive evaluation method includes R-factor. According
to the MOS evaluation method, an original subjective evaluation manner is discarded,
and a corresponding level and a voice and video quality degree are calculated by using
a quantitative algorithm of the objective evaluation method.
[0005] In an existing voice and video quality evaluation method, voice and video feature
parameters in a call process are mainly extracted, and a MOS score that fits subjective
user perception is obtained through a series of calculation. The feature parameters
include transmission indicators such as a delay, a jitter, and a packet loss and call
features such as coding/decoding type, an audio code rate, and a video resolution.
Voice data and video data of VoLTE are usually transmitted by using a real-time transport
protocol (real-time transport protocol, RTP) data packet. Real-time control protocol
(real-time control protocol, RTCP) and RTP work together. An RTCP data packet is encapsulated
with a statistics report of a transmit end or a receive end, where the statistics
report includes statistical information about a quantity of sent RTP data packets,
a quantity of lost RTP data packets, RTP data packet jitter, and the like. A minimum
measurement unit of MOS evaluation is a complete call service including a complete
voice call or a complete video call. A complete call service is distinguished by using
a source IP address, a source port number, a destination IP address, and a destination
port number used in a call. A complete call service includes sending, by the transmit
end, audio data and/or video data to the receive end, which may be referred to as
an uplink-direction service, and further includes receiving, by the transmit end,
audio data and/or video data from the receive end, which may be referred to as a downlink-direction
service. A MOS score of the uplink-direction service may be calculated based on feature
parameters including a transmission indicator and a call feature in an uplink-direction
service process by using a MOS evaluation algorithm. Similarly, a MOS score of the
downlink-direction service can also be obtained. For example, feature parameters of
an uplink/downlink direction are separately inputted to an audio and video MOS evaluation
model E-Model by using the R-factor method, to calculate R, and a MOS score of the
uplink/downlink-direction service is obtained by using a conversion formula. Refer
to FIG. 1.
[0006] A MOS score depends on a feature parameter of a complete call service. A packet loss
parameter of a complete call service is used as an example. A packet loss rate is
negatively correlated to a MOS score. A higher packet loss rate indicates a lower
MOS score, and otherwise, a MOS score is higher. For example, an uplink-direction
service process of a complete call service has a total of 15 RTP data packets. An
RTP data packet of an uplink-direction service that is transmitted on a network is
obtained through mirroring on an interface (for example, an S1-U interface) that the
RTP data packet of the complete call service passes through. Referring to FIG. 2,
it is determined that three RTP data packets are lost on the S1-U interface. Therefore,
a packet loss rate of passing through the S1-U interface by the uplink-direction service
is 20%. A MOS score of passing through the S1-U interface by the uplink-direction
service is not obviously low, and it is considered that user perception is desirable
when the uplink-direction service passes through the S1-U interface. However, as can
be seen from FIG. 2, in a period formed by moments of receiving RTP data packets,
for example, a period 1 shown in FIG. 2, three consecutive RTP data packets are lost
when the uplink-direction service passes through the S1-U interface, a packet loss
rate is as high as 60% in the period 1, and user perception is actually relatively
poor in the period when the uplink-direction service passes through the S1-U interface.
Because MOS evaluation focuses on a feature parameter of a complete call service,
relatively poor user perception in a period is weakened. As a result, an evaluation
result of voice and video quality is inaccurate.
SUMMARY
[0007] Embodiments of this application provide a data processing method and a client, to
classify data packets of a target call service whose obtaining moments are in different
time segments into different data packet sets, determine a feature parameter corresponding
to each of the different data packet sets, and evaluate audio and/or video quality
corresponding to each feature parameter. To be specific, time segments are classified
for the target call service, and MOS evaluation may be performed based on the feature
parameter of each of the classified different time segments, so that accuracy of an
evaluation result of voice and video quality can be improved.
[0008] A first aspect of the embodiments of this application provides a data processing
method. The method includes as follows.
[0009] When a terminal is registered with a network and initiates a target call service,
the network allocates a corresponding bearer or PDP context to a user. The terminal
may transmit a data packet in the network through the bearer or the PDP context. The
data packet may carry voice data or video data, that is, the data packet of the target
call service includes a data packet carrying voice data and/or a data packet carrying
video data. Specifics are not limited herein. The data packets may be transferred
to a called terminal through transparent transmission of an access network element
and a core network element. In a process of transferring the data packet of the target
call service, the client may obtain the data packet of the target call service.
[0010] A direction of sending a data packet by the terminal may be referred to as an uplink
direction, and a direction of receiving a data packet by the terminal may be referred
to as a downlink direction. The target call service includes a data packet of the
uplink direction, and also includes a data packet of the downlink direction. The client
may recognize the data packet of the target call service by using a source IP address,
a source port number, a destination IP address, and a destination port number of the
data packet, and may preset a source IP address, a source port number, a destination
IP address, and a destination port number of the target call service. If obtaining
a data packet whose source IP address, source port number, destination IP address,
and destination port number are respectively consistent with the preset source IP
address, source port number, destination IP address, and destination port number,
the client may determine that the data packet is a data packet of the target call
service. It may be understood that the data packet of the target call service is bidirectional.
If obtaining a data packet whose source IP address is the same as the preset destination
IP address, whose target IP address is the same as the preset source IP address, whose
destination port number is the same as the preset source port number, and whose source
port number is the same as the preset destination port number, the client may determine
that the data packet is also a data packet of the target call service.
[0011] It may be understood that when the data packet includes an RTP data packet and an
RTCP data packet, the source IP address, the source port number, the destination IP
address, and the destination port number of the target call service may be preset
based on a source IP address, a source port number, a destination IP address, and
a destination port number of the RTP data packet. When obtaining a data packet, if
determining that a source IP address and a destination IP address of the data packet
are consistent with the preset source IP address and destination IP address, and determining
that a source port number of the data packet is equal to the preset source port number
plus 1 and a destination port number of the data packet is equal to the preset destination
port number plus 1, the client may determine that the data packet is a data packet
of the target call service and the data packet is an RTCP data packet. Because the
data packet of the target call service is bidirectional, when obtaining a data packet,
if determining that a source IP address of the data packet is consistent with the
preset destination IP address and a destination IP address of the data packet is consistent
with the preset source IP address, and determining that a source port number of the
data packet is equal to the preset destination port number plus 1 and a destination
port number of the data packet is equal to the preset source port number plus 1, the
client may determine that the data packet is a data packet of the target call service
and the data packet is an RTCP data packet.
[0012] Optionally, the client may be a terminal, and a data obtaining module of the terminal
may obtain a data packet sent by the terminal. The client may be a network element,
for example, an MGW, that the data packet of the target call service passes through
in a transfer process. The MGW may obtain a data packet through mirroring when receiving
a data packet sent by the terminal. The client may be further a probe server, and
the probe server may capture a data packet by using a network probe. Specifics are
not limited herein. The client may further include a data analysis server that performs
further processing, such as aggregation, association, and classification based on
cities, on a result obtained by the client after MOS evaluation. Specifics are not
limited herein.
[0013] It may be understood that the client may obtain the data packet of the target call
service on a corresponding interface, for example, an S1-U interface, a Gm interface,
or an Mw interface. This depends on a status of the client. Specifics are not limited
herein.
[0014] After obtaining data packets of the target call service, the client may classify
the data packets based on different time segments to which moments at which the client
obtains the data packets belong. For example, the client obtains the first data packet
and the second data packet of the target call service. The first obtaining moment
of the first data packet belongs to the first time segment, and the second obtaining
moment of the second data packet belongs to the second time segment. The first time
segment and the second time segment are different time segments in which the client
obtains the target call service, and an intersection set of the first time segment
and the second time segment is empty. The client may classify the first data packet
into the first data packet set and classify the second data packet into the second
data packet set based on the first time segment and the second time segment.
[0015] After classifying the obtained data packets of the target call service into the different
data packet sets, the client may separately determine a feature parameter corresponding
to each data packet set, and may separately calculate, based on a preset audio and/or
video quality evaluation algorithm, audio and/or video quality corresponding to each
feature parameter. For example, the client may determine a first feature parameter
corresponding to the first data packet set and a second feature parameter corresponding
to the second data packet set, and separately calculate, based on the preset audio
and/or video quality evaluation algorithm, audio and/or video quality corresponding
to the first feature parameter, and audio and/or video quality corresponding to the
second feature parameter.
[0016] In this embodiment of this application, if obtaining the first data packet and the
second data packet of the target call service initiated by the terminal, the client
may classify the first data packet into the first data packet set and classify the
second data packet into the second data packet set based on the first time segment
and the second time segment. The first obtaining moment of the first data packet belongs
to the first time segment, and the second obtaining moment of the second data packet
belongs to the second time segment. The first time segment and the second time segment
are different time segments in which the client obtains the data packets of the target
call service, and the intersection set of the first time segment and the second time
segment is empty. The client may separately determine the first feature parameter
corresponding to the first data packet set and the second feature parameter corresponding
to the second data packet set, and separately calculate, based on the preset audio
and/or video quality evaluation algorithm, the audio and/or video quality corresponding
to the first feature parameter, and the audio and/or video quality corresponding to
the second feature parameter. To be specific, time segments are classified for the
target call service, and MOS evaluation may be separately performed based on the feature
parameters in the classified different time segments, to improve accuracy of an evaluation
result of voice and video quality.
[0017] According to the first aspect of the embodiments of this application, in a first
implementation of the first aspect of the embodiments of this application, the classifying,
by a client, the first data packet into a first data packet set and classifying the
second data packet into a second data packet set based on a first time segment and
a second time segment includes:
when determining that first status information of the terminal in the first time segment
is the same as second status information of the terminal in the second time segment,
classifying, by the client, the first data packet into the first data packet set and
classifying the second data packet into the second data packet set according to a
preset time slice rule.
[0018] In this embodiment of this application, when classifying the first data packet and
the second data packet based on the first time segment and the second time segment,
the client may first determine whether first status information of the terminal in
the first time segment is the same as second status information of the terminal in
the second time segment. If determining that the first status information is the same
as the second status information, the client may classify the first data packet into
the first data packet set and classify the second data packet into the second data
packet set according to a preset time slice rule. This provides an implementation
of classifying the first data packet and the second data packet by the client based
on the first time segment and the second time segment, and improves implementability
of the solution.
[0019] According to the first implementation of the first aspect of the embodiments of this
application, in a second implementation of the first aspect of the embodiments of
this application, the classifying, by the client, the first data packet into the first
data packet set and classifying the second data packet into the second data packet
set according to a preset time slice rule includes:
classifying, by the client, the first data packet into the first data packet set and
classifying the second data packet into the second data packet set according to a
preset first time slice rule, the first obtaining moment, and the second obtaining
moment, where an interval between the first obtaining moment and an obtaining moment
of at least one data packet in the second data packet set is greater than a preset
first duration threshold, an interval between the second obtaining moment and an obtaining
moment of at least one data packet in the first data packet set is greater than the
first duration threshold, an interval between obtaining moments of any two data packets
in the first data packet set is not greater than the first duration threshold, and
an interval between obtaining moments of any two data packets in the second data packet
set is not greater than the first duration threshold.
[0020] In this embodiment of this application, when classifying the first data packet and
the second data packet according to the preset time slice rule, the client may classify
the first data packet into the first data packet set and classify the second data
packet into the second data packet set according to the preset first time slice rule,
the first obtaining moment, and the second obtaining moment, to ensure that an interval
between the first obtaining moment and an obtaining moment of at least one data packet
in the second data packet set is greater than a preset first duration threshold, an
interval between the second obtaining moment and an obtaining moment of at least one
data packet in the first data packet set is greater than the first duration threshold,
an interval between obtaining moments of any two data packets in the first data packet
set is not greater than the first duration threshold, and an interval between obtaining
moments of any two data packets in the second data packet set is not greater than
the first duration threshold. This provides an implementation of classifying the first
data packet and the second data packet by the client based on the first time segment
and the second time segment when the first status information is the same as the second
status information, and improves implementability and flexibility of the solution.
[0021] According to the first implementation of the first aspect of the embodiments of this
application, in a third implementation of the first aspect of the embodiments of this
application, the classifying, by the client, the first data packet into the first
data packet set and classifying the second data packet into the second data packet
set according to a preset time slice rule includes:
if obtaining a third data packet of the target call service, classifying, by the client,
the first data packet into the first data packet set and classifying the second data
packet into the second data packet set according to a preset second time slice rule,
the first obtaining moment, the second obtaining moment, and a third obtaining moment
of the third data packet, where the third obtaining moment belongs to the first time
segment or the second time segment; and
classifying, by the client, the third data packet into the first data packet set or
the second data packet set according to the second time slice rule, the first obtaining
moment, the second obtaining moment, and the third obtaining moment, where the third
obtaining moment is earlier than obtaining moments of all data packets of one of the
first data packet set and the second data packet set, and is later than obtaining
moments of all data packets in the other data packet set, and an interval between
the third obtaining moment and an obtaining moment of any data packet in the first
data packet set or the second data packet set is not greater than a preset second
duration threshold, where
the first data packet includes a first RTP data packet;
the second data packet includes a second RTP data packet; and
the third data packet includes a first RTCP data packet.
[0022] In this embodiment of this application, when classifying the first data packet and
the second data packet according to the preset time slice rule, the client obtains
the third data packet of the target call service, where the third obtaining moment
of the third data packet belongs to the first time segment or the second time segment.
The client may classify the first data packet into the first data packet set, classify
the second data packet into the second data packet set, and classify the third data
packet into the first data packet set or the second data packet set according to the
preset second time slice rule, the first obtaining moment, the second obtaining moment,
and the third obtaining moment, to ensure that the third obtaining moment is earlier
than obtaining moments of all data packets of one of the first data packet set and
the second data packet set, and is later than obtaining moments of all data packets
in the other data packet set, and an interval between the third obtaining moment and
an obtaining moment of any data packet in the first data packet set or the second
data packet set is not greater than a preset second duration threshold. This provides
another implementation of classifying the first data packet and the second data packet
by the client based on the first time segment and the second time segment when the
first status information is the same as the second status information, and improves
implementability and flexibility of the solution.
[0023] According to the first aspect of the embodiments of this application, in a fourth
implementation of the first aspect of the embodiments of this application, the classifying,
by a client, the first data packet into a first data packet set and classifying the
second data packet into a second data packet set based on a first time segment and
a second time segment includes:
when determining that first status information of the terminal in the first time segment
is different from second status information of the terminal in the second time segment,
classifying, by the client, the first data packet into the first data packet set and
classifying the second data packet into the second data packet set according to a
preset status slice rule.
[0024] In this embodiment of this application, when classifying the first data packet and
the second data packet based on the first time segment and the second time segment,
the client may first determine whether first status information of the terminal in
the first time segment is the same as second status information of the terminal in
the second time segment. If determining that the first status information is different
from the second status information, the client may classify the first data packet
into the first data packet set and classify the second data packet into the second
data packet set according to a preset status slice rule. This provides another implementation
of classifying the first data packet and the second data packet by the client based
on the first time segment and the second time segment, and improves implementability
and flexibility of the solution.
[0025] According to the fourth implementation of the first aspect of the embodiments of
this application, in a fifth implementation of the first aspect of the embodiments
of this application, the first status information includes first location information
corresponding to the terminal when the client obtains the first data packet;
the second status information includes second location information corresponding to
the terminal when the client obtains the second data packet; and
the classifying, by the client, the first data packet into the first data packet set
and classifying the second data packet into the second data packet set according to
a preset status slice rule includes:
classifying, by the client, the first data packet into the first data packet set and
classifying the second data packet into the second data packet set according to a
preset location slice rule, the first location information, and the second location
information, where location information corresponding to the terminal when any data
packet in the first data packet set is obtained by the client is the first location
information, and location information corresponding to the terminal when any data
packet in the second data packet set is obtained by the client is the second location
information.
[0026] In this embodiment of this application, the first status information may be the first
location information corresponding to the terminal when the client obtains the first
data packet, and the second status information may be the second location information
corresponding to the terminal when the client obtains the second data packet. When
classifying the first data packet and the second data packet according to the preset
status slice rule, the client may classify the first data packet into the first data
packet set and classify the second data packet into the second data packet set according
to the preset location slice rule, the first location information, and the second
location information, to ensure that location information corresponding to the terminal
when any data packet in the first data packet set is obtained by the client is the
first location information, and location information corresponding to the terminal
when any data packet in the second data packet set is obtained by the client is the
second location information. This provides an implementation of classifying the first
data packet and the second data packet by the client based on the first time segment
and the second time segment when the first status information is different from the
second status information, and improves implementability and flexibility of the solution.
[0027] According to the fifth implementation of the first aspect of the embodiments of this
application, in a sixth implementation of the first aspect of the embodiments of this
application, the first location information includes a first cell; and the second
location information includes a second cell; or the first location information includes
a first grid; and the second location information includes a second grid; or the first
location information includes a first interface network element through which the
first data packet passes; and the second location information includes a second interface
network element through which the second data packet passes, where the first interface
network element corresponds to the second interface network element.
[0028] In this embodiment of this application, the first location information may be a first
cell, a first grid, or a first interface network element that the first data packet
passes through. Correspondingly, the second location information may be a second cell,
a second grid, or a second interface network element that the second data packet passes
through. This provides a plurality of implementation types of the first location information
and the second location information, and improves implementability and flexibility
of the solution.
[0029] According to the fourth implementation of the first aspect of the embodiments of
this application, in a seventh implementation of the first aspect of the embodiments
of this application, the first status information includes a first call feature corresponding
to the first data packet;
the second status information includes a second call feature corresponding to the
second data packet; and
the classifying, by the client, the first data packet into the first data packet set
and classifying the second data packet into the second data packet set according to
a preset status slice rule includes:
classifying, by the client, the first data packet into the first data packet set and
classifying the second data packet into the second data packet set according to a
preset call feature slice rule, the first call feature, and the second call feature,
where a call feature corresponding to any data packet in the first data packet set
is the first call feature, and a call feature corresponding to any data packet in
the second data packet set is the second call feature.
[0030] In this embodiment of this application, the first status information may be the first
call feature corresponding to the first data packet, and the second status information
may be the second call feature corresponding to the second data packet. When classifying
the first data packet and the second data packet according to the preset status slice
rule, the client may classify the first data packet into the first data packet set
and classify the second data packet into the second data packet set according to the
preset call feature slice rule, the first call feature, and the second call feature,
to ensure that a call feature corresponding to any data packet in the first data packet
set is the first call feature, and a call feature corresponding to any data packet
in the second data packet set is the second call feature. This provides another implementation
of classifying the first data packet and the second data packet by the client based
on the first time segment and the second time segment when the first status information
is different from the second status information, and improves implementability and
flexibility of the solution.
[0031] According to the seventh implementation of the first aspect of the embodiments of
this application, in an eighth implementation of the first aspect of the embodiments
of this application, the first call feature includes a first coding/decoding type;
and the second call feature includes a second coding/decoding type; or the first call
feature includes a first audio code rate; and the second call feature includes a second
audio code rate; or the first call feature includes a first video resolution; and
the second call feature includes a second video resolution.
[0032] In this embodiment of this application, the first call feature may be a first coding/decoding
type, a first audio code rate, or a first video resolution. Correspondingly, the second
call feature may be a second coding/decoding type, a second audio code rate, or a
second video resolution. This provides a plurality of implementation types of the
first call feature and the second call feature, and improves implementability and
flexibility of the solution.
[0033] According to a second aspect of the embodiments of this application, a client is
provided. The client has a function for performing actions of the client according
to the first aspect. The function may be implemented by hardware, or may be implemented
by hardware executing corresponding software. The hardware or the software includes
one or more modules corresponding to the foregoing functions.
[0034] According to a third aspect of the embodiments of this application, a computer storage
medium is provided. The computer storage medium is configured to store a computer
software instruction used by the client according to the second aspect, and includes
a program designed for the client.
[0035] According to a fourth aspect of the embodiments of this application, a computer program
product is provided. The computer program product includes a computer software instruction,
and the computer software instruction may be loaded by a processor to perform the
procedure of the method according to the first aspect.
BRIEF DESCRIPTION OF DRAWINGS
[0036]
FIG. 1 is a schematic diagram of a MOS evaluation method of voice and video quality
in the prior art;
FIG. 2 is a schematic diagram of calculating a packet loss rate of a voice or video
data packet in the prior art;
FIG. 3 is a schematic architectural diagram of a data processing system according
to an embodiment of this application;
FIG. 4 is a schematic diagram of an embodiment of a data processing method according
to an embodiment of this application;
FIG. 5 is a schematic diagram of another embodiment of a data processing method according
to an embodiment of this application;
FIG. 6 is a schematic diagram of classifying data packets based on location information
according to an embodiment of this application;
FIG. 7 is a schematic diagram of another embodiment of a data processing method according
to an embodiment of this application;
FIG. 8 is a schematic diagram of classifying data packets based on a call feature
according to an embodiment of this application;
FIG. 9A and FIG. 9B are a schematic diagram of another embodiment of a data processing
method according to an embodiment of this application;
FIG. 10 is a schematic diagram of classifying data packets based on a time according
to an embodiment of this application;
FIG. 11A and FIG. 11B are a schematic diagram of another embodiment of a data processing
method according to an embodiment of this application;
FIG. 12 is a schematic diagram of classifying data packets based on a plurality of
dimensions according to an embodiment of this application;
FIG. 13 is a schematic diagram of an embodiment of a client according to an embodiment
of this application; and
FIG. 14 is a schematic diagram of another embodiment of a client according to an embodiment
of this application.
DESCRIPTION OF EMBODIMENTS
[0037] Embodiments of this application provide a data processing method and a client, to
classify data packets of a target call service whose obtaining moments are in different
time segments into different data packet sets, determine a feature parameter corresponding
to each of the different data packet sets, and evaluate audio and/or video quality
corresponding to each feature parameter. To be specific, time segments are classified
for the target call service, and MOS evaluation may be performed based on the feature
parameter of each of the classified different time segments, so that accuracy of an
evaluation result of voice and video quality can be improved.
[0038] To make a person skilled in the art understand the method in the present invention
better, the following clearly and completely describes the technical solutions in
the embodiments of the present invention with reference to the accompanying drawings
in the embodiments of the present invention. Apparently, the described embodiments
are merely some rather than all of the embodiments of the present invention. Embodiments
based on the present invention should all belong to the protection scope of the present
invention.
[0039] Referring to FIG. 3, an architecture of a data processing system may include a terminal
301, a base station (for example, eNodeB) 302, a serving gateway (serving gateway,
SGW) 303, a PDN gateway (PDN gateway, PGW) 304, a session border controller (session
border controller, SBC)/proxy-call session control function (proxy-call session control
function, P-CSCF) 305, an interrogating-call session control function (interrogating-call
session control function, I-CSCF) and a serving-call session control function (serving-call
session control function, S-CSCF) 306, a switch 307, and a data analysis system 308.
[0040] The terminal 301 may first establish a connection to the eNodeB 302 and then initiate
a call service that may be a VoLTE call service or may be a common voice call service
or video call service. Specifics are not limited herein. The eNodeB 302 is responsible
for providing access to a core network for the terminal, performing scheduling and
transmission of paging information, performing scheduling and transmission of broadcast
information, and the like.
[0041] IP packets of all terminals 301 are sent by the SGW 303, the SGW 303 is connected
to the PGW 304, and the PGW 304 provides IP address assignment and another function
for the terminal 301. An S1 interface is a communication interface between the eNodeB
302 and a core network, divides an LTE system into a radio access network and a core
network, and may be classified into an S1-MME interface used for a control plane and
an S1-U interface used for a user plane. The S1-MME interface is connected to the
eNodeB 302 and a mobility management entity (mobility management entity, MME), and
is configured to transfer session management and mobility management information.
The S1-U interface is connected to the eNodeB 302 and the SGW 303, and is configured
to: establish a tunnel between an SGW and a PGW (collectively referred to as a GW)
and an eNodeB device and transfer a user data service. An interface between the SGW
303 and the PGW 304 is an S5/S8 interface. The S5 interface is an interface used when
a local SGW is connected to a local PGW, and the S8 is an interface used when a local
SGW is connected to a foreign PGW.
[0042] A call session control function (call session control function, CSCF) is a functional
entity in an IP multimedia subsystem (IP Multimedia subsystem, IMS), is a core of
an entire IMS network, and is mainly responsible for processing signaling control
in a multimedia call session process, managing user authentication of an IMS network
and bearer plane QoS of an IMS, and cooperating with another network entity to control
a session initiation protocol (session initiation protocol, SIP) session and perform
service consultation and resource allocation, and the like. The CSCF may be classified
into a P-CSCF, an I-CSCF, an S-CSCF, an E-CSCF, and the like based on functions. The
P-CSCF is a uniform entry point of a visited IMS network, and session messages initiated
by an IMS terminal and terminated at an IMS terminal all need to pass through the
P-CSCF. The P-CSCF forwards, to the I-CSCF, an SIP registration request sent by the
terminal 301 and forwards, to the S-CSCF, a SIP message sent by the terminal 301.
The S-CSCF is configured to: receive a registration request forwarded by the P-CSCF
from a visited network, cooperate with a home subscriber server (home subscriber server,
HSS) to perform user authentication, and perform routing management on user calling
and called sides. The I-CSCF is an entry point of an IMS home network, and is configured
to query an HSS to select an S-CSCF for a user in a registration process. In a call
process, a call to an IMS network is first routed to the I-CSCF, and the I-CSCF obtains,
from an HSS, an S-CSCF address with which a user is registered and routes a message
to the S-CSCF.
[0043] An SBC is a call control product of voice over Internet Protocol (voice over internet
protocol, VoIP), is usually located between a softswitch controlling a VoIP service
and public Internet, and has functions of network address translation and traversal,
network security control, and quality of service (quality of service, QoS). A Gm interface
is an interface between an IMS terminal and a P-CSCF, and is configured to access
the terminal 301 to an IMS and transmit all SIP signaling messages between the terminal
301 and an IMS. An Mw is a SIP-based interface between CSCFs, and is configured to
perform registration, session control, and a transaction procedure. In the architecture
of the data processing system in FIG. 3, the SBC is optional, and there may be an
SBC or may not be an SBC. Specifics are not limited herein.
[0044] The switch 307 has a plurality of ports. Each port has a bridge function, and may
be connected to a local area network, or a high-performance server, or a working station.
Data may be transmitted between a plurality of port pairs at a same moment, and data
can be received while data is sent, and receiving and sending are simultaneously performed.
[0045] The data analysis system 308 may include a probe server 3081 and a data analysis
server 3082. The probe server 3081 includes a data obtaining module and a data analysis
module, and may obtain data of a network through mirroring and analyze the obtained
data. The data analysis server 3082 may perform further processing analysis, for example,
aggregation, association, and classification, on the data obtained by the probe server
3081, and may present a result obtained after analysis to a user having a requirement.
[0046] In the architecture of the data processing system in FIG. 3, the switch 307 and the
data analysis system 308 are optional, and there may be the switch 307 and the data
analysis system 308, or there may not be the switch 307 and the data analysis system
308. Specifics are not limited herein.
[0047] It may be understood that FIG. 3 shows only an example of an architecture of a data
processing system. In an actual application, the architecture of the data processing
system may further include another network element, such as a media gateway (media
gateway, MGW). Specifics are not limited herein.
[0048] The client in the embodiments of this application may be the terminal 301, or may
be a network element such as the eNodeB 302, the SGW 303, the PGW 304, the SBC/P-CSCF
305, the I-CSCF, and the S-CSCF 306, or may be the probe server 3081. Specifics are
not limited herein.
[0049] Referring to FIG. 4, an embodiment of a data processing method according to an embodiment
of this application includes:
401: A client obtains a first data packet and a second data packet of a target call
service initiated by a terminal.
[0050] When the terminal is registered with a network and initiates the target call service,
the network allocates a corresponding bearer or packet data protocol (packet data
protocol, PDP) context to a user. The terminal may transmit, in the network through
the bearer or the PDP context, data packets carrying voice data and video data. The
data packets may be transferred to a called terminal through transparent transmission
of an access network element and a core network element. In a process of transferring
the data packet of the target call service, the client may obtain the data packet
of the target call service. For example, when the client is a terminal, a data obtaining
module of the terminal may obtain a data packet sent by the terminal. Alternatively,
when the client is a network element, for example, an MGW, the MGW may obtain a data
packet through mirroring when receiving a data packet sent by the terminal. Alternatively,
when the client is a probe server, the probe server may capture a data packet by using
a network probe. Specifics are not limited herein.
[0051] In this embodiment, the client may sequentially obtain the first data packet of the
target call service and the second data packet of the target call service. A first
obtaining moment of the first data packet belongs to a first time segment, a second
obtaining moment of the second data packet belongs to a second time segment, the first
time segment and the second time segment are different time segments in which the
client obtains the data packets of the target call service, and an intersection set
of the first time segment and the second time segment is empty.
[0052] 402: The client classifies the first data packet into a first data packet set and
classifies the second data packet into a second data packet set based on a first time
segment and a second time segment.
[0053] After obtaining the first data packet and the second data packet of the target call
service described in step 401, the client may classify the first data packet into
the first data packet set and classify the second data packet into the second data
packet set based on the first time segment and the second time segment, to classify
time segments of the target call service.
[0054] 403: The client determines a first feature parameter corresponding to the first data
packet set and a second feature parameter corresponding to the second data packet
set.
[0055] In this embodiment, the client may determine the first feature parameter of the data
packet in the first data packet set and the second feature parameter of the data packet
in the second data packet set. The first feature parameter may include transmission
indicators such as a delay, a jitter, and a packet loss of the data packet in the
first data packet set and call features such as a coding/decoding type, an audio code
rate, and a video resolution. The second feature parameter may include transmission
indicators such as a delay, a jitter, and a packet loss of the data packet in the
second data packet set and call features such as a coding/decoding type, an audio
code rate, and a video resolution.
[0056] 404: The client calculates, based on a preset audio and/or video quality evaluation
algorithm, audio and/or video quality corresponding to the first feature parameter,
and audio and/or video quality corresponding to the second feature parameter.
[0057] In this embodiment, the client may calculate, based on the preset audio and/or video
quality evaluation algorithm, the audio and/or video quality corresponding to the
first feature parameter, and the audio and/or video quality corresponding to the second
feature parameter. The audio and/or video quality evaluation algorithm may include
a MOS evaluation method, such as a PESQ algorithm and an R-factor algorithm. The audio
and/or video quality evaluation algorithm may further include a corresponding algorithm
for evaluating one-way audio, word swallowing, intermittence, and the like. Specifics
are not limited herein. In a subsequent embodiment, only the MOS evaluation method
is used as the preset audio and/or video quality evaluation algorithm as an example
for description.
[0058] In this embodiment, if obtaining the first data packet and the second data packet
of the target call service initiated by the terminal, the client may classify the
first data packet into the first data packet set and classify the second data packet
into the second data packet set based on the first time segment and the second time
segment. The first obtaining moment of the first data packet belongs to the first
time segment, and the second obtaining moment of the second data packet belongs to
the second time segment. The first time segment and the second time segment are different
time segments in which the client obtains the data packets of the target call service,
and the intersection set of the first time segment and the second time segment is
empty. The client may separately determine the first feature parameter corresponding
to the first data packet set and the second feature parameter corresponding to the
second data packet set, and separately calculate, based on the preset audio and/or
video quality evaluation algorithm, the audio and/or video quality corresponding to
the first feature parameter, and the audio and/or video quality corresponding to the
second feature parameter. To be specific, time segments are classified for the target
call service, and MOS evaluation may be separately performed based on the feature
parameters in the classified different time segments, to improve accuracy of an evaluation
result of voice and video quality.
[0059] In this embodiment of this application, based on that moments at which the client
obtains the data packets of the target call service belong to different time segments,
when the data packets of the target call service are classified, the client may first
determine whether the status information of the terminal in the different time segments
changes. Based on whether the status information of the terminal changes, there may
be different manners of classifying the data packets. For example, when the status
information of the terminal changes, the data packets may be classified according
to a preset status slice rule. The following first describes a manner in which the
client classifies the data packets according to the preset status slice rule when
the status information of the terminal in the different time segments changes.
[0060] In this embodiment of this application, the status information of the terminal may
include the location information of the terminal, a call feature of the data packet,
and the like. Based on different status information, there may be different manners
of classifying the data packets. The following separately provides descriptions:
- 1. When the first location information corresponding to the terminal when the client
obtains the first data packet is different from the second location information corresponding
to the terminal when the client obtains the second data packet, the client may classify
the first data packet and the second data packet according to the preset location
slice rule, the first location information, and the second location information.
[0061] In this embodiment, when the first location information corresponding to the terminal
when the client obtains the first data packet is different from the second location
information corresponding to the terminal when the client obtains the second data
packet, the client may classify the first data packet into the first data packet set
and classify the second data packet into the second data packet set according to the
preset location slice rule, the first location information, and the second location
information. For specifics, refer to FIG. 5. Another embodiment of a data processing
method in the embodiments of this application includes:
501: Obtain an initial data packet of a target call service initiated by a terminal,
and determine location information currently corresponding to the terminal.
[0062] When a terminal is registered with a network and initiates a target call service,
the network allocates a corresponding bearer or PDP context to a user. The terminal
may transmit a data packet in the network through the bearer or the PDP context. The
data packet may carry voice data or video data, that is, the data packet of the target
call service includes a data packet carrying voice data and/or a data packet carrying
video data. Specifics are not limited herein. The data packets may be transferred
to a called terminal through transparent transmission of an access network element
and a core network element. In a process of transferring the data packet of the target
call service, the client may obtain the data packet of the target call service. The
client may be a terminal, and a data obtaining module of the terminal may obtain a
data packet sent by the terminal. The client may be a network element, for example,
an MGW, that the data packet of the target call service passes through in a transfer
process. The MGW may obtain a data packet through mirroring when receiving a data
packet sent by the terminal. The client may be further a probe server, and the probe
server may capture a data packet by using a network probe. Specifics are not limited
herein. The client may further include a data analysis server that performs further
processing, such as aggregation, association, and classification based on cities,
on a result obtained by the client after MOS evaluation. Specifics are not limited
herein.
[0063] It may be understood that the client may obtain the data packet of the target call
service on a corresponding interface, for example, an S1-U interface, a Gm interface,
or an Mw interface. This depends on a status of the client. Specifics are not limited
herein.
[0064] A direction of sending a data packet by the terminal may be referred to as an uplink
direction, and a direction of receiving a data packet by the terminal may be referred
to as a downlink direction. The target call service includes a data packet of the
uplink direction, and also includes a data packet of the downlink direction. The client
may recognize the data packet of the target call service by using a source IP address,
a source port number, a destination IP address, and a destination port number of the
data packet, and may preset a source IP address, a source port number, a destination
IP address, and a destination port number of the target call service. After obtaining
a data packet whose source IP address, source port number, destination IP address,
and destination port number are respectively consistent with the preset source IP
address, source port number, destination IP address, and destination port number,
the client determines that the data packet is a data packet of the target call service.
Because the data packet of the target call service is bidirectional, after obtaining
a data packet whose source IP address is the same as the preset destination IP address,
whose target IP address is the same as the preset source IP address, whose destination
port number is the same as the preset source port number, and whose source port number
is the same as the preset destination port number, the client also determines that
the data packet is a data packet of the target call service. It should be noted that
when the data packet includes an RTP data packet and an RTCP data packet, the source
IP address, the source port number, the destination IP address, and the destination
port number of the target call service may be preset based on a source IP address,
a source port number, a destination IP address, and a destination port number of the
RTP data packet. When obtaining a data packet, if determining that a source IP address
and a destination IP address of the data packet are consistent with the preset source
IP address and destination IP address, and determining that a source port number of
the data packet is equal to the preset source port number plus 1 and a destination
port number of the data packet is equal to the preset destination port number plus
1, the client may determine that the data packet is a data packet of the target call
service and the data packet is an RTCP data packet. Because the data packet of the
target call service is bidirectional, when obtaining a data packet, if determining
that a source IP address of the data packet is consistent with the preset destination
IP address and a destination IP address of the data packet is consistent with the
preset source IP address, and determining that a source port number of the data packet
is equal to the preset destination port number plus 1 and a destination port number
of the data packet is equal to the preset source port number plus 1, the client may
determine that the data packet is a data packet of the target call service and the
data packet is an RTCP data packet.
[0065] The location information of the terminal may be a cell of the terminal, or may be
a grid of the terminal, or may be an interface network element that the data packet
of the target call service passes through. Specifics are not limited herein. The location
information of the terminal may be determined based on a signaling message of the
target call service. The signaling message may be a SIP message or an SDP message,
or may be another signaling message. Specifics are not limited herein.
[0066] 502: Classify the initial data packet into a current data packet set, use an obtaining
moment of the initial data packet as an initial moment of a current period, and use
the location information as location information of the current period.
[0067] After obtaining the initial data packet of the target call service, the client may
classify the initial data packet to the current data packet set, use the obtaining
moment of the initial data packet as the initial moment of the current period, and
use the current location information of the terminal as the location information corresponding
to the current period.
[0068] 503: Obtain a next data packet of the target call service, and determine location
information currently corresponding to the terminal.
[0069] In this embodiment, after obtaining the initial data packet of the target call service
described in step 502, the client may continue to obtain the next data packet of the
target call service and determine the current location information of the terminal
based on a signaling message.
[0070] 504: Determine whether the location information is consistent with the location information
of the current period, and if the location information is consistent with the location
information of the current period, perform step 505, or if the location information
isn't consistent with the location information of the current period, perform step
506.
[0071] The client may determine whether the current location information of the terminal
described in step 503 is consistent with the location information corresponding to
the current period. If the current location information of the terminal described
in step 503 is consistent with the location information corresponding to the current
period, the client determines that the location information of the terminal does not
change, and may perform step 505. If the current location information of the terminal
described in step 503 is inconsistent with the location information corresponding
to the current period, the client determines that the location information of the
terminal changes, and may perform step 506.
[0072] 505: Classify the data packet into the current data packet set.
[0073] In this embodiment, when determining that the current location information of the
terminal is consistent with the location information corresponding to the current
period, the client may classify the data packet described in step 503 into the current
data packet set, and the current period continues.
[0074] 506: End the current period as a previous period, use the obtaining moment of the
data packet as an initial moment of a new current period, and use the current location
information of the terminal as location information of the new current period.
[0075] When determining that the current location information of the terminal is inconsistent
with the location information corresponding to the current period, the client determines
that the location information of the terminal changes. The client may determine that
the current period is ended as a previous period, determine that the current data
packet set becomes a previous data packet set, and use the obtaining moment of the
data packet described in step 503 as the initial moment of the new current period.
If the data packet described in step 503 is an RTP data packet or an HTTP data packet,
the data packet is classified into the new current data packet set. If the data packet
is an RTCP data packet, the data packet is classified into the previous data packet
set. However, depending on a status, a next data packet subsequently received starts
to be classified into the new current data packet set. The client uses the current
location information of the terminal as the location information corresponding to
the new current period.
[0076] The client may separately classify an uplink-direction data packet to each uplink
data packet set, and separately classify a downlink-direction data packet to each
downlink data packet set. The client may alternatively not distinguish the uplink-direction
data packet and the downlink-direction data packet, and classify both the uplink-direction
data packet and the downlink-direction data packet to each data packet set. The data
packet described in the foregoing steps may include the uplink-direction data packet
and the downlink-direction data packet. Specifics are not limited herein.
[0077] The data packet may include an RTP data packet carrying audio data and video data
and an RTCP data packet carrying RTP statistical information, or the data packet may
be an HTTP data packet carrying audio data. Specifics are not limited herein. In this
embodiment and a subsequent embodiment, only the RTP data packet and the RTCP data
packet are used as an example for description.
[0078] Referring to FIG. 6, the cell of the terminal is used as an example of the location
information of the terminal for description, and classifying a unidirectional (an
uplink direction or a downlink direction) data packet by the client is used as an
example for description. The client classifies a unidirectional RTP data packet and
a unidirectional RTCP data packet (the RTP data packet and the RTCP data packet have
opposite directions) of the target call service based on the location information.
When receiving the RTCP data packet, the client finds that the cell of the terminal
changes and the terminal enters to a cell B from a cell A, determines that the current
period (period 1) is ended as a previous period and the current data packet set becomes
a previous data packet set, uses an obtaining moment of the RTCP data packet as an
initial moment of a new current period (period 2), classifies the RTCP data packet
to a previous data packet set, and starts to classify a next RTP data packet of the
RTCP data packet into a new current data packet set. When receiving the RTP data packet,
the client finds that the cell of the terminal changes and the terminal enters a cell
C from the cell B, determines that the current period (period 2) is ended as a previous
period, uses the current data packet set as a previous data packet set, uses an obtaining
moment of the RTP data packet as an initial moment of a new current period (period
3), and classifies the RTP data packet into a new current data packet set.
[0079] 507: Determine whether the target call service is ended, and if the target call service
is ended, perform step 508, or if the target call service is not ended, perform step
503.
[0080] The client may determine, based on that neither the RTP data packet nor the RTCP
data packet of the target call service is received within preset duration, that the
target call service is ended. The preset duration may be 5s or 10s. Specifics are
not limited herein. The client may further separately set duration based on the uplink
direction and the downlink direction. Specifics are not limited herein. Referring
to FIG. 6, the client determines that the target call service is ended and the current
period (period 3) is ended. If receiving neither the RTP data packet nor the RTCP
data packet of the target call service within the preset duration, the client determines
that the target call service is ended, and the client may perform step 508. If receiving
the RTP data packet or the RTCP data packet of the target call service within the
preset duration, the client determines that the target call service is not end, and
the client may perform step 503.
[0081] 508: Separately determine each feature parameter corresponding to the data packet
in each data packet set.
[0082] In this embodiment, the client may determine the feature parameter corresponding
to the data packet in each data packet set. The feature parameter includes transmission
indicators such as a delay, a jitter, and a packet loss of the data packet in each
data packet set, and further includes call features such as a coding/decoding type,
an audio code rate, and a video resolution. Details of a determining method are not
described herein again.
[0083] It may be understood that, when each feature parameter corresponding to the data
packet in each data packet set is determined, an uplink-direction feature parameter
and a downlink-direction feature parameter of each data packet may be determined.
Specifics are not limited herein.
[0084] 509: Calculate, based on a MOS evaluation method, audio and/or video quality corresponding
to each feature parameter.
[0085] In this embodiment, the client may calculate, based on a MOS evaluation method of
a common standard, the audio and/or video quality corresponding to each feature parameter
of each data packet set. Details are not described herein again.
[0086] In this embodiment, if determining that the location information of the terminal
changes in a process of the target call service, the client may classify data packets
of different location information into different sets, separately determine a feature
parameter corresponding to a data packet set of each piece of location information,
and separately perform MOS evaluation on each feature parameter, to help precisely
position a location with relatively poor perception, to improve accuracy of an evaluation
result of voice and video quality.
[0087] 2. When the first call feature corresponding to the first data packet is different
from the second call feature corresponding to the second data packet, the client may
classify the first data packet and the second data packet according to the preset
call feature slice rule, the first call feature, and the second call feature.
[0088] In this embodiment, when the first call feature corresponding to the first data packet
obtained by the client is different from the second call feature corresponding to
the second data packet obtained by the client, the client may classify the first data
packet into the first data packet set and classify the second data packet into the
second data packet set according to a preset call feature slice rule, the first call
feature, and the second call feature. For specifics, refer to FIG. 7. Another embodiment
of a data processing method in the embodiments of this application includes:
701: Obtain an initial data packet of a target call service initiated by a terminal,
and determine a call feature corresponding to the initial data packet.
[0089] The obtaining, by the client, the initial data packet of the target call service
initiated by the terminal is similar to that described in step 501 in FIG. 5. Details
are not described herein again.
[0090] The call feature corresponding to the data packet may be a coding/decoding type of
an RTP data packet, or may be an audio code rate of an RTP data packet, or may be
a video resolution of an RTP data packet, or may be whether a packet loss exceeds
a specified value, whether a packet interval exceeds a specified value, and the like.
Specifics are not limited herein. There are a plurality of coding/decoding types of
an RTP data packet. Common coding/decoding types of VoLTE voice include AMR and AMR-WB,
and common coding/decoding types of a video include H264 and H265. The audio code
rate is a quantity of bits coded or decoded for each second. One coding/decoding type
may have a plurality of code rates. For example, the AMR-NB may use seven code rates.
The call feature of the data packet may be determined based on a signaling message
of the target call service, and the signaling message may be a SIP message or an SDP
message, or may be another signaling message. Specifics are not limited herein. The
call feature of the data packet may further be determined based on the data packet
itself. For example, an RTP data packet carries call feature information. Specifics
are not limited herein. For example, the initial RTP data packet carries voice data.
After receiving the RTP data packet, the client determines whether the voice data
carried in the RTP data packet is a silence frame or a voice frame. If the voice data
carried in the RTP data packet is a silence frame, the following step 702 is not performed
and the following step 703 is performed. If the voice data carried in the RTP data
packet is a voice frame, the client may determine a code rate used for the voice frame
of the initial RTP data packet. For another example, the initial RTP data packet carries
video data. After receiving the RTP data packet, the client determines a video resolution
used for an SPS frame carried in the RTP data packet.
[0091] It should be noted that the coding/decoding type corresponding to the RTCP data packet
is a coding/decoding type that is of an RTP data packet and that corresponds to statistical
information carried by the RTCP data packet.
[0092] 702: Classify the initial data packet into a current data packet set, use an obtaining
moment of the initial data packet as an initial moment of a current period, and use
a call feature corresponding to the initial data packet as a call feature of the current
period.
[0093] After obtaining the initial data packet of the target call service, the client may
classify the initial data packet to the current data packet set, use the obtaining
moment of the initial data packet as the initial moment of the current period, and
use the call feature corresponding to the initial data packet as the call feature
corresponding to the current period.
[0094] 703: Obtain a next data packet of the target call service, and determine a call feature
corresponding to the data packet.
[0095] In this embodiment, step 703 is similar to step 503 described in FIG. 5. Details
are not described herein again.
[0096] 704: Determine whether the call feature is consistent with the call feature of the
current period, and if the call feature is consistent with the call feature of the
current period, perform step 705, or if the call feature isn't consistent with the
call feature of the current period, perform step 706.
[0097] The client may determine whether the call feature corresponding to the data packet
described in step 703 is consistent with the call feature of the current period. If
the call feature corresponding to the data packet described in step 703 is consistent
with the call feature of the current period, the client determines that the call feature
corresponding to the data packet changes, and may perform step 705. If the call feature
corresponding to the data packet described in step 703 is inconsistent with the call
feature of the current period, the client determines that the call feature corresponding
to the data packet changes, and may perform the step 706.
[0098] 705: Classify the data packet into the current data packet set.
[0099] In this embodiment, when the client determines that the call feature corresponding
to the data packet is consistent with the call feature corresponding to the current
period, the client may classify the data packet described in step 703 into the current
data packet set, and the current period continues.
[0100] 706: End the current period as a previous period, use the obtaining moment of the
data packet as an initial moment of a new current period, and use the call feature
corresponding to the data packet as a call feature of the new current period.
[0101] When determining that the call feature corresponding to the data packet is inconsistent
with the call feature corresponding to the current period, the client determines that
the call feature of the data packet changes. The client may determine that the current
period is ended as a previous period, determine that the current data packet set becomes
a previous data packet set, and use the obtaining moment of the data packet described
in step 703 as the initial moment of the new current period. If the data packet is
an RTP data packet, the client classifies the data packet into the new current data
packet set, and if the data packet described in step 703 is an RTCP data packet, classifies
the data packet into the previous data packet set. However, depending on a status,
a next data packet subsequently received starts to be classified into the new current
data packet set. The client uses the call feature corresponding to the data packet
described in step 703 as the call feature corresponding to the new current period.
[0102] The data packet described in the foregoing step may include only an uplink-direction
RTP data packet (if an RTCP data packet is included, a downlink RTCP data packet is
further included), or may include only a downlink-direction RTP data packet (if an
RTCP data packet is included, an uplink RTCP data packet is further included). To
be specific, the client may separately classify an uplink-direction data packet to
each uplink data packet set, and separately classify a downlink-direction data packet
to each downlink data packet set. The client may alternatively not distinguish the
uplink-direction data packet and the downlink-direction data packet, and classify
both the uplink-direction data packet and the downlink-direction data packet to each
data packet set. The data packet described in the foregoing steps includes an uplink-direction
RTP data packet, a downlink-direction RTCP data packet, a downlink-direction RTP data
packet, and an uplink-direction RTCP data packet. Specifics are not limited herein.
[0103] Referring to FIG. 8, a coding/decoding type of an RTP data packet is used as an example
of a call feature for description, and classifying a unidirectional (an uplink direction
or a downlink direction) data packet by the client is used as an example for description.
The client classifies a unidirectional RTP data packet and a unidirectional RTCP data
packet (the RTP data packet and the RTCP data packet have opposite directions) of
the target call service based on the coding/decoding type. When receiving the RTCP
data packet, the client finds that the coding/decoding type of the data packet changes
and changes from coding/decoding A to coding/decoding B, determines that the current
period (period 1) is ended as a previous period and the current data packet set becomes
a previous data packet set, uses an obtaining moment of the RTCP data packet as an
initial moment of a new current period (period 2), classifies the RTCP data packet
to a previous data packet set, and starts to classify a next RTP data packet of the
RTCP data packet into a new current data packet set. When receiving the RTP data packet,
the client finds that the coding/decoding type of the data packet changes and changes
from the coding/decoding B to coding/decoding C, determines that the current period
(period 2) is ended as a previous period, uses the current data packet set as a previous
data packet set, uses an obtaining moment of the RTP data packet as an initial moment
of a new current period (period 3), and classifies the RTP data packet to a new current
data packet set.
[0104] Step 707 to step 709 are similar to step 507 to step 509 described in FIG. 5. Details
are not described herein again.
[0105] In this embodiment, if determining that the call feature of the data packet changes
in a process of the target call service, the client may classify data packets of different
call features into different sets, separately determine a feature parameter corresponding
to a data packet set of each call feature, and separately perform MOS evaluation on
each feature parameter. MOS evaluation based on different call features helps improve
accuracy of an evaluation result of voice and video quality, and helps position a
reason for relatively poor perception.
[0106] In this embodiment of this application, based on that moments at which the client
obtains the data packets of the target call service belong to different time segments,
when the data packets of the target call service are classified, the client may first
determine whether the status information of the terminal in the different time segments
changes. Based on whether the status information of the terminal changes, there may
be different manners of classifying the data packets. For example, when the status
information of the terminal does not change, the data packets may be classified according
to a preset time slice rule. The following describes a manner in which the client
classifies the data packets according to the preset time slice rule when the status
information of the terminal in the different time segments does not change.
[0107] 3. The client classifies the first data packet and the second data packet according
to the preset first time slice rule, the first obtaining moment at which the client
obtains the first data packet, and the second obtaining moment at which the client
obtains the second data packet. When obtaining a third data packet between obtaining
of the first data packet and the second data packet, the client classifies the first
data packet and the second data packet according to the preset second time slice rule,
the first obtaining moment, the second obtaining moment, and a third obtaining moment
at which the client obtains the third data packet.
[0108] In this embodiment, the client may classify the first data packet into the first
data packet set and classify the second data packet into the second data packet set
according to the preset first time slice rule, the first moment at which the client
obtains the first data packet, and the second moment at which the client obtains the
second data packet. When obtaining the third data packet between obtaining of the
first data packet and the second data packet, the client classifies the first data
packet into the first data packet set and classifies the second data packet into the
second data packet set according to a second time slice rule, the first moment, the
second moment, and the third moment at which the client obtains the third data packet.
For specifics, refer to FIG. 9A and FIG. 9B. Another embodiment of a data processing
method in the embodiments of this application includes:
901: Obtain an initial uplink-direction RTP data packet of a target call service initiated
by a terminal.
[0109] In this embodiment, step 901 is similar to the foregoing step 501, and details are
not described herein again. It should be understood that the data packet of the target
call service may be bidirectional. When classifying data packets of the target call
service into each data packet set, the client may distinguish uplink and downlink
directions of the data packets of the target call service, or the client may not distinguish
uplink and downlink directions of the data packets of the target call service. Specifics
are not limited herein. In this embodiment and a subsequent embodiment, only distinguishing
the uplink and downlink directions of the data packets of the target call service
by the client is used as an example for description.
[0110] The client may obtain the initial uplink-direction RTP data packet of the target
call service. Optionally, before obtaining the initial uplink-direction RTP data packet
of the target call service, the client may obtain an RTCP downlink-direction data
packet of the target call service, that is, an initial unidirectional data packet
of the target call service that is obtained by the client is an RTCP data packet.
Specifics are not limited herein. In this embodiment and a subsequent embodiment,
only an example in which the initial unidirectional data packet of the target call
service that is obtained by the client is an RTP data packet is used for description,
and the uplink direction is used as an example for description.
[0111] 902: Classify the initial uplink RTP data packet into a current uplink data packet
set, and obtain an obtaining moment of the initial uplink RTP data packet as an initial
moment of a current uplink period.
[0112] After obtaining the initial uplink-direction RTP data packet of the target call service,
the client may classify the initial uplink RTP data packet into the current uplink
data packet set, and use the obtaining moment of the initial uplink RTP data packet
as the initial moment of the current uplink period.
[0113] 903: Obtain a next data packet of the target call service.
[0114] In this embodiment, the client may obtain the next data packet of the target call
service, where the next data packet may be an uplink-direction RTP data packet, or
may be a downlink-direction RTCP data packet. Specifics are not limited herein.
[0115] 904: Determine whether the data packet is a downlink RTCP data packet, and if the
data packet is a downlink RTCP data packet, perform step 905, or if the data packet
isn't a downlink RTCP data packet, perform step 908.
[0116] The client may determine whether the data packet described in the foregoing step
903 is a downlink RTCP data packet, and if the data packet in the step 903 is a downlink
RTCP data packet, perform step 905, or if the data packet in the step 903 is not a
downlink RTCP data packet, perform step 908.
[0117] 905: Determine whether a difference between an obtaining moment of the downlink RTCP
data packet and the initial moment of the current uplink period is not less than Tmin,
and if the difference between the obtaining moment of the downlink RTCP data packet
and the initial moment of the current uplink period is not less than Tmin, perform
step 906, or if no, perform step 907.
[0118] If determining that the data packet described in step 903 is a downlink RTCP data
packet, the client may determine whether the difference between the obtaining moment
of the downlink RTCP data packet and the initial moment of the current uplink period
is not less than Tmin, and if the difference between the obtaining moment of the downlink
RTCP data packet and the initial moment of the current uplink period is not less than
Tmin, perform step 906, or if the difference between the obtaining moment of the downlink
RTCP data packet and the initial moment of the current uplink period is less than
Tmin, perform step 907.
[0119] A value of Tmin may be static or may be dynamic. Specifics are not limited herein.
The value of Tmin may be determined based on a network status, may be determined based
on a using scenario, or may be randomly determined by a person. Specifics are not
limited herein. The value may be 5s, 8s, or the like. Specifics are not limited herein.
[0120] 906: End the current uplink period as a previous uplink period, and use the obtaining
moment of the RTCP data packet as an initial moment of a new current uplink period.
[0121] If determining that the difference between the obtaining moment of the downlink RTCP
data packet and the initial moment of the current uplink period described in step
905 is not less than Tmin, the client may determine that the current uplink period
is ended as the previous uplink period, determine the current uplink data packet set
as the previous uplink data packet set, use the obtaining moment of the downlink RTCP
data packet as the initial moment of the new uplink current period, and classify the
RTCP data packet into the previous uplink data packet set.
[0122] 907: Classify the data packet into the current uplink data packet set.
[0123] The client may determine that the current uplink period continues, and classify the
current data packet into the current uplink data packet set.
[0124] 908: Determine whether a difference between a current system moment and the initial
moment of the current uplink period is not less than Tmax, and if the difference is
not less than Tmax, perform step 909, or if the difference is less than Tmax, perform
step 907.
[0125] In this embodiment, if determining that the data packet described in step 903 is
not a downlink RTCP data packet, the client may determine whether the difference between
the current system moment and the initial moment of the current uplink period is not
less than Tmax, and if the difference is not less than Tmax, the client may perform
step 909, or if the difference is less than Tmax, the client may perform step 907.
[0126] Optionally, the client may alternatively determine, every N seconds, whether the
difference between the current system moment and the initial moment of the current
uplink period is not less than Tmax, and if the difference is not less than Tmax,
the client may perform step 909, or if the difference is less than Tmax, the client
may perform step 907. The client does not necessarily perform, when determining that
the obtained data packet is not an RTCP data packet, the action of determining whether
the difference between the current system moment and the initial moment of the current
uplink period is not less than Tmax.
[0127] A value of N may be static or may be dynamic. Specifics are not limited herein. The
value of N may be determined based on a network status, may be determined based on
a using scenario, or may be randomly determined by a person. Specifics are not limited
herein. The value may be 0.5, 1, 1.5, or the like. Specifics are not limited herein.
[0128] A value of Tmax may be static or may be dynamic. Specifics are not limited herein.
The value of Tmax may be determined based on a network status, may be determined based
on a using scenario, or may be randomly determined by a person. Specifics are not
limited herein as long as it is ensured that Tmax is not less than Tmin. The value
of Tmax may be 8s, 10s, or the like. Specifics are not limited herein.
[0129] Optionally, the value of Tmax may be the same as that of Tmin. Specifics are not
limited herein
[0130] 909: End the current uplink period as a previous uplink period, and use the current
system moment as the initial moment of the new current uplink period.
[0131] If determining that the difference between the current system moment and the initial
moment of the current uplink period is not less than Tmax in step 908, the client
may determine that the current uplink period is ended as the previous uplink period,
determine that the current uplink data packet set becomes the previous uplink data
packet set, and use the current system moment as the initial moment of the new current
uplink period.
[0132] It may be understood that step 908 and step 909 are optional and may not be performed.
Specifics are not limited herein. When step 908 and step 909 are not performed, the
data packet of the target call service is classified in step 905 to step 907, and
the RTCP data packet is used to implement classification of a data packet set. Preferably,
to avoid that there is always no RTCP data packet, step 908 and step 909 are performed.
[0133] Referring to FIG. 10, a client classifies a unidirectional RTP data packet and a
unidirectional RTCP data packet (the RTP data packet and the RTCP data packet have
opposite directions) of a target call service based on an obtaining moment of the
RTCP data packet and a system moment. The client receives a downlink RTCP data packet,
and determines that a difference between an obtaining moment of the downlink RTCP
data packet and an initial moment of a current uplink period (period 1) is not less
than Tmin. In this case, the current uplink period (period 1) is ended as a previous
uplink period, and a current uplink data packet set becomes a previous uplink data
packet set. The client uses the obtaining moment of the downlink RTCP data packet
as an initial moment of a new current uplink period (period 2), and classifies the
downlink RTCP data packet into the previous uplink data packet set. When the client
determines that the difference between the current system moment and the initial moment
of the current uplink period (period 3) is not less than Tmax, the current uplink
period (period 3) is ended as the previous uplink period, and the current uplink data
packet set becomes the previous uplink data packet set.
[0134] In this embodiment, step 910 to step 912 are similar to step 507 to step 509 described
in FIG. 5. Details are not described herein again.
[0135] It may be understood that in this embodiment, classifying an uplink RTP data packet
and a downlink RTCP data packet of the target call service to each uplink data packet
set is used as an example for description. A method of classifying a downlink RTP
data packet and an uplink RTCP data packet of the target call service to each downlink
data packet set is similar. Details are not described herein again.
[0136] In this embodiment, the client may classify data packets of the target call service
into different sets according to a time slice rule, determine a feature parameter
corresponding to each of different data packet sets, and estimate voice and video
quality corresponding to each feature parameter, to improve accuracy of an evaluation
result of voice and video quality.
[0137] In this embodiment of this application, when determining that the status information
of the terminal in different time segments changes, when classifying a data packet
according to a preset status slice rule, the client may alternatively classify the
data packet with reference to a preset time slice rule. For example, when the location
information of the terminal changes, the client may classify the data packet with
reference to both a location slice rule and a time slice rule. The following provides
specific descriptions.
[0138] It may be understood that when determining that the status information of the terminal
in different time segments changes, the client may alternatively classify the time
packet not according to the preset status slice rule, and instead classify the time
packet according to a selected preset time slice rule. Specifics are not limited herein.
[0139] 4. The first data packet and the second data packet are classified with reference
to both the preset first time slice rule or the preset second time slice rule and
the preset call feature slice rule or the preset location slice rule.
[0140] In this embodiment, when the first location information corresponding to the terminal
when the client obtains the first data packet is different from the second location
information corresponding to the terminal when the client obtains the second data
packet, the client may classify the first data packet into the first data packet set
and classify the second data packet into the second data packet set according to the
preset location slice rule and the first time slice rule or the second time slice
rule. For specifics, refer to FIG. 11A and FIG. 11B. Another embodiment of a data
processing method in the embodiments of this application includes:
[0141] 1101: Obtain an initial uplink-direction RTP data packet of a target call service
initiated by a terminal, and determine current location information of the terminal.
[0142] In this embodiment, obtaining, by the client, the initial uplink-direction RTP data
packet of the target call service initiated by the terminal is similar to that in
step 901 described in FIG. 9A and FIG. 9B. Details are not described herein again.
Determining the current location information of the terminal is similar to step 501
described in FIG. 5. Details are not described herein again.
[0143] 1102: Classify the initial uplink RTP data packet into a current uplink data packet
set, use an obtaining moment of the initial uplink RTP data packet as an initial moment
of a current uplink period, and use the location information as location information
of the current uplink period.
[0144] After obtaining the initial uplink-direction RTP data packet of the target call service,
the client may classify the initial uplink RTP data packet into the current uplink
data packet set, use the obtaining moment of the initial uplink RTP data packet as
the initial moment of the current uplink period, and use the current location information
of the terminal as location information of the current uplink period.
[0145] 1103: Obtain a next data packet of the target call service, and determine current
location information of the terminal.
[0146] In this embodiment, the client may obtain the next data packet of the target call
service. The next data packet may be an uplink-direction RTP data packet, or may be
a downlink-direction RTCP data packet. Specifics are not limited herein. The client
may determine the current location information that is of the terminal and that exists
when the terminal obtains the next data packet of the target call service.
[0147] 1104: Determine whether the location information is consistent with the location
information of the current uplink period, and if the location information is consistent
with the location information of the current uplink period, perform step 1106, or
if the location information isn't consistent with the location information of the
current uplink period, perform step 1105.
[0148] The client may determine whether the current location information of the terminal
described in step 1103 is consistent with the location information corresponding to
the current uplink period. If the current location information of the terminal described
in step 1103 is consistent with the location information corresponding to the current
uplink period, the client determines that the location information of the terminal
does not change, and may perform step 1106. If the current location information of
the terminal described in step 1103 is inconsistent with the location information
corresponding to the current uplink period, the client determines that the location
information of the terminal changes, and may perform step 1105.
[0149] 1105: End the current uplink period as a previous uplink period, use the obtaining
moment of the data packet as an initial moment of a new current uplink period, and
use the current location information of the terminal as location information of the
new current uplink period.
[0150] When determining that the current location information of the terminal is inconsistent
with the location information corresponding to the current uplink period, the client
determines that the location information of the terminal changes. The client may determine
that the current uplink period is ended as a previous uplink period, determine that
the current uplink data packet set becomes a previous uplink data packet set, use
the obtaining moment of the data packet described in step 1103 as the initial moment
of the new current uplink period, and use the current location information of the
terminal as the location information corresponding to the new current uplink period.
If the data packet described in step 1103 is an uplink RTP data packet, the data packet
is classified into the new current uplink data packet set. If the data packet is a
downlink RTCP data packet, the data packet is classified into the previous uplink
data packet set. However, depending on a status, a next data packet subsequently received
starts to be classified into the new current uplink data packet set.
[0151] 1106: Determine whether the data packet is a downlink RTCP data packet, and if the
data packet is a downlink RTCP data packet, perform step 1107, or if the data packet
isn't a downlink RTCP data packet, perform step 1110.
[0152] When determining that the current location information of the terminal is consistent
with the location information corresponding to the current period, the client determines
that the location information of the terminal does not change. The client may determine
whether the data described in step 1103 is a downlink RTCP data packet, and if the
data described in step 1103 is a downlink RTCP data packet, perform step 1107, or
if the data described in step 1103 isn't a downlink RTCP data packet, perform step
1110.
[0153] 1107: Determine whether a difference between an obtaining moment of the downlink
RTCP data packet and the initial moment of the current uplink period is not less than
Tmin, and if the difference between the obtaining moment of the downlink RTCP data
packet and the initial moment of the current uplink period is not less than Tmin,
perform step 1108, or if no, perform step 1109.
[0154] If determining that the data packet described in step 1103 is a downlink RTCP data
packet, the client may determine whether the difference between the obtaining moment
of the downlink RTCP data packet and the initial moment of the current uplink period
is not less than Tmin, and if the difference between the obtaining moment of the downlink
RTCP data packet and the initial moment of the current uplink period is not less than
Tmin, perform step 1108, or if the difference between the obtaining moment of the
downlink RTCP data packet and the initial moment of the current uplink period is less
than Tmin, perform step 1109.
[0155] A value of Tmin may be static or may be dynamic. Specifics are not limited herein.
The value of Tmin may be determined based on a network status, may be determined based
on a using scenario, or may be randomly determined by a person. Specifics are not
limited herein. The value may be 5s, 8s, or the like. Specifics are not limited herein.
[0156] 1108: End the current uplink period as a previous uplink period, use the obtaining
moment of the RTCP data packet as an initial moment of a new current uplink period,
and use location information of the previous uplink period as location information
of the new current uplink period.
[0157] If determining that the difference between the obtaining moment of the downlink RTCP
data packet and the initial moment of the current uplink period described in step
1107 is not less than Tmin, the client may determine that the current uplink period
is ended as the previous uplink period, determine the current uplink data packet set
as the previous uplink data packet set, use the obtaining moment of the downlink RTCP
data packet as the initial moment of the new uplink current period, and classify the
RTCP data packet into the previous uplink data packet set.
[0158] 1109: Classify the data packet into the current uplink data packet set.
[0159] The client may determine that the current uplink period continues, and classify the
current data packet into the current uplink data packet set.
[0160] 1110: Determine whether a difference between a current system moment and the initial
moment of the current uplink period is not less than Tmax, and if the difference is
not less than Tmax, perform step 1111, or if the difference is less than Tmax, perform
step 1109.
[0161] In this embodiment, if determining that the data packet described in step 1103 is
not a downlink RTCP data packet, the client may determine whether the difference between
the current system moment and the initial moment of the current uplink period is not
less than Tmax, and if the difference is not less than Tmax, the client may perform
step 1111, or if the difference is less than Tmax, the client may perform step 1109.
[0162] Optionally, the client may alternatively determine, every N seconds, whether the
difference between the current system moment and the initial moment of the current
uplink period is not less than Tmax, and if the difference is not less than Tmax,
the client may perform step 1111, or if the difference is less than Tmax, the client
may perform step 1109. The client does not necessarily perform, when determining that
the obtained data packet is not an RTCP data packet, the action of determining whether
the difference between the current system moment and the initial moment of the current
uplink period is not less than Tmax.
[0163] A value of N may be static or may be dynamic. Specifics are not limited herein. The
value of N may be determined based on a network status, may be determined based on
a using scenario, or may be randomly determined by a person. Specifics are not limited
herein. The value may be 0.5, 1, 1.5, or the like. Specifics are not limited herein.
[0164] A value of Tmax may be static or may be dynamic. Specifics are not limited herein.
The value of Tmax may be determined based on a network status, may be determined based
on a using scenario, or may be randomly determined by a person. Specifics are not
limited herein as long as it is ensured that Tmax is not less than Tmin. The value
of Tmax may be 8s, 10s, or the like. Specifics are not limited herein.
[0165] Optionally, the value of Tmax may be the same as that of Tmin. Specifics are not
limited herein
1111: End the current uplink period as a previous uplink period, use the current system
moment as an initial moment of a new current uplink period, and use location information
of the previous uplink period as location information of the new current uplink period.
[0166] If determining that the difference between the current system moment and the initial
moment of the current uplink period is not less than Tmax in step 1110, the client
may determine that the current uplink period is ended as the previous uplink period,
determine that the current uplink data packet set becomes the previous uplink data
packet set, use the current system moment as the initial moment of the new current
uplink period, and use the location information corresponding to the previous uplink
period as the location information of the new current uplink period.
[0167] It may be understood that step 1110 and step 1111 are optional and may not be performed.
Specifics are not limited herein. When step 1110 and step 1111 are not performed,
the data packet of the target call service is classified in step 1107 to step 1109,
and the RTCP data packet is used to implement classification of a data packet set.
Preferably, to avoid that there is always no RTCP data packet, step 1110 and step
1111 are performed.
[0168] Referring to FIG. 12, a client classifies a unidirectional RTP data packet and a
unidirectional RTCP data packet (the RTP data packet and the RTCP data packet have
opposite directions) of a target call service based on an obtaining moment of the
RTCP data packet, a system moment, and cell information of a terminal. The client
receives a downlink RTCP data packet, and determines that a difference between an
obtaining moment of the downlink RTCP data packet and an initial moment of a current
uplink period (period 1) is not less than Tmin. In this case, the current uplink period
(period 1) is ended as a previous uplink period, and a current uplink data packet
set becomes a previous uplink data packet set. The client uses the obtaining moment
of the downlink RTCP data packet as an initial moment of a new current uplink period
(period 2), and classifies the downlink RTCP data packet to the previous uplink data
packet set. When receiving an uplink RTP data packet, the client finds that a cell
of the terminal changes and the terminal enters a cell B from a cell A, determines
that the current uplink period (period 3) is ended as a previous uplink period and
a current uplink data packet set becomes a previous uplink data packet set, uses an
obtaining moment of the uplink RTP data packet as an initial moment of a new uplink
current period (period 4), and classifies the uplink RTP data packet to a new current
uplink data packet set. When the client determines that a difference between a current
system moment and the initial moment of the current uplink period (period 4) is not
less than Tmax, the current uplink period (period 4) is ended as a previous uplink
period, and the current uplink data packet set becomes a previous uplink data packet
set.
[0169] In this embodiment, step 1112 to step 1114 are similar to step 507 to step 509 described
in FIG. 5. Details are not described herein again.
[0170] It may be understood that in this embodiment, classifying an uplink RTP data packet
and a downlink RTCP data packet of the target call service to each uplink data packet
set is used as an example for description. A method of classifying a downlink RTP
data packet and an uplink RTCP data packet of the target call service to each downlink
data packet set is similar. Details are not described herein again.
[0171] It may be understood that in this embodiment, the call feature of the data packet
in the target call service may change or may not change. Specifics are not limited
herein.
[0172] Preferably, if the call feature of the data packet of the target call service also
changes, in this embodiment, data packet sets of the target call service may be further
classified with reference to the change of the call feature of the data packet. Specifics
are not limited herein. Refer to the specific steps described in FIG. 7, and details
are not described herein again.
[0173] In this embodiment, the data packets of the target call service whose obtaining moments
are in different time segments are classified into different data packet sets, feature
parameters corresponding to different data packet sets are separately determined,
and audio and/or video quality corresponding to each feature parameter is separately
evaluated. To be specific, time segments are classified for the target call service,
and MOS evaluation may be separately performed on the feature parameters in the classified
different time segments. In addition, time segments may be classified for the target
call service based on both a change of the location information of the terminal and
a change of the call feature corresponding to the data packet of the target call service,
to improve accuracy of an evaluation result of voice and video quality.
[0174] The foregoing describes the data processing method in the embodiments of this application,
and the following describes a client in the embodiments of this application. Referring
to FIG. 13, an embodiment of the client in the embodiments of this application includes:
an obtaining unit 1301, configured to obtain a data packet of a target call service
initiated by a terminal;
a classification unit 1302, configured to: if the obtaining unit obtains a first data
packet and a second data packet of the target call service, classify the first data
packet into a first data packet set and classify the second data packet into a second
data packet set based on a first time segment and a second time segment, where a first
obtaining moment of the first data packet belongs to the first time segment, a second
obtaining moment of the second data packet belongs to the second time segment, the
first time segment and the second time segment are different time segments used by
the obtaining unit to obtain the data packets of the target call service, and an intersection
set of the first time segment and the second time segment is empty;
a determining unit 1303, configured to determine a first feature parameter corresponding
to the first data packet set and a second feature parameter corresponding to the second
data packet set; and
a calculation unit 1304, configured to calculate, based on a preset audio and/or video
quality evaluation algorithm, audio and/or video quality corresponding to the first
feature parameter, and audio and/or video quality corresponding to the second feature
parameter.
[0175] In this embodiment, procedures performed by the units of the client are similar to
those of the method performed by the client described in the embodiments shown in
FIG. 7, FIG. 9A and FIG. 9B, and FIG. 11A and FIG. 11B. Details are not described
herein again.
[0176] In this embodiment, if the obtaining unit 1301 obtains a first data packet and a
second data packet of the target call service initiated by the terminal, the classification
unit 1302 may classify the first data packet into a first data packet set and classify
the second data packet into a second data packet set based on a first time segment
and a second time segment, where a first obtaining moment of the first data packet
belongs to the first time segment, a second obtaining moment of the second data packet
belongs to the second time segment, the first time segment and the second time segment
are different time segments used by the client to obtain the data packets of the target
call service, and an intersection set of the first time segment and the second time
segment is empty. The determining unit 1303 may separately determine the first feature
parameter corresponding to the first data packet set and the second feature parameter
corresponding to the second data packet set. The calculation unit 1304 may separately
calculate, based on the preset audio and/or video quality evaluation algorithm, audio
and/or video quality corresponding to the first feature parameter, and audio and/or
video quality corresponding to the second feature parameter. That is, time segments
are classified for the target call service, and MOS evaluation may be separately performed
based on the feature parameters in the classified different time segments, to improve
accuracy of an evaluation result of voice and video quality.
[0177] In this embodiment, the client further includes a judging unit 1305, configured to
determine whether first status information of the terminal in the first time segment
is the same as second status information of the terminal in the second time segment.
[0178] When the judging unit 1305 determines that the first status information is the same
as the second status information, the classification unit 1302 may classify the first
data packet into the first data packet set and classify the second data packet into
the second data packet set according to a preset time slice rule.
[0179] The classification unit 1302 may classify the first data packet and the second data
packet according to the preset time slice rule in the following several manners:
the classification unit 1302 is specifically configured to classify the first data
packet into the first data packet set and classify the second data packet into the
second data packet set according to a preset first time slice rule, the first obtaining
moment, and the second obtaining moment, where an interval between the first obtaining
moment and an obtaining moment of at least one data packet in the second data packet
set is greater than a preset first duration threshold, an interval between the second
obtaining moment and an obtaining moment of at least one data packet in the first
data packet set is greater than the first duration threshold, an interval between
obtaining moments of any two data packets in the first data packet set is not greater
than the first duration threshold, and an interval between obtaining moments of any
two data packets in the second data packet set is not greater than the first duration
threshold; or
the classification unit 1302 is specifically configured to: if the obtaining unit
1301 obtains a third data packet of the target call service, classify the first data
packet into the first data packet set and classify the second data packet into the
second data packet set according to a preset second time slice rule, the first obtaining
moment, the second obtaining moment, and a third obtaining moment of the third data
packet, where the third obtaining moment belongs to the first time segment or the
second time segment; and classify the third data packet into the first data packet
set or the second data packet set according to the second time slice rule, the first
obtaining moment, the second obtaining moment, and the third obtaining moment, where
the third obtaining moment is earlier than obtaining moments of all data packets of
one of the first data packet set and the second data packet set, and is later than
obtaining moments of all data packets in the other data packet set, and an interval
between the third obtaining moment and an obtaining moment of any data packet in the
first data packet set or the second data packet set is not greater than a preset second
duration threshold, where the first data packet includes a first RTP data packet;
the second data packet includes a second RTP data packet; and the third data packet
includes a first RTCP data packet.
[0180] When the judging unit 1305 determines that the first status information is different
from the second status information, the classification unit 1302 may classify the
first data packet into the first data packet set and classify the second data packet
into the second data packet set according to a preset status slice rule.
[0181] The classification unit 1302 may classify the first data packet and the second data
packet according to the preset status slice rule in the following several manners:
when the first status information includes first location information corresponding
to the terminal when the obtaining unit obtains the first data packet, and the second
status information includes second location information corresponding to the terminal
when the obtaining unit obtains the second data packet, the classification unit 1302
is specifically configured to classify the first data packet into the first data packet
set and classify the second data packet into the second data packet set according
to a preset location slice rule, the first location information, and the second location
information, where location information corresponding to the terminal when any data
packet in the first data packet set is obtained by the client is the first location
information, and location information corresponding to the terminal when any data
packet in the second data packet set is obtained by the client is the second location
information; or
when the first status information includes a first call feature corresponding to the
first data packet, and the second status information includes a second call feature
corresponding to the second data packet, the classification unit is specifically configured
to classify the first data packet into the first data packet set and classify the
second data packet into the second data packet set according to a preset call feature
slice rule, the first call feature, and the second call feature, where a call feature
corresponding to any data packet in the first data packet set is the first call feature,
and a call feature corresponding to any data packet in the second data packet set
is the second call feature.
[0182] Referring to FIG. 14, another embodiment of the client in the embodiments of this
application includes: a client 1400 that may vary greatly because of a configuration
or performance difference, and may include one or more central processing units (central
processing units, CPU) 1401 (for example, one or more processors) and a memory 1405.
The memory 1405 stores one or more application programs or data.
[0183] The memory 1405 may be a volatile storage or a persistent storage. The program stored
in the memory 1405 may include one or more modules, and each module may include a
series of instruction operations of the client. Still further, the central processing
unit 1401 may be configured to communicate with the memory 1405 and perform a series
of instruction operations of the memory 1405 on the client 1400.
[0184] The client 1400 may further include one or more power supplies 1402, one or more
wired or wireless network interfaces 1403, one or more input/output interfaces 1404,
and/or one or more operating systems, for example, Windows ServerTM, Mac OS XTM, UnixTM,
LinuxTM, and FreeBSDTM.
[0185] In this embodiment, procedures performed by the central processing unit 1401 of the
client 1400 are similar to those of the method described in the embodiments shown
in FIG. 7, FIG. 9A and FIG. 9B, and FIG. 11A and FIG. 11B. Details are not described
herein again.
[0186] According to an embodiment of this application, a computer storage medium is further
provided. The computer storage medium is configured to store a computer software instruction
used by the client, and includes a program designed for the client.
[0187] According to an embodiment of this application, a computer program product is provided.
The computer program product includes a computer software instruction, and the computer
software instruction may be loaded by a processor to perform the procedure of the
method in the embodiments shown in FIG. 5, FIG. 7, FIG. 9A and FIG. 9B, and FIG. 11A
and FIG. 11B.
[0188] It may be clearly understood by a person skilled in the art that, for the purpose
of convenient and brief description, for a detailed working process of the foregoing
system, apparatus, and unit, refer to a corresponding process in the foregoing method
embodiments, and details are not described herein again.
[0189] In the several embodiments provided in this application, it should be understood
that the disclosed system, apparatus, and method may be implemented in other manners.
For example, the described apparatus embodiment is merely an example. For example,
the unit division is merely logical function division and may be other division in
actual implementation. For example, a plurality of units or components may be combined
or integrated into another system, or some features may be ignored or not performed.
In addition, the displayed or discussed mutual couplings or direct couplings or communication
connections may be implemented by using some interfaces. The indirect couplings or
communication connections between the apparatuses or units may be implemented in electronic,
mechanical, or other forms.
[0190] The units described as separate parts may or may not be physically separate, and
parts displayed as units may or may not be physical units, may be located in one position,
or may be distributed on a plurality of network units. Some or all of the units may
be selected based on actual requirements to achieve the objectives of the solutions
of the embodiments.
[0191] In addition, functional units in the embodiments of this application may be integrated
into one processing unit, or each of the units may exist alone physically, or two
or more units are integrated into one unit. The integrated unit may be implemented
in a form of hardware, or may be implemented in a form of a software functional unit.
[0192] When the integrated unit is implemented in the form of a software functional unit
and sold or used as an independent product, the integrated unit may be stored in a
computer-readable storage medium. Based on such an understanding, the technical solutions
of this application essentially, or the part contributing to the prior art, or all
or some of the technical solutions may be implemented in the form of a software product.
The software product is stored in a storage medium and includes several instructions
for instructing a computer device (which may be a personal computer, a server, or
a network device) to perform all or some of the steps of the methods described in
the embodiments of this application. The foregoing storage medium includes: any medium
that can store program code, such as a USB flash drive, a removable hard disk, a read-only
memory (ROM, Read-Only Memory), a random access memory (RAM, Random Access Memory),
a magnetic disk, or an optical disc.
[0193] The foregoing embodiments are merely intended for describing the technical solutions
of this application, but not for limiting this application. Although this application
is described in detail with reference to the foregoing embodiments, persons of ordinary
skill in the art should understand that they may still make modifications to the technical
solutions described in the foregoing embodiments or make equivalent replacements to
some technical features thereof, without departing from the spirit and scope of the
technical solutions of the embodiments of this application.
1. A data processing method, comprising:
if obtaining a first data packet and a second data packet of a target call service
initiated by a terminal, classifying, by a client, the first data packet into a first
data packet set and classifying the second data packet into a second data packet set
based on a first time segment and a second time segment, wherein a first obtaining
moment of the first data packet belongs to the first time segment, a second obtaining
moment of the second data packet belongs to the second time segment, the first time
segment and the second time segment are different time segments used by the client
to obtain the data packets of the target call service, and an intersection set of
the first time segment and the second time segment is empty;
determining, by the client, a first feature parameter corresponding to the first data
packet set and a second feature parameter corresponding to the second data packet
set; and
calculating, by the client based on a preset audio and/or video quality evaluation
algorithm, audio and/or video quality corresponding to the first feature parameter,
and audio and/or video quality corresponding to the second feature parameter.
2. The method according to claim 1, wherein the classifying, by a client, the first data
packet into a first data packet set and classifying the second data packet into a
second data packet set based on a first time segment and a second time segment comprises:
when determining that first status information of the terminal in the first time segment
is the same as second status information of the terminal in the second time segment,
classifying, by the client, the first data packet into the first data packet set and
classifying the second data packet into the second data packet set according to a
preset time slice rule.
3. The method according to claim 2, wherein the classifying, by the client, the first
data packet into the first data packet set and classifying the second data packet
into the second data packet set according to a preset time slice rule comprises:
classifying, by the client, the first data packet into the first data packet set and
classifying the second data packet into the second data packet set according to a
preset first time slice rule, the first obtaining moment, and the second obtaining
moment, wherein an interval between the first obtaining moment and an obtaining moment
of at least one data packet in the second data packet set is greater than a preset
first duration threshold, an interval between the second obtaining moment and an obtaining
moment of at least one data packet in the first data packet set is greater than the
first duration threshold, an interval between obtaining moments of any two data packets
in the first data packet set is not greater than the first duration threshold, and
an interval between obtaining moments of any two data packets in the second data packet
set is not greater than the first duration threshold.
4. The method according to claim 2, wherein the classifying, by the client, the first
data packet into the first data packet set and classifying the second data packet
into the second data packet set according to a preset time slice rule comprises:
if obtaining a third data packet of the target call service, classifying, by the client,
the first data packet into the first data packet set and classifying the second data
packet into the second data packet set according to a preset second time slice rule,
the first obtaining moment, the second obtaining moment, and a third obtaining moment
of the third data packet, wherein the third obtaining moment belongs to the first
time segment or the second time segment; and
classifying, by the client, the third data packet into the first data packet set or
the second data packet set according to the second time slice rule, the first obtaining
moment, the second obtaining moment, and the third obtaining moment, wherein the third
obtaining moment is earlier than obtaining moments of all data packets of one of the
first data packet set and the second data packet set, and is later than obtaining
moments of all data packets in the other data packet set, and an interval between
the third obtaining moment and an obtaining moment of any data packet in the first
data packet set or the second data packet set is not greater than a preset second
duration threshold, wherein
the first data packet comprises a first RTP data packet;
the second data packet comprises a second RTP data packet; and
the third data packet comprises a first RTCP data packet.
5. The method according to claim 1, wherein the classifying, by a client, the first data
packet into a first data packet set and classifying the second data packet into a
second data packet set based on a first time segment and a second time segment comprises:
when determining that first status information of the terminal in the first time segment
is different from second status information of the terminal in the second time segment,
classifying, by the client, the first data packet into the first data packet set and
classifying the second data packet into the second data packet set according to a
preset status slice rule.
6. The method according to claim 5, wherein the first status information comprises first
location information corresponding to the terminal when the client obtains the first
data packet;
the second status information comprises second location information corresponding
to the terminal when the client obtains the second data packet; and
the classifying, by the client, the first data packet into the first data packet set
and classifying the second data packet into the second data packet set according to
a preset status slice rule comprises:
classifying, by the client, the first data packet into the first data packet set and
classifying the second data packet into the second data packet set according to a
preset location slice rule, the first location information, and the second location
information, wherein location information corresponding to the terminal when any data
packet in the first data packet set is obtained by the client is the first location
information, and location information corresponding to the terminal when any data
packet in the second data packet set is obtained by the client is the second location
information.
7. The method according to claim 6, wherein the first location information comprises
a first cell; and the second location information comprises a second cell; or
the first location information comprises a first grid; and the second location information
comprises a second grid; or
the first location information comprises a first interface network element through
which the first data packet passes; and the second location information comprises
a second interface network element through which the second data packet passes, wherein
the first interface network element corresponds to the second interface network element.
8. The method according to claim 5, wherein the first status information comprises a
first call feature corresponding to the first data packet;
the second status information comprises a second call feature corresponding to the
second data packet; and
the classifying, by the client, the first data packet into the first data packet set
and classifying the second data packet into the second data packet set according to
a preset status slice rule comprises:
classifying, by the client, the first data packet into the first data packet set and
classifying the second data packet into the second data packet set according to a
preset call feature slice rule, the first call feature, and the second call feature,
wherein a call feature corresponding to any data packet in the first data packet set
is the first call feature, and a call feature corresponding to any data packet in
the second data packet set is the second call feature.
9. The method according to claim 8, wherein the first call feature comprises a first
coding/decoding type; and the second call feature comprises a second coding/decoding
type; or
the first call feature comprises a first audio code rate; and the second call feature
comprises a second audio code rate; or
the first call feature comprises a first video resolution; and the second call feature
comprises a second video resolution.
10. A client, comprising:
an obtaining unit, configured to obtain a data packet of a target call service initiated
by a terminal;
a classification unit, configured to: if the obtaining unit obtains a first data packet
and a second data packet of the target call service, classify the first data packet
into a first data packet set and classify the second data packet into a second data
packet set based on a first time segment and a second time segment, wherein a first
obtaining moment of the first data packet belongs to the first time segment, a second
obtaining moment of the second data packet belongs to the second time segment, the
first time segment and the second time segment are different time segments used by
the obtaining unit to obtain the data packets of the target call service, and an intersection
set of the first time segment and the second time segment is empty;
a determining unit, configured to determine a first feature parameter corresponding
to the first data packet set and a second feature parameter corresponding to the second
data packet set; and
a calculation unit, configured to calculate, based on a preset audio and/or video
quality evaluation algorithm, audio and/or video quality corresponding to the first
feature parameter, and audio and/or video quality corresponding to the second feature
parameter.
11. The client according to claim 10, wherein the client further comprises a judging unit,
configured to determine whether first status information of the terminal in the first
time segment is the same as second status information of the terminal in the second
time segment; and
the classification unit is specifically configured to: when the judging unit determines
that the first status information is the same as the second status information, classify
the first data packet into the first data packet set and classify the second data
packet into the second data packet set according to a preset time slice rule.
12. The client according to claim 11, wherein the classification unit is specifically
configured to classify the first data packet into the first data packet set and classify
the second data packet into the second data packet set according to a preset first
time slice rule, the first obtaining moment, and the second obtaining moment, wherein
an interval between the first obtaining moment and an obtaining moment of at least
one data packet in the second data packet set is greater than a preset first duration
threshold, an interval between the second obtaining moment and an obtaining moment
of at least one data packet in the first data packet set is greater than the first
duration threshold, an interval between obtaining moments of any two data packets
in the first data packet set is not greater than the first duration threshold, and
an interval between obtaining moments of any two data packets in the second data packet
set is not greater than the first duration threshold.
13. The client according to claim 11, wherein the classification unit is specifically
configured to: if the obtaining unit obtains a third data packet of the target call
service, classify the first data packet into the first data packet set and classify
the second data packet into the second data packet set according to a preset second
time slice rule, the first obtaining moment, the second obtaining moment, and a third
obtaining moment of the third data packet, wherein the third obtaining moment belongs
to the first time segment or the second time segment; and classify the third data
packet into the first data packet set or the second data packet set according to the
second time slice rule, the first obtaining moment, the second obtaining moment, and
the third obtaining moment, wherein the third obtaining moment is earlier than obtaining
moments of all data packets of one of the first data packet set and the second data
packet set, and is later than obtaining moments of all data packets in the other data
packet set, and an interval between the third obtaining moment and an obtaining moment
of any data packet in the first data packet set or the second data packet set is not
greater than a preset second duration threshold, wherein the first data packet comprises
a first RTP data packet; the second data packet comprises a second RTP data packet;
and the third data packet comprises a first RTCP data packet.
14. The client according to claim 10, wherein the client further comprises a judging unit,
configured to determine whether first status information of the terminal in the first
time segment is the same as second status information of the terminal in the second
time segment; and
the classification unit is specifically configured to: when the judging unit determines
that the first status information is different from the second status information,
classify the first data packet into the first data packet set and classify the second
data packet into the second data packet set according to a preset status slice rule.
15. The client according to claim 14, wherein the first status information comprises first
location information corresponding to the terminal when the obtaining unit obtains
the first data packet; the second status information comprises second location information
corresponding to the terminal when the obtaining unit obtains the second data packet;
and the classification unit is specifically configured to classify the first data
packet into the first data packet set and classify the second data packet into the
second data packet set according to a preset location slice rule, the first location
information, and the second location information, wherein location information corresponding
to the terminal when any data packet in the first data packet set is obtained by the
client is the first location information, and location information corresponding to
the terminal when any data packet in the second data packet set is obtained by the
client is the second location information.
16. The client according to claim 15, wherein the first location information comprises
a first cell; and the second location information comprises a second cell; or the
first location information comprises a first grid; and the second location information
comprises a second grid; or the first location information comprises a first interface
network element through which the first data packet passes; and the second location
information comprises a second interface network element through which the second
data packet passes, wherein the first interface network element corresponds to the
second interface network element.
17. The client according to claim 14, wherein the first status information comprises a
first call feature corresponding to the first data packet; the second status information
comprises a second call feature corresponding to the second data packet; and the classification
unit is specifically configured to classify the first data packet into the first data
packet set and classify the second data packet into the second data packet set according
to a preset call feature slice rule, the first call feature, and the second call feature,
wherein a call feature corresponding to any data packet in the first data packet set
is the first call feature, and a call feature corresponding to any data packet in
the second data packet set is the second call feature.
18. The client according to claim 17, wherein the first call feature comprises a first
coding/decoding type; and the second call feature comprises a second coding/decoding
type; or the first call feature comprises a first audio code rate; and the second
call feature comprises a second audio code rate; or the first call feature comprises
a first video resolution; and the second call feature comprises a second video resolution.
19. A client, comprising:
a memory, configured to store a program; and
a processor, configured to execute the program stored by the memory, wherein when
the program is executed, the processor is configured to perform the steps according
to any one of claims 1 to 9.
20. A computer-readable storage medium, comprising an instruction, wherein when the instruction
is run on a computer, the computer is enabled to perform the method according to any
one of claims 1 to 9.