Limiting in-loop filtering

文档序号:144836 发布日期:2021-10-22 浏览:13次 中文

阅读说明:本技术 对环路内滤波的限制 (Limiting in-loop filtering ) 是由 张莉 张凯 刘鸿彬 许继征 王悦 于 2020-03-02 设计创作,主要内容包括:用于数字视频编解码的设备、系统和方法,包括:在应用子块变换的情况下,确定样点是否位于子块变换边界;如果确定样点位于子块变换边界,则应用去方块滤波处理;以及执行视频和视频的比特流表示之间的转换。(Apparatus, systems, and methods for digital video encoding and decoding, comprising: determining whether a sampling point is located at a sub-block transform boundary in case of applying the sub-block transform; if the sampling point is determined to be positioned at the sub-block transformation boundary, the deblocking filtering processing is applied; and performing a conversion between the video and a bitstream representation of the video.)

1. A method of video processing, comprising:

determining whether a sampling point is located at a sub-block transform boundary in case of applying the sub-block transform;

if the sampling point is determined to be positioned at the sub-block transformation boundary, the deblocking filtering processing is applied; and

a conversion between video and a bit stream representation of the video is performed.

2. The method of claim 1, further comprising: determining to apply an emphasis block filter based on the samples being located at the sub-block transform boundary.

3. The method of claim 1, further comprising: determining to apply a weak deblocking filter based on samples located at sub-block transform boundaries.

4. The method of claim 1, further comprising: the type of filter to be applied is determined based on the samples being located at the sub-block transform boundaries.

5. The method of claim 1, further comprising: it is determined how clipping is applied to the filtered samples.

6. A method of video processing, comprising:

determining how to apply the filtering process of the video block based on whether to apply the sub-block transform;

performing the filtering process based on the determination; and

a conversion between video blocks and a bitstream representation of the video is performed.

7. The method of claim 6, wherein the filtering process comprises at least one of: deblocking filtering, Sample Adaptive Offset (SAO) filtering, or Adaptive Loop Filtering (ALF) processes.

8. The method of claim 7, wherein boundaries of sub-block transforms are considered as transform boundaries in the deblocking filtering process.

9. The method of claim 8, wherein, if the sub-block transform is applied, at least a boundary of the sub-block transform is filtered in the deblocking filtering process.

10. The method of any of claims 1-9, when a sub-block transform is applied to a video block, the video block is divided into more than one sub-block, and only one of the sub-blocks has a non-zero transform coefficient, while other sub-blocks do not have the non-zero transform coefficient; and for said only one sub-block, only the transform coefficients are signaled.

11. A video decoding apparatus comprising a processor configured to implement the method recited in one or more of claims 1 to 10.

12. A video encoding apparatus comprising a processor configured to implement the method recited in one or more of claims 1-10.

13. A computer program product having computer code stored thereon, which when executed by a processor, causes the processor to implement the method recited in any of claims 1 to 10.

14. An apparatus in a video system comprising a processor and a non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to implement the method of any of claims 1 to 10.

Technical Field

This patent document relates to video encoding and decoding techniques, devices and systems.

Background

Currently, efforts are being made to improve the performance of current video codec techniques to provide better compression ratios or to provide video encoding and decoding schemes that allow for lower complexity or parallel implementations. Industry experts have recently proposed several new video codec tools, which are currently being tested to determine their effectiveness.

Disclosure of Invention

Described are devices, systems, and methods related to digital video coding and, in particular, to deriving motion vectors. The described method may be applied to existing video codec standards (e.g. High Efficiency Video Coding (HEVC) or multifunctional video codec) as well as future video codec standards or video codecs.

In one representative aspect, the disclosed technology can be used to provide a method for video processing. The method includes determining whether a partition type associated with a partition tree is allowed or disallowed for a video block based at least in part on a Virtual Pipeline Data Unit (VPDU) size, wherein the VPDU size includes a VPDU height and a VPDU width, wherein, in response to a partition type not being allowed, an indication of the partition type is not present in the bitstream.

In another representative aspect, the disclosed techniques can be used to provide another method for video processing. The method includes determining whether a partition type associated with a partition tree is allowed or disallowed for a video block based at least in part on a maximum allowed sub-block transform size, wherein the maximum allowed sub-block transform size includes a maximum allowed sub-block transform height and a maximum allowed sub-block transform width, wherein in response to a partition type not being allowed, an indication of the partition type is not present in a bitstream.

In yet another representative aspect, the disclosed techniques may be used to provide yet another method for video processing. The method includes determining whether a partition type associated with a partition tree is allowed or disallowed for a video block based at least in part on a maximum allowed transform size and a Virtual Pipeline Data Unit (VPDU) size, or based at least in part on a maximum allowed sub-block transform size and a Virtual Pipeline Data Unit (VPDU) size, wherein the VPDU size includes a VPDU height and a VPDU width, wherein the maximum allowed transform size includes the maximum allowed transform height and the maximum allowed transform width, wherein, in response to a partition type not being allowed, an indication of the partition type is not present in a bitstream.

In yet another representative aspect, the disclosed techniques may be used to provide yet another method for video processing. The method comprises the following steps: determining whether a sampling point is located at a sub-block transform boundary in case of applying the sub-block transform; if the sampling point is determined to be positioned at the sub-block transformation boundary, the deblocking filtering processing is applied; and performing a conversion between the video and a bitstream representation of the video.

In yet another representative aspect, the disclosed techniques may be used to provide yet another method for video processing. The method comprises the following steps: determining how to apply a filtering process to the video block based on whether to apply the sub-block transform; performing a filtering process based on the determination; and performing a conversion between the video block and a bit stream representation of the video.

Further, in one representative aspect, a video decoding apparatus is disclosed that includes a processor configured to implement any one or more of the disclosed methods.

Further, in one representative aspect, a video encoding apparatus is disclosed that includes a processor configured to implement any one or more of the disclosed methods.

Further, in one representative aspect, an apparatus in a video system is disclosed that includes a processor and a non-transitory memory having instructions thereon. The instructions, when executed by a processor, cause the processor to implement any one or more of the disclosed methods.

