<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Tencent Cloud</title>
    <description>The latest articles on DEV Community by Tencent Cloud (@tencentcloud).</description>
    <link>https://dev.to/tencentcloud</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F5733%2Fca4a1854-95a6-423b-8c98-ce7c8ff941b2.jpg</url>
      <title>DEV Community: Tencent Cloud</title>
      <link>https://dev.to/tencentcloud</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tencentcloud"/>
    <language>en</language>
    <item>
      <title>COS-Based ClickHouse Data Tiering Solution</title>
      <dc:creator>Man yin Mandy Wong</dc:creator>
      <pubDate>Tue, 08 Nov 2022 03:46:06 +0000</pubDate>
      <link>https://dev.to/tencentcloud/cos-based-clickhouse-data-tiering-solution-4gae</link>
      <guid>https://dev.to/tencentcloud/cos-based-clickhouse-data-tiering-solution-4gae</guid>
      <description>&lt;p&gt;ClickHouse is a columnar database management system (DBMS) for online analytical processing (OLAP) and supports interactive analysis of petabytes of data. As a distributed DBMS, it differs from other mainstream big data components in that it doesn't adopt the Hadoop Distributed File System (HDFS). Instead, it stores data in local disks of the server and uses data replicas to guarantee high data availability. Then, it leverages distributed tables to implement distributed data storage and query.&lt;/p&gt;

&lt;p&gt;Shard: It refers to a server that stores different parts of the data. In order to read all the data, you must access all the shards. Storing the data of distributed tables in multiple shards implements horizontal scaling of computing and storage.&lt;/p&gt;

&lt;p&gt;Replica: Each shard contains multiple data replicas, so you can access any replica to read data. The replica mechanism ensures data availability in case a single storage node fails. Only MergeTree table engines support the multi-replica architecture. ClickHouse implements the data replica feature in table engines rather than database engines; therefore, replicas are table-level rather than server-level. When data is inserted into ReplicatedMergeTree engine tables, primary-secondary sync is performed to generate multiple data replicas. ZooKeeper is used to conduct distributed coordination during the sync.&lt;/p&gt;

&lt;p&gt;Distributed table: Distributed tables created with distributed engines distribute query tasks among multiple servers for processing but don't store data. When such a table is created, ClickHouse will first create a local table in each shard, which will be visible only on the corresponding node; then, it will map the local tables to the distributed table. In this way, when you access the distributed table, ClickHouse will automatically forward your request to the corresponding local table based on the cluster's architecture information.&lt;/p&gt;

&lt;p&gt;In summary, one ClickHouse cluster consists of multiple shards, each of which contains multiple data replicas. A replica corresponds to a server node in the cluster and uses its local disk to store data. With distributed tables, shards, and replicas, ClickHouse achieves the horizontal scalability and high data availability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Tiered data storage&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Starting from v19.15, ClickHouse supports multi-volume storage, which stores ClickHouse tables in volumes containing multiple devices. This feature makes it possible to define different types of disks in a volume for tiered storage of cold and hot data, striking a balance between performance and cost.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Disk types supported by ClickHouse&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ClickHouse mainly supports DiskLocal and DiskS3 disks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Data movement policy&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ClickHouse can store data in different storage media by configuring disks of different types and storage policies in the configuration file. It also supports movement policies to automatically move data between storage media.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Current problems with data storage in ClickHouse&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Many users choose ClickHouse for its superior query performance. To make the most of it, they generally select Tencent Cloud Enhanced SSD cloud disks to store ClickHouse data for their high performance; however, Enhanced SSD costs a lot. After a trade-off between the performance and cost, they may clear legacy data from ClickHouse. Although most queries involve the latest data, the business side does need to access legacy data sometimes. The balance between the cost and occasional access to legacy data bothers ClickHouse system admins.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. COS strengths&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Cloud Object Storage (COS) is a distributed storage service launched by Tencent Cloud. It has no directory hierarchy or data format restrictions, can accommodate an unlimited amount of data, and supports access over HTTP/HTTPS protocols.&lt;/p&gt;

&lt;p&gt;COS organizes data in pay-as-you-go buckets with an unlimited capacity, which can be used and scaled on demand.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. COS-based ClickHouse data tiering&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Prepare the following environments before configuring data tiering:&lt;/p&gt;

&lt;p&gt;• Local storage: Format an Enhanced SSD cloud disk and mount it to the "/data" path for storing hot data.&lt;/p&gt;

&lt;p&gt;• COS bucket: Create a COS bucket for storing cold data and get the "SecretId" and "SecretKey" of the account that can access the bucket.&lt;/p&gt;

&lt;p&gt;6.1 Configure the ClickHouse disk and policy&lt;/p&gt;

&lt;p&gt;First, you need to configure the "/etc/clickhouse-server/config.d/storage.xml" file. In , define the local disk path, COS bucket URL, and "SecretId" and "SecretKey" of the access account. In , define the  policy, which defines  and  volumes that contain the local disk and COS bucket respectively.&lt;/p&gt;

&lt;p&gt;6.2 Import data to ClickHouse&lt;/p&gt;

&lt;p&gt;After completing the storage configuration, set up a table with the TTL policy configured and import data to it to verify the tiering policy.&lt;/p&gt;

&lt;p&gt;Here, a COS bucket inventory is selected as the data source for import. First, create a table named "cos_inventory_ttl" in ClickHouse based on the content of each column in the inventory. Then, configure the TTL policy. According to the "LastModifiedDate" value, store hot data in the "ttlhot" volume and cold data at least three months old in "ttlcold".&lt;/p&gt;

&lt;p&gt;6.3 Verify data&lt;/p&gt;

&lt;p&gt;After import, view the total number of data rows. Then, you can query the volumes storing different data. You can further conduct a query test to count the total size of files generated in the past three months in the "cos-user/" directory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In ClickHouse, configuring different storage media and policies implements automatic tiered storage of data. Thanks to the unlimited capacity and cost-effectiveness of COS, ClickHouse clusters can store data in the long term at low costs while providing a superior query performance.&lt;/p&gt;

&lt;p&gt;Read more at: &lt;a href="https://www.tencentcloud.com/dynamic/blogs/sample-article/100384"&gt;https://www.tencentcloud.com/dynamic/blogs/sample-article/100384&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cos</category>
      <category>clickhouse</category>
      <category>database</category>
      <category>olap</category>
    </item>
    <item>
      <title>Tencent Cloud COS, Key to Data Disaster Recover</title>
      <dc:creator>Man yin Mandy Wong</dc:creator>
      <pubDate>Tue, 01 Nov 2022 03:13:22 +0000</pubDate>
      <link>https://dev.to/tencentcloud/tencent-cloud-cos-key-to-data-disaster-recover-2pch</link>
      <guid>https://dev.to/tencentcloud/tencent-cloud-cos-key-to-data-disaster-recover-2pch</guid>
      <description>&lt;p&gt;This article describes how Tencent Cloud Object Storage (COS) addresses data layer disaster recovery.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Cross-AZ Disaster Recovery&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If your application is already deployed in Tencent Cloud, you can use COS's multi-AZ capabilities to improve the data layer availability. Multi-AZ refers to the multi-AZ storage architecture offered by COS, which can provide IDC-level disaster recovery capabilities for your data.&lt;/p&gt;

&lt;p&gt;In this architecture, data will be split into multiple chunks, and corresponding coding chunks will be calculated based on the erasure code algorithm. The original data chunks and coding chunks will be mixed up and evenly distributed to IDCs in different AZs in a region for storage and intra-region disaster recovery.&lt;/p&gt;

&lt;p&gt;The multi-AZ feature provides 99.9999999999% (12 nines) designed data reliability and 99.995% designed service availability. When you upload data objects to COS, you can store them in a multi-AZ region simply by specifying the storage class.&lt;/p&gt;

&lt;p&gt;After the multi-AZ feature is enabled, your data will be distributed among IDCs in multiple AZs in a region. When an IDC fails due to extreme situations such as natural disasters or power outages, other IDCs can still guarantee normal data reads and writes, thereby ensuring persistent storage, business continuity, and high availability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Cross-Region Disaster Recovery&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In addition to the multi-AZ feature of COS, you can also save data copies in different regions to further improve the data layer availability.&lt;/p&gt;

&lt;p&gt;COS's cross-region bucket replication feature asynchronously replicates data across regions. It is a bucket-level configuration item, where rules can be configured to replicate incremental objects from one bucket to another bucket automatically and asynchronously.&lt;/p&gt;

&lt;p&gt;With cross-bucket replication, COS can accurately replicate exactly the same object content, along with object metadata and version IDs, from the source bucket to the destination bucket. Additionally, object operations such as adding or deleting objects can also be synced to the destination bucket.&lt;/p&gt;

&lt;p&gt;With cross-region bucket replication, when the IDC in one region is damaged due to force majeure, the IDC in another region can still provide data copies for your use, implementing cross-region disaster recovery.&lt;/p&gt;

&lt;p&gt;In addition to high availability, cross-region bucket replication can also meet industry-specific requirements for data compliance. If you have end users accessing objects from different regions, you can maintain object copies in buckets closest to them geographically, so as to minimize the access latency and deliver a better user experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Versioning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If data is deleted accidentally, it will be lost permanently even if cross-AZ or cross-region disaster recovery is implemented.&lt;/p&gt;

&lt;p&gt;To avoid data loss due to accidental deletion or application failure, COS has launched the versioning feature. It allows you to store multiple versions of an object in the same bucket. For example, you can store multiple objects with the same object key "picture.jpg" but different version IDs like "100000", "100101", and "120002" in a bucket. Then, you can query, delete, or restore objects in the bucket by version ID. This enables you to recover from data loss caused by accidental deletion or application failure. For example, when you delete an object with versioning enabled:&lt;/p&gt;

&lt;p&gt;• If you need to delete the object (not permanently), COS will insert a delete marker for the deleted object. The marker will serve as the current object version and can be used for version restoration.&lt;/p&gt;

&lt;p&gt;• If you need to replace the object, COS will insert a new version ID for the newly uploaded object. You can still restore the replaced object with the version ID.&lt;/p&gt;

&lt;p&gt;There are three versioning states for a bucket:&lt;/p&gt;

&lt;p&gt;• Versioning not enabled: Bucket versioning is not enabled by default.&lt;/p&gt;

&lt;p&gt;• Versioning enabled: When bucket versioning is enabled, it will be applied to all the objects in the bucket. After versioning is enabled for the first time, new objects uploaded to the bucket will be assigned a unique version ID.&lt;/p&gt;

&lt;p&gt;• Versioning suspended: After versioning is suspended (it cannot be disabled once enabled), new objects uploaded to the bucket will no longer be subject to versioning.&lt;/p&gt;

&lt;p&gt;You can upload, query, and delete objects no matter which versioning state the bucket is in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Anti-Overwrite for Upload&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Besides force majeure, data exceptions may also occur due to operations that don't seem risky. COS maintains the eventual consistency by overwriting an existing file when another file with the same name is uploaded. To avoid unexpected overwrites, you need to maintain a complete name check system in your business logic. Alternatively, you can enable versioning, which leads to a more complex logic for object management and extra storage usage though. More often than not, you only need to forbid overwrites of certain files, which makes versioning unnecessary in terms of functionality.&lt;/p&gt;

