The present invention relates to video streaming and more particularly to methods and apparatus for controlling video streaming to permit selection of viewed images remotely.
It is known to capture video images using digital cameras for such things as security whereby a camera may be used to view an area, then signal being transmitted to a remote location or stored in a computer storage medium. Several cameras are often used to ensure a reasonable resolution of the are being viewed and zoom facilities enable real-time close up images to be captured. Different viewing angles may be provided co-temporaneously to enable the same scene to be viewed from differing angles.
It is also known to store film sequences in a computer store for downloading to a television screen or other display device over a high bandwidth link and/or to provide video compression, for example as provided by MPEG coding, to allow images to be transferred over lower bandwidth interconnections in real time or near real time.
Smaller display devices such as pocket personal computers, such as Hewlett Packard PPCs or Compaq IPAQ computers also have relatively high resolution display screens which are in practice relatively small for most film or camera images covering surveillance areas for example.
Even smaller viewing screens are likely to be provided on compact mobile phones for example Sony Ericsson T68i mobile phones which include sophisticated reception and processing capabilities allowing colour images to be received and displayed by way of mobile phone networks.
Recent developments in home television viewing such as the ability to store and read digital data held on Digital Versatile Discs (DVD) has led to the ability of the viewer to select varying camera angles from which to view a scene and to select a close-up view of particular areas of the scene depicted. Players for DVD include the processing capability for carrying out the adaptation of the stored data and conversion in to signals for the picture to be displayed.
Such data to signal conversions require significant real-time processing power if the viewers experience is not to be detracted from. Additionally, very large amounts of data needs to be encoded and stored locally to enable the processing to take place.
Where limited transmission bandwidth is available together with a limited size of screen display such abilities as zooming in to the area of screen to be viewed, reviewing differing viewing angles and the like are not practical because of the amount of data required to be transferred to the local device.
In EP1162810 there is described a data distribution device which is arranged to convert data held in a file server, which may be holding camera derived images. The device is arranged to convert data received or stored into a format capable of being displayed on a requesting data terminal which may be a cellular phone display. The conversion device therein has the ability to divide a stored or received image into a number of fixed sections whereby signals received from the display device can be used to select a particular one of the available image sections.
According to the present invention there is provided a method of streaming video signals comprising the steps of capturing and/or storing a video frame or a series of video frames each frame comprising a matrix of “m” pixels by “n” pixels, compressing the or each said m by n frame to a respective derived frame of “p” pixels by “q” pixels, where p and q are respectively substantially less than m and n, for display on a screen capable of displaying a frame of at least p pixels by q pixels, transmitting the at least one derived frame and receiving signals defining a preferred selected viewing area of less than m by n pixels, compressing the selected viewing area to a further derived frame or series of further derived frames of p pixels by q pixels and transmitting the further derived frames for display characterised in that the received signals include data defining a preferred location within the transmitted further derived frame which determines the location within the m pixel by n pixel frame from which the next further derived frame is selected.
Preferably received signals may also define a zoom level comprising a selection of one from a plurality of offered effective zoom levels each selection defining a frame comprising at least p pixels by q pixels but not more than m pixels by n pixels.
Received signals may be used to cause movement of the transmitted frame from a current position to a new position on a pixel by pixel basis or on a frame area selection basis. Alternatively automated frame selection may be used by detecting an area of apparent activity within the major frame and transmitting a smaller frame surrounding that area.
Control signals may be used to select one of a plurality of pre-determined frame sizes and/or viewing angles. In a preferred embodiment control signals may be used to move from a current position to a new position within the major frame and to change the size of the viewed area whereby detailed examination of a specific area of the major frame may be achieved. Such a selection may be by means of a jump function responsive to control functions to select a different frame area within the major frame in dependence upon the location of a pointer or by scrolling on a pixel by pixel basis.
Terminal apparatus for use with such a system may include a first display screen for displaying transmitted frames and a second display screen having selectable points to indicate the area being displayed or the area desired to be displayed and transmission means for transmitting signals defining a preferred position within a currently displayed frame from which the next transmitted frame should be derived.
Such a terminal may also include a further display means including the capability to display the co-ordinates of a current viewing frame and/or for displaying text or other information relating to the viewing frame. The text displayed may be in the form of a URL or similar identity for a location at which information defining viewing frames is stored.
Control transmissions may be by way of a low bandwidth path with a higher bandwidth return path transmitting the selected viewing frame. Any suitable transmission protocols may be used.
A server for use in the invention may comprise a computer or file server having access to a plurality of video stores and/or connection to a camera for capturing images to be transmitted. A digital image store may also be provided in which images captured by the camera may be stored so that movement through the viewed area may be performed by the user at a specific instant in time if live action viewing indicates a view of interest potentially beyond or partially beyond a current viewing frame.
The server may run a plurality of instances of a selection and compression program to enable multiple transmissions to different users to occur. Each such instance may be providing a selection from a camera source or stored images from one of said video stores.
In one operational mode the program instance causes the digitised image from camera or video store to be pre-selected and divided in to a plurality of frames each of which is simultaneously available to switch means responsive to customer data input to select which of said frames is to be transmitted. The selected digitised image then passes through a codec to provide a packaged bit stream for transmission to the requesting customer.
In an alternative mode of operation, each of the plurality of frames is converted to a respective bit stream ready for transmission to a requesting customer a switch selecting, in response to customer data input, the one of the bit streams to be transmitted.
Where the customer is selecting a part frame to be viewed from a major frame, the server responds to a customer data packet requesting a transmission by transmitting a compressed version of the major frame or a pre-selected area from the major frame and responds to customer data signals defining a preferred location of viewing frame to cause transmission of a bit stream defining a viewing frame at the preferred location wherein the server is responsive to data signals defining a preferred location within an earlier transmitted frame to select the location within the m by n major frame from which the next p by q derived frame is transmitted.
Apparatus and methods for performing the invention will now be described by way of example only with reference to the accompanying drawings of which:
Referring first to
It is anticipated that the camera 2 (for example a . . . which has a high pixel density and captures wide area images at . . . pixels by . . . pixels) will be capable of resolving images to a significantly higher level than can be viewed in detail on the viewing screens. Thus the server 1 runs a number of instances of a compression program represented by program icons 9, each program serving at least one viewing customer and functioning as hereinafter described.
In order to describe the architecture, it will be assumed that the video capture source is a camera 2 with a maximum resolution of 640×480 pixels. It will however be realised that the video capture source could be of any kind (video capture card, uncompressed file stream and the like capable of providing digitised data defining images for transmission or storage) and the maximum resolution could be of any size too (limited only by the resolution limitations of the video capture source).
Additionally, we will make the assumption that the video server is compressing and streaming video with a “fixed” frame size (resolution) 176×144 pixels, which is always less or equal to the original capture frame size. It will again be realised that, this “fixed” video frame size could be of any kind (dependent on the video display of the communications receiver) and may be variable provided that the respective program 9 is adapted to provide images for the device 5,7,8 with which its transmissions are associated.
An algorithm, hereinafter described is used to determine the possible angle-views available. Other algorithms could be used to determine the potential “angle-views”.
Referring briefly to
In the backward direction (from the client 10 to the server 1) a narrower band link 12 can be used since in general this will carry only limited data reflecting input at the client terminal 10 requesting a particular angle view or defining a co-ordinate about which the client 10 wishes to view.
Turning now to
Referring also to
Thus if the client selects angle view 2, the image may appear similar to that of
While the description above shows the provision of three angle views it should be appreciated that the number of views which can be derived from the captured image 12 is not so limited and a wider selection of potential views is easily generated within the server 1 to provide the client 10 with a wider choice of viewing angles and zoom levels from which to select.
It is also noted that the numeric information returned from the client terminal 10 need not be as a result of a displayed image but could be a pre-emptive entry from the client terminal 10 on the basis of prior knowledge by the user of the views available. In an alternative implementation, the server may select the initially transmitted view on the basis of the user's historic profile so that the user's normally preferred view is initially transmitted and users response to the transmission determines any change in zoom level or angle view subsequently transmitted.
The algorithm used to provide the potential angle views is simple and uses the following steps:—
The maximum resolution of the capture source (e.g. camera 1) is required, in this example 640 by 480 pixels). The resolution of the compressed video stream is also required, herein assumed to be 176 by 144 pixels).
For the first calculated angle view a one-to-one relationship directly from the captured video stream is used. Thus referring also to
To calculate the dimensions of the next angle view each of the x and y dimensions is multiplied by 2 giving 352 by 488 pixels as the next recommended angle view. The server is programmed to check that the application of the multiplier does not exceed the selection to exceed the dimensions of the video stream from the capture source (640 by 480) which in this step is true.
In the next step the dimensions of the smallest window 14 are multiplied by three, provided that the previous multiplier did not cause either for the x and y dimensions to exceed the dimensions of the captured view. In the demonstrated case this multiplier results in a window of 528 by 432 pixels (not shown) which would be a further selectable virtual zoom.
The incremental multiplication of the x and y dimensions of the smallest window 14 continues until one of the dimensions exceeds the dimensions of the video capture window whereupon the process ceases and determines this multiplicand as angle view 1, the other zoom factors being defined by incremental angle view definitions. Thus the number of angle views having been determined and the possible angle views are produced the number of available angle views is transmitted by the server 1 to the client 10. One of these views will be a default view for the client, which may be the fully compressed view (angle view 1,
The client terminal will display the available angle views at the client viewing terminal 10 to enable the user to decide which view to pick. Once the client has determined the required view data defining that selection is transmitted to the server 1 which then transmits the respective video stream with the remotely selected angle view.
Thus turning now to
For the avoidance of doubt it is noted that the codec 17 may use any suitable coding such as MPEG4, H26L and the like, the angle views produced being completely independent of the video compression standard being applied.
In
Step 1
Subtract max resolution from the min resolution. In our example max resolution (640×480), and min resolution (176×144).Thus, the result from the subtraction ((640−176)&(480−144)) will be (464,336).
The 5 views are produced in the following way.
Each view is produced by adding to the min resolution (176×144), a percentage of the difference produced in step 1 (464,336).
The percentages will normally be (View1=100%, View2->75%, View3->50%, View4->25%, View5->0%). Of course, similar percentages could be applied too.
Thus, for each view, the following coordinates are produced.
View1 (640,480)
X=176+464=640.
Y=144+336=480.
View2 (524,396)
X=176+(0.75*464)=524.
Y=144+(0.75*336)=396.
View3 (408,312)
X=176+(0.50*464)=408.
Y=144+(0.50*336)=312.
View4 (292,228)
X=176+(0.25*464)=292.
Y=144+(0.25*336)=228.
View5 (176,144)
X=176+0=176.
Y=144+0=144.
After the completion of this process, 5 views are produced with the coordinates above.
A similar Diagram to
On the other side, “Client” application is also aware of this “algorithm”, thus each view should represent a percentage of the difference between the max and min resolution (100%, 75%, 50%, 25%, 0%). In this way, it is not necessary for the Client to be aware of the max and min coordinates of the streaming video, thus 1-way Client/Server interaction is feasible, speeding up the process of changing “angle-views”.
Moreover, the Server 1 acquires the maximum and minimum resolution, in order to perform the steps described above. Usually, the maximum resolution is the one provided by the video capture card (camera) 2, and the minimum is the one provided by the streaming application(usually 176×144 for mobile video). The “Multi-view decision algorithm” process should begin and finish, when the Server application 9 is first initiated.
Five “angle-views” are displayed on the Client's device.
After one “View” is picked, a message containing the identified “angle-view” is produced and sent to Server.
Server will pick that view and stream the content, according to this one in the same way as shown in
An adapted client device is shown in
Alternatively, selection keys 23-27 may be used to move the image either in accordance with the angle view philosophy outlined above or on a pixel by pixel basis where sufficient bandwidth exists between the client and the server to enable significant data packets to be transmitted. The key 27 is intended to allow the selection of the centre view to be shown on the display screen 20. If a fixed number of angle views are in use then the screen display may be stepped left, right, up or down in dependence upon the number of frames available.
Where video streaming of file content is provided a set of video control keys 28-32 are provided these being respectively stop function 28, reverse 29, play 30, fast forward 31 and pause 32 providing the appropriate control information to control the video display either locally where video is downloaded and stored in the device 7 or to be sent as control packets to the server 1.
An alternative control method of selecting fixed angle views is provided by selection keys 33-37 and for completeness a local volume control arrangement 38 is shown. An information display screen 39 which may carry alphanumeric text description relating to the video displayed may also be present and a further status screen 40 displaying for example signal strength for mobile telephony reception.
Further description of view selection is described hereinafter with reference first to
The user may now select any one of the angle views to be transmitted, for example operating key 33 will produce a signal packet requesting angle view 1 from the server 1, The fully compressed display (
Angle view 2 is selected by operating key 34, view 3 by key 35, view 4 by key 36 and the view first discussed (view 5) by key 37. It will be appreciated that more or less than five keys may be provided or, if display screen 20 is of the touch sensitive kind, a virtual key set could be displayed overlaid with the video so that touching the screen in an appropriate position results in the angle view request being transmitted and the required change in the transmissions from the server 1. It will also be realised that the proportion of the smaller screen 21 occupied by the rectangle 22 will also change to reflect the angle view currently displayed. This adjustment may be made by internal programming of the device 7 or could be transmitted with the data packets 18 from the server 1.
Having considered centred angle views in the above we will now consider how the user can view angle views centred at a differing point from the centre of the picture. The five views available still have the same compression ratios so that angle view 5 (176×144 pixels), shown centred in
Consider again
Key 23 may be used to indicate a move in the up direction, key 24 in the right direction and key 25 a move downwards. Each of these causes the client program to transmit an appropriate data packet and the server derives a view to be transmitted by moving accordingly to the limit of the full video frame in any direction. If the user operates key 27 this is used to return the view to the centre position as originally transmitted using the selected compression (angle views 1 to 5) last selected by the use of keys 33-37.
Now considering the virtual window display 21 of
Thus by multiplying these percentages by the dimensions of the virtual window we have the following dimensions for the displayed rectangle 22:
View1 (12,10)
X=12*1=12.
Y=10*1=10.
View2 (10,8)
X=12*0.8=10
Y=10*0.8=8
View3 (7,6)
X=12*0.6=7
Y=10*0.6=6
View4 (5,4)
X=12*0.4=5
Y=10*0.4=4
View5 (2,2)
X=12*0.2=2
Y=10*0.2=2
Thus the inner rectangle 22 (probably a white representation within a black display) is drawn using the dimensions above so in the following examples the dimensions referenced above are used. The virtual window thus works in the following manner. If view 5 is selected then rectangle 22 (2 pixels×2 pixels) and screen 21 (12 pixels by 10 pixels) will have those dimensions and the virtual window will be black except for the smaller rectangle 22 which will be white. This is represented in
Thus in the client, each pixel is considered as a unit and the client calculates how many units it is necessary to move in the left and up directions. From
Accordingly as we are required to move by a percentage of the screen from the current position we may calculate that the left and up movements are 100% from the current position by taking the number of pixels to move (from the small screen) divided by the number of pixels difference between the current position and the new position. The result is that the move is 100% to move in the white box to black box gap so that the network message to be transmitted contains a left 100, up 100 instruction, the number always representing a ratio.
The server translates the message move left 100% move up 100% and activates the following procedure:
Taking in to account that, from
It will be appreciated that for example if the user selects a position left in the second (vertical) pixel row of the virtual screen the transmitted data packet would contain left 80 this being a move of four pixels in the left direction of the virtual window divided by the five pixels of the virtual window difference. Similar calculations are applied by the client in respect of other moves.
It will be appreciated that to move back from the new position (0,0) to the original position (232, 168), for example if the user now activates the centre of the virtual window, the transmitted move would be right 42 (5 pixels move with 12 pixels difference=5/12=approximately 42%) and down 40 (4 pixels move with 10 pixels remaining=4/10=40%).
Turning back to
The process starts with a loop of divide by two down sampling until the video cannot be further divided by two. Factors are calculated and then the final down-sampling occurs. Thus assume an input video having “M” by “N” pixels and output frame size of 176 by 144 pixels first step is to divide M by 176, the respective horizontal (X) frame dimensions giving X=M/176. X is now divided by 2 and if X is less than one after the division the width and height factors are calculated and sampling of the video using these factors gives a video in 176×144 format.
The down sampling is applied in YUV file format, before and after the application of the algorithm. Thus the Y component (640×480) is down sampled to the 176×144 Y component while the U and V components (320×240) are correspondingly down-sampled to 88×72. The entire process of the down sampling algorithm is as follows
Step 1:
It will be appreciated that other algorithms could be developed the algorithm above being given for example only.
Referring now to
Referring also to
The present invention is particularly suited to remotely controlling an angle view to provide a selectable image or image proportion from a remote video source such as a camera or file store for display on a small screen and transmission for example by way of IP and mobile communications networks. The application of the invention to video surveillance, video conferencing and video streaming for example enables the user to decide in what detail to view and permits effective virtual zooming of the transmitted frame controlled from the remote client without the need to physically adjust camera settings for example.
In video surveillance it is possible to view a complete scene and then to zoom in to a part of the scene if there is activity of potential interest. More particularly as the complete camera frame may be stored in a digital data store it is possible to review detailed areas on a remote screen by stepping back to the stored image and moving the angle view about the stored frame.
Number | Date | Country | Kind |
---|---|---|---|
0230328.7 | Dec 2002 | GB | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/GB03/05643 | 12/30/2003 | WO | 6/17/2005 |