Furthermore, a computer program product stored on a non-transitory computer readable medium comprising program code for performing any one or more of the disclosed methods is disclosed.

The above and other aspects and features of the disclosed technology are described in more detail in the accompanying drawings, the description and the claims.

Drawings

Fig. 1 shows an example of macroblock partitioning.

Fig. 2 shows an example of a mode for dividing Coding Blocks (CBs) into Prediction Blocks (PBs).

Fig. 3A shows an example of a Coding Tree Block (CTB) and its partitioning.

Fig. 3B shows an example of a quad tree corresponding to the CTB in fig. 3A.

Fig. 4A and 4B show diagrams of a combined quadtree plus binary tree (QTBT) block structure.

Fig. 5A-5E illustrate examples of segmentation types.

Fig. 6 shows an example of a subblock transform mode.

Fig. 7 is a block diagram of an example of a hardware platform for implementing the visual media decoding or visual media encoding techniques described herein.

Fig. 8 shows a flow diagram of an example method for video coding.

Fig. 9 shows a flow diagram of an example method for video coding.

Fig. 10 shows a flow diagram of an example method for video coding.

Fig. 11 shows a flow diagram of an example method for video coding.

Fig. 12 shows a flow diagram of an example method for video coding.

Fig. 13 shows a flow diagram of an example method for video coding.

Detailed Description

Video coding and decoding in H.264/AVC

The video codec standard has evolved largely through the development of the well-known ITU-T and ISO/IEC standards. ITU-T has established H.261 and H.263, ISO/IEC has established MPEG-1 and MPEG-4 visualizations, and these two organizations have jointly established the H.262/MPEG-2 Video and H.264/MPEG-4 Advanced Video Coding (AVC) and H.265/HEVC standards. Since h.262, video codec standards have been based on hybrid video codec structures, in which temporal prediction plus transform coding is utilized. In order to explore future Video coding and decoding technologies beyond HEVC, VCEG and MPEG united in 2015 to form Joint Video Exploration Team (jfet). Thereafter, JFET takes a number of new methods and imports them into a reference software called Joint Exploration Model (JEM). In month 4 of 2018, a joint video experts group (jfet) between VCEG (Q6/16) and ISO/IEC JTC1 SC29/WG11(MPEG) was created, working on the VVC standard, with a 50% reduction in bitrate compared to HEVC.

The latest version of the VVC draft, multifunctional video codec (draft 4), can be found at the address http:// phenix. it-supplaris. eu/jvet/doc _ end _ user/current _ document. ph 5755. The latest reference software for VVCs, named VTM, can be found at the following website: https:// vcgit. hhi. fraunhofer. de/jvet/VVCSOFTWOW _ VTM/tags/VTM-3.1.

Partition tree structure in 2.1H.264/AVC

The terms used in h.264/AVS are macroblock and MB mode/8 × 8 mode (partition). A macroblock is a unit in which each picture/slice is divided and intra/inter mode decision is applied. The segmentation defines the level in which motion information is signaled.

The codec layer in h.264/AVC depends on a macroblock that includes a 16 x 16 block of luma samples and, in the typical case of 4:2:0 color samples, two corresponding blocks of 8 x 8 chroma samples.

2.1.1H.264/AVC Master document

In this level, the intra coding and decoding block uses spatial prediction to exploit spatial correlation between pixels. Two segmentations are defined: 16 × 16 and 4 × 4.

Inter-coded blocks use temporal prediction, rather than spatial prediction, by estimating inter-picture motion. For a 16 × 16 macroblock or any macroblock partition thereof: 16 x 8, 8 x 16, 8 x 8, can be independently estimated. A syntax element (MB mode) is signaled to indicate whether 16 × 16, 16 × 8, 8 × 16, or 8 × 8 is selected. If 8 x 8 is selected, another syntax element (8 x 8 mode) is further signaled to indicate whether 8 x 8, 8 x 4, 4 x 8, 4 x 4 is used (e.g., as shown in fig. 1). Only one Motion Vector (MV) is allowed per partition.

Only the 4 x 4 transform is used.

2.1.2 H.264/AVC high-grade

In the high level, 8 × 8 transforms and I _8 × 8(8 × 8 intra prediction) are introduced. For intra-coded macroblocks, the transform size is fixed. I _16 × 16 and I _4 × 4 use a 4 × 4 transform; i _8 × 8 uses an 8 × 8 transform.

For inter-coded macroblocks, either a 4 × 4 or 8 × 8 transform may be selected. However, the transform size cannot exceed the partition size. For example, if one macroblock selects 8 × 8 partition and also selects 8 × 4 sub-mode, only 4 × 4 transform can be applied. If a macroblock selects 16 × 16, 16 × 8, 8 × 16, 8 × 8 partition and 8 × 8 sub-mode, 4 × 4 or 8 × 8 transform may be selected.

2.1.3 summaries

The mode selection is decided at macroblock level. The transform size must not be larger than the partition size.

Partition tree structure in 2.2 HEVC

In HEVC, a Coding Tree Unit (CTU), a Largest Coding Unit (LCU), is divided into Coding Units (CUs) by using a quadtree structure represented as a coding tree to accommodate various local characteristics. The decision whether to use inter-picture (temporal) or intra-picture (spatial) prediction to encode a picture region is made at the CU level. Each CU may be further divided into one, two, or four PUs depending on the PU partition type. Within one PU, the same prediction process is applied and the relevant information is transmitted to the decoder on a PU basis. After obtaining the residual block by applying a prediction process based on the PU partition type, the CU may be partitioned into Transform Units (TUs) according to another quadtree structure similar to the coding tree of the CU. One of the important features of the HEVC structure is that it has a multiple partition concept, including CU, PU and TU.

In the following, various features involved in hybrid video codec using HEVC are emphasized as follows.

1) A coding tree unit and Coding Tree Block (CTB) structure: a similar structure in HEVC is a Coding Tree Unit (CTU), which has a size selected by the encoder and may be larger than a conventional macroblock. The CTU includes a luma CTB and corresponding chroma CTB and syntax elements. The size L × L of the luminance CTB may be chosen to be L ═ 16, 32, or 64 samples, with larger sizes generally enabling better compression. HEVC then supports the partitioning of CTBs into smaller blocks using a tree structure and signaling like a quadtree.