&lt;p&gt;To this end, COS provides an anti-overwrite mechanism at bucket and object levels. You can enable bucket-level anti-overwrite, then the bucket will forbid uploads of any files with the same name. Specifically, when a file with the same name is uploaded, COS will deny the upload request to ensure that the existing file in the bucket will not be overwritten. If you only want to prevent certain files in the bucket from being overwritten, you can add a special header to the upload request, which checks whether any file in the bucket has the same name as the file to be uploaded, and if so, the upload will fail. After anti-overwrite is enabled, you can still rename or delete files.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Object Lock&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In some compliance scenarios, anti-overwrite is far from enough though. For example, in the finance field, compliance regulations require file retention for a certain period of time and prohibit file overwrite, deletion, and modification. In this case, you can use object lock to meet the requirements. After it is enabled, within the retention period:&lt;/p&gt;

&lt;p&gt;1.Objects cannot be deleted or modified;&lt;/p&gt;

&lt;p&gt;2.The storage class of objects cannot be modified;&lt;/p&gt;

&lt;p&gt;3.The HTTP headers and user metadata of objects cannot be modified, including "Content-Type", "Content-Encoding", "Content-Language", "Content-Disposition", "Cache-Control", "Expires", and "x-cos-meta-".&lt;/p&gt;

&lt;p&gt;Object lock perfectly meets compliance requirements.&lt;/p&gt;

&lt;p&gt;Compared with local secondary IDCs, cloud-based disaster recovery features higher reliability, availability, and security and gets rids of repeated hardware, computing, networking, and software. It greatly reduces the TCO while guaranteeing the RPO and RTO.&lt;/p&gt;

&lt;p&gt;Read more at: &lt;a href="https://www.tencentcloud.com/dynamic/blogs/sample-article/100379"&gt;https://www.tencentcloud.com/dynamic/blogs/sample-article/100379&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cos</category>
      <category>objectstorage</category>
      <category>datarecovery</category>
      <category>databackup</category>
    </item>
    <item>
      <title>ARM-Based Server Review</title>
      <dc:creator>Man yin Mandy Wong</dc:creator>
      <pubDate>Thu, 27 Oct 2022 04:06:25 +0000</pubDate>
      <link>https://dev.to/tencentcloud/arm-based-server-review-188k</link>
      <guid>https://dev.to/tencentcloud/arm-based-server-review-188k</guid>
      <description>&lt;p&gt;&lt;strong&gt;1. Background&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Take a look at the ARM-based server SR1 recently launched by Tencent Cloud. Is it worth it? How does it stack up against other models? Let's check it out.&lt;/p&gt;

&lt;p&gt;We have reviewed two typical models of the ARM-based SR1 and x86-based S5 to show you how to measure CPU performance, mainly computing power, so that you can quickly know what you should be looking for.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. ARM-based server environment and evaluation preparations&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tencent Cloud SR1 is the first ARM-based server with the latest Ampere Altra, an ARM Neoverse N1 CPU with up to 2.8 GHz clock rate and 64 KiB L1 cache. The Neoverse N1 CPU has the following architecture:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--D_-0HxCM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p63el6hf8dlblu0ypthq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--D_-0HxCM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p63el6hf8dlblu0ypthq.png" alt="Image description" width="865" height="943"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The other object is the mainstream x86-based standard S5, which adopts the latest Cooper Lake microarchitecture of Intel Xeon Platinum and runs at 2.5 GHz. It's quite popular in general use cases. By the way, both of the test objects accommodate 4-core 8 GiB memory.&lt;/p&gt;

&lt;p&gt;From the cost perspective, &lt;strong&gt;SR1 is approximately 20% cheaper than S5&lt;/strong&gt; as indicated at the official website. Although it doesn't have a price as competitive as Lighthouse, it is really worth it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FJiN5sCu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7qpp26ssrdo6nr9f71oc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FJiN5sCu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7qpp26ssrdo6nr9f71oc.png" alt="Image description" width="683" height="317"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;1.1 ARM-based server activation&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;S5 and SR1 price comparison&lt;/p&gt;

&lt;p&gt;SR1 is comparable to S5 in terms of overall performance and more economical than the latter, a must-have that promises a large amount of cost savings for both individuals and enterprises.&lt;/p&gt;

&lt;p&gt;Tips: Screen splitting&lt;/p&gt;

&lt;p&gt;Use the Tmux tool to split the screen (ctrl b), log in to two servers at the same time, and enter the &lt;code&gt;ctrl b:setw synchronize-panes&lt;/code&gt; command to allow for entering commands on two terminals at the same time, as shown below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ih5QOZDN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3exvdy8un1qmntynh12b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ih5QOZDN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3exvdy8un1qmntynh12b.png" alt="Image description" width="828" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;2.1 System preparations and CPU viewing&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Enter commands in different windows of Tmux.&lt;/p&gt;

&lt;p&gt;Done with the preparations and let's start the evaluation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. 7-Zip compression evaluation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;7-Zip is built with the LZMA compression tool to quickly evaluate the CPU computing performance of servers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JvCwCmsV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ybto8rsotreca5n27sqw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JvCwCmsV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ybto8rsotreca5n27sqw.png" alt="Image description" width="809" height="73"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Run the following command to evaluate the performance:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gCLNiMxQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1vbx8cs2ciucvsaf186q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gCLNiMxQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1vbx8cs2ciucvsaf186q.png" alt="Image description" width="833" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;2.6 LZMA compression evaluation (ARM-based SR1/x86-based S5)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;7-Zip evaluation&lt;/p&gt;

&lt;p&gt;The 7-Zip benchmark command can be used to display the compression and decompression performance of a server, with a measure of million instructions per second (MIPS). The higher the value, the stronger the performance. You can also use metrics such as compression rate and execution time for coordinated verification. 7-Zip evaluation rarely uses 64-bit instructions, let alone advanced sets; it's more about the performance of CPU "fundamentals". LZMA compression performance relies on the memory access latency, high-speed data cache (D-Cache) capacity, TLB performance, and out-of-order execution efficiency of a CPU; while the decompression performance reveals more about the branch prediction and instruction latency of the multi-stage pipeline design.&lt;/p&gt;

&lt;p&gt;Evaluation results:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6g7hIx5K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p53aqtg0xl1b1418sfu8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6g7hIx5K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p53aqtg0xl1b1418sfu8.png" alt="Image description" width="647" height="283"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;2.2 LZMA compression evaluation&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;7-Zip evaluation of S5 and SR1&lt;/p&gt;

&lt;p&gt;As you can see, &lt;strong&gt;ARM-based SR1 delivers 60% higher performance than x86-based S5 in LZMA compression and decompression scenarios.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. LUKS block device encryption and decryption evaluation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;LUKS is a specification for block device encryption supported by the Linux kernel. Simply put, it encrypts disks.&lt;/p&gt;

&lt;p&gt;Similar to file compression and decompression, block device encryption and decryption are typical applications that consume a lot of computing resources. Unlike generic computing scenarios, encryption and decryption computing instructions are usually implemented with special hardware to serve as CPU extension sets. The x86 system adopts the AES-NI extension, and ARM differentiates extensions for varied encryption and decryption scenarios.&lt;/p&gt;

&lt;p&gt;There is no need to install any other software. Just use the cryptsetup tool that comes with Linux to evaluate the CPU performance through encryption and decryption algorithms:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2StH2Zz5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u47ow4do23377q6qojdg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2StH2Zz5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u47ow4do23377q6qojdg.png" alt="Image description" width="865" height="41"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By default, the command evaluates tasks of ciphers and key derivation functions (KDFs).&lt;/p&gt;

&lt;p&gt;Run the following command to evaluate the performance:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---9hHP7YN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8q3qvea6qbavx961y2k2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---9hHP7YN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8q3qvea6qbavx961y2k2.png" alt="Image description" width="833" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;2.3 LUKS encryption evaluation (ARM-based SR1/x86-based S5)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;LUKS evaluation process&lt;/p&gt;

&lt;p&gt;Evaluation results (KDFs):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZDmOgY85--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/38so7xyw39paz2l4wiif.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZDmOgY85--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/38so7xyw39paz2l4wiif.png" alt="Image description" width="639" height="281"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;2.3 LUKS encryption evaluation&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;LUKS evaluation of S5 and SR1 in terms of KDFs&lt;/p&gt;

&lt;p&gt;Evaluation results (ciphers):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4l3ET2PT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rs8q4hhdeqvyxrppurp2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4l3ET2PT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rs8q4hhdeqvyxrppurp2.png" alt="Image description" width="644" height="284"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;2.3 LUKS encryption evaluation (ARM-based SR1/x86-based S5)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;LUKS evaluation of S5 and SR1 in terms of encryption algorithms&lt;/p&gt;

&lt;p&gt;As you can see, &lt;strong&gt;the ARM-based server outperforms its x86-based counterpart in terms of the optimization of common SHA instructions (SHA-256 and SHA-512) and AES-CBC encryption; while in terms of decryption and XTS encryption with the highest security, the x86-based server (AES-NI extension instruction) does a better job.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. OpenSSL network encryption and decryption evaluation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Block device encryption uses data at rest, while network encryption involves data in transit. As OpenSSL is one of the most popular network encryption libraries, it's necessary to conduct an OpenSSL performance evaluation.&lt;/p&gt;

&lt;p&gt;OpenSSL's speed sub-command can be used to evaluate all the encryption algorithms, which takes a long time. Generally speaking, you can use parameters to specify algorithms. Commonly used algorithms are Hash-based Message Authentication Code (HMAC) for encrypted information integrity and identity verification, SHA-256 secure hash for information digest and digital signature, and standard encryption algorithm of AES-256 widely adopted by cloud service providers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gwldp-yM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rsocg2mfaasp5s8nvgvb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gwldp-yM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rsocg2mfaasp5s8nvgvb.png" alt="Image description" width="865" height="51"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Run the following command to evaluate the performance:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UczlFnqK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h4fpqv9aswyu8ozpqldm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UczlFnqK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h4fpqv9aswyu8ozpqldm.png" alt="Image description" width="830" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;2.4 OpenSSL encryption evaluation (ARM-based SR1/x86-based S5)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;OpenSSL encryption process through speed&lt;/p&gt;

&lt;p&gt;Evaluation results:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hBtxNyk0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ofqqwozzvnemnf6f9wch.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hBtxNyk0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ofqqwozzvnemnf6f9wch.png" alt="Image description" width="622" height="269"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;2.4 OpenSSL encryption evaluation&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;OpenSSL encryption results of S5 and SR1&lt;/p&gt;

&lt;p&gt;As you can see, &lt;strong&gt;the ARM-based server slightly lags behind the x86-based server in terms of MD5 HMAC, but it outperforms the latter in terms of SHA-256 and AES-256, especially in the former case.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Redis database throughput rate evaluation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now let's move to Redis performance evaluation. As one of the most popular memory databases, Redis is often used for key-value storage, data cache, and message queue scenarios with a high throughput rate. Redis also has a built-in evaluation utility called redis-benchmark to measure the number of requests per second.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Zet-2FiR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xvyz9amu3sqcv749m64s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Zet-2FiR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xvyz9amu3sqcv749m64s.png" alt="Image description" width="865" height="77"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The redis-benchmark program evaluates the throughput rate of a single server during the tests of GET, SET, LPUSH, and other common Redis commands, looking into the CPU and its memory access capabilities (such as memory access bandwidth and performance).&lt;/p&gt;

