Surveillance video processing method, device, equipment and storage medium
By sharding the monitoring video and performing parallel processing of round-rotation scheduling, the problem of insufficient multi-channel video processing capabilities in the prior art is solved, the data concurrency processing capabilities of the monitoring equipment are improved, and efficient processing of multi-channel video is achieved.
Patent Information
- Application Number
- CN202010443835.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-05-22
- Publication Date
- 2024-12-24
- Estimated Expiration
- 2040-05-22
AI Technical Summary
When the existing video surveillance system processes multiple video requests, due to the limited concurrency capability of the front-end device, it is impossible to support the processing of multiple videos at the same time, resulting in inefficient data processing.
By sharding the monitoring video and scheduling it in turn, the sharded video is processed in parallel, and the data concurrency processing capability of the monitoring device is improved.
Simultaneous processing of multiple videos is realized, the data concurrency processing capability of the monitoring device is improved, and the video processing is not limited by the parallelism of the monitoring terminal.
Smart Images

Figure CN113709522B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of surveillance video technology, and in particular to a surveillance video processing method, device, equipment and storage medium. Background Art
[0002] In the current video surveillance system, if you need to play the surveillance video shot by the front-end device, you need to send a request instruction to the front-end device to specify the start time and end time of the video. During this time period, if there is another instruction to play the device to the front-end device, you need to send a request instruction to the front-end device again. However, the data processing capacity of the front-end device is limited. If multiple different request instructions are received in the same time period, the front-end device cannot support the processing of multiple videos at the same time due to limited concurrency capabilities. Summary of the invention
[0003] The embodiments of the present application provide a monitoring video processing method, apparatus, device and storage medium, which can simultaneously support the processing of multiple channels of video and improve the data concurrent processing capability of the monitoring device.
[0004] To achieve the above-mentioned purpose, an embodiment of the present application provides a method for processing surveillance videos, which is characterized in that it includes: obtaining at least one surveillance video corresponding to a video request; the video request is sent by at least one client; segmenting the at least one surveillance video to obtain multiple segmented videos; scheduling the segmented videos in each surveillance video in rounds; and processing the scheduled segmented videos in parallel.
[0005] To achieve the above-mentioned purpose, an embodiment of the present application provides a surveillance video processing device, characterized in that it includes: a surveillance video acquisition module, used to obtain at least one surveillance video corresponding to a video request; the video request is sent by at least one client; a sliced video acquisition module, used to slice the at least one surveillance video respectively to obtain multiple sliced videos; a sliced video scheduling module, used to schedule the sliced videos in each surveillance video in turn; and a sliced video processing module, used to process the scheduled sliced videos in parallel.
[0006] To achieve the above-mentioned purpose, an embodiment of the present application provides a monitoring device, which includes a memory, a processor, a program stored in the memory and executable on the processor, and a data bus for realizing connection and communication between the processor and the memory. When the program is executed by the processor, the monitoring video processing method described in the embodiment of the present application is implemented.
[0007] To achieve the above-mentioned purpose, an embodiment of the present application provides a storage medium for computer-readable storage, wherein the storage medium stores one or more programs, and the one or more programs can be executed by one or more processors to implement the monitoring video processing method as described in the embodiment of the present application.
[0008] The monitoring video processing method, device, equipment and storage medium proposed in the present application segment at least one monitoring video segment corresponding to a video request to obtain segmented videos, and schedule the segmented videos in each monitoring video in turn, and process the scheduled segmented videos in parallel, so that the processing of the video is not limited by the parallelism of the monitoring terminal, and can support the processing of multiple videos at the same time, thereby improving the data concurrent processing capability of the monitoring equipment. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] Figure 1 is a structural diagram of a monitoring system in an embodiment of the present application;
[0010] Figure 2 is a flowchart of a method for processing surveillance video in an embodiment of the present application;
[0011] Figure 3 is a structural diagram of a monitoring video processing device in an embodiment of the present application;
[0012] Figure 4 It is a structural diagram of a monitoring device in an embodiment of the present application. DETAILED DESCRIPTION
[0013] It should be understood that the specific embodiments described herein are only used to explain the present invention, and are not used to limit the present invention.
[0014] In the subsequent description, the suffixes such as "module", "component" or "unit" used to represent elements are only used to facilitate the description of the present invention, and have no special meanings. Therefore, "module", "component" or "unit" can be used in a mixed manner.
[0015] In order to make the purpose, technical solution and advantages of the present application more clear, the embodiments of the present application will be described in detail below with reference to the accompanying drawings. It should be noted that the embodiments and features in the embodiments of the present application can be combined with each other arbitrarily without conflict.
[0016] In one embodiment, Figure 1 is a schematic diagram of the structure of a monitoring system in an embodiment of the present application, such as Figure 1 As shown, the system includes: a monitoring application server 110, a monitoring platform server 120, a database server 130, a monitoring client 140, a monitoring streaming media server 150 and a monitoring terminal 160.
[0017] Among them, the monitoring application server 110 is used to provide WEB services. In the browser, you can open an account for the monitoring terminal 160, open an account for the user, manage the device configuration of the entire system, and send instructions to the monitoring platform server 120 to manage the terminal 160 as soon as possible.
[0018] The monitoring platform server 120 is used to load monitoring terminal data, user, and device data from the database server 130, authenticate the access of the monitoring terminal 160, and manage the monitoring streaming media server 150. It implements access authentication for the monitoring client 140. It issues instructions to the monitoring terminal 160 and can interact with the monitoring application server 110, the database server 130, the monitoring client 140, the monitoring streaming media server 150, and the monitoring terminal 160.
[0019] The database server 130 is used to store the monitoring terminal's account opening data, user account opening data, system equipment information and other management information.
[0020] The monitoring client 140 can interact with the monitoring platform server 120 for operations such as real-time video browsing, front-end video browsing, platform video browsing, PTZ control, and setting of video plans.
[0021] The monitoring streaming media server 150 receives management from the monitoring platform server 120, receives multimedia code streams sent by the monitoring terminal 160, and provides RTSP services to browse terminal real-time video, front-end video, platform video and other videos.
[0022] The monitoring terminal 160 receives the management instruction issued by the monitoring platform server 120, and completes the transmission of the video, front-end recording and other code streams to the monitoring streaming media server 150 specified by the monitoring platform server 120 through negotiation.
[0023] In one embodiment, Figure 2 1 is a flowchart of a monitoring video processing method provided by an embodiment of the present application. This embodiment is applicable to the case of parallel processing of monitoring videos. This embodiment can be implemented by a monitoring video processing device, which can be a device with a recording function. Figure 1 As shown, the method provided in this embodiment includes S210-S240.
[0024] S210: Obtain at least one surveillance video corresponding to the video request.
[0025] The video request is sent by at least one client. The video request includes the start time and end time of the monitoring video. In this embodiment, if the user wants to view the monitoring video in the monitoring terminal, the client can send a video request including the start time and end time of the monitoring video to the monitoring terminal. A monitoring terminal can receive monitoring requests sent by one or more clients at the same time and respond to multiple monitoring requests at the same time.
[0026] Specifically, when the monitoring terminal receives a video request, the corresponding monitoring video is obtained according to the start time and end time contained in the video request. For example, suppose the monitoring terminal receives video requests sent by two clients, where the start time and end time in one video request are 10:00-10:30 on May 10, 2020, and the start time and end time in the other video request are 13:00-14:30 on May 10, 2020. The monitoring terminal obtains the corresponding monitoring video according to these two time periods. In this embodiment, the multiple monitoring videos obtained can be understood as multiple processing tasks that the monitoring terminal needs to process in parallel.
[0027] S220: Segment at least one surveillance video into segments to obtain a plurality of segmented videos.
[0028] The surveillance video may be segmented according to the duration or the amount of data.
[0029] In one embodiment, at least one surveillance video is sliced separately to obtain a plurality of sliced videos. The process may be: obtaining the parallelism of data processing, the maximum speed of data processing and the timeout duration of surveillance video playback of the monitoring terminal; determining the amount of data contained in the sliced video according to the number of video requests, the parallelism, the maximum speed and the timeout duration; and slice at least one surveillance video according to the amount of data contained in the sliced video to obtain a plurality of sliced videos.
[0030] The parallelism and maximum speed of data processing are determined by the hardware information of the monitoring terminal itself. The timeout duration of monitoring video playback can be set according to the requirements for the smoothness of video playback.
[0031] In this embodiment, the method of obtaining the parallelism of data processing of the monitoring terminal can be: determining the parallelism of data processing according to the hardware information of the monitoring terminal; or determining the parallelism of data processing according to the response result of the monitoring terminal to the video request.
[0032] Among them, the process of determining the parallelism of data processing according to the response result of the monitoring terminal to the video request can be as follows: control a set number of clients to send video requests to the monitoring terminal. If the monitoring terminal responds to all the set number of video requests, then increase the number of video requests sent by the clients to the monitoring terminal until the monitoring terminal no longer responds to the increased video requests. Determine the number of video requests responded by the monitoring terminal as the parallelism of data processing. If the monitoring terminal only responds to some of the set number of video requests, then determine the number of video requests responded by the monitoring terminal as the parallelism of data processing.
[0033] Among them, the number of video requests can be understood as the number of video requests currently received by the monitoring terminal. In this embodiment, the method of determining the data volume included in the segmented video according to the number of video requests, parallelism, maximum speed, and timeout duration can be as follows: determine the number of scheduling times within the timeout duration according to the parallelism and the number of video requests; determine the scheduling time consumption according to the number of scheduling times and the timeout duration; the scheduling time consumption is the duration consumed for one scheduling; determine the data volume included in the segmented video according to the scheduling time consumption and the maximum download speed.
[0034] In this embodiment, when the number D of video requests is greater than the parallelism C, in order to ensure that each monitoring video can be played normally within the timeout duration T, then within the timeout duration T, at least D segmented videos need to be processed, and the D segmented videos come from D monitoring videos respectively. In order to ensure that the D segmented videos are scheduled in rounds within the timeout duration T, then within the timeout duration T, at least D / C rounds of scheduling need to be initiated, with C segmented videos scheduled in each round, and the maximum time consumption for each round of scheduling is T / (D / C) = T*C / D. Control the monitoring terminal to process data at the maximum speed S, then the data volume included in the segmented video is T*C / D*S. In this embodiment, in order to ensure the continuous normal playback of each monitoring video, the minimum processing content of each segmented video is at least the content of T seconds, that is, the condition (T*C / D)*S>T needs to be satisfied, that is, when the number of video requests satisfies D<C*S, the requirement of concurrent processing of multiple video requests can be achieved.
[0035] In one embodiment, the process of segmenting at least one monitoring video according to the data volume included in the segmented video to obtain multiple segmented videos can be as follows: obtain the total data volume included in each monitoring video; perform segmentation according to the total data volume and the data volume included in the segmented video to obtain multiple segmented videos.
[0036] Specifically, divide the total quantity by the data volume included in the segmented video to obtain the number of segmented videos.
[0037] For example, assuming that the duration of the surveillance video is H hours, the amount of data contained is H*3600, and the number of segmented videos obtained is (H*3600) / (T*C / D*S).
[0038] In one embodiment, the process of segmenting according to duration may be to first determine the duration occupied by the segmented videos, and then segment the surveillance video according to the duration occupied by the segmented videos to obtain a plurality of segmented videos. For example, assuming that the duration occupied by the segmented videos and the total duration of the surveillance video are H, then the number of segmented videos is H / t.
[0039] In one embodiment, for surveillance videos under multiple tasks that need to be processed in parallel, the surveillance videos are sliced according to time, and each task contains multiple sliced videos.
[0040] S230, scheduling the segmented videos in each surveillance video in turn.
[0041] Among them, round scheduling can be understood as scheduling the sliced videos in each monitoring video in a certain order, and scheduling one sliced video from the scheduled monitoring video each time. For example, assuming that the acquired monitoring videos include A, B and C, and the parallelism of the monitoring terminal is 2, then the sliced videos in A and B are scheduled for processing first, and the sliced videos in C and A are scheduled for processing next, and so on, until all the sliced videos in the monitoring video are processed.
[0042] In one embodiment, the method of scheduling the sliced videos in each monitoring video in rounds may be: scheduling the sliced videos with the same parallelism in rounds from each monitoring video every scheduling time; wherein one sliced video is scheduled from the scheduled monitoring video each time.
[0043] The scheduling time can be understood as the scheduling cycle. The scheduling time is determined by the number of scheduling times within the timeout period and the timeout period. The calculation formula is: T*C / D. T is the timeout period, C is the parallelism, and D is the number of video requests.
[0044] In one embodiment, during scheduling, one slice video is scheduled from a task at a time in a certain order, and a total of slice videos with the same parallelism are scheduled for parallel processing. After the scheduled slice videos are processed, the next round of slice videos with the same parallelism are scheduled for parallel processing.
[0045] S240: Process the scheduled segmented videos in parallel.
[0046] In this embodiment, in order to ensure that each monitoring video can be played normally, the scheduled number of sliced videos are processed in parallel at the maximum speed. The parallel processing process can be that the monitoring terminal creates threads with the number of parallel degrees, one thread processes one sliced video, and multiple threads process the scheduled sliced videos in parallel.
[0047] In this embodiment, after the scheduled segmented videos are processed in parallel, the processed segmented videos are sent to each client for playback.
[0048] Exemplarily, the monitoring terminal receives video requests sent by M clients, and obtains M monitoring videos corresponding to the M video requests. M tasks corresponding to the monitoring videos to be processed are established. At this time, there are M tasks in the monitoring terminal that need to be processed in parallel. Assuming that the parallelism of the monitoring terminal is N, the monitoring videos corresponding to the M tasks are sliced according to time, and each task contains multiple sliced videos. Then the sliced videos under the M tasks are scheduled in rounds, and one sliced video is scheduled from one task at a time in a certain order, and a total of N sliced videos are scheduled for parallel processing. At the next scheduling, the next round of N sliced videos are scheduled for parallel processing. Until the M tasks are processed.
[0049] The monitoring video processing method proposed in the embodiment of the present application segments at least one monitoring video segment corresponding to a video request to obtain segmented videos, and schedules the segmented videos in each monitoring video in turn, and processes the scheduled segmented videos in parallel, so that the processing of the video is not limited by the parallelism of the monitoring terminal, and can support the processing of multiple videos at the same time, thereby improving the data concurrent processing capability of the monitoring equipment.
[0050] In one embodiment, Figure 3 Schematic diagram of the structure of a monitoring video processing device provided in an embodiment of the present application. Figure 3 As shown, the device includes: a monitoring video acquisition module 310, a slice video acquisition module 320, a slice video scheduling module 330 and a slice video processing module 340.
[0051] The monitoring video acquisition module 310 is used to acquire at least one monitoring video corresponding to a video request; the video request is sent by at least one client;
[0052] The fragmented video acquisition module 320 is used to fragment at least one surveillance video to obtain multiple fragmented videos;
[0053] The slice video scheduling module 330 is used to schedule the slice videos in each monitoring video in turn;
[0054] The segmented video processing module 340 is used to process the scheduled segmented videos in parallel.
[0055] In one embodiment, the segmented video acquisition module 320 is further configured to:
[0056] Obtain the parallelism of data processing, the maximum speed of data processing and the timeout duration of monitoring video playback of the monitoring terminal;
[0057] Determine the amount of data contained in the segmented video based on the number of video requests, parallelism, maximum speed, and timeout duration;
[0058] At least one surveillance video is segmented according to the amount of data contained in the segmented videos to obtain multiple segmented videos.
[0059] In one embodiment, the segmented video acquisition module 320 is further configured to:
[0060] Determine the number of scheduling times within the timeout period according to the degree of parallelism and the number of video requests;
[0061] The scheduling time is determined according to the number of scheduling times and the timeout duration; the scheduling time is the time consumed for one scheduling;
[0062] The amount of data contained in the segmented video is determined based on the scheduling time and the maximum download speed.
[0063] In one embodiment, the segmented video acquisition module 320 is further configured to:
[0064] Get the total amount of data contained in each surveillance video;
[0065] The video is segmented according to the total data volume and the data volume contained in the segmented video to obtain multiple segmented videos.
[0066] In one embodiment, the segmented video acquisition module 320 is further configured to:
[0067] Determine the parallelism of data processing according to the hardware information of the monitoring terminal; or,
[0068] The degree of parallelism of data processing is determined according to the response result of the monitoring terminal to the video request.
[0069] In one embodiment, the sliced video scheduling module 330 is further used to:
[0070] Every scheduling time, sliced videos with the number of parallelism are scheduled in turn from each monitoring video; wherein, one sliced video is scheduled from the scheduled monitoring video each time.
[0071] In one embodiment, the sliced video processing module 340 is further configured to:
[0072] The scheduled number of video segments are processed in parallel at the maximum speed.
[0073] In one embodiment, Figure 4 Schematic diagram of a monitoring device provided in an embodiment of the present application. Figure 4 As shown, the device provided by the present application includes: a processor 410 and a memory 420. The number of processors 410 in the device can be one or more. Figure 4 In the example, a processor 410 is used. The number of memories 420 in the device may be one or more. Figure 4 A memory 420 is taken as an example. The processor 410 and the memory 420 of the device can be connected via a bus or other means. Figure 4 The example of connecting through bus is taken in the following.
[0074] The memory 420, as a computer-readable storage medium, may be configured to store software programs, computer executable programs, and modules, such as program instructions / modules corresponding to the device of any embodiment of the present application (e.g., the encoding module and the first sending module in the data transmission device). The memory 420 may include a program storage area and a data storage area, wherein the program storage area may store an operating system, an application required for at least one function; the data storage area may store data created according to the use of the device, etc. In addition, the memory 420 may include a high-speed random access memory, and may also include a non-volatile memory, such as at least one disk storage device, a flash memory device, or other non-volatile solid-state storage device. In some instances, the memory 420 may further include a memory remotely arranged relative to the processor 410, and these remote memories may be connected to the device via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.
[0075] The device provided above can be configured to execute the monitoring video processing method provided in any of the above embodiments, and has corresponding functions and effects.
[0076] The program stored in the corresponding memory 420 may be a program instruction / module corresponding to the signal processing method provided in the embodiment of the present application. The processor 410 executes one or more functional applications and data processing of the computer device by running the software program, instruction and module stored in the memory 420, that is, the processing method applied to the monitoring video in the above method embodiment is realized. It can be understood that the above device can execute the monitoring video processing method provided in any embodiment of the present application, and has corresponding functions and effects.
[0077] An embodiment of the present application also provides a storage medium containing computer executable instructions, which, when executed by a computer processor, are used to execute a method for processing surveillance videos, the method comprising: obtaining at least one surveillance video corresponding to a video request; the video request is sent by at least one client; segmenting the at least one surveillance video to obtain a plurality of segmented videos; scheduling the segmented videos in each surveillance video in turns; and processing the scheduled segmented videos in parallel.
[0078] It will be appreciated by those skilled in the art that the term user equipment encompasses any suitable type of wireless user equipment, such as a mobile phone, a portable data processing device, a portable web browser or a car-mounted mobile station.
[0079] In general, various embodiments of the present application can be implemented in hardware or dedicated circuits, software, logic or any combination thereof. For example, some aspects can be implemented in hardware, while other aspects can be implemented in firmware or software that can be executed by a controller, microprocessor or other computing device, although the present application is not limited thereto.
[0080] Embodiments of the present application may be implemented by executing computer program instructions by a data processor of a mobile device, for example in a processor entity, or by hardware, or by a combination of software and hardware. The computer program instructions may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages.
[0081] The block diagram of any logic flow in the drawings of the present application may represent program steps, or may represent interconnected logic circuits, modules and functions, or may represent a combination of program steps and logic circuits, modules and functions. A computer program may be stored on a memory. The memory may have any type suitable for the local technical environment and may be implemented using any suitable data storage technology, such as but not limited to read-only memory (ROM), random access memory (RAM), optical memory devices and systems (digital versatile discs (DVD) or compact disks (CD)), etc. Computer-readable media may include non-transient storage media. A data processor may be any type suitable for the local technical environment, such as but not limited to a general-purpose computer, a special-purpose computer, a microprocessor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FGPAs) and a processor based on a multi-core processor architecture.
[0082] The above description is merely an exemplary embodiment of the present application and is not intended to limit the protection scope of the present application.
[0083] Embodiments of the present application may be implemented by executing computer program instructions by a data processor of a mobile device, for example in a processor entity, or by hardware, or by a combination of software and hardware. The computer program instructions may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages.
[0084] By way of exemplary and non-limiting examples, a detailed description of exemplary embodiments of the present application has been provided above. However, various modifications and adjustments to the above embodiments will be apparent to those skilled in the art when considered in conjunction with the accompanying drawings and claims, but will not depart from the scope of the present invention. Therefore, the proper scope of the present invention will be determined according to the claims.
Claims
1. A method for processing surveillance video, characterized in that: include: Obtain at least one surveillance video corresponding to the video request; The video request is sent by at least one client; Slice the at least one surveillance video to obtain a plurality of sliced videos; Schedule the video segments in each surveillance video in turns; Process the scheduled segmented videos in parallel; Among them, the at least one surveillance video is sliced separately to obtain multiple sliced videos, including: obtaining the parallelism of data processing, the maximum speed of data processing and the timeout duration of surveillance video playback of the monitoring terminal; determining the amount of data contained in the sliced video according to the number of video requests, the parallelism, the maximum speed and the timeout duration; and the at least one surveillance video is sliced separately according to the amount of data contained in the sliced video to obtain multiple sliced videos.
2. The method according to claim 1, characterized in that Determining the amount of data contained in the segmented video according to the number of the video requests, the parallelism, the maximum speed, and the timeout duration includes: Determine the number of scheduling times within the timeout period according to the parallelism and the number of the video requests; Determine the scheduling time according to the scheduling times and the timeout duration; the scheduling time is the duration consumed for one scheduling; The amount of data contained in the segmented video is determined according to the scheduling time and the maximum speed.
3. The method according to claim 1, characterized in that The at least one surveillance video is segmented according to the amount of data contained in the segmented videos to obtain a plurality of segmented videos, including: Get the total amount of data contained in each surveillance video; The video is segmented according to the total data volume and the data volume included in the segmented video to obtain multiple segmented videos.
4. The method according to claim 1, characterized in that: Obtain the parallelism of data processing of the monitoring terminal, including: Determine the parallelism of data processing according to the hardware information of the monitoring terminal; or, The degree of parallelism of data processing is determined according to the response result of the monitoring terminal to the video request.
5. The method according to claim 2, characterized in that: The video segments in each surveillance video are scheduled in turns, including: Every time the scheduling time is consumed, sliced videos with the number of parallelism are scheduled in turn from each monitoring video; wherein one sliced video is scheduled from the scheduled monitoring video each time.
6. The method according to claim 5, characterized in that The scheduled segmented videos are processed in parallel, including: The video segments of the scheduled parallelism are processed in parallel at the maximum speed.
7. A monitoring video processing device, characterized in that: include: A monitoring video acquisition module, used to acquire at least one monitoring video corresponding to the video request; The video request is sent by at least one client; A fragmented video acquisition module, used to fragment the at least one surveillance video to obtain a plurality of fragmented videos; The fragmented video scheduling module is used to schedule the fragmented videos in each monitoring video in turn; A slice video processing module, used for processing the scheduled slice videos in parallel; Among them, the sliced video acquisition module is specifically used to: obtain the parallelism of data processing, the maximum speed of data processing and the timeout duration of monitoring video playback of the monitoring terminal; determine the amount of data contained in the sliced video according to the number of video requests, the parallelism, the maximum speed and the timeout duration; slice the at least one monitoring video according to the amount of data contained in the sliced video to obtain multiple sliced videos.
8. A monitoring device, characterized in that: The device includes a memory, a processor, a program stored in the memory and executable on the processor, and a data bus for realizing connection and communication between the processor and the memory. When the program is executed by the processor, the monitoring video processing method as described in any one of claims 1 to 6 is realized.
9. A storage medium for computer-readable storage, characterized in that: The storage medium stores one or more programs, and the one or more programs can be executed by one or more processors to implement the monitoring video processing method as described in any one of claims 1-6.