2) Codec Unit (CU) and Codec Block (CB): the quad-tree syntax of a CTU specifies the size and location of its luma CB and chroma CB. The root of the quadtree is associated with the CTU. Therefore, the size of the luminance CTB is the maximum supported size of the luminance CB. The partitioning of the CTUs into luma CBs and chroma CBs is jointly signaled. One luma CB and typically two chroma CBs, along with associated syntax, form a Codec Unit (CU). A CTB may contain only one CU or may be partitioned to form multiple CUs, and each CU is associatively partitioned into a tree of Prediction Units (PUs) and Transform Units (TUs).

3) Prediction Unit (PU) and Prediction Block (PB): a decision is made at the CU level whether to use inter-picture or intra-picture prediction to encode a picture region. The root of the PU partition structure is at the CU level. Depending on the underlying prediction type decision, luma CB and chroma CB may be further divided in size and predicted from the Prediction Block (PB) luma and chroma Prediction Blocks (PB). HEVC supports variable PB sizes from 64 x 64 to 4 x 4 samples. Fig. 2 shows allowed PBs.

4) Transform Unit (TU) and Transform Block (TB): the prediction residual is coded using a block transform. The root of the TU tree structure is at the CU level. The luma CB residual may be the same as the luma Transform Block (TB) or may be further divided into smaller luma TBs. The same applies to chroma TB. For square TBs of sizes 4 × 4, 8 × 8, 16 × 16, and 32 × 32, integer basis functions similar to Discrete Cosine Transform (DCT) are defined. For the 4 × 4 transform of the intra-luma prediction residual, an integer transform derived from the form of a Discrete Sine Transform (DST) is optionally specified.

2.2.1 depth of quad Tree

For a given luminance CB of size M × M, the flag signals whether it is divided into four blocks of size M/2 × M/2. If further partitioning is possible, as signaled by the maximum depth of the residual quadtree indicated in the SPS, each quadrant is assigned a flag indicating whether it is partitioned into four quadrants or not. The leaf node blocks resulting from the residual quadtree are transform blocks that are further processed by transform coding. The encoder indicates the maximum and minimum luminance TB sizes it can use. When the CB size is larger than the maximum TB size, the partitioning is implicit. No partitioning is implicit when the partitioning would result in the luminance TB size being smaller than the indicated minimum value. The chroma TB size is half the luma TB size in each dimension, except for the case where the luma TB size is 4 × 4, in which case a single 4 × 4 chroma TB is used for the area covered by 4 × 4 luma TBs. In the case of an intra-picture predicted CU, the decoding samples of the nearest neighbor TBs (inside or outside the CB) are used as reference data for intra-picture prediction.

2.2.2 summary

Based on the increased quadtree depth, one CTU may be recursively divided into CUs. As shown in fig. 3A and 3B, only square CB and TB partitions are specified, where a block may be recursively divided into quadrants.

The mode selection is decided at CU level. Signaling at the PU level according to side information (side information) of the selected mode, such as motion information, intra prediction mode. The residual is signaled at TU level.

For inter coded blocks, one PU must not be larger than a CU, and for intra coded blocks, one PU equals a CU.

For inter coded blocks, TU may exceed PU, but for intra coded blocks TU equals PU.

2.3 quad Tree plus binary Tree Block Structure with larger CTU in JEM

In order to explore future video codec technologies other than HEVC, VCEG and MPEG united in 2015 to form a joint video exploration team (jfet). Thereafter, JVET adopted many new methods and imported them into a reference software called Joint Exploration Model (JEM).

2.3.1 quad Tree plus binary Tree (QTBT) Block segmentation Structure

Unlike HEVC, the QTBT structure removes the concept of multiple partition types, i.e., it removes the separation of CU, PU and TU concepts and supports greater flexibility of CU partition shapes. In the QTBT block structure, a CU may be square or rectangular. As shown in fig. 5A-5E, a Coding Tree Unit (CTU) is first partitioned by a quadtree structure. The leaf nodes of the quadtree are further partitioned by a binary tree structure. There are two partition types in binary tree partitioning, symmetric horizontal partitioning and symmetric vertical partitioning. The binary tree leaf nodes are called Codec Units (CUs) and the partitioning is used for the prediction and transform process without any further partitioning. This means that in a QTBT codec block structure, a CU, PU and TU have the same block size. In JEM, a CU sometimes includes coding and decoding blocks (CBs) of different color components, e.g., in the case of P-and B-slices of the 4:2:0 chroma format, one CU contains one luma CB and two chroma CBs, and one CU sometimes includes CBs of a single component, e.g., in the case of I-slices, one CU contains only one luma CB, or only two chroma CBs.

For the QTBT segmentation scheme, the following parameters are defined.

-CTU size: root node size of quadtree (e.g., same concept as in HEVC)

-MinQTSize: minimum allowed quadtree leaf node size

-MaxBTSize: maximum allowed binary tree root node size

-MaxBTDepth: maximum allowed binary tree depth

-MinBTSize: minimum allowed binary tree leaf node size

In one example of the QTBT segmentation structure, the CTU size is set to 128 × 128 luma samples and has two corresponding 64 × 64 chroma sample blocks, MinQTSize is set to 16 × 16, MaxBTSize is set to 64 × 64, MinBTSize (for both width and height) is set to 4 × 4, and MaxBTDepth is set to 4. Quadtree partitioning is first applied to CTUs to generate quadtree leaf nodes. The quad tree leaf nodes may have sizes from 16 × 16 (i.e., MinQTSize) to 128 × 128 (i.e., CTU size). If the leaf quadtree node is 128 x 128, it will not be further partitioned by the binary tree because its size exceeds the MaxBTSize (i.e., 64 x 64). Otherwise, the leaf quadtree nodes may be further partitioned by the binary tree. Thus, a leaf node of the quadtree is also the root node of the binary tree, and its binary tree depth is 0. When the binary tree depth reaches MaxBTDepth (i.e., 4), no further partitioning is considered. When the width of the binary tree node is equal to MinBTSize (i.e., 4), no further horizontal partitioning is considered. Similarly, when the height of the binary tree node is equal to MinBTSize, no further vertical partitioning is considered. The leaf nodes of the binary tree are further processed by a prediction and transformation process without any further partitioning. In JEM, the maximum CTU size is 256 × 256 luma samples.