&lt;p&gt;Run the following command to evaluate the performance:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MFhoueW6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xx3shiaytrbxr9w17npo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MFhoueW6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xx3shiaytrbxr9w17npo.png" alt="Image description" width="830" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;2.6 Throughput evaluation (ARM-based SR1/x86-based S5)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Redis evaluation command execution&lt;/p&gt;

&lt;p&gt;Evaluation results:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rl4LZfiM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q9r5qw9e2su9mchqdukx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rl4LZfiM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q9r5qw9e2su9mchqdukx.png" alt="Image description" width="659" height="295"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;2.6 Throughput evaluation&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Redis throughput rate evaluation of S5 and SR1&lt;/p&gt;

&lt;p&gt;According to the Redis evaluation results, &lt;strong&gt;ARM-based SR1 has 30% to 40% higher performance on average than x86-based S5.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now it's time you get some hands-on experience and see what your cloud server performance test would reveal.&lt;/p&gt;

&lt;p&gt;Actually, ARM-based servers are more than cost-effective. As ARM platform-based virtualization technologies become popularized in the cloud, ARM-based servers are bound to gain more momentum in IoT, cloud phone/gaming, Android ecosystem, and many more use cases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's look forward to more diversified experiences available at our fingertips.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>arm</category>
      <category>virtualtech</category>
      <category>tutorial</category>
      <category>cloud</category>
    </item>
    <item>
      <title>GME Immersive Voice Solution Empowers Games with Boundless Imagination of Metaverse</title>
      <dc:creator>Man yin Mandy Wong</dc:creator>
      <pubDate>Tue, 25 Oct 2022 03:13:37 +0000</pubDate>
      <link>https://dev.to/tencentcloud/gme-immersive-voice-solution-empowers-games-with-boundless-imagination-of-metaverse-1fjl</link>
      <guid>https://dev.to/tencentcloud/gme-immersive-voice-solution-empowers-games-with-boundless-imagination-of-metaverse-1fjl</guid>
      <description>&lt;p&gt;&lt;strong&gt;1.What possibilities can metaverse bring to games?&lt;/strong&gt;&lt;br&gt;
The trending "metaverse" concept was first coined in an American science fiction to refer to a cyberspace parallel to the reality. Games are the closest form of metaverse. From mainstream perspectives, metaverse games deliver a real and immersive interactive and social networking experience by allowing players to interact, create, and exchange value freely and boasting diverse and inclusive cultures and content.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.What challenges in voice technologies need to be tackled to implement metaverse features in games?&lt;/strong&gt;&lt;br&gt;
Metaverse games have high requirements for an interactive experience and need to tackle the following core challenges to implement voice technologies: sense of direction, immersive experience, cross-platform compatibility, and barrier-free multilingual communication.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;•Sense of Voice Direction&lt;/strong&gt;&lt;br&gt;
In interaction-intensive social gaming, the most important interaction method is game voice. When people are talking in the real world, the voice direction and distance also convey a large amount of information in addition to the volume level and tone. How to enable players to communicate like in the real world and how to convey the directional information in the game voice are top priorities for developers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;•Immersive Voice Experience&lt;/strong&gt;&lt;br&gt;
In addition to the voice direction and distance, the voice of people in the real world also integrates with the environment. When people are talking, they can perceive effects such as reverb and diffraction of their voice generated in the environment. How to integrate the voice with the environment to maximize the real immersive experience for players is also a major challenge.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;•Cross-Platform Compatibility&lt;/strong&gt;&lt;br&gt;
Players log in to a game from different terminals and devices. How to implement smooth game voice, make the game compatible with tens of thousands of device models available on the market, and enable players on game consoles, mobile devices, and PCs to talk with one another are major challenges for developers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;•Barrier-Free Communication&lt;/strong&gt;&lt;br&gt;
Metaverse games allow players from different cultures and languages to have fun in an open metaverse and even switch their accents like Millie in Free Guy. To helpHelping players speaking different languages communicate without barriers creates higher requirements for games.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.GME Empowers Games with Boundless Imagination of Metaverse&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;GME 3D Position-Based Voice&lt;/strong&gt;&lt;br&gt;
3D voice conveys direction and position information to make the voice more stereo. In battle royale and FPS games with an ever-changing battle situation, voice-based position identification greatly improves players' communication efficiency during multi-player team battles. In social games such as Werewolf, the sense of voice direction gives players a more truly interactive experience and enhances their memory even in roundtable discussions with strangers.&lt;/p&gt;

&lt;p&gt;By adopting HRTF and distance-based equalization technologies, GME's unique realistic 3D sound effect can completely restore the position details of voice and virtualize the auditory perception of the sound source in any position in a space. This enables players to identify teammates' positions in game battles based on their voice and enjoy an immersive gaming experience.&lt;/p&gt;

&lt;p&gt;The 3D position-based sound effect is also available for different types of games, including MOBA, FPS, ARPG, Werewolf, space Werewolf, and board game.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Immersive Experience: Real-Time Sound Effect Processing by Wwise + GME&lt;/strong&gt;&lt;br&gt;
How to integrate the voice and game environment has always been a challenge for game audio engineers. In traditional mobile game voice solutions, audio engineers usually have to give up carefully crafted background sound effects due to the poor audio quality of players' mic.&lt;/p&gt;

&lt;p&gt;GME has developed a proprietary solution jointly with the industry-leading sound effect engine Wwise, which well integrates the player voice with the pipeline design of game sound effects, fundamentally solving problems occurring during volume type switch in traditional voice solutions, such as volume level jump and audio quality reduction.&lt;/p&gt;

&lt;p&gt;Moreover, based on powerful audio processing capabilities and rich sound effect plugins of Wwise, GME can implement sound effects such as reverb, diffraction, and insulation that are perfectly integrated with the game scenes in captured voice chat streams, which not only makes voice gameplay features more diverse, but also makes player communication more immersive.&lt;/p&gt;

&lt;p&gt;In addition to perfect integration with the environment sound effect, the Wwise + GME solution also allows you to customize the processing of each voice stream, leaving you more room for designing diverse voice gameplay features. For example, you can design special sound effects based on the character of players and the changes in their status in game scenes, for example, using a quaver to express pain after being hit by the enemy.&lt;/p&gt;

&lt;p&gt;As the unique global official voice partner of Wwise, GME is perfectly compatible and easy to connect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fun: GME Voice Changing Effects&lt;/strong&gt;&lt;br&gt;
GME also provides the voice changingvoice-changing feature for voice chat. In game voice interaction, players can freely switch between dozens of sound effects like from a middle-aged man to a little girl or from a cute girl to a nerd, so as to add more personality to their characters and make chat more amusing. In the metaverse, players are no longer constrained by their real-world identity and can switch their tone and personality at any time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Powerful Cross-Terminal Compatibilities of GME&lt;/strong&gt;&lt;br&gt;
As the only Chinese voice development tool that makes the list of third-party development tools and middleware for Nintendo Switch™, PlayStation®️4, and PlayStation®️5, GME provides SDKs for consoles and is compatible with the latest versions of all console platforms. It features deep optimizations for UE, Unity, Cocos, and other major game engines, supports macOS, Windows, iOS, and Android systems, and is adapted to 20,000+ device models.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Barrier-Free Multilingual Communication&lt;/strong&gt;&lt;br&gt;
GME helps you easily implement multilingual communication scenarios. It can convert voice messages and voice chat streams to text in up to 125 languages, eliminating the language barriers in communication. It returns high-accuracy recognition results at a low latency to help implement barrier-free communication across regions and cultures in games.&lt;/p&gt;

&lt;p&gt;Metaverse is not only a popular concept in the investment and technology fields, but also a long-term vision in the game industry. GME brings a brand new interactive voice experience to game developers and aims to continuously explore more possibilities of metaverse jointly with all industries.&lt;/p&gt;

&lt;p&gt;Read more at: &lt;a href="https://www.tencentcloud.com/dynamic/blogs/sample-article/100373"&gt;https://www.tencentcloud.com/dynamic/blogs/sample-article/100373&lt;/a&gt;&lt;/p&gt;

</description>
      <category>metaverse</category>
      <category>gme</category>
      <category>voicesolution</category>
      <category>3dvoice</category>
    </item>
    <item>
      <title>Application of Media Processing Technology to 4K/8K FHD Video Processing</title>
      <dc:creator>Man yin Mandy Wong</dc:creator>
      <pubDate>Thu, 20 Oct 2022 02:39:46 +0000</pubDate>
      <link>https://dev.to/tencentcloud/application-of-media-processing-technology-to-4k8k-fhd-video-processing-4blh</link>
      <guid>https://dev.to/tencentcloud/application-of-media-processing-technology-to-4k8k-fhd-video-processing-4blh</guid>
      <description>&lt;p&gt;The support for higher video resolutions and definitions on devices has created higher demand for high definition and brought many challenges for 4K/8K videos with a super high resolution and bitrate. Today, we'll share some ideas about accelerating media digitalization through media processing capabilities.&lt;/p&gt;

