📜 ⬆️ ⬇️

What's new in ICQ 7.5?

We are pleased to announce that we have released a new version of ICQ 7.5, mainly it was dedicated to improving the audio and video capabilities of the service. We want to talk about what has become better.

So:

1. Improved fullscreen video chat
')

For the release of version 7.5, ICQ developers have designed an intuitive and attractive user-friendly video chat interface. Added support for full-screen mode, which allows you to fully use the screen for video calls.

Control elements became smaller in size, which expanded the space used for the video image. Now ICQ uses more standard controls, familiar and familiar to most users in many popular video services.

A noticeable improvement was the appearance of the ability to control the visibility of the preview window of your image. Turning off this window allows you to get a better image of the interlocutor, this is especially noticeable in full screen mode.

2. Improved stability and performance

3. Improved connection reliability and speed through the server, if the peer-to-peer could not be established.

ICQ video calls are implemented using the ICE standard for network connections via Firewall and / or NATs. The basic idea is that both parties collect information about available IP addresses and ports, transmit it to each other. Then each party tries to send a packet of data to these addresses and waits for confirmation of the parcel. An IP address / port pair is considered suitable for sharing media data if confirmation is received.

ICE technology is effective in finding solutions to bypass the restrictions imposed by firewalls, but it has one major drawback - the potentially long time to establish a connection. ICQ developers understand that fast connection setup is very important for users, so in version 7.5, the ICE implementation was changed and the use of a possible connection via the server was added, if confirmation of a peer-to-peer connection has not yet been received. This optimization is triggered only in the case of several unsuccessful attempts to establish a peer-to-peer connection or after a certain period of time.

The main improvement in the ICQ connection process is the use of RTP multiplexing technology, in which RTP and RTCP packets are sent through a single UDP port that uses less system resources and for which, most importantly, fewer open ports are required when working through a firewall. So, for example, when a video call is not multiplexing, the client must open 4 ports, while using a new technology, a call can be made through a single port.

4. New LSVX codec
In the previous version of ICQ, the VP71 codec was used for video chat. This codec is used by a large number of clients for video chatting. The new version of ICQ uses the LSVX codec, which is part of the well-known VideoEngine technology from Global IP Solutions. Full information about the LSVX codec can be found by clicking on the link files.mail.ru/HTQUSB , below are the main points:

Key advantages:
• Better than standard codecs (H.263, VP6, VP7) video quality
• Huge color range and clarity at lower bit rates
• Efficient use of CPU - the code is optimized to work with modern processors
• Increased resistance to packet loss
• Does not require third-party licenses

Technical advantages
• Decomposition is carried out over the image as a whole, and not over its individual blocks.
• Accelerated calculations
• Keyframes are inserted when changing scenes or after a sequence of intense movements.
• Improved inter-frame transitions, thanks to high-quality keyframes

The main advantages of the LSVX codec for ICQ are the low CPU utilization and resistance to packet loss. In modern networks, especially when using Wi-fi, packet loss and delays are a reality, therefore LSVX tolerance to these facts has become a huge advantage for ICQ.

According to the results of our tests, LSVX confirmed its low load on the processor and the absence of stringent restrictions on network quality. The codec produces a clear image with natural color and a high degree of detail. Also, LSVX implements the ability to apply various bandwidth control strategies that allow the codec to adapt to the network connection conditions or even to the CPU load. The codec is able to dynamically change the framing speed, encoding complexity, and even resolution, to achieve the best balance between CPU utilization and bandwidth requirements during a call.

ICQ uses the preset LSVX settings: the codec tries to maintain a high framing rate due to the quality of the encoding, limited by certain conditions, or due to high packet loss. After eliminating the network overload, the codec step-by-step restores the quality and returns the framing speed to the original level.

5. Support for all features of modern webcams, including VGA mode and high frame rates

When using the latest webcams with ICQ, the video call quality is at the highest level - we got an especially impressive result with the Logitech P9000 cameras. To obtain a more saturated and realistic image on the receiving side, ICQ applies post-processing of the image received by the camera. Our video module adapts the encoding speed and resolution to the capabilities of the webcam and the power of the CPU. If the CPU power is not enough for the default VGA resolution of the video call, the video module dynamically changes the settings to achieve the desired minimum coding rate. And at the same time, the ICQ video module can encode and transmit true 30fps video, if network, computer and lighting capabilities allow, and a webcam with motion sensors (for example, availability of motion JPEG).

6. Support video quality when CPU is loaded with other tasks.

Our tests have shown that the sound quality significantly decreases when the processor is loaded by other applications during a call. For example, background tasks such as updating the anti-virus database, synchronizing email clients, and indexing the contents of memory can start during a call without notification and consent of the user. To solve this problem, ICQ followed the path of artificially increasing the priority of its processes during a call. Priority becomes normal after its completion.

It is interesting to note that starting from Windows Vista, Microsoft used to solve similar problems at the level of the Multimedia Class Scheduler operating system. This functionality is mainly used by Media players to prevent problems when watching videos, it is also available to developers of third-party applications, but we refused to use it because of the uncertainty of its support in the latest operating systems and because of side effects when working with the network.

7. Reducing delays when working over TCP, if UDP is closed by a firewall.

The ICQ connection is highly resilient and works with most firewalls, even if the outgoing UDP port is completely closed. TCP connection is established through the server located at the mail.ru site.
TCP puts forward a new set of requirements for transmitting information in real time, since, in general, TCP overload prevention algorithms are not compatible with the VoIP principle: "It is never better than late." Uninterrupted video calls when connected via TCP are implemented by ICQ developers by automatically limiting the resolution and framing the image to avoid overloading and, as a result, TCP retransmissions. ICQ developers also optimized the receiving module, which is engaged in sending received packets from the system buffer as quickly as possible, thus avoiding delays in sending ACKs and maintaining high bandwidth. The work on optimizing TCP connections is not finished and will be continued in future versions.

8. Improved work with Windows Vista

Windows Vista operating system introduced the concept of "Default Communications Device", which is best demonstrated by an example: imagine a computer to which a headset and a speaker system are simultaneously connected. The user can listen to music or watch videos from YouTube using the main speaker system, and use a headset when calling via a computer. This dual configuration was made available to applications for customization, starting with Windows Vista. ICQ also correctly uses the microphone and headset, configured on the principle of "Default Communications Device", unless the user explicitly specifies another device in the settings for the call.

If the “default communication device” is not configured and the user configuration is not defined, then ICQ will work using the current system devices for the video call.

I follow the comments, the feedback is very interesting.

Source: https://habr.com/ru/post/119231/


All Articles