Fig. 4A shows an example of block segmentation using QTBT and fig. 4B shows the corresponding tree representation. The solid lines indicate quad-tree partitions and the dashed lines indicate binary tree partitions. In each partition (i.e., non-leaf) node of the binary tree, a flag is signaled to indicate which partition type (i.e., horizontal or vertical) is used, with 0 indicating horizontal partitioning and 1 indicating vertical partitioning. For a quadtree partition, there is no need to indicate the partition type, since a quadtree partition always partitions a block horizontally and vertically to generate 4 equally sized sub-blocks.

Furthermore, the QTBT scheme supports the ability for luminance and chrominance to have separate QTBT structures. Currently, luminance CTB and chrominance CTB in one CTU share the same QTBT structure for P-and B-stripes. However, for an I-slice, luma CTB is partitioned into CUs by a QTBT structure and chroma CTB is partitioned into chroma CUs by another QTBT structure. This means that a CU in an I-slice includes either a coding block for a luma component or a coding block for two chroma components, and a CU in a P-slice or a B-slice includes coding blocks for all three color components.

In HEVC, inter prediction of small blocks is limited to reduce motion compensated memory access, such as 4 × 8 and 8 × 4 blocks that do not support bi-prediction and 4 × 4 blocks that do not support inter prediction. In the QTBT of JEM, these limitations are removed.

2.3.2 summary of QTBT

Based on the increased depth of the quadtree or binary tree, one CTU may be recursively divided into CUs. Square and rectangular CBs (with width/height equal to 1/2 or 2) are specified.

The mode selection is decided at CU level. PU and TU are always equal to CU.

2.4 VVC Multi-class Tree

2.4.1 proposal

According to the proposal, tree types other than quadtrees and binary trees are supported. In this embodiment, as shown in fig. 5D and 5E, two other kinds of Ternary Tree (TT) partitions, i.e., horizontal and vertical center-side ternary trees, are introduced.

There are two levels (level) of trees, area trees (quadtree) and prediction trees (binary or ternary). The CTU is first partitioned by a Region Tree (RT). The RT leaves may be further partitioned with a Prediction Tree (PT). PT leaves may be further partitioned with PT until a maximum PT depth is reached. The PT leaf is a basic codec unit. For convenience, it is still referred to as CU. A CU cannot be further partitioned. Both prediction and transformation are applied to the CU in the same way as JEM. The entire segmented structure is named "multi-type tree".

Split trees in 2.4.2 VVC

Several syntax elements are defined/signaled in the VVC to indicate the use of different partition trees.

For example:

-a maximum multi-type tree depth maxMttDepth with offset,

maximum binary tree size maxBtSize

–MinBtSizeY

Maximum binary tree size maxBtSize

Maximum trifurcate tree size maxTtSize

2.4.2.1 use restrictions of BT and TT

2.4.2.1.1 variable definition

log2_ ctu _ size _ minus2, log2_ min _ luma _ coding _ block _ size _ minus2 may be signaled in the SPS.

log2_ CTU _ size _ minus2 plus 2 specifies the luma codec tree block size for each CTU.

log2_ min _ luma _ coding _ block _ size _ minus2 plus 2 specifies the minimum luma codec block size.

The variables CtbLog2SizeY, CtbSizeY, MinCbLog2SizeY, MinCbSizeY, MinTbLog2SizeY, MaxTbLog2SizeY, MinTbSizeY, MaxTbSizeY, PicWidthInCtbsY, PicHeightInCtbsY, PicSizentInCtbsY, PicWithInInMinCbsY, PicheightInMinCbsY, PiczizentInSamplesY, PicwidthInSamplesC, and PicHeightInSamplesC are derived as follows:

CtbLog2SizeY=log2_ctu_size_minus2+2

CtbSizeY=1<<CtbLog2SizeY

MinCbLog2SizeY=log2_min_luma_coding_block_size_minus2+2

MinCbSizeY=1<<MinCbLog2SizeY

MinTbLog2SizeY=2

MaxTbLog2SizeY=6

MinTbSizeY=1<<MinTbLog2SizeY

MaxTbSizeY=1<<MaxTbLog2SizeY

PicWidthInCtbsY=Ceil(pic_width_in_luma_samples÷CtbSizeY)

PicHeightInCtbsY=Ceil(pic_height_in_luma_samples÷CtbSizeY)

PicSizeInCtbsY=PicWidthInCtbsY*PicHeightInCtbsY

PicWidthInMinCbsY=pic_width_in_luma_samples/MinCbSizeY

PicHeightInMinCbsY=pic_height_in_luma_samples/MinCbSizeY

PicSizeInMinCbsY=PicWidthInMinCbsY*PicHeightInMinCbsY

PicSizeInSamplesY=pic_width_in_luma_samples*pic_height_in_luma_sam ples

PicWidthInSamplesC=pic_width_in_luma_samples/SubWidthC

PicHeightInSamplesC=pic_height_in_luma_samples/SubHeightC

2.4.2.1.2 allowed binary partitioning process

The inputs to this process are:

-a binary partitioning mode btSplit,

-a codec block width cbWidth,

a codec block height cbHeight,

-the position of the top left luma samples of the considered codec block relative to the top left luma samples of the picture (x0, y0),

-a multi-type tree depth mttDepth,

-a maximum multi-type tree depth maxMttDepth with offset,

-a maximum binary tree size maxBtSize,

-the split index partIdx.

The output of this process is the variable allowbtbsplit.

Table 1 is based on the specification of parallelTtSplit and cbSize by btSplit.

The variables parallelTtSplit and cbSize were derived as specified in table 1.

For different embodiments, the variable allowstplll (e.g., a partition variable with boolean true or false values) may be based on or based on different conditions. Using these conditions, the value of this variable can be derived as follows:

-allowbtssplit is set equal to FALSE if one or more of the following conditions is true:

// according to the allowed BT Block size and the maximum allowed MTT depth Condition

-cbSize less than or equal to MinBtSizeY