&lt;p&gt;In part 1, we will talk about the features of 4K/8K FHD videos and the problems holding back their wide application. Part 2 details the optimizations we've performed on encoders to make them more adapted to videos with a super high bitrate and resolution. Part 3 focuses on the architecture of the real-time 8K transcoding system for live streaming scenarios. And in the last part, we cover how to leverage media processing capabilities and image quality remastering technology to increase definition so that more FHD videos are available.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MemSwBm5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lfzt66xh605n5l92ulem.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MemSwBm5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lfzt66xh605n5l92ulem.png" alt="Image description" width="880" height="494"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---svHsp8b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6gbwlm1uc7w4qkw2jmog.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---svHsp8b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6gbwlm1uc7w4qkw2jmog.png" alt="Image description" width="880" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4K/8K FHD videos feature a super high definition, resolution, and bitrate. The latter two pose new challenges to downstream systems. In a live streaming system, video resolution and bitrate are closely related to the processing speed and performance consumption during transcoding. To support the real-time 8K transcoding system, both the encoding kernel and system architecture need to be redesigned. Currently, there are many hardware solutions dedicated to real-time 4K/8K encoding, but these solutions suffer from a poor compression rate compared with software encoding. To deliver 4K/8K definition, they require dozens of or even hundreds of megabytes for bitrate, posing a huge challenge to the entire transfer linkage and to the playback device. In addition, AR and VR are gaining momentum, which rely heavily on video encoding and transfer. As technologies advance, FHD videos will be an inevitable trend.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Q5WmoKxv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/guxkt07a1s5e5esvb3zd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Q5WmoKxv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/guxkt07a1s5e5esvb3zd.png" alt="Image description" width="880" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The second part shares some encoding optimizations and the performance delivered by our proprietary encoders. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GedUmrkg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iphq2e30dbduchyajfs4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GedUmrkg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iphq2e30dbduchyajfs4.png" alt="Image description" width="880" height="494"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Our team has independently developed encoding kernels for H.264, H.265, AV1, and the latest H.266. Proprietary encoders make it possible to design encoding features for real-world business scenarios and perform targeted optimizations. For example, during the Beijing Winter Olympics, the Tencent Cloud live streaming system sustained real-time 4K/8K encoding and compression and supported up to 120 fps for real-time encoding. To ensure real-timeness, many custom optimizations were made inside the encoder. V265, Tencent's proprietary H.265 encoder, overshadows the open-source X265 in terms of speed and compression rate. At the highest speed level, V265 is significantly faster than X265, delivering quick encoding at a high resolution. V265 also supports 8K/10-bit/HDR encoding. AV1 encoding is much more complicated than H.265 encoding. For FHD implementations, we've made many optimizations in engineering performance. Compared with the open-source SVT-AV1, TSC delivers 55% performance acceleration and 16.8% compression gain.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PyQtTLHF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1m3s9jw7v9bhjs8a90eh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PyQtTLHF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1m3s9jw7v9bhjs8a90eh.png" alt="Image description" width="880" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To implement quick encoding of FHD videos, we have made a few optimizations. The first is to increase the parallelism. The encoding process involves parallelism at the frame and macroblock levels. In real-time encoding at a high resolution, the frame architecture of the video sequence is tuned to increase inter-frame encoding parallelism. As for macroblock-level parallelism, tile encoding is supported for better row-level encoding parallelism. The second one relates to pre-analysis and post-processing. Encoders always involve a lookahead pre-analysis process before subsequent encoding operations. The look-ahead process tends to affect the parallelism of the entire linkage. Therefore, algorithms for pre-analysis and post-processing are simplified to accelerate the process. After these optimizations, the encoder delivers a faster processing speed and a higher level of parallelism.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tcxcAMx8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oxk0nx0st9ocyfo7q97h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tcxcAMx8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oxk0nx0st9ocyfo7q97h.png" alt="Image description" width="880" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Part 3 describes system architecture optimization. For live streaming scenarios, encoding kernel optimization alone is not enough to accommodate real-time 8K encoding and compression rate, which means the architecture of the entire system needs to be adjusted.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--t9EeRk-9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8zu21m9c81omzg1ksk0h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--t9EeRk-9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8zu21m9c81omzg1ksk0h.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is common practice to input the 8K AVS3 video source to the hardware encoder and output different channels of bitrate streams for delivery, such as 8K H.265, 4K H.265, 1080p H.264, and 720p H.264. This can help achieve the goal, but it also has many problems. First of all, 8K hardware encoders are generally expensive, especially 8K/AV1 ones with fewer options. Second, hardware encoders have a poor compression rate compared with optimized software encoders, as many acceleration algorithms not applicable to parallelism cannot be used for hardware encoding features. Third, hardware encoders often have custom architectures and chips, making them unable to quickly respond to different business scenarios. It's hard for hardware encoders to meet constantly evolving business requirements. If the same encoding effect can be achieved by software encoding, both the transcoding compression rate and business flexibility can be guaranteed. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BWuxs51S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rhvidqb6k3r0gzdg52tx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BWuxs51S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rhvidqb6k3r0gzdg52tx.png" alt="Image description" width="880" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To solve these problems, many adjustments are made to the architecture of the entire live streaming system. In a general live streaming system, streams are pushed to the upload access gateway, processed, transcoded, and then pushed to CDN for delivery and watching. For 8K video encoding, it's difficult for the current live stream processing linkage with only one server and one transcoding node to implement real-time software encoding. Against this backdrop, we've designed the FHD live stream processing platform.&lt;/p&gt;

&lt;p&gt;In FHD live streaming, a transcoding node performs remuxing instead of transcoding, that is, it splits a pulled source stream into TS segments and sends them as files to the video transcoding processing cluster. The cluster can process TS segments in parallel to implement parallel encoding of multiple servers. Compared with the original single-linkage encoding with one server, this distributed method on multiple servers features pure software control and high flexibility. It's quite convenient for processing both capacity expansion and business upgrades. In addition, costs are reduced. The hybrid deployment of the offline transcoding and live streaming clusters allows for resource reuse within a larger scope of business, increasing the resource utilization. There are shortcomings, of course. The latency will be higher than that in a standard transcoding process. To implement parallel transcoding, remuxing is performed before stream processing, during which independent TS segments are generated after a period of wait time, thus leading to a higher but acceptable latency. When HLS is used by the downstream services for live streaming, there won't be an obvious change in the latency.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SbJ-VXU9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/en2azl6knuags9u89mr1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SbJ-VXU9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/en2azl6knuags9u89mr1.png" alt="Image description" width="880" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live 4K/8K FHD videos are converted into parallel and independent offline transcoding tasks by the offline processing cluster through parallel encoding. Top Speed Codec capabilities can be used within the offline transcoding node, where when transcoding is performed, the bandwidth can be saved by more than 50% at the same subjective quality. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--41F7gIzm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2c8ssquvfi1xvus4758h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--41F7gIzm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2c8ssquvfi1xvus4758h.png" alt="Image description" width="880" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Compared with hardware encoders, the compression rate is improved by more than 70%. That is, through the aforementioned system solution, streaming live 4K/8K FHD videos requires only 30% of the hardware encoding bitrate at the same image quality level; TSC can improve the subjective quality by more than 20% at the same bitrate.&lt;/p&gt;

&lt;p&gt;Inside each independent offline transcoding node along the linkage, video sources are decoded when they are received, and they are categorized by scene using different encoding policies. Scene detection is then performed, including noise detection and glitch detection, to analyze the noise and glitches in the video sources for subsequent encoding optimization. Before the encoding, the detected noise and glitches will be removed; after the image quality remastering of the video sources, perceptual encoding analysis is performed, where ROI areas in the image are analyzed, such as the face area and areas with complicated or simple textures. For those with complicated textures, some textures may be covered, and the bitrate can be reduced appropriately. For those with simple textures that are sensitive to the human eye, blocking artifacts will have a significant impact. In this case, the control analysis of perceptual encoding, or JND capabilities, can be used. Based on ROI and JND results, the encoder kernel can better assign the bitrates to the macroblocks during encoding.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BKgVXiyQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rbp6cue9vvzy9rcl0rpz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BKgVXiyQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rbp6cue9vvzy9rcl0rpz.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Currently, many playback devices support 4K, but not all video sources are 4K. With Tencent Cloud’s media processing capabilities, video sources can be upgraded to 4K to deliver a truly 4K viewing experience.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--c0Zd8s5A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jjcmfuotfb4inmix3v0g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--c0Zd8s5A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jjcmfuotfb4inmix3v0g.png" alt="Image description" width="880" height="268"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A 4K FHD video is usually generated in the following steps. First, the video source is analyzed for noise, compression, and other distortion. Then, comprehensive data degradation is performed based on the analysis result, including noise removal, texture enhancement, and noise suppression. It is important to note that if certain parts of the image are well processed, such as areas containing human faces or text, which are more sensitive to the human eye, the overall viewing experience can be enhanced greatly.&lt;/p&gt;

&lt;p&gt;After detail enhancement, the color will be corrected. HDR capabilities are widely used in 4K/8K videos, and SDR to HDR conversion can be performed for many video sources with no HDR playback effects to deliver a high-resolution and truly vivid 4K effect.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SRK5q0uE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qs8vxaqstg7le0hr7i88.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRK5q0uE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qs8vxaqstg7le0hr7i88.png" alt="Image description" width="880" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;During video super-resolution, we cannot achieve the ideal effect by using only one model. Specifically, a general model can be used for the background or the entire image, and another model needs to be used for areas with faces and text. The two models should be combined to deliver the final enhancement effect. As the facial features are fixed and provide sufficient prior information for video super-resolution, dedicated efforts can be made to enhance this area to significantly improve the viewing experience.&lt;/p&gt;

</description>
      <category>fhd</category>
      <category>encoding</category>
      <category>livestreaming</category>
      <category>superresolutio</category>
    </item>
    <item>
      <title>Next-Gen Media SDK Solution Design (TRTC)</title>
      <dc:creator>Man yin Mandy Wong</dc:creator>
      <pubDate>Tue, 18 Oct 2022 06:09:16 +0000</pubDate>
      <link>https://dev.to/tencentcloud/next-gen-media-sdk-solution-design-trtc-i4e</link>
      <guid>https://dev.to/tencentcloud/next-gen-media-sdk-solution-design-trtc-i4e</guid>
      <description>&lt;p&gt;&lt;strong&gt;1. Immersive Convergence&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.1 Higher definition&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---nJqKQG0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hc3f0b2c1nam9llj6er4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---nJqKQG0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hc3f0b2c1nam9llj6er4.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;According to statistics from Tencent Cloud, the average bitrate of internet streaming media played on PCs, tablets, mobile phones, and other terminals has been increasing since H1 2018. As people require higher definition, the compression rate has also improved as the bitrate increases. This is due to the developments from H.264 and H.265 to the recent H.266 with its over 100 technical proposals, which delivers 50% higher compression rates than H.265.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.2 Stronger immersiveness&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rtftHwdG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kuv3gnwfqqmofjhjazin.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rtftHwdG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kuv3gnwfqqmofjhjazin.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Advances have been made in the immersive experience of many applications, such as 3D guides, 3D modeling, AR/VR games, and multi-angle sports viewing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.3 Enhanced interaction&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lkmsqfPS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9fm3xky5pidav7pr70fk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lkmsqfPS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9fm3xky5pidav7pr70fk.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Real-time interaction is stronger. In particular, face point cloud data is collected from a mobile phone and then sent back to the audience member's device from the cloud.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.4 Lower latency&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xlz2PArq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pnmq94ra9wo7i04n857d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xlz2PArq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pnmq94ra9wo7i04n857d.png" alt="Image description" width="880" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Latency has achieved the greatest improvement. A few years ago, the latency on webpages was counted in seconds, but now it is measured in milliseconds, low enough for users to sing duets together in live rooms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.5 Four elements of the all-true internet&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QyAKZFOh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ja2s05z88bf1221bgl11.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QyAKZFOh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ja2s05z88bf1221bgl11.png" alt="Image description" width="880" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The all-true internet features a higher definition, enhanced interaction, stronger immersiveness, and lower latency. But this entails challenges and unavoidable difficulties in the cloud and on the terminal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Technical Challenges&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let's take a look at the challenges and how to overcome them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.1 Challenge 1: RT-Cube™ architecture design&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8twtaRdL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2l53as4w6ivtk7g13k97.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8twtaRdL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2l53as4w6ivtk7g13k97.png" alt="Image description" width="880" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's hard to coordinate internal modules no matter what you are working on, from an operating system to something smaller like an SDK. An SDK has many modules. The image shows a simplified version of the SDK module architecture, but you can still imagine the large number of modules that are actually involved. The bottom-left corner shows audio/video engine modules, the bottom-right corner TIM modules, and the top TUI components. When multiple modules are working together, they tend to scramble for CPU resources and encounter other conflicts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tgeQiN4G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/67bjhy5ib3t8c8jeo53x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tgeQiN4G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/67bjhy5ib3t8c8jeo53x.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The image above depicts the architecture design of the audio/video engine in RT-Cube™, which consists of many core modules with their respective submodules. Between those modules, there are much data communication and control logic. When the system runs stably, everything works well in unison. However, if the CPU frequency is reduced or the memory becomes insufficient, competition between modules will soon cause the entire system to crash. Therefore, a central control module is adapted to monitor and coordinate the modules in real-time and take intervention measures when necessary to better coordinate them and prevent an avalanche.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.2 Challenge 2: RT-Cube™ version management&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The second challenge relates to versioning. Although we offer many features, not all of them are needed by each customer. When they are packaged into different combinations, we need to manage a larger number of versions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--frtNy2bu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fqnlb5g97ger2hr4dpi1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--frtNy2bu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fqnlb5g97ger2hr4dpi1.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If an SDK offers nine features, there are 510 possible combinations, which translates into 510 * 4 = 2,040 versions in total on four platforms.&lt;/p&gt;