-cbWidth greater than maxBtSize

-cbHeight greater than maxBtSize

-mttDepth greater than or equal to maxMttDepth

Else, if all of the following conditions are true, allowBtSplit is set equal to FALSE

V/according to picture boundary (bottom picture boundary and bottom right picture boundary have no vertical BT) condition

-btSplit equals SPLIT _ BT _ VER

-y 0+ cbHeight is greater than pic _ height _ in _ luma _ samples

Else, if all of the following conditions are true, allowBtSplit is set equal to FALSE

// according to picture boundary (bottom right picture boundary has no horizontal BT) condition

-btSplit equals SPLIT _ BT _ HOR

-x 0+ cbWidth is greater than pic _ width _ in _ luma _ samples

-y 0+ cbHeight less than or equal to pic _ height _ in _ luma _ samples

Else, allowbtbsplit is set equal to FALSE if all of the following conditions are true:

// determine TT split index 1 (middle split) based on the parent TT split direction (e.g., for vertical TT, middle split does not have vertical BT; for horizontal TT, middle split does not have horizontal BT) condition

-mttDepth greater than 0

-partIdx equals 1

-MttSplitMode [ x0] [ y0] [ mttDepth-1] equals paralleltTtSplit

Else, if all of the following conditions are true, allowBtSplit is set equal to FALSE

// according to the maximum allowed transform size (e.g., when MaxTbSizeY is equal to 64, there is no vertical BT for 64 x 128; there is no horizontal BT for 128 x 64) condition

-btSplit equals SPLIT _ BT _ VER

-cbWidth less than or equal to MaxTbSizeY

-cbHeight greater than MaxTbSizeY

Else, if all of the following conditions are true, allowBtSplit is set equal to FALSE

-btSplit equals SPLIT _ BT _ HOR

-cbWidth greater than MaxTbSizeY

-cbHeight less than or equal to MaxTbSizeY

-else, allowssplit is set equal to TRUE.

2.4.2.1.3 allowed ternary partitioning process

The inputs to this process are:

-a ternary partitioning pattern ttSplit,

-a codec block width cbWidth,

a codec block height cbHeight,

-the position of the top left luma samples of the considered codec block relative to the top left luma samples of the picture (x0, y0),

-a multi-type tree depth mttDepth,

-a maximum multi-type tree depth maxMttDepth with offset,

maximum binary tree size maxTtSize.

The output of this process is the partitioning variable allowtsplit (e.g., it takes a boolean true or false value). The value of the partitioning variable allowtsplitt may be based on or based on different conditions. Using these conditions, the value of this variable can be derived as follows:

TABLE 2 specification of cbSize based on ttSplit

The variable cbSize was derived as specified in table 2.

The variable allowtsplit is derived as follows:

-allowttssplit is set equal to FALSE if one or more of the following conditions is true:

// according to the allowed TT block size and the maximum allowed transform size condition

-cbsize less than or equal to 2 MinTtSizeY

-cbWidth greater than Min (MaxTbSizeY, maxTtSize)

-cbheight greater than Min (MaxTbSizeY, maxTtSize)

// according to the maximum allowable MTT depth condition

-mttDepth greater than or equal to maxMttDepth

// according to whether it is at a picture boundary condition

-x 0+ cbWidth is greater than pic _ width _ in _ luma _ samples

-y 0+ cbHeight is greater than pic _ height _ in _ luma _ samples

-else allowtsplit is set equal to TRUE.

2.4.2.1.4 semantics

VVC specification sub-clause 7.4.5.5 multi-type tree semantics

The variables allowslitbtver, allowslitbthor, allowslitttver, allowslittthor are derived as follows:

the variables maxBtSize, maxTtSize and maxMttDepth are derived as follows:

-maxBtSize, maxTtSize and maxMttDepth are set equal to maxBtSizeC, maxTtSizeC and maxMttDepthC + depthOffset, respectively, if treeType is equal to DUAL _ TREE _ CHROMA.

-otherwise, maxBtSize, maxTtSize and maxMttDepth are set equal to maxBtSizeY, maxTtSizeY and maxMttDepthY + depthOffset, respectively.

As specified in clause 2.4.2.1.1, the allowed binary partition procedure is invoked with the binary partition pattern SPLIT _ BT _ VER, codec block width cbWidth, codec block height cbHeight, position (x0, y0), current multi-type tree depth mttDepth, maximum multi-type tree depth with offset maxMttDepth, maximum binary tree size maxBtSize, and current partition index partIdx as inputs, and the output is assigned to allowssplittbtver.

As specified in clause 2.4.2.1.1, the allowed binary partition procedure is invoked with the binary partition mode SPLIT _ BT _ HOR, codec block height cbHeight, codec block width cbWidth, position (x0, y0), current multi-type tree depth mttDepth, maximum multi-type tree depth with offset maxMttDepth, maximum binary tree size maxBtSize, and current partition index partIdx as inputs, and the output is assigned to allowslitbthor.

As specified in clause 2.4.2.1.3, the allowed ternary partition procedure is invoked with ternary partition mode SPLIT _ TT _ VER, codec block width cbWidth, codec block height cbHeight, position (x0, y0), current multi-type tree depth mttDepth, maximum multi-type tree depth with offset maxMttDepth and maximum ternary tree size maxTtSize as inputs, and assigns the output to allowslitttver.

As specified in clause 2.4.2.1.3, the allowed triple-SPLIT procedure is invoked with the triple-SPLIT mode SPLIT _ TT _ HOR, codec block height cbHeight, codec block width cbWidth, position (x0, y0), current multi-type tree depth mttDepth, maximum multi-type tree depth with offset maxMttDepth and maximum ternary tree size maxTtSize as inputs, and assigns the output to allowslittthor.

2.4.3. Sub-block transformations

For inter-predicted CUs with CU cbf equal to 1, CU sbt flag may be signaled to indicate whether to decode the entire residual block or a sub-portion of the residual block. In the former case, inter-frame multiple transform selection (MTS, aka EMT) information is further parsed to determine the transform type of the CU. In the latter case, a portion of the residual block is coded with the inferred adaptive transform and another portion of the residual block is zeroed out.

2.4.3.1. Sub-block TU stitching

When the SBT is used for an inter-frame CU, the SBT type and SBT location information are further decoded from the bitstream. As shown in FIG. 6, there are two SBT types and two SBT locations. For SBT-V (or SBT-H), TU width (or height) may be equal to half of CU width (or height) or 1/4 of CU width (or height), signaled by another flag, resulting in a 2:2 partition or a 1:3/3:1 partition. The 2:2 partition is similar to a Binary Tree (BT) partition, while the 1:3/3:1 partition is similar to an Asymmetric Binary Tree (ABT) partition. If one side of a CU in a luminance sample is 8, then 1:3/3:1 partitioning along that side is not allowed. Therefore, there are a maximum of 8 SBT modes for a CU.

SBT-V and SBT-H are allowed for CUs that are neither greater in width nor height than maxSbtSize. maxSbtSize is signaled in the SPS. For HD and 4K sequences, the encoder sets maxSbtSize to 64; for other smaller resolution sequences, maxSbtSize is set to 32.

2.5. Transform type of subblocks

In JFET-M0140, the position dependent transform is applied to the luminance transform blocks in SBT-V and SBT-H (chroma TB always uses DCT-2). The two positions of SBT-H and SBT-V are associated with different core transformations. More specifically, the horizontal and vertical transforms of each SBT location are specified in fig. 1. For example, the horizontal and vertical transforms for SBT-V position 0 are DCT-8 and DST-7, respectively. When one side of the residual TU is greater than 32, the corresponding transform is set to DCT-2. Thus, the sub-block transform union specifies TU concatenation, cbf and horizontal and vertical transforms of the residual block, which may be considered a syntax shortcut for the case where the main residual part of the block is on one side of the block.

For inter blocks, a summary of parts is taken from SBT:

-1-d division (symmetrical or 1/4)

-if symmetric, which half is signaled; other uses 1/4

-transform type of inferred residual TU

3. Problem(s)

The current design of the partition tree constraint is based on the assumption of a full block transform and general test conditions. It may have the following problems:

i. whether partitioning is enabled or disabled according to a partition structure depends on the maximum allowed transform size. The motivation for enabling/disabling a split architecture is mainly due to hardware implementation considerations, i.e., larger blocks (such as 128 x 128) are difficult to implement. In multifunctional video codec (VVC), the concept of VPDU (virtual pipeline data unit) is used, in which the maximum allowed blocks for motion compensation are defined. Under currently common test conditions, the VPDU size is equal to the maximum allowed transform size. However, the maximum allowed transform size is adaptively signaled in a high level syntax element (such as a sequence parameter).

Assuming that the maximum allowed transform size is 64 x 64, vertical BT is not allowed if one codec block is 64 x 128. However, since the sub-block transform is adopted, in the case where the sub-block transform size is set to 32 × 64, the vertical BT can still be applied.

How to handle the boundaries of blocks coded with sub-block transforms has not been addressed in the art.

4. Example techniques and embodiments

The detailed embodiments described below should be considered as examples to explain the general concept. These examples should not be construed narrowly. Furthermore, these embodiments may be combined in any manner.

1. Instead of using the maximum allowed transform size, it may be proposed that whether a split tree is allowed or not may depend on the VPDU size.

a. In one example, vertical BT is not allowed if the block width is not greater than the VPDU width and the block height is greater than the VPDU height.

b. In one example, if the block width is greater than the VPDU width and the block height is not greater than the VPDU height, then horizontal BT is not allowed.

c. Similarly, for TT partitioning, it may not be allowed if one (or some \ or all) of the following conditions are true:

-cbSize less than or equal to 2 MinTtSizeY

-cbWidth greater than Min (VPDUSizeX, maxTtSize)

-cbHeight greater than Min (VPDUSizeY, maxTtSize)

Where MinTtSizeY and maxTtSize represent the minimum and maximum allowed TT sizes, respectively; cbWidth and cbHeight denote the width and height of the codec block, respectively, and VPDUSizeX and VPDUSizeY denote the width and height of the VPDU, respectively.

d. In one example, the VPDU height is equal to the VPDU width.

i. In one example, only one of the VPDU height and width is signaled from the encoder to the decoder. The other is set equal to the one signaled.

in an alternative example, the VPDU height may not be equal to the VPDU width.

a) In one example, both the height and width of the VPDU are signaled from the encoder to the decoder.

2. Instead of using the maximum allowed transform size, it may be proposed that whether a partitioning tree is allowed or not may depend on the maximum allowed sub-block transform size of the partitioning tree.

a. In one example, vertical BT may be allowed even if the block width is not greater than the maximum allowed transform width and the block height is greater than the maximum allowed transform height.

i. Alternatively, in addition, the sub-block transform may be applied to the above case, i.e., the transform is applied to a portion of the sub-blocks generated due to the vertical BT.

in one example, vertical BT may be allowed if the block width is not greater than the maximum allowed transform width and the block height is greater than the maximum allowed transform height, but the sub-blocks resulting from the vertical BT partitioning support at least one sub-block transform size.

in one example, vertical BT may be allowed if the block width is not greater than the maximum allowed transform width and the block height is greater than the maximum allowed transform height, but the block height is not greater than the maximum allowed sub-block transform height.

Alternatively, in addition, vertical BT may not be allowed if the block width is not greater than the maximum allowed sub-block transform width and the block height is greater than the maximum allowed sub-block transform height.

a) In one example, the specified maximum allowed sub-block transform width/height is for vertical BT (V-BT).

v. in one example, the maximum allowed sub-block transform width of V-BT may be defined as half or quarter of the maximum allowed transform width.

In one example, the maximum allowed sub-block transform height of the V-BT may be defined as half or a quarter of the maximum allowed transform height, or greater than the maximum allowed transform height.

b. In one example, horizontal BT may be allowed even if the block width is greater than the maximum allowed transform width and the block height is not greater than the maximum allowed transform height.

i. Alternatively, in addition, the sub-block transform may be applied to the above case, i.e., the transform is applied to a portion of the sub-blocks generated due to the vertical BT.

Alternatively, furthermore, if the block width is larger than the maximum allowed sub-block transform width and the block height is not larger than the maximum allowed sub-block transform height, then the level BT is not allowed.