&lt;p&gt;The traditional compilers such as Xcode and Android Studio are no longer applicable. A new platform with a compilation solution is needed to output SDKs for different platforms and allow for free combinations of features on different versions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.3 Challenge 3: RT-Cube™ quality monitoring&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CsVYAjhc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k2ddvbd7ga8k4ozxcy0c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CsVYAjhc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k2ddvbd7ga8k4ozxcy0c.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The third challenge is quality monitoring. Imagine that six users are watching a live stream or on a video conference. In a period of 20 minutes, one of them experiences 10 seconds of lag, while the others experience no lag. According to the monitoring data, the lag rate is 0.13%, which cannot reflect the poor experience of 10-second lag. If the rate is counted based on the percentage of users experiencing a lag, the value will be 16.7%. Thus, poor performance data should be the focus of monitoring and product performance. To avoid being obscured by reported data, it is important to keep the infrastructure unchanged and have a data packet that includes lag, size, blur, and acoustic echo reported every day. The algorithm should be refined and based on user metrics to reflect the poor experience. The result will then be used to figure out the number of affected users, percentage increase or decrease, and cause. That's how we find a way to improve.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.4 Challenge 4: Module communication efficiency&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--A4nVAXF3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wlrakp7ihb48dnrur0e6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A4nVAXF3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wlrakp7ihb48dnrur0e6.png" alt="Image description" width="880" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The fourth challenge is the efficiency of communication between modules.&lt;/p&gt;

&lt;p&gt;This problem is common with games. Many enterprises unify their backend systems using SDP standards and microservice languages, but they cannot normalize iOS, Android, or Windows platforms simply through C++. Texture image formats, Android formats, and Windows D3D are processed differently on iOS. If C++ is applied, all of them are processed through binary buffers. A great deal of unification work has been done to ensure data performance across different platforms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Optimization and Improvement&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Having discussed challenges and solutions, we move on to the optimizations and improvements that have been made in half a year to one year after the completion of the infrastructure upgrade.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.1 Improvement 1: Audio module optimization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.1.1 Feature&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6FXvB0FF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qoegvwflwz84bvkoyucp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6FXvB0FF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qoegvwflwz84bvkoyucp.png" alt="Image description" width="880" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With the upgraded architecture, audio/video modules on the new version support many new capabilities, such as full-band audio, 3D audio effect, noise reduction based on deep learning and AI, and source and channel resistance. These capabilities enable many more challenging real-time interaction scenarios, for example, live duets which are highly sensitive to audio/video communication latency. In live music scenarios, music modes are optimized to restore signals as much as possible and achieve the highest possible resolution. In addition, a number of big data analysis means are leveraged to perform targeted monitoring and real-time analysis of sound problems, constantly reducing the failure rate and complaint rate by improving the audio quality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.1.2 Use&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wglaILZC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lcmpnxrjwp2eojd0wgn4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wglaILZC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lcmpnxrjwp2eojd0wgn4.png" alt="Image description" width="880" height="494"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Audio modes are more diversified to make the product user-friendly. The speech mode is for conference communication, the default mode applies to most scenarios and can be enabled if you are not sure which mode is better, and the music mode is available for music listening. All the parameters can be customized.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.2 Improvement 2: Video module optimization - effect&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--STA8lUi5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pgxwxdjz54rrfhjhd49t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--STA8lUi5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pgxwxdjz54rrfhjhd49t.png" alt="Image description" width="880" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The video module is improved on the whole. Specifically, algorithms are improved for BT.601 and BT.709 color spaces, and BT.2020 and other HDR color spaces are supported. This makes images brighter. Targeted optimizations are also made to enhance the SDK definition without compromising the bitrate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.3 Improvement 3: Network module optimization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.3.1 Architecture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dABaJjch--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1xhg0mx227ar1l5iwxvs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dABaJjch--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1xhg0mx227ar1l5iwxvs.png" alt="Image description" width="880" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Last but not least is the network module with our core technology used to implement stream control and overall reconstruction. As shown above, the cloud and terminal are integrated into a system with coordinated modules. Several data-driven optimizations are performed on the central control module.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.3.2 Stream push&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--I6nZn7gQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/amkr8affu88ztzgowbp0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--I6nZn7gQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/amkr8affu88ztzgowbp0.png" alt="Image description" width="880" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a more detailed part of the network module for two scenarios: live streaming and communication. For live streaming, the upstream algorithm is mainly used for ensuring definition and smoothness. For RTC communication, such as Tencent Meeting or VooV Meeting, the focus is on real-timeness and smoothness to eliminate high latency and lag.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.3.3 Playback&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--InBVL8Ow--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4c4dg24ndxebaj47xdg5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--InBVL8Ow--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4c4dg24ndxebaj47xdg5.png" alt="Image description" width="880" height="494"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tencent Cloud delivers industry-leading playback performance in live streaming scenarios. It has a competitive CDN and has been constantly expanding into new scenarios, such as LEB. Besides standard browsers, LEB can use the SDK to deliver performance and effects in more formats at a latency of about one second, much better than browsers in demanding scenarios. In chat scenarios that require lower latency and stronger interaction, efforts can be made to smoothen mic-on/off.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.4 Improvement 4: TUI component library&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vH34CMRB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s020alrprdqexl1ib7u1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vH34CMRB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s020alrprdqexl1ib7u1.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The TUI component library is also upgraded and completed. Instead of keeping hundreds of APIs of professional PaaS components and putting up with an unsatisfactory final product, you can import the TUI library for each platform in a few minutes and with a few lines of code. You can build a proper UI similar to those shown above within hours, even if you have never tried it before.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Summary&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--P-J8jS8T--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/afs7xc7hcvs7en71gxtz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P-J8jS8T--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/afs7xc7hcvs7en71gxtz.png" alt="Image description" width="880" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We've talked about the systematic design of component integration, where one plus one equals more than two.&lt;/p&gt;

&lt;p&gt;In the cloud, we've successfully integrated three networks, that is, TRTC network, IM network, and CDN network.&lt;/p&gt;

&lt;p&gt;On the terminal, existing features are continuously optimized in terms of stability and performance. For example, the squeeze theorem is applied in more scenarios and big data analysis cases to make the RTC SDK a leader in the industry in every respect. In addition, the LEB SDK and IM SDK with a new kernel will be integrated into the system to contribute to a powerful RT-Cube™ Media SDK architecture.&lt;/p&gt;

&lt;p&gt;Thanks to the TUI component library with ready-to-use UI output, a strong and easy-to-use PaaS system is in place to offer more basic capability components for the all-true internet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--y8BAfvLO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lzm72gn13yi74odm2qpp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--y8BAfvLO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lzm72gn13yi74odm2qpp.png" alt="Image description" width="880" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The RT-Cube Media SDK can be downloaded from the website as shown above. Currently, common versions are available, and custom capabilities will be online as the compilation system becomes more robust. You can freely combine different features to get the desired version.&lt;/p&gt;

</description>
      <category>sdk</category>
      <category>trtc</category>
      <category>rtcube</category>
      <category>cloud</category>
    </item>
    <item>
      <title>GME 3D Voice Technology: High-Precision HRTF + Distance Attenuation Model</title>
      <dc:creator>Man yin Mandy Wong</dc:creator>
      <pubDate>Thu, 13 Oct 2022 02:45:33 +0000</pubDate>
      <link>https://dev.to/tencentcloud/gme-3d-voice-technology-high-precision-hrtf-distance-attenuation-model-oa4</link>
      <guid>https://dev.to/tencentcloud/gme-3d-voice-technology-high-precision-hrtf-distance-attenuation-model-oa4</guid>
      <description>&lt;p&gt;3D voice provides more auditory information for players to help them identify the positions of their teammates/enemies through voice and feel their presence much like in the physical world. This makes the gaming experience more convenient and fun.&lt;/p&gt;

&lt;p&gt;Many game developers may ask: How does 3D voice work? How do I add it to my games? Below is a quick guide to 3D voice technology.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. How do we determine sound source positions?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We can determine the position of a sound source mainly because the sound reaches the left and right ears at different times, and the strengths and other metrics are different, too. Specifically, we identify the horizontal position based on the differences in time, sound level, and timbre between binaural signals. The auricle acts as a comb filter to help identify the vertical position of a compound sound source. Sound localization also depends on such factors as sound level, spectrum, and personal experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. How are the voice positions of players simulated? How does Tencent Cloud GME work?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A head-related transfer function (HRTF) is needed to do so. It can be regarded as a comprehensive filtering process where sound signals travel from the sound source to both ears. The process includes air filtering, reverb in the ambient environment, scattering and reflection on the human body (such as torso, head, and auricle), etc.&lt;/p&gt;

&lt;p&gt;The implementation of the real-time 3D virtualization feature for voice is not merely about calling the HRTF. It also entails mapping the virtual space in the game to the real-life environment and performing high-frequency operations. The implementation process is summarized as follows. Assume there are N players connecting to the mic in a game. Given the high requirements for real-timeness in gaming, each player's terminal should receive at least (N-1) packets containing voice information and relative position information within a unit time of 20 ms in order to ensure a smooth gaming experience. Based on the relative position information, the high-precision HRTF model in the 3D audio algorithm is used to process the voice information, coupled with the information about the presence of obstacles in the way, ambient sounds in the game (such as the sound of running water and echo in a room), etc. In this way, realistic real-time 3D sound is rendered on the players' devices.&lt;/p&gt;

&lt;p&gt;The entire process is compute-intensive, and some low/mid-end devices may be unable to handle it. How to minimize resource usage on the players' devices while ensuring a smooth gaming experience remains an industry challenge. In addition, some HRTF libraries can result in serious attenuation for some frequencies in audio signals, most notably the musical instrument sounds with diverse frequency components. This not only affects the accuracy of sound localization but also dulls the instrument sounds in the output ambient sounds.&lt;/p&gt;

&lt;p&gt;Tencent Cloud Game Multimedia Engine (GME) launched the 3D voice feature in partnership with Tencent Ethereal Audio Lab, a top-notch audio technology team. Through the high-precision HRTF model and the distance attenuation model, the feature gives players a highly immersive gaming experience in the virtual world. Thanks to optimized terminal rendering algorithms, the computing efficiency increases by nearly 50%, and the real-time spatial rendering time of a single sound source is around 0.5 ms, so that most low/mid-end devices can sustain real-time 3D sound rendering. To address the problem of signal attenuation in the rendering process, GME improves the 3D rendering effect through its proprietary audio signal equalization techniques, making ambient sounds crystal clear.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. How do we integrate 3D voice?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are two 3D voice integration methods available. You can choose a suitable method based on the characteristics of your game.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Method 1:&lt;/strong&gt; For non-VR games&lt;/p&gt;

&lt;p&gt;How it works:&lt;/p&gt;

&lt;p&gt;As the implementation of 3D voice requires calculations based on the positions and distances of sound sources, position coordinates are needed as key data in order to achieve 3D sound effects. Based on the coordinates, we can identify the position in the virtual space, calculate the distance from the sound source, and get the position information.&lt;/p&gt;

&lt;p&gt;GME has streamlined the overall integration process. You only need to transfer the local coordinate information and position information to GME through the API. Then, GME will aggregate the data and calculate the coordinate information and position information of everyone in the room to get the 3D voice information.&lt;/p&gt;

&lt;p&gt;Now we already have the position information of each speaker in the room in the virtual world. In order to achieve a 3D sound effect, 3D sound needs to be created. The position information, together with the audio streams, reaches the voice-receiving client. Without position information, the sound would be played back without any sound effect, just like in a common phone call or conference call. By contrast, with position information and GME's local 3D voice model engine, a 3D sound effect can be achieved.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Integration steps:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Prerequisites:&lt;/p&gt;

&lt;p&gt;The "EnterRoom" API has been called, and the result in the room entry callback is successful room entry.&lt;/p&gt;

&lt;p&gt;On the premise of successful connection to the voice chat service, you can integrate 3D voice as instructed below:&lt;/p&gt;

&lt;p&gt;Call "InitSpatializer" to initialize the 3D sound effect engine.&lt;/p&gt;

&lt;p&gt;Call "EnableSpatializer" to enable 3D voice.&lt;/p&gt;

&lt;p&gt;Call "UpdateAudioRecvRange" to set the attenuation range.&lt;/p&gt;

&lt;p&gt;Call "UpdateSelfPosition" to update the position information in real time.&lt;/p&gt;

&lt;p&gt;Integration Guide: &lt;a href="https://cloud.tencent.com/document/product/607/18218"&gt;https://cloud.tencent.com/document/product/607/18218&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Method 2:&lt;/strong&gt; For VR games&lt;/p&gt;

&lt;p&gt;There is a dedicated integration method for VR games. As we have noticed, VR device users have high requirements for the refresh rate, sound responsiveness, and spatial perception of sound. In VR gaming scenarios that emphasize real-time interactions and deep immersion, a premium low-latency 3D voice experience is of paramount importance. However, the traditional RTC voice call and 3D voice solutions in the market fall short of players' expectations of accuracy, real-timeness, etc.&lt;/p&gt;

&lt;p&gt;How it works:&lt;/p&gt;

&lt;p&gt;We have further optimized the 3D voice feature for the GME SDK 2.9.2. You can directly call the 3D audio model to pass in the 3D position information in real time and therefore achieve a real-time 3D sound effect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Integration steps:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Prerequisites:&lt;/p&gt;

&lt;p&gt;The "EnterRoom" API has been called, and the result in the room entry callback is successful room entry.&lt;/p&gt;

&lt;p&gt;On the premise of successful connection to the voice chat service, you can integrate 3D voice as instructed below:&lt;/p&gt;

&lt;p&gt;Call "InitSpatializer" to initialize the 3D sound effect engine.&lt;/p&gt;

&lt;p&gt;Call "EnableSpatializer" to enable 3D voice.&lt;/p&gt;

&lt;p&gt;Call "UpdateAudioRecvRange" to set the attenuation range.&lt;/p&gt;

&lt;p&gt;Call "UpdateSelfPosition" to update the position information in real time.&lt;/p&gt;

&lt;p&gt;Call "UpdateOtherPosition" to update in real time the position information of others in the room (which can be obtained at the business layer).&lt;/p&gt;

&lt;p&gt;Read more at: &lt;a href="https://dev.tourl"&gt;https://www.tencentcloud.com/dynamic/blogs/sample-article/100365&lt;/a&gt;&lt;/p&gt;

</description>
      <category>3dvoice</category>
      <category>tutorial</category>
      <category>hrtf</category>
      <category>gme</category>
    </item>
    <item>
      <title>A Brief History of Game Voice</title>
      <dc:creator>Man yin Mandy Wong</dc:creator>
      <pubDate>Tue, 11 Oct 2022 03:42:32 +0000</pubDate>
      <link>https://dev.to/tencentcloud/a-brief-history-of-game-voice-2kh8</link>
      <guid>https://dev.to/tencentcloud/a-brief-history-of-game-voice-2kh8</guid>
      <description>&lt;p&gt;&lt;strong&gt;1.Background&lt;/strong&gt;&lt;br&gt;
Game voice tools have evolved with the development of the internet. The last 20+ years have witnessed huge leaps in game voice technology, from support for a single platform to cross-platform interoperability, from one-to-one chat to interactive voice chat in a room with tens of thousands of online users, from third-party voice communication SaaS tools to PaaS SDKs, and from monotonous voice chat to immersive voice experiences.&lt;br&gt;
Game voice technology has gone through several stages, starting from the most basic voice chat to immersive voice experiences and beyond. As breakthroughs in sensors, computing power, audio algorithms, IoT, and other technologies are on the horizon, all-real voice will eventually become a reality, delivering the ultimate voice experience the metaverse demands.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.Game voice v1.0: Third-party voice chat tools&lt;/strong&gt;&lt;br&gt;
At this stage, players use third-party voice chat tools to communicate with each other in the process of gaming. Whether the game itself offers a voice communication feature or not, using third-party tools allows players to quickly create chat channels and communicate with each other through voice chat.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.Game voice v2.0: In-game voice&lt;/strong&gt;&lt;br&gt;
In-game voice solutions mainly take the form of game developers connecting SDKs developed by voice communication PaaS providers. The basic APIs that come with the SDKs are used to implement various in-game voice scenarios, such as channel voice between teammates (teammates can have a voice chat at any position coordinates in the game), range voice between different teams (players of different teams can hear each other only when their position coordinates in the game are within a specified range), as well as blocklist/allowlist.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4.Game voice v2.5: Upgraded version of in-game voice&lt;/strong&gt;&lt;br&gt;
To further improve players' game voice experiences, voice SDKs like GME offer voice processing capabilities such as voice changing and virtual 3D sound field. With these features, players can change their voice in real time based on their selected voice type, which adds fun to gaming and allows a vast design space for game voice features.&lt;br&gt;
Through the 3D virtualization technology, voice processing and gaming scenarios are combined, which, however, is are limited to position and distance information in gaming scenarios. For a truly immersive experience, voice processing should cover all aspects of gaming scenarios. A voice SDK is unlikely to provide a dedicated API for every potential factor; otherwise, the SDK would be extremely complicated and bulky, and that's not really necessary. To take the game voice experiences up a notch, we need a new solution, namely the immersive game voice solution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5.Game voice v3.0: Immersive voice&lt;/strong&gt;&lt;br&gt;
An immersive voice solution means that players' voice effects are rendered in real time based entirely on the game process. All players' voices are processed through digital signal processing (DSP) algorithms, and then played back in the headphones to simulate voice communication in real-world settings. Voice chat processed in this way can deliver a more immersive game voice experience, allowing players to communicate in a natural way.&lt;br&gt;
Then, how is an immersive voice solution implemented? As mentioned above, it is not advisable to have a single voice SDK packed with all sorts of APIs. Moreover, voice service providers are generally not experts in audio processing algorithms compared with specialist audio technology companies. Therefore, to develop an all-encompassing voice SDK is virtually unviable.&lt;br&gt;
In view of this, a combination approach will work best, just as with the Wwise + GME solution. Tencent Cloud Game Multimedia Engine (GME) is dedicated to end-to-end real-time voice communication, and the Wwise interactive audio engine is adopted by many game developers as a tool for game sound design. The Wwise plugin acts as a bridge for data interactions between GME and the Wwise engine, and GME voice streams are seamlessly connected to the Wwise audio pipeline, so Wwise's rich sound effects processing and control features can be used in voice chat. Such a design makes it possible to deliver an immersive game voice experience.&lt;br&gt;
As an interactive audio authoring tool, Wwise is generally used to create high-quality audio content for games, and GME complements Wwise in the field of game voice. Now sound engineers can also use Wwise to create immersive and interesting voice features, opening up new gameplay possibilities.&lt;br&gt;
Immersive voice, however, is definitely not the acme of game voice experiences – all-real voice takes it further.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6.Game voice v4.0: All-real voice&lt;/strong&gt;&lt;br&gt;
With the advances in AR, VR, and MR technologies, the metaverse has become a hot button topic. Many technology giants are expanding into the metaverse, which is considered the next biggest opportunity in the realm of the internet in the coming decade. The metaverse refers to a parallel virtual world that is both independent of and interconnected with the real world, where people can interact, work, and do much more realistically.&lt;br&gt;
To make virtual worlds more lifelike, software and hardware technologies need to be integrated to simulate human senses. As voice communication is an important form of human interaction, metaverse scenarios have higher requirements for voice, that is, all-real voice. Currently, the metaverse is still more of a concept than reality, and we'll see what the future holds.&lt;br&gt;
Gaming is inherently a social activity in the internet age. Although voice chat is not a core feature for most game genres, it makes gaming more enjoyable and thus increases player retention. Therefore, it has become a common feature of online games.&lt;br&gt;
Game voice technology has evolved in response to players' growing demand for better experiences and gameplay. The development of game voice technology can be divided into four stages based on the improvements in game voice experiences. As players have higher expectations of gaming experiences, voice is bound to hold greater weight in gaming.&lt;/p&gt;

&lt;p&gt;Read more at: &lt;a href="https://www.tencentcloud.com/dynamic/blogs/sample-article/100361"&gt;https://www.tencentcloud.com/dynamic/blogs/sample-article/100361&lt;/a&gt;&lt;/p&gt;

</description>
      <category>gme</category>
      <category>gamevoice</category>
      <category>3dvoice</category>
      <category>voicechanging</category>
    </item>
    <item>
      <title>Low-Latency Live Streaming Upgraded Based on WebRTC (CSS)</title>
      <dc:creator>Man yin Mandy Wong</dc:creator>
      <pubDate>Fri, 07 Oct 2022 03:22:14 +0000</pubDate>
      <link>https://dev.to/tencentcloud/low-latency-live-streaming-upgraded-based-on-webrtc-css-53bl</link>
      <guid>https://dev.to/tencentcloud/low-latency-live-streaming-upgraded-based-on-webrtc-css-53bl</guid>
      <description>&lt;p&gt;&lt;strong&gt;1.Live Event Broadcasting (LEB) Overview&lt;/strong&gt;&lt;br&gt;
The fast advancement of the live streaming industry has ignited the development of a wealth of low-latency live streaming scenarios, typically live shopping and online education. For these use cases, the key requirement is real-time audio/video interaction, which cannot be well supported by traditional HLS- and FLV/RTMP-based live streaming technologies that feature a relatively high latency of several seconds. Therefore, Live Event Broadcasting (LEB) adopts WebRTC to implement a live streaming product solution with a latency of milliseconds. Besides live shopping and online education, the product can well meet the requirement of real-time interaction at a low latency in other scenarios such as sports and game live streaming.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.WebRTC-Based LEB Scheme&lt;/strong&gt;&lt;br&gt;
After years of development, live streaming has had a standardized linkage. streamers use PCs or mobile phones to implement audio/video capturing and encoding on the client and push streams over RTMP to the cloud platform for live streaming. Then, the audio/video data is transcoded and transferred to users' devices via FLV and HLS protocols over the CDN network. On the entire linkage, the highest latency comes from RTMP stream push, CDN transfer, caching on the device, and playback after decoding. The traditional RTMP/FLV/HLS methods are based on the TCP protocol, which means that data tends to build up under poor network connections. What's more, to defend against TCP network fluctuations, device players usually need to cache one to two GOPs to ensure smooth playback.&lt;br&gt;
WebRTC is based on the RTP/RTCP protocol and leverages an excellent congestion control algorithm to ensure low latency and high performance under poor network connections in the real-time audio/video field. Exactly based on WebRTC, LEB reconstructs stream pull in LVB to implement highly compatible, cost-effective, and large-capacity low-latency live streaming. The system reuses the cloud data processing capabilities in the original live streaming architecture to make the live streaming access side and CDN edge both WebRTC-based, so that the former can receive WebRTC streams, and the latter can support WebRTC negotiation and remuxing distribution in addition to the original FLV/HLS distribution capabilities. In this way, the low-latency LEB is not only compatible with LVB's cloud media processing features such as stream push, transcoding, recording, screencapturingscreen-capturing, and porn detection, but also has the strong edge distribution capabilities of the traditional CDN network, which is able to support millions of concurrent online users. You can smoothly migrate your business from the existing LVB platform to LEB to implement low-latency live streaming applications.&lt;br&gt;
LEB also uses WebRTC to achieve low latency across platforms. Most mainstream browsers, including Chrome and Safari, have supported WebRTC, so we can offer standard WebRTC capabilities via browsers. In addition, the well-established, open-source WebRTC SDK makes optimization and customization easy, allowing for the customization of an SDK with improved low-latency streaming features.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.WebRTC Upgrade and Extension&lt;/strong&gt;&lt;br&gt;
The audio/video encoding format supported by the standard WebRTC no longer meets the requirements of the live streaming industry. Specifically, the video encoding formats supported by the standard WebRTC are VP8/VP9 and H.264, and the supported audio encoding format is Opus; however, H.264/H.265+AAC is used for audio/video stream push. In addition, to implement superior low-latency communications, the standard WebRTC doesn't support B-frame encoding, although B-frame encoding has been widely used in the live streaming industry as it can improve the compression ratio and save bandwidth costs. Therefore, transcoding is required to connect the standard WebRTC to existing live streaming systems, introducing extra latency and costs. It's necessary to upgrade the standard WebRTC to make it compatible with AAC (audio), H.265 (video), and B-frame encoding. The following details the WebRTC upgrade and extension in LEB.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4.LEB SDK and Demo&lt;/strong&gt;&lt;br&gt;
The LEB SDK uses the native WebRTC for customization and extension. In addition to the standard WebRTC, it also supports: a) decoding and playback in AAC, including AAC-LC, AAC-HE, and AAC-HEv2; b) decoding and playback in H.265, including software and hardware; c) B-frame decoding in H.264 and H.265; d) SEI callback; e) encryption disablement; f) image screencapturingscreen-capturing, rotation, and zooming. The LEB SDK optimizes the performance of the native WebRTC, such as first image frame latency, frame sync, sync, jitter buffer, and NACK policies. It removes modules irrelevant to stream pull and playback and is about 5 MB in size after packaging. It includes ARM64 and ARM32 architectures. To facilitate connection, it provides a complete SDK and demo. The demo for web shows how to pull streams via the standard WebRTC on the web, and the demos for Android and iOS come with the stream pull and playback SDK, demo, and connection documentation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4.1 Demo for web&lt;/strong&gt;&lt;br&gt;
&lt;a href="http://webrtc-demo.tcdnlive.com/httpDemo.html"&gt;http://webrtc-demo.tcdnlive.com/httpDemo.html&lt;/a&gt;   &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TRjmWXnN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6yuew4mtoej4g85iso96.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TRjmWXnN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6yuew4mtoej4g85iso96.png" alt="Image description" width="406" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Scan the QR code to open the demo for web.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4.2 SDK and demo for Android&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/tencentyun/leb-android-sdk"&gt;https://github.com/tencentyun/leb-android-sdk&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rbY0ZBk2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/29rx6loqzewf5cnlxjxv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rbY0ZBk2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/29rx6loqzewf5cnlxjxv.png" alt="Image description" width="406" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Scan the QR code to open the SDK and demo for Android.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4.3 SDK and demo for iOS&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/tencentyun/leb-ios-sdk/"&gt;https://github.com/tencentyun/leb-ios-sdk/&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fCKTAnsy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jjmod1m7pzsdxtbjjtm0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fCKTAnsy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jjmod1m7pzsdxtbjjtm0.png" alt="Image description" width="406" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Scan the QR code to open the SDK and demo for iOS.&lt;/p&gt;

&lt;p&gt;Read more at: &lt;a href="https://www.tencentcloud.com/dynamic/blogs/sample-article/100358"&gt;https://www.tencentcloud.com/dynamic/blogs/sample-article/100358&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>cloudstreaming</category>
      <category>livebroadcasting</category>
      <category>webrtc</category>
    </item>
    <item>
      <title>GME Integration for Wwise: Unlock More Voice Features to Deliver an Immersive Game Experience</title>
      <dc:creator>Man yin Mandy Wong</dc:creator>
      <pubDate>Wed, 05 Oct 2022 07:22:30 +0000</pubDate>
      <link>https://dev.to/tencentcloud/gme-integration-for-wwise-unlock-more-voice-features-to-deliver-an-immersive-game-experience-3ebp</link>
      <guid>https://dev.to/tencentcloud/gme-integration-for-wwise-unlock-more-voice-features-to-deliver-an-immersive-game-experience-3ebp</guid>
      <description>&lt;p&gt;The State of Mobile 2021 report issued by App Annie identifies PUBG-like, shooter, and MOBA games highlighting social interactions as the most popular game categories, which are the main drive in the increase in gameplay time. Voice interaction in blockbuster games such as PUBG, Call of Duty, and Free Fire has already become a player habit. Innovative social games such as Roblox and Among Us are also widely popular among Gen Z.&lt;/p&gt;

&lt;p&gt;Although multiplayer gaming and social interaction have become mainstream in the game world, how to deeply integrate game voice into gameplay and restore the real world experience for players remains a challenge.&lt;/p&gt;

&lt;p&gt;The Wwise + GME solution not only helps games easily integrate the voice chat feature, but also maximizes the immersive gaming experience. This article will introduce the unique benefits of this solution from three aspects: solution strengths, technical implementation, and voice features.&lt;/p&gt;

&lt;p&gt;Learn more about GME at: &lt;a href="https://www.tencentcloud.com/products/gme"&gt;https://www.tencentcloud.com/products/gme&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the Wwise + GME solution?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Game Multimedia Engine (GME) is a one-stop voice solution tailored for gaming scenarios and provides abundant features, including multiplayer voice chat, voice messaging, speech-to-text conversion, and speech analysis. You can connect to the GME SDK by calling APIs to implement voice features in your game.&lt;/p&gt;

&lt;p&gt;The connection process of traditional standalone voice SDK solutions is designed independently of the game sound effects. In contrast, for games developed based on the Wwise sound engine, the Wwise + GME solution can include voice features in the game sound effect design process. Wwise's powerful audio processing and control capabilities can be applied to the voice features, which provides a larger space for designing voice features for game sound effects while improving the sound quality. Below is the basic flowchart:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--870BNFiT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/avkg1t37fkrz6uiam54w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--870BNFiT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/avkg1t37fkrz6uiam54w.png" alt="Image description" width="880" height="319"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As shown above, GME's plugins send all the local voice stream (voice of the player recorded by the mic) and the voice streams received over the network (voice streams of teammates to be played back locally) to the Wwise audio pipeline, where the GME voice streams are abstracted into Wwise's basic audio sources for processing. It is based on this novel design that the Wwise + GME solution has unique strengths over traditional standalone voice SDK solutions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Unique strengths of the Wwise + GME solution&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Unified design for voice and game sound effects:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In a Wwise project, GME voice streams are seamlessly connected to the Wwise audio pipeline, and the voice connection process is deeply integrated into the Wwise sound effect design process, avoiding audio conflicts that may occur during connection to a separate voice SDK. On the game client, the operations of sending and receiving GME voice streams are abstracted into triggers of Wwise events. This makes such operations consistent with the standard Wwise development process experience, which is more straightforward than previous API call-based connection.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Effective solution to the problems of declined sound effect quality and sudden change in the volume level after mic-on:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In traditional standalone voice SDK solutions, the declined game sound effect quality after mic-on, sudden change in volume level, and dry voice all are pain points in the industry; especially, the sound effect quality of the entire game will degrade to the sound quality level of phone calls (mono signal at a low sample rate) immediately after mic-on, which severely deteriorates the game experience. In contrast, the Wwise + GME solution effectively solves the problem of sound effect decline caused by volume type switch. This greatly improves the sound quality and enables players to identify other players' positions during smooth voice chat with the original sound effects retained.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Powerful design capabilities for unlimited gameplay and creativity&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Wwise + GME solution allows a vast design space for game voice features. As all voice streams flow to the Wwise audio bus, the rich sound processing and control capabilities of Wwise can be applied to the voice, and each voice stream can be customized, making gameplay more immersive and fun and allowing players to communicate in a natural way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Technical implementation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For each player, voice chat mainly involves two audio stream linkages: the upstream linkage where the local mic captures the player's own voice and distributes it to remote teammates through the server, and the downstream linkage where the voices of all teammates are received from the server, mixed, and played back on the local device.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Upstream linkage:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The player's local chat voice stream will be sent to the Wwise engine through the GME capture plugin. Based on the rich sound effect processing capabilities of Wwise, the game can process the voice stream based on the actual environment and needs, with operations such as texture processing, reverb, and voice changing. Imagine that the player's character is in a church. The processed voice stream with church reverb will be sent to the server through the GME sending plugin and then to remote players. Similarly, if the game is configured with the voice changing feature, the voice stream processed by the real-time voice changing algorithm will be sent to remote players.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BhD5iuVv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aspqddbdgyqp4ykfdopu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BhD5iuVv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aspqddbdgyqp4ykfdopu.png" alt="Image description" width="880" height="236"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Upstream linkage processing flowchart&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Downstream linkage:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Unlike the upstream linkage where only one local voice stream is involved, the downstream linkage generally receives multiple voice streams from all teammates, which will be passed to the Wwise engine through the GME receiving plugin. In addition, the game can process the corresponding sound effects based on the actual player conditions in each received voice stream, including position relative to the local player, distance, and presence of obstacles in the way. The processed data is mixed by Wwise and then played back on the local device. In a specific game scenario, for example, if teammate A is standing on the front left of the local player, then the local player will hear teammate A's voice from the front left direction; and if teammate B jumps behind a rock, then the local player will hear teammate B's voice obstructed and reflected by the rock. In addition, the voices of approaching and departing players will be amplified or attenuated.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5iYH2Iy6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h46jnal7omxui217eu9w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5iYH2Iy6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h46jnal7omxui217eu9w.png" alt="Image description" width="880" height="246"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Downstream linkage processing flowchart&lt;/p&gt;

&lt;p&gt;Compared with traditional standalone voice SDKs that only provide an audio conference-like game voice experience, the Wwise + GME solution processes the voice based on game scenarios and takes the voice experience to a whole other level (i.e., a game scenario-specific immersive voice experience). The demo video below shows some basic usage of the Wwise + GME solution. If you watch it on your phone, please put on headphones, because it uses the binaural virtual sound field technology.&lt;/p&gt;