a) In one example, the specified maximum allowed sub-block transform width/height is for horizontal BT (H-BT).

in one example, the maximum allowed sub-block transform width of V-BT may be defined as half or a quarter of the maximum allowed transform width.

in one example, the maximum allowed sub-block transform height of V-BT may be defined as half or a quarter of the maximum allowed transform height.

c. In one example, setting Tx ═ maximum allowed transform width, maximum allowed subblock width, Ty ═ maximum allowed transform height, maximum allowed subblock height, then it is proposed that whether partitioning is allowed may depend on Tx and/or Ty.

i. In one example, vertical BT may not be allowed if the block width is not greater than Tx and the block height is greater than Ty.

if the block width is greater than Tx and the block height is not greater than Ty, then horizontal BT is not allowed.

d. Alternatively, such a method may be applied when, in addition, a sub-block transform technique is enabled, such as the SPS flag being true.

3. Whether a partition tree is allowed or not may depend on both the VPDU size and the maximum allowed sub-block transform size.

a. Alternatively, whether or not one partition tree is allowed may depend on both the VPDU size and the maximum allowed sub-block transform size.

b. In one example, if the block width is not greater than f (VPDU width, maximum allowed transform width) and the block height is greater than f (VPDU height, maximum allowed transform height), then vertical BT is not allowed.

c. In one example, if the block width is greater than f (VPDU width, maximum allowed transform width) and the block height is not greater than f (VPDU height, maximum allowed transform height), then level BT is not allowed.

d. In one example, the function f (x, y) returns the larger of x and y.

e. In one example, the function f (x, y) returns the smaller of x and y.

f. In one example, the VPDU height is equal to the VPDU width.

g. In one example, the maximum allowed transform width is equal to the maximum allowed transform height.

4. The above-mentioned VPDU size (including width and height) may be predefined, for example 64 × 64.

a. Alternatively, it may be signaled in SPS/VPS/PPS/sequence header/picture header/slice group header/slice header/CTU row/region/other types of video processing data units.

5. It is proposed how to apply a filtering process, e.g. deblocking filtering, SAO and/or ALF may depend on the sub-block transform size.

a. In one example, the boundaries of the sub-block transforms may be filtered in a deblocking filtering process.

b. In one example, the decision of deblocking filtering (such as whether to filter or not, whether to filter strongly or weakly, or which filter or how to apply clipping to the filtered samples) may depend on whether the samples are located at sub-block transform boundaries.

5. Additional example embodiments

5.1.1.1.1 allowed binary partitioning process

The input of the process is as follows:

-a binary partitioning mode btSplit,

-a codec block width cbWidth,

a codec block height cbHeight,

-the position of the top left luma samples of the considered codec block relative to the top left luma samples of the picture (x0, y0),

-a multi-type tree depth mttDepth,

-a maximum multi-type tree depth maxMttDepth with offset,

-a maximum binary tree size maxBtSi ze,

-the split index partIdx.

The output of this process is the variable allowbtssplit (e.g., boolean variable that takes on the value true or false).

Otherwise, allowbtssplit is set equal to FALSE if all of the following conditions are true:

-btSplit equals SPLIT _ BT _ VER

-cbWidth less than or equal to VPDUSizeY

-cbHeight greater than VPDUSizeY

Otherwise, allowBtSplit is set equal to FALSE if all of the following conditions are true

-btSplit equals SPLIT _ BT _ HOR

-cbWidth greater than VPDUSizeY

-cbHeight less than or equal to VPDUSizeY

5.1.1.1.2 allowed ternary partitioning process

The inputs to this process are:

-a ternary partitioning pattern ttSplit,

-a codec block width cbWidth,

a codec block height cbHeight,

-the position of the top left luma samples of the considered codec block relative to the top left luma samples of the picture (x0, y0),

-multi-type tree depth mttDepth

-a maximum multi-type tree depth maxMttDepth with offset,

maximum binary tree size maxTtSize.

The output of this process is the variable allowttssplit.

TABLE 3 specification of cbSize based on ttSplit

The variable cbSize may be derived based on the information specified in table 3.

The variable allowtsplitt may be derived based on or according to various conditions:

-allowttssplit is set equal to FALSE if one or more of the following conditions is true:

// according to the allowed TT block size and the maximum allowed transform size condition

-cbSize less than or equal to 2 MinTtSizeY

-cbWidth greater than Min (VPDUSizeX, maxTtSize)

-cbHeight greater than Min (VPDUSizeY, maxTtSize)

// according to the maximum allowable MTT depth condition

-mttDepth greater than or equal to maxMttDepth

// according to whether it is at a picture boundary condition

-x 0+ cbWidth is greater than pic _ width _ in _ luma _ samples

-y 0+ cbHeight is greater than pic _ height _ in _ luma _ samples

-else allowtsplit is set equal to TRUE.

6. Example embodiments of the disclosed technology

Fig. 7 is a block diagram of a video processing device 700. The apparatus 700 may be used to implement one or more of the methods described herein. The apparatus 700 may be embodied in a smartphone, tablet, computer, internet of things (IOT) receiver, or the like. The apparatus 700 may include one or more processors 702, one or more memories 704, and video processing hardware 706. The processor(s) 702 may be configured to implement one or more of the methods described herein. Memory(s) 704 may be used to store data and code for implementing the methods and techniques described herein. The video processing hardware 706 may be used to implement some of the techniques described herein in hardware circuitry and may be partially or completely part of the processor 702 (e.g., a graphics processor core GPU or other signal processing circuitry).

Herein, the term "video processing" may refer to video encoding, video decoding, video compression, or video decompression. For example, a video compression algorithm may be applied during the conversion from a pixel representation of the video to a corresponding bitstream representation, and vice versa. The bitstream representation of the current video block may, for example, correspond to bits in the bitstream that are co-located or distributed in different places, as defined by the syntax. For example, a macroblock may be encoded from transformed and codec error residual values, and may also be encoded using bits in the header and other fields in the bitstream.

It should be appreciated that the disclosed methods and techniques would benefit video encoder and/or decoder embodiments incorporated in video processing devices, such as smart phones, laptops, desktops, and the like, by allowing the use of the techniques disclosed herein.