&lt;p&gt;In the following demo video, the gray robot opposite you is your teammate talking to you through GME. 3D audio, voice changing, and reverb are applied in voice chat processing. All voices in the video are from real-time recording of the voice stream sent by the remote player instead of post-production synthesis. &lt;/p&gt;

&lt;p&gt;Please watch the demo at: &lt;a href="https://www.youtube.com/watch?v=3MPhscvG2dg"&gt;https://www.youtube.com/watch?v=3MPhscvG2dg&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(Click to play. As the demo uses binaural virtual sound field technology, please put on headphones for optimal effect.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;More voice features&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The unique design of the Wwise + GME solution makes it possible to implement voice features as a part of game sound effect design. Below are some proposed voice processing features, and there are more to be created by audio designers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sending ambient sound or accompaniment:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Wwise + GME solution provides the capability to send not only player voice but also other audio streams to the voice server. The most obvious application of this capability is karaoke. For example, in a game scenario where a player's character is in the rain or wind, when the player talks with a teammate, the immersive experience requires that sound of rain or wind be properly mixed into the voice. There are also some other use cases, such as sending sound emojis based on the player's progress in the game to make the voice more fun.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Simulating voice reflection and diffraction:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To create an immersive voice experience, voice rendering and actual game scenarios must be taken into account together. The aforementioned texture processing, attenuation, voice changing, reverb, and 3D positioning are only basic processing features. To better simulate the voice transfer path between the speaker and the listener in game scenarios, you can leverage the reflection, diffraction, occlusion, and obstruction models provided by Wwise to process voice chat, and such processing effects are exactly the ultimate voice experience that the metaverse seeks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Processing character personality and status:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In order to make game voice more fun, some specially designed DSP processing can be performed on the voice when character personality and status change in games. For example, if a character is attacked by an enemy and loses HP in a battle, then the voice can have some distortions, lags, or trills added to indicate that the character is in pain; when the character defeats the enemy or picks up an item, the voice can have some high-pass filtering or acceleration processed to reflect the excitement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Side-chaining:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Side-chaining is an essential processing method in audio mixing. It controls a signal with another. The purpose of adding voice features to a game is to enhance in-game social networking, so the voice must be clearly delivered to listeners. When a player speaks, the focus of game sound mixing should switch from the game sound effects to the voice, as they do on radio stations, where the DJ decreases the music volume level when speaking and restores the original volume level after speaking. In the Wwise + GME solution, all voice streams are sent to the Wwise audio bus, which makes side-chaining possible in games; for example, you can set a Wwise Meter at the place where voice is received and then dynamically control the volume levels of other sound effects based on the value of this Meter.&lt;/p&gt;

&lt;p&gt;Below is a demo video of the Wwise + GME solution's multiple capabilities, such as how sound reflection, obstruction, and side-chaining are processed by GME. The video shows the first-person view, third-person view, and top view, and the green robot is your teammate talking to you through GME. As the robot's position and environment change, the corresponding processing features will be applied to the voice (as described in the video subtitles). Voice chat processed in this way can deliver an immersive gaming experience. All voices in the video are from real-time recording of the voice stream sent by the remote player instead of post-production synthesis.&lt;/p&gt;

&lt;p&gt;Please watch the demo at: &lt;a href="https://youtu.be/1gTCa_hiAIE"&gt;https://youtu.be/1gTCa_hiAIE&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(Click to play. As the demo uses binaural virtual sound field technology, please put on headphones for optimal effect.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Wwise audio engine middleware and the GME game voice solution can improve the game quality from different perspectives. Wwise greatly increases the efficiency of developing interactive sound effects for a better game voice experience, while GME enhances social networking in games for a higher player retention. When Wwise is combined with GME, the two create better synergy for multiplying effects. The Wwise + GME solution will become a powerful tool for game sound effect designers to create most realistic, vivid, and creative sound and voice effects in games.&lt;/p&gt;

</description>
      <category>gme</category>
      <category>voicefeature</category>
      <category>wwise</category>
      <category>voicesolution</category>
    </item>
    <item>
      <title>Further Upgrade for Tencent Cloud Streaming Services (CSS) Stream Push</title>
      <dc:creator>Man yin Mandy Wong</dc:creator>
      <pubDate>Thu, 29 Sep 2022 03:25:07 +0000</pubDate>
      <link>https://dev.to/tencentcloud/further-upgrade-for-tencent-cloud-streaming-services-css-stream-push-47g8</link>
      <guid>https://dev.to/tencentcloud/further-upgrade-for-tencent-cloud-streaming-services-css-stream-push-47g8</guid>
      <description>&lt;h2&gt;
  
  
  Support for Multi-Path Transfer (CSS) Lite Edition
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Current network transfer problems&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As internet video applications gain momentum, more and more platforms and industries are diving into live streaming, but streamers are faced with some quality problems.&lt;/p&gt;

&lt;p&gt;● Transfer lag - The network in outdoor or public areas is unstable, causing packet loss, high latency, or jitter and subsequent stream push and playback lags.&lt;/p&gt;

&lt;p&gt;● Packet loss in mobile environments - In 3G, 4G, 5G, and Wi-Fi environments, packet loss will occur at the transport layer due to bit errors at the physical and linkage layers, which doesn't mean congestion.&lt;/p&gt;

&lt;p&gt;● Insufficient bandwidth of a single network - The linkage bandwidth of a 3G, 4G, 5G, or Wi-Fi network is insufficient or the network jitters.&lt;/p&gt;

&lt;p&gt;● Network switch problems in mobile environments - Mobile network/Wi-Fi switches often occur when streamers are moving around.&lt;/p&gt;

&lt;p&gt;In these scenarios, upstream push is prone to lags due to unstable transfer or insufficient bandwidth of a single network, adversely affecting the playback experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Multi-linkage transfer scheme&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tencent Cloud CSS's multi-linkage transfer scheme allows for transfer over multiple linkages at the same time to improve the reliability and quality of end-to-end transfer, further enhancing the upstream push and playback experience.&lt;/p&gt;

&lt;p&gt;The conventional IP-layer scheme is more about routers and gateway servers that support multi-network aggregation. Specifically, data is shared by the sender, substreams are transferred over multiple linkages, and data is then aggregated by the receiver.&lt;/p&gt;

&lt;p&gt;This scheme is independent of transport layer protocols. It is compatible with all the existing stream push protocols but requires support from hardware such as routers.&lt;/p&gt;

&lt;p&gt;The Tencent Cloud CSS software scheme at the application layer leverages the reliability, anti-jitter, and low-latency capabilities of Tencent Cloud SRT, implements the SRT bonding-based algorithm for multi-path transfer at the transport layer, and is optimized for live streaming media scenarios. In addition, it no longer relies on hardware as long as the sender has multiple ENIs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. SDK architecture and usage&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tencent Cloud CSS provides the TMIO SDK for terminals to implement multi-network transfer capabilities.&lt;/p&gt;

&lt;p&gt;In general, the widely used stream push protocol RTMP is integrated into products. You can establish a connection through RTMP over SRT and leverage the SRT feature to improve the performance under poor network conditions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tmio SDK instructions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Directly integrate the TMIO SDK to replace the transfer module. For detailed directions, see the integration documentation and demo source code.&lt;/p&gt;

&lt;p&gt;Proxy mode: The proxy mode can be used as a separate process or integrated into the application. You only need to change the stream push address in the original application code to the local listening address in proxy mode. For example, if the original RTMP stream push address is:&lt;/p&gt;

&lt;p&gt;rtmp://{$push_domain}:3570/live/sdk_test?txSecret=38fdd5b9ee9958c3f6e6e6a6dd39ba2b&amp;amp;txTime=6161BC80&lt;/p&gt;

&lt;p&gt;Then the stream push address in proxy mode is:&lt;/p&gt;

&lt;p&gt;rtmp://0.0.0.0:1935/live/sdk_test?txSecret=38fdd5b9ee9958c3f6e6e6a6dd39ba2b&amp;amp;txTime=6161BC80&amp;amp;txHost={$push_domain}&lt;/p&gt;

&lt;p&gt;Read more at: &lt;a href="https://www.tencentcloud.com/dynamic/insights/sample-article/100351"&gt;https://www.tencentcloud.com/dynamic/insights/sample-article/100351&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Quickly Isolating Resources in Tencent Cloud’s VOD</title>
      <dc:creator>Man yin Mandy Wong</dc:creator>
      <pubDate>Mon, 26 Sep 2022 03:35:12 +0000</pubDate>
      <link>https://dev.to/tencentcloud/quickly-isolating-resources-in-tencent-clouds-vod-1j0d</link>
      <guid>https://dev.to/tencentcloud/quickly-isolating-resources-in-tencent-clouds-vod-1j0d</guid>
      <description>&lt;p&gt;We have launched the sub-application feature for Tencent Cloud’s Video-on-Demand (VOD) to help you easily isolate resources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. What can sub-applications do?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Help you isolate resources&lt;/strong&gt; - VOD sub-applications can implement efficient and secure resource isolation with zero O&amp;amp;M costs, and they have the same features and are used in the same way. In addition, the features of data statistics collection and usage analysis can be performed at the sub-application level, so that you can break down your data system for analysis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Help you control permissions&lt;/strong&gt; - VOD sub-applications are connected to the Cloud Access Management (CAM) service of Tencent Cloud, and access to sub-application resources is controlled through permission policies. You can quickly implement permission control through simple operations that are easier to learn than those in sub-applications of other cloud vendors, as multi-level authorization is not required.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Help you manage the resource lifecycle&lt;/strong&gt; - VOD sub-applications have a complete lifecycle to allow for flexible sub-application management. Sub-applications can be disabled, terminated, or enabled as needed in different scenarios.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. What are the typical use cases of sub-applications?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sample use case 1&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A company intends to develop its own products based on Tencent Cloud. Department A plans to use VOD to develop a short video application, and department B plans to develop a movie and television website. These two VOD businesses need to be isolated from each other. However, out of financial considerations, the company cannot create an independent Tencent Cloud account for each department.&lt;/p&gt;

&lt;p&gt;In this case, the sub-application feature of VOD can be used to assign a sub-application to each department, so that the two departments can manage their business resources in separate sub-applications. Under the sub-application role, the features and usage of VOD are the same as those before the sub-application feature is enabled. VOD will generate separate data statistics for each sub-application to facilitate reasonable resource allocation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sample use case 2&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After each is configured with its own sub-application, departments A and B are further required to control permissions at a finer granularity. For example, sub-application 1 is assigned to department A and sub-application 2 to department B. Department A needs to have all the operation permissions of sub-application 1 and be able to access sub-application 2, but should not be able to perform video processing operations in sub-application 2.&lt;/p&gt;

&lt;p&gt;This use case requires permissions to access isolated resources. To achieve this, a custom policy can be created through the account admin to refine access permissions in the API dimension, and then, the policy can be associated with the sub-account of department A.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Summary&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The VOD sub-application feature helps you implement resource isolation and permission assignment in VOD, thereby lowering your operations costs and facilitating resource management. Sub--applications are absolutely a good choice for complex production environments with multiple business scenarios.&lt;/p&gt;

&lt;p&gt;Read more at: &lt;a href="https://www.tencentcloud.com/dynamic/blogs/sample-article/100345"&gt;https://www.tencentcloud.com/dynamic/blogs/sample-article/100345&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