Fig. 8 is a flow diagram of an example method 800 of video processing. Method 800 includes, at 810, calculating (based at least in part on a size of a Virtual Pipeline Data Unit (VPDU) and one or more parameters of a partition tree) a value of a partition variable associated with a video block for converting between the video block of visual media data and a corresponding bitstream of the video block, wherein the size of the VPDU includes a height and a width. Method 800 further includes, at 820, in response to determining that the value of the partition variable is boolean true, allowing the video block to be partitioned according to a partition tree. Method 800 further includes, at 830, disallowing partitioning the video block in response to determining that the value of the partition variable is boolean false. The term video block as used herein may apply to any form of media block including, but not limited to, codec blocks, prediction blocks, macroblocks, and the like. Further, in various embodiments, these blocks may be intra blocks or inter blocks.

Fig. 9 is a flow diagram of an example method 900 of video processing. Method 900 includes, at 910, determining whether a partition type associated with a partition tree is allowed or disallowed for a video block based at least in part on a Virtual Pipeline Data Unit (VPDU) size, wherein the VPDU size includes a VPDU height and a VPDU width, wherein, in response to a partition type not being allowed, an indication of the partition type is not present in a bitstream.

Fig. 10 is a flow diagram of an example method 1000 of video processing. Method 1000 includes, at 1010, determining whether a partition type associated with a partition tree is allowed or disallowed for a video block based at least in part on a maximum allowed sub-block transform size, wherein the maximum allowed sub-block transform size includes a maximum allowed sub-block transform height and a maximum allowed sub-block transform width, wherein, in response to disallowing the partition type, an indication of the partition type is not present in the bitstream.

Fig. 11 is a flow diagram of an example method 1100 of video processing. Method 1100 includes, at 1110, determining whether a partition type associated with a partition tree is allowed or disallowed for a video block based at least in part on a maximum allowed transform size and a Virtual Pipeline Data Unit (VPDU) size, or based at least in part on a maximum allowed sub-block transform size and a Virtual Pipeline Data Unit (VPDU) size, wherein the VPDU size includes a VPDU height and a VPDU width, wherein the maximum allowed transform size includes the maximum allowed transform height and the maximum allowed transform width, wherein, in response to the disallowed partition type, an indication of the partition type is not present in the bitstream.

Fig. 12 is a flow diagram of an example method 1200 of video processing. The method 1200 includes, at 1210, determining whether a sample point is located at a sub-block transform boundary, with a sub-block transform applied; at 1220, if the sample point is determined to be at a sub-block transform boundary, a deblocking filtering process is applied; and at 1230, performing a conversion between the video and the bitstream representation of the video.

Fig. 13 is a flow diagram of an example method 1300 of video processing. Method 1300 includes, at 1310, determining how to apply a filtering process to a video block based on whether a sub-block transform is applied; at 1320, performing a filtering process based on the determination; and at 1330, a conversion between the video block and the bitstream representation of the video is performed.

Some embodiments may be described using the following clause-based format.

1. A method of video processing, comprising:

determining whether a sampling point is located at a sub-block transform boundary in case of applying the sub-block transform;

if the sampling point is determined to be positioned at the sub-block transformation boundary, the deblocking filtering processing is applied; and

a conversion between video and a bit stream representation of the video is performed.

2. The method of clause 1, further comprising: determining to apply an emphasis block filter based on the samples being located at the sub-block transform boundary.

3. The method of clause 1, further comprising: determining to apply a weak deblocking filter based on samples located at sub-block transform boundaries.

4. The method of clause 1, further comprising: the type of filter to be applied is determined based on the samples being located at the sub-block transform boundaries.

5. The method of clause 1, further comprising: it is determined how clipping is applied to the filtered samples.

6. A method of video processing, comprising:

determining how to apply the filtering process of the video block based on whether to apply the sub-block transform;

performing the filtering process based on the determination; and

a conversion between video blocks and a bitstream representation of the video is performed.

7. The method of clause 6, wherein the filtering process comprises at least one of: deblocking filtering, Sample Adaptive Offset (SAO) filtering, or Adaptive Loop Filtering (ALF) processes.

8. The method of clause 7, wherein the boundaries of the sub-block transforms are considered as transform boundaries in the deblocking filtering process.

9. The method of clause 8, wherein if the sub-block transform is applied, at least the boundaries of the sub-block transform are filtered in a deblocking filtering process.

10. The method of any of clauses 1-9, when a sub-block transform is applied to a video block, the video block is divided into more than one sub-block, and only one of the sub-blocks has a non-zero transform coefficient, while other sub-blocks do not have the non-zero transform coefficient; and for said only one sub-block, only the transform coefficients are signaled.

11. A video decoding apparatus comprising a processor configured to implement the method recited in one or more of clauses 1-10.

12. A video encoding apparatus comprising a processor configured to implement the method recited in one or more of clauses 1-10.

13. A computer program product having computer code stored thereon, which when executed by a processor, causes the processor to carry out the method recited in any one of clauses 1 to 10.

14. An apparatus in a video system comprising a processor and a non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to implement the method of any of clauses 1 to 10.

The disclosed and other solutions, examples, embodiments, modules, and functional operations described herein may be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed herein and their structural equivalents, or in combinations of one or more of them. The disclosed and other embodiments may be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium for execution by, or to control the operation of, data processing apparatus. The computer readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a combination of substances which affect a machine-readable propagated signal, or a combination of one or more of them. The term "data processing apparatus" encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. A propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus.

A computer program (also known as a program, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a document that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single document dedicated to the program in question, or in multiple coordinated documents (e.g., documents that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be run on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.

The processes and logic flows described herein can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).

Processors suitable for the operation of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

While this patent document contains many specifics, these should not be construed as limitations on the scope of any subject matter or of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of particular technologies. Certain features that are described in this patent document in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Furthermore, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. Moreover, the separation of various system components in the embodiments described in this patent document should not be understood as requiring such separation in all embodiments.

Only a few embodiments and examples are described and other embodiments, enhancements and variations can be made based on what is described and illustrated in this patent document.

29页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:视频码流中自适应图片尺寸的信令

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类