WO2018004317A1 - 고해상도 영상 스트리밍을 위한 영상 비트스트림 생성방법 및 장치 - Google Patents

고해상도 영상 스트리밍을 위한 영상 비트스트림 생성방법 및 장치 Download PDF

Info

Publication number
WO2018004317A1
WO2018004317A1 PCT/KR2017/007028 KR2017007028W WO2018004317A1 WO 2018004317 A1 WO2018004317 A1 WO 2018004317A1 KR 2017007028 W KR2017007028 W KR 2017007028W WO 2018004317 A1 WO2018004317 A1 WO 2018004317A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
tile
encoded data
region
important
Prior art date
Application number
PCT/KR2017/007028
Other languages
English (en)
French (fr)
Inventor
임정연
신재섭
류성걸
손세훈
김형덕
이선영
Original Assignee
에스케이텔레콤 주식회사
주식회사 픽스트리
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이텔레콤 주식회사, 주식회사 픽스트리 filed Critical 에스케이텔레콤 주식회사
Priority to CN201780040839.XA priority Critical patent/CN109417642B/zh
Priority to US16/313,623 priority patent/US10743000B2/en
Priority claimed from KR1020170084093A external-priority patent/KR101915037B1/ko
Publication of WO2018004317A1 publication Critical patent/WO2018004317A1/ko
Priority to US16/506,217 priority patent/US10893278B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2383Channel coding or modulation of digital bit-stream, e.g. QPSK modulation

Definitions

  • An embodiment according to the present invention relates to a method and an apparatus for generating an image bitstream by compressing an image with a differential bit rate for each region in order to efficiently stream a large amount of high resolution image content.
  • a coding apparatus encodes video content so as to correspond to a requested bit rate for each service in a conventional video content streaming technology.
  • Network server The streaming server prepares a plurality of files encoded with different qualities having different bit rates for one image content in order to transmit the image content appropriately for a user terminal device and a network environment.
  • the streaming server streams a file of a bit rate requested differently according to a variable user environment at a predetermined time interval to the user terminal device.
  • the user terminal device is a bitstream suitable for a user environment among 2 Mbps of HD (High Definition) class, 1 Mbps of SD (Standard Definition) class, and 0.5 Mbps of LD (Low Definition) class. Can be received and played in 1 second increments.
  • Embodiments of the present invention have a main object to provide a method and apparatus for generating an image bitstream by encoding a single image in different quality for each region in order to efficiently transmit a large amount of high resolution image content.
  • an image extracting and merging device for high resolution video streaming includes: an encoded data receiver configured to receive a plurality of encoded data encoded at different bit rates with respect to an input image; And encoding a plurality of regions of the input image according to their importance in the input image, and having different bit rates corresponding to the importance of each of the regions of the plurality of encoded data for each of the plurality of regions. And an image generator for extracting data of a corresponding region from the data and merging the encoded data extracted corresponding to the plurality of regions to each other to generate a mixed image stream.
  • a plurality of data includes data encoded in different bit rates for each of the plurality of areas according to the importance of a plurality of areas constituting an input video.
  • a multi-channel stream receiver for receiving two mixed video streams;
  • a bitstream selecting unit which acquires important position information on the input image, selects a mixed image stream corresponding to the important position information among the plurality of mixed image streams, and transmits the selected mixed image stream;
  • a terminal request receiving unit for receiving the important location information from the user terminal device.
  • a method of generating an image bitstream for high resolution video streaming includes the steps of: receiving a plurality of encoded data encoded with different bit rates with respect to an input image; Dividing a plurality of areas of the input image according to their importance in the input image; Extracting data of a corresponding region from encoded data having a different bit rate corresponding to the importance of each of the regions among the plurality of encoded data for each of the plurality of regions; And generating a mixed video stream by merging the extracted encoded data corresponding to the plurality of regions with each other.
  • a method for generating a video bitstream for high resolution video streaming data encoded in different bit rates for each of the plurality of areas according to the importance of the plurality of areas constituting the input image are included. Obtaining a plurality of mixed video streams; Obtaining important location information of the input image; And selecting a mixed video stream corresponding to the important position information among the plurality of mixed video streams, and transmitting the selected mixed video stream.
  • an area watched by a user based on a user's viewpoint of a user terminal (eg, VR) ( By dividing the bit rate of the area within the field of view) and the area not viewed by the user (outside field), it is possible to reduce the amount of data and minimize the buffering of the area played in the background.
  • a user terminal eg, VR
  • an area corresponding to the user's field of view is changed from a low quality image.
  • the level of performance (or specification) required for hardware for providing high definition image content such as VR content may be lowered.
  • FIG. 1 is a schematic structural diagram of a video bitstream generation system according to an embodiment of the present invention.
  • FIG. 2A illustrates a case in which it is possible to refer to another tile in the same picture when inter prediction of one tile
  • FIG. 2B illustrates a case in which the corresponding tile in the same picture is interlinked when one tile is inter predicted.
  • FIG. 10 is a diagram illustrating a case in which only other tiles in a specific region to which the data belongs can be referred to.
  • FIG. 3 is a diagram illustrating a tile index and a display area in a tile set included in one image.
  • FIG. 4 is a block diagram of an image extracting and merging device according to an embodiment of the present invention.
  • 5 (a) and 5 (b) are diagrams illustrating a case in which all tiles in an image are independently encoded without referring to adjacent tiles in order to freely extract and merge tiles based on important position information.
  • 6A to 6D are conceptual views of an image bitstream structure according to an embodiment of the present invention based on the encoded data of FIGS. 5A and 5B.
  • FIGS. 7A to 7D are conceptual diagrams of an image bitstream structure according to another embodiment of the present invention based on the encoded data of FIGS. 5A and 5B.
  • 8 (a) and 8 (b) show a case where a critical area is set using one or more object positions detected by an input image source. As described above, a plurality of important areas may be set according to the detected number of objects.
  • 9A to 9D are conceptual views of encoded data for an input video source according to another embodiment of the present invention.
  • 10A to 10D are conceptual views of a mixed video stream structure according to an embodiment of the present invention based on the encoded data of FIGS. 9A to 9D.
  • 11A to 11D are conceptual views of a mixed video stream structure according to another embodiment of the present invention based on the encoded data of FIGS. 9A to 9D.
  • 12A to 12D are conceptual diagrams of a mixed video stream structure according to another embodiment of the present invention.
  • FIG. 13 is a diagram illustrating a process of generating high quality encoded data composed of independent tiles and high quality encoded data composed of non-independent tiles, and extracting and merging an image using the two encoded data.
  • FIG. 14 is a diagram illustrating that a tile configuration of a merged mixed video stream is extracted from encoded data 2 composed of non-independent tiles, and all other tiles are extracted from encoded data 1 composed of independent tiles.
  • FIG. 15A illustrates an image composed of independent tiles
  • FIG. 15B illustrates an image composed of non-independent tiles.
  • FIG. 16A is a diagram illustrating a view point region (or display region) on a 360 ° sphere
  • FIG. 16B is a diagram illustrating coordinates of a 360 ° sphere.
  • FIG. 17A illustrates a display area on a sphere
  • FIG. 17B illustrates an area in an equi-rectangular image corresponding to FIG. 17A.
  • FIG. 18 is a diagram illustrating an image displayed on an equi-rectangular and a tile included in the image.
  • 19 is a block diagram showing a stream delivery device 140 according to the present embodiment.
  • 20 is a block diagram showing the user terminal device 150 according to the present embodiment.
  • 21 is a flowchart of a method of generating a mixed video stream according to an embodiment of the present invention.
  • 22 is a flowchart of a mixed video stream generating method according to another embodiment of the present invention.
  • 'unit' and 'module' refer to a unit for processing at least one function or operation, which may be implemented by hardware or software or a combination of hardware and software. .
  • FIG. 1 is a schematic structural diagram of a video bitstream generation system according to an embodiment of the present invention.
  • an image bitstream generation system 100 may include an image stitching apparatus 110, an encoding apparatus 120, an image extracting and merging apparatus 130, a stream delivery apparatus 140, The user terminal 150 is included.
  • FIG. 1 illustrates that the image stitching apparatus 110, the encoding apparatus 120, the image extracting merging apparatus 130, and the stream delivery apparatus 140 exist as separate apparatuses, the present invention is not limited thereto.
  • One integrated device including all the functions or a plurality of some functions may be implemented in one integrated form.
  • the image stitching apparatus 110 receives a plurality of images output from a plurality of cameras, synchronizes the plurality of images with each other, stitches them into one picture, and transmits the stitched pictures to the encoding apparatus 120.
  • the encoding apparatus 120 generates a plurality of image streams having different bitrates by encoding one video source stitched from the image stitching apparatus 110 into different bitrates. do. That is, an input picture stitched with a plurality of image quality can be encoded from a relatively high quality (High Bit Rates) to a relatively low image quality (Low Bit Rates).
  • one video stream is obtained by encoding an input video source with any one of a plurality of quality images including a relatively high bit rate and a relatively low bit rate.
  • the video stream generated by the encoding device 120 is also called encoded data.
  • the image extracting and merging device 130 receives a plurality of encoded data obtained by encoding a single image with different image quality from the encoding apparatus 120, extracts different encoded data corresponding to different regions within an image, and extracts the extracted encoded data.
  • the encoded data of different regions are merged to output a mixed image stream having different image quality according to different regions in the image.
  • the image extracting and merging device 130 obtains information on the plurality of important areas and generates and outputs a plurality of mixed image streams having different image quality profiles according to the positions of the important areas.
  • the encoding apparatus 120 divides one input image source (ie, a picture) into a plurality of tiles or slices, or a plurality of tiles and a plurality of slices for each tile, A plurality of slices and a plurality of tiles for each slice may be divided and processed in parallel.
  • the encoding apparatus 120 may generate a plurality of encoded data by encoding each of a single image source (picture) at a relatively high bit rate, at least one intermediate picture, and a relatively low bit rate. Can be.
  • each encoding may be performed with three different image quality.
  • the generated plurality of encoded data are formed in the same tile structure.
  • a tile is a set of coding tree blocks (CTBs) which are the largest coding units, and means a data processing unit, and m and n coding trees are present in the tile (where m and n are They can be the same or different).
  • a slice refers to a data processing unit including at least one or more maximum coding units separated based on a slice boundary. Tiles and slices are composed of a plurality of coding tree blocks, which are basic units of image compression.
  • FIG. 2A is a diagram illustrating a case where it is possible to refer to a tile other than itself in a reference picture when inter prediction of one tile
  • FIG. 2B illustrates that a tile belongs to a reference picture in inter prediction when one tile is inter prediction
  • FIG. 7 is a diagram illustrating a case in which only another tile in a specific region can be referred to.
  • a tile may refer to a tile other than itself in the reference picture during inter prediction, but the encoding apparatus 120 may not refer to any other tile in the reference picture during inter prediction for merging and extracting a specific area in an image. Can be set at
  • a dotted line means that reference is made between adjacent tiles.
  • a solid line indicates a boundary between regions in which a tile of another region is not referred to each other in the picture. It is shown.
  • the encoding apparatus 120 transmits additional information, called supplementary enhancement information (SEI), to the image extraction and merging apparatus 130 together with the encoded data, and the SEI includes information on a tile structure in the encoded picture.
  • SEI Supplemental Enhancement information
  • the image extraction and merging apparatus 130 may modify the additional information in the supplemental enhancement information (SEI) for each of the mixed image stream units encoded with the image quality corresponding to each region, and transmit the modified information to the stream delivery apparatus 140.
  • the image extraction merger 130 may generate or modify additional information (SEI) of the tile configuration in the picture and insert it into the bitstream together with the mixed image stream.
  • SEI additional information
  • the additional information generated by the image extracting and merging device 130 may include at least one of the number, location, and configuration information of tile sets included in a display area (ie, an important area) in a picture.
  • the information may include the form of important areas.
  • tile index value (topleft_tile_idx) of the leftmost top position and the tile index value (bottomright_tile_idx) of the rightmost bottom position among the tiles included in the tile set of the important region in the picture are shown.
  • the corresponding important area may be displayed.
  • Id (tile_set_id [i]) of each tile set in the set and position information (topleft_tile_idx [i], bottomright_tile_idx [i]) of each tile set can be added to the syntax information, and a syntax representing multiple tile sets can be added. Is shown in [Table 2].
  • 3 is a diagram illustrating an index and a display area of each tile for a plurality of tiles included in one picture.
  • the num_tile_set_minus1 syntax which is a syntax indicating the number of tile sets, has a value of "0”
  • the tile_set_id syntax which is an syntax representing an identifier of the tile set, also has a value of "0”
  • the topleft_tile_idx syntax represents an index of the leftmost top tile index of an important area. 5 ", and the bottomright_tile_idx syntax corresponds to" 10 "indicating the index of the rightmost bottom tile of the important region.
  • the tile structure is a rectangular structure including a plurality of coding tree blocks
  • the slice structure is a structure in which a predetermined number of coding tree blocks are bundled according to the encoding order of the coding tree blocks.
  • the input image can be divided into various forms using a tile and a slice simultaneously, and this becomes a data structure for encoding and decoding HEVC (High Efficiency Video Coding).
  • Each tile structure is in the form of a matrix of CTBs.
  • one tile structure may be a 3x3 matrix or a 4x3 form of CTB, but one tile structure may be a CTB matrix of various sizes, without being limited thereto.
  • the encoding apparatus 120 When encoding one input image source with a plurality of image quality from high quality to low quality, the encoding apparatus 120 sets the position of each tile and the size of the tile for each corresponding position in the encoded data of each of the plurality of image quality. .
  • Information about the size and position of the tile that is, information related to the structure of the tile, is recorded in the header information of the input image source.
  • Information related to the structure of the tile may be included in a video parameter set (VPS), a sequence parameter set (SPS), a picture parameter set (PPS) or extended data thereof, or an SEI ( Supplemental Enhancement Information.
  • the video parameter set may be included in the utilization information (VPS_VUI) data of the video parameter set.
  • the encoding apparatus 120 may determine the number of tiles divided in the picture based on the horizontal axis and the vertical axis in relation to the tiles of the input image source. This can be recorded in the header information. If the tiles are not divided into the same size with respect to each of the horizontal axis and the vertical axis, information about the number of tiles divided in the picture and the size (width and height) of the tile should be added based on the horizontal axis and the vertical axis.
  • Such an embodiment may be performed using the syntax of [Table 3].
  • Table 3 is a part of a syntax list illustrating an embodiment of including information related to a tile structure in header information of an input image source.
  • 'tiles_enabled_flag' is a flag indicating whether to use a tile and indicates whether a related picture includes a plurality of tiles. For example, when 'tiles_enabled_flag' is included in the PPS level, this flag may indicate whether each picture referring to the corresponding PPS includes a plurality of tiles. If the 'tiles_enabled_flag' value is 1, each picture referring to the corresponding PPS may include a plurality of tiles. However, when the 'tiles_enabled_flag' value is 0, each picture referring to the corresponding PPS may include only one tile.
  • 'num_tile_columns_minus1' is a flag indicating column number information of tiles existing in one picture
  • 'num_tile_rows_minus1' is a flag indicating row number information of tiles existing in one picture.
  • 'num_tile_columns_minus1' and 'num_tile_rows_minus1' indicate the number of columns and rows of tiles dividing pictures, respectively.
  • 'tiles_structure_aligned_flag' is 1
  • 'num_tile_columns_minus1' and 'num_tile_rows_minus1' may be inferred to have the same values as the corresponding values by referring to 'num_tile_columns_minus1' and 'num_tile_rows_minus1' of the reference layer, respectively.
  • 'uniform_spacing_flag' is a flag indicating whether the interval between tile boundaries is uniform, and indicates whether the horizontal size of the tile and the vertical size of the tile are uniform throughout the picture. A value of 1 indicates that the horizontal size of each tile in the picture and the vertical size of each tile are uniformly distributed. If the value of this flag is 0, it indicates that the tile's horizontal size and the tile's vertical size are not uniform.
  • the width of each tile's column and the height of each row are 'Tile column width information' (column_width_minus1 [i]) and 'tile', respectively. It can be signaled directly through 'row height information' (row_heignt_minus1 [i]).
  • 'column_width_minus1 [i]' is the width information of the tile column, and indicates the width of the i-th tile column
  • 'row_height_minus1 [i]' is the height information of the tile row, and indicates the height of the i-th tile row.
  • the values of 'column_width_minus1 [i]' and 'row_heignt_minus1 [i]' may be expressed in CTU units.
  • 'column_width_minus1 [i]' and 'row_heignt_minus1 [i]' may be inferred from information of a direct reference layer, respectively. That is, the current 'column_width_minus1 [i]' may be obtained by scaling the picture width ratio between the current layer and the direct reference layer to the 'column_width_minus1 [i]' value of the direct reference layer. Similarly, the current 'row_heignt_minus1 [i]' may be obtained by scaling a picture height ratio between the current layer and the direct reference layer to the 'row_heignt_minus1 [i]' value of the direct reference layer.
  • the encoding apparatus 120 may encode a picture by using a tile structure or a slice structure or by using a structure in which tiles and slices are mixed.
  • a tile structure or a slice structure or by using a structure in which tiles and slices are mixed.
  • the following describes an example of encoding a picture using a tile structure.
  • the encoding apparatus 120 may determine whether to encode each of the plurality of tiles independently or allow correlation between the tiles at the time of encoding, when the input image source is divided into a plurality of tiles and encoded.
  • independently encoding means encoding without correlation between different tiles at the time of prediction encoding and de-blocking filter. That is, when tiles in a picture are encoded independently, do not refer to adjacent tiles in the same picture during intra prediction, and only refer to tiles at the same position as the current tile even when referring to a reference picture in inter prediction. A tile different from the position of the current tile is not referred to. Also, when reconstruction is completed after encoding the tile, filtering between other tiles is not performed at the tile boundary.
  • the encoding apparatus 120 may not refer to adjacent neighboring tiles in the reference picture at the time of inter prediction of each tile, and in this case, the filtering function for the corresponding tile boundary region may be omitted. Deactivate and encode. For example, encoding may be performed by setting the high quality encoded data and the low quality encoded data so as not to refer to a tile other than itself in the reference picture during inter prediction for each tile.
  • the encoding apparatus 120 may generate independent tile type high definition coded data and non-independent tile type high definition coded data, respectively, using the input image.
  • the independent tiled high quality encoded data is encoded data that is set so as not to refer to neighboring tiles at the time of inter prediction of all tiles (that is, independent tiles) in the encoded data.
  • not referring to the neighboring tile means that it does not refer to anything other than its own tile.
  • the non-independent tile type high definition coded data may include at least one of pixel data of another tile in a reference picture and encoding information of another tile in inter prediction of blocks included in each of all tiles (ie, non-independent tiles) generated by being encoded.
  • the reference to is encoded to be allowed.
  • the meaning that reference is possible between tiles includes that information of tiles other than the tile at the same position as the position of the tile in the current picture may be referred to in the reference picture.
  • the meaning that reference is not possible between tiles includes that information of tiles other than the tile at the same position as the position of the tile in the current picture within the reference picture is not referable.
  • tiles may be referred to each other in a tile set corresponding to a specific region represented by the same image quality, and tiles in the specific region may be encoded so as not to refer to a tile set corresponding to an outside portion of the specific region.
  • the filtering function for the tile boundary region may be activated or deactivated by the image source header information (PPS) and the slice header information.
  • Information representing an active or inactive state of the filtering function in the image source header may be designated for each tile and slice.
  • 'loop_filter_across_tiles_enabled_flag' and 'pps_loop_filter_across_slices_enabled_flag' may be used as the image source header information, and the slice header information may be filtered using a syntax such as slice_loop_filter_across_slices_enabled_flag as shown in [Table 4], for example. It can be used as information indicating the activation state of.
  • 'loop_filter_across_tiles_enabled_flag' is a flag indicating whether loop filtering between tiles is applied and indicates whether in-loop filtering across a tile boundary can be performed in the corresponding picture.
  • An in-loop filter is a filter applied to a reconstructed picture, and is used to generate a picture to be output to an image reproducing apparatus or inserted into a decoded picture buffer. Deblocking filters and Sample Adaptive Offset (SAO) filters are included in the in-loop filter.
  • SAO Sample Adaptive Offset
  • 'loop_filter_across_tiles_enabled_flag' may indicate whether in-loop filtering across a tile boundary may be performed in pictures referring to the PPS.
  • this flag value is 1, in-loop filtering across a tile boundary may be performed in pictures referring to the corresponding PPS.
  • the flag value is 0, in-loop filtering is not performed across the tile boundary in the pictures referring to the corresponding PPS.
  • 'slice_loop_filter_across_slices_enabled_flag' is a flag indicating whether in-loop filtering across the left and top boundaries of the current slice can be performed. When this flag value is 1, in-loop filtering across the left boundary and the top boundary of the current slice may be performed, respectively. However, if the flag value is 0, in-loop filtering cannot be performed across the left and top boundaries of the current slice. If 'slice_loop_filter_across_slices_enabled_flag' does not exist in the bitstream, it is assumed to be the same as 'pps_loop_filter_across_slices_enabled_flag'.
  • the encoding apparatus 120 may generate a stream corresponding to a predetermined number of image quality levels by encoding the input source with a plurality of predetermined image quality rates.
  • the image quality is determined by a Qp (Quantization Parameter) value which is a parameter used in the quantization process.
  • Qp Quality Parameter
  • the Qp value may be set for each image unit of various sizes such as an image source, a slice, or a coding unit (CU). That is, it is possible to encode using different Qp values for each image source, to encode using different Qp values for each slice, or to encode using different Qp values for each slice.
  • CU coding unit
  • the difference value of the Qp value to be changed with respect to the initial Qp value (slice Qp delta value) Is specified in slice units.
  • a difference value (cu Qp delta value) of the Qp value to be changed with respect to the initial Qp value may be specified for each coding unit. For example, if the initial Qp value is set to 26 in the image source header and the slice Qp delta value of the slice using the set image source header is set to +2, the Qp value for the corresponding slice is 28 finally.
  • the encoding apparatus 120 encodes an input image source with a plurality of image quality by setting the Qp value in units of slices, the picture structure is set so that the tiles and the slices are the same, and the slice header information corresponding to each tile in the picture is set. By adjusting the slice Qp delta value, each input image source can be encoded with multiple quality.
  • the tile when encoding the image source in high quality, the tile can be encoded in high quality as the final Qp value 16 by setting the slice Qp delta value of the slice to -10. have.
  • a slice Qp delta value of a slice When encoding an image source with low quality, a slice Qp delta value of a slice may be set to +10, and a tile may be encoded with low quality as a final Qp value 36. In this way, the quality control of the coded data by the generation of the high quality coded data or the generation of the low quality coded data can be performed in units of coding units.
  • the encoding apparatus 120 may record an initial Qp value for an image source in image source header information, a slice Qp delta value for a slice in slice header information, and a cu Qp delta value for a coding unit in coding unit header information. have.
  • the syntax (init_qp_minus26) indicating the initial Qp value of the picture level is included in the image source header information
  • the syntax (slice_qp_delta) indicating the difference value between 'init_qp_minus26' and the initial Qp value of the slice level is included in the slice header information
  • the coding unit header information may include size information (cu_qp_delta_abs) and sign information (cu_qp_delta_sign) of a syntax (cu_qp_delta) indicating a difference value between a Qp value and a predicted value of Qp at a coding unit level.
  • Qp related syntaxes added to the coding unit header information according to the present embodiment are shown in [Table 5].
  • the encoded data may be stored in a separately designated storage device (not shown) or may be immediately transmitted to the image extraction merger 130.
  • the image extracting and merging device 130 may be a personal computer (PC), a notebook computer, a tablet, a personal digital assistant (PDA), a game console, a portable multimedia player (PMP). And a user terminal device such as a portable multimedia player (PSP), a PlayStation Portable (PSP), a wireless communication terminal, a smart phone, a TV, a media player, and the like.
  • the image extracting and merging device 130 according to an embodiment of the present invention may be a server terminal device such as an application server and a service server.
  • the image extracting and merging device 130 includes (i) a communication device such as a communication modem for communicating with various devices or a wired or wireless communication network, and (ii) encodes or decodes an image, or encodes or decodes an image. It may mean a variety of devices including a memory for storing various programs and data for inter or intra prediction, and (iii) a microprocessor for executing and operating a program.
  • the memory may be a computer such as random access memory (RAM), read only memory (ROM), flash memory, optical disk, magnetic disk, solid state disk (SSD), or the like. It may be a readable recording / storage medium.
  • the microprocessor may be programmed to selectively perform one or more of the operations and functions described in the specification.
  • the microprocessor may be implemented as hardware, such as an application specific integrated circuit (ASIC), in whole or in part.
  • ASIC application specific integrated circuit
  • the image extraction merger 130 may include a plurality of encoded data (eg, high definition encoded data and low quality encoded data) received from a storage device (not shown) or the encoding device 120, and an external device (eg, a user terminal device).
  • the mixed video stream is generated and output by using the critical location information obtained from the or the important location information. Specifically, based on the important position information, the region corresponding to the important position in the picture is extracted from the high quality encoded data, the region other than the important position is extracted from the low quality encoded data, and the image quality corresponding to each extracted region
  • the generated mixed video stream may be transmitted to the stream delivery device 140, and the stream delivery device 140 may be implemented as a video streaming server. A detailed description of the mixed video stream according to the present embodiment will be described later with reference to other drawings.
  • the streaming method of streaming the mixed video stream in the device 140 may include a push method and a pull method.
  • the stream delivery device 140 may select a corresponding mixed video stream according to a view point location of the user and transmit it to the user terminal device 150.
  • a dynamic adaptive streaming over HTTP is typically used.
  • DASH dynamic adaptive streaming over HTTP
  • MPD multimedia presentation description
  • the user terminal 150 may perform adaptive streaming according to the network environment and the terminal specification based on the received multimedia presentation description (MPD).
  • the multimedia presentation description information is a manifest file containing information that can be provided, bitrate information of the content and bitrate information that can be replaced, and URL addresses of the corresponding content.
  • the url of the video for each profile is defined as profile information that defines different definition according to resolution and bit rate.
  • the video player in the user terminal 150 may select and play one of profiles defined by Representation according to the terminal specification and the network environment.
  • An example of the MPD used in this way is as follows.
  • ⁇ Initialization sourceURL "bunny_15s_50kbit / bunny_50kbit_dash.mp4" />
  • ⁇ SegmentURL media "bunny_15s_50kbit / bunny_15s1.m4s" />
  • ⁇ SegmentURL media "bunny_15s_50kbit / bunny_15s2.m4s" />
  • ⁇ SegmentURL media "bunny_15s_50kbit / bunny_15s39.m4s" />
  • ⁇ SegmentURL media "bunny_15s_50kbit / bunny_15s40.m4s" />
  • ⁇ Initialization sourceURL "bunny_15s_100kbit / bunny_100kbit_dash.mp4" />
  • ⁇ SegmentURL media "bunny_15s_100kbit / bunny_15s1.m4s" />
  • ⁇ SegmentURL media "bunny_15s_100kbit / bunny_15s2.m4s" />
  • ⁇ SegmentURL media "bunny_15s_100kbit / bunny_15s39.m4s" />
  • ⁇ SegmentURL media "bunny_15s_100kbit / bunny_15s40.m4s" />
  • the stream delivery device 140 determines an important area according to the position of the user's view point, and transmits an image stream in which the high quality area and the low quality area are mixed to the user terminal device 150 in a full manner, the AdaptationSet supported by the DASH standard.
  • the mixed video stream is positioned so that the high-definition data is located at the changed location when the viewing position of the viewer is changed. Can be defined to be switched.
  • ⁇ Initialization sourceURL "oblivion_128_t0_init.mp4" />
  • the stream delivery device 140 In order to provide a pull method, the stream delivery device 140 generates a plurality of mixed video streams necessary for adaptively streaming according to the user's viewpoint position, and transmits the mixed video stream to the user terminal device 150 in advance.
  • 150 may transmit the region request information (ie, information indicating the important region) to be viewed to the stream delivery device 140 based on the viewpoint information to receive a mixed video stream in which the requested region is extracted / merged in high quality.
  • the area request information to be watched is information for receiving a stream in which the position to be watched is extracted / merged in high definition and means information including a tile id for indicating the position of a tile in a picture, a focus coordinate value being viewed, and the like. can do.
  • the image extraction merger 130 may be implemented in a separate server (for example, the stream delivery device 140) or the user terminal device 150.
  • the image extracting merging device 130 may be located before the stream delivery device 140, and the image extracting merging device 130 may be extracted and merged for each viewing position (ie, an important position).
  • the stream delivery device 140 is located at the viewing location requested by the user. Select and send the right mixed video stream.
  • the user terminal device 150 may receive a plurality of encoded data from the encoding device 120 and extract and merge the images from them. .
  • the important location information is information that is considered to efficiently encode a high resolution image and reflects human visual characteristics.
  • a user viewing a high resolution image focuses on a limited range of specific positions within the image and views the image rather than the entire image. Therefore, in a high resolution image having a large amount of data to be processed, only the region where the user's viewpoint stays is encoded in high quality and the remaining region is encoded in low quality in a high resolution image, thereby reducing data throughput for high resolution image streaming. .
  • the important location information may mean, for example, information about a location of a user's viewpoint.
  • information on the position of the object may also be important position information.
  • the image extracting merging device 130 includes an encoded data receiver 410, an input stream synchronizer 420, a context parser 430, an image generator 440, and the like.
  • the multi-channel stream transmitter 450 is included. Although each component is illustrated as being separately present in FIG. 4, the present disclosure is not limited thereto and may be implemented by a processor including all of the functions.
  • the coded data receiver 410 receives a plurality of coded data in which input image sources are encoded at different bit rates.
  • the encoded data receiver 410 may encode high-quality, i.e., high bit-rate (for example, encoded data encoded with a low quality, i.e., low bit rate, for example, 5 Mbps) for one image source. Coded data encoded at 25 Mbps) can be received respectively.
  • 5A and 5B are conceptual views of encoded data of one input video source according to an embodiment of the present invention.
  • Encoded data according to an embodiment of the present invention may be composed of a plurality of tiles or slices.
  • 5 (a) and 5 (b) illustrate coded data obtained by dividing one input image source into 16 tiles and encoding them at 5 Mbps and 25 Mbps, respectively.
  • a plurality of rectangular shapes constituting each encoded data means tiles.
  • 5 (a) and 5 (b) are shown as the size of the plurality of tiles are the same as each other, but is not limited to this may be configured to include a different size of each of the tiles, such matters The same applies to FIGS. 6A to 12D.
  • FIGS. 5 (a) and 5 (b) are diagrams illustrating a case in which all tiles in an image are independently encoded without referring to adjacent tiles in order to freely extract and merge tiles based on important position information.
  • One (FIG. 5A) shows low quality and the other (FIG. 5B) illustrates data encoded with high quality.
  • an input image source may be encoded with three or more bitrates (eg, low definition, one or more general definitions, and high definitions) in some embodiments. .
  • bitrates eg, low definition, one or more general definitions, and high definitions
  • the following description will be given by taking an example in which an input video source is encoded with two bit rates (5 Mbps and 25 Mbps) of low quality and high quality, respectively.
  • the input stream synchronizer 420 finds an I frame of each encoded data so that extraction and merging of the encoded data can be started at the same time position on the image sequence, and synchronizes the frame input order of the individual encoded data with each other. Don't let the content go against each other.
  • the context parser 430 may parse the structure and number of tiles in a picture, the size of the tiles, whether an independent tile or a non-independent tile, and the like in the encoded stream.
  • the parsed information is used to determine the extraction type, size, etc. of important areas, and to provide information for extracting multiple quality streams and merging them into various forms.
  • the shape and size of an area to be extracted as an important area in an image can be determined according to the structure, number, and size of the tiles, and the shape of an area to be extracted as an important area can be composed of a tile set such as a square or a rhombus. It can be in form.
  • the user terminal device 150 may determine the number of critical areas to be extracted and the size of each critical area according to the transmission bit rate available from the network and the importance location in the image. Also, in the case of a 360 ° VR image, the upper (ceiling) and lower (bottom) portions are less important for viewing, so the corresponding area may be defined as non-independent tiles rather than independent tiles.
  • the image generating unit 440 classifies a plurality of regions of the input image according to their importance in the input image, and sets different bit rates corresponding to the importance of the corresponding regions among the plurality of encoded data for each of the plurality of regions. Data of the corresponding region is extracted from the encoded data having the same, and the extracted encoded data corresponding to the plurality of regions are merged with each other to generate a mixed video stream.
  • the image generator 440 generates a plurality of mixed image streams having different combinations of tile data according to positions of important regions determined according to importance.
  • the image generator 440 sets an important region having the highest importance in the input image source and divides the input image source into a plurality of regions according to the importance.
  • the important region refers to a region to be extracted from encoded data encoded at the highest bit rate.
  • the importance may be determined from the above-described important position information, and the area closer to the viewpoint position of the user (or the object position in the input image source) in one input image source may be set to have higher importance.
  • the image area may be divided into a location where viewing is frequently performed (corresponding to an important area) and a location which is not frequently made.
  • the image generator 440 obtains the user's viewpoint position with respect to the input image source from the user terminal device 150, and sets at least one region included in a predetermined range from the viewpoint position of the user as the important region.
  • the plurality of areas may be divided based on a distance away from the view point of the.
  • the image generator 440 periodically acquires the viewpoint position of the user from the user terminal device 150 and compares it with the previously obtained viewpoint position. If there is a movement from the obtained viewpoint position, and if there is a movement of the viewpoint position, it is possible to newly set the important area.
  • the image generator 440 periodically acquires the viewpoint position of the user and extracts only the high quality region of the region corresponding to the viewpoint position according to the decoder performance of the user terminal device 150 to decode the image. You can also send without merging.
  • a 2D image is converted into 3D of a sphere and projected.
  • the VR image generated with the original resolution of 2160p there may be a terminal capable of 2160p VR decoding, only the 1080p region set as the critical region can be extracted and transmitted from the stream encoded in high definition.
  • the user terminal device 150 may render VR according to the resolution (2160p) of the original image, but may project and reproduce only the transmitted partial region (1080p).
  • the stream delivery device (140) may display the image to be reproduced. Flag indicating whether the entire area or a partial area, resolution corresponding to the entire area of the player on the terminal, and resolution information of the partial area corresponding to the case where only image data corresponding to the partial area is transmitted to the user terminal 150. Can also be provided with.
  • the image generator 440 acquires one or more object positions in the image, sets one or more regions included in a predetermined range from the positions of the one or more objects as important regions, and based on a distance away from the positions of the one or more objects. A plurality of regions may be distinguished in the picture.
  • the position of the object is an object detection and tracking, tracking of the viewer's field of view implemented in the image extraction merger 130 or the user terminal 150 according to an embodiment of the present invention. Or an external device (not shown) that detects the object.
  • a plurality of important areas may also be set because there may be a plurality of objects included in the input image source.
  • an important area in the input image source there are additional considerations depending on the characteristics of the input image source in addition to the viewpoint position and the object position of the user. For example, when the input image source is a 360 ° video, it may be necessary to additionally set another area as the important area or reduce the preset important area according to which part of the video is located.
  • the 360 ° video has the feature that both ends of the image may appear to be in contact during playback. That is, both ends of the image may be in contact with each other, or both ends of the image may be in contact with each other. This is because the image is warped during the stitching process of combining images captured by a plurality of cameras into one.
  • the image generator 440 may set the other upper region of the input image source as the important region, and the region set as the important region is the input image.
  • the lower end of the input image source may also be set as an important area.
  • the image generator 440 corresponds to the uppermost region or the lowermost region. Except for the important areas, the remaining areas with the highest priority can be set as important areas.
  • the number of tiles each belonging to the plurality of areas divided by the image generator 440 may vary depending on the size of the tile and the location of the important area. That is, the number of tiles included in an area set as an important area and extracted from a high quality image is variable.
  • the image generator 440 extracts, from each of the plurality of regions, from different encoded data having a bit rate corresponding to the importance of each of the plurality of regions, and merges the extracted regions to input the input image source.
  • a mixed video stream corresponding to the generated video stream may be generated, and the generated mixed video stream corresponds to one importance profile.
  • the image generator 440 may process the size and position information of the data processing unit, the initial Qp value, and the plurality of data in header information of the input image source divided into a plurality of data processing units (ie, tiles and slices) for encoding. Information about whether filtering between units is applied may be included. In addition, a Qp value corresponding to the importance of the area including the data processing unit among the plurality of areas of the input image source may be included in the header information of the data processing unit.
  • the structure of the encoded data corresponding to the input image source may be configured in the order of the input image source header information, the header information of the tile, and the encoded data information, and all the tiles in the image source in the raster scan order.
  • the header information and the encoded image source information may be sequentially configured.
  • the header of the input image source may include information about the size and position of the tile, the initial Qp value, and the activation / deactivation information of the filtering.
  • Each tile is encoded according to a corresponding importance, and a header of each tile includes information corresponding to the corresponding importance (that is, a Qp delta value), and the encoded data includes information encoded according to the corresponding importance.
  • header information of the input image source may be omitted.
  • the image generator 440 extracts an important region among the plurality of regions from encoded data having the highest bit rate among the plurality of encoded data, and encodes the lower bit rate as the region having a lower importance among the plurality of regions. Can be extracted from the data.
  • the image generator 440 may extract even the adjacent region of the important region from the encoded data having the highest bit rate among the plurality of encoded data in consideration of the fact that the important region may be moved in real time.
  • 6A to 6D are conceptual views of a mixed image bitstream structure according to an embodiment of the present invention based on the encoded data of FIGS. 5A and 5B.
  • the image generating unit 440 may include a low quality (eg 5 Mbps) region and a high quality (eg 25 Mbps) region according to information on an important region of an image.
  • the merged and encoded structure may generate a mixed image stream corresponding to the input image source.
  • the average coding rates of the entire images according to the tile structures shown in FIGS. 6A, 6B, 6C, and 6D are 10 Mbps, 12 Mbps, and 12 Mbps, respectively. , And 16 Mbps.
  • a bitrate reduction of about 50% can be expected compared to the case where all tiles in the image are encoded at a bit rate of 25 Mbps.
  • the rectangles indicated by thick lines indicate important positions in the image.
  • the important position represents a position of a region of high importance, such as a viewpoint position of a user and an object position detected from an input image source. The same applies to FIGS. 7A to 12D.
  • the tiles included in the important position may be set as the important region, and (b), (c) and (d) of FIG. If there is a portion where the boundary of the important position does not match the boundary of the tile as shown, all of the tiles included in some of the important positions may be set as the important region.
  • Tiles constituting the important region are extracted from encoded data encoded in high definition as shown in FIG. 5B, and tiles constituting regions other than the important region are encoded from encoded data encoded in low quality as shown in FIG. It can be extracted and finally merged into one mixed video bitstream.
  • the structure of the mixed video stream may be composed of tiles of encoded data having three or more different bit rates.
  • FIGS. 7A to 7D are conceptual views of a mixed video stream structure according to another embodiment of the present invention based on the encoded data of FIGS. 5A and 5B.
  • FIGS. 7A to 7D illustrate the structure of the mixed video stream generated based on the important region set in consideration of the aforementioned 360 ° video.
  • the average coding rates of the entire images according to the tile structures shown in FIGS. 7A to 7D may be calculated as 14 Mbps, 12 Mbps, 12 Mbps, and 9 Mbps, respectively.
  • the bitrate reduction of about 50% is reduced compared to the case of encoding all the tiles with a bit rate of 25 Mbps. You can expect it.
  • FIG. 7A illustrates a case where the lowermost other end region of the image is also set as the critical region when the important region includes the lowermost end region of the image. This takes into account that the 360 ° video is warped during the stitching process.
  • FIG. 7D illustrates a case in which all of the tile configuration methods applied to FIGS. 7A to 7C are applied. In the image of FIG. The case where it excluded is shown.
  • 8A and 8B are conceptual views of a mixed video stream structure according to another embodiment of the present invention based on the encoded data of FIGS. 5A and 5B.
  • FIGS. 8A and 8B illustrate a case where a critical area is set using one or more object positions detected in the input image. As described above, a plurality of important areas may be set according to the detected number of objects.
  • 9A to 9D are conceptual views of encoded data for an input video source according to another embodiment of the present invention.
  • a plurality of encoded data that may be generated by the encoding apparatus 120, and include a first encoded data group (for example, ( c) and (d)), and second encoded data group (e.g., (a) and (b) of FIG. 9) composed of independently encoded data without referring to information of tiles or slices adjacent to each other.
  • first encoded data group for example, ( c) and (d)
  • second encoded data group e.g., (a) and (b) of FIG. 9
  • the solid lines between the tiles are set so as not to refer to each other when inter prediction between two adjacent tiles, so that there is no correlation with each other. That is, since inter-prediction of one tile is not referred to another tile, each tile is independent.
  • the dotted line between the tiles means that the inter prediction between two adjacent tiles is correlated with each other. That is, since inter-prediction of one tile is set to be encoded by referring to another tile, each tile is non-independent.
  • FIG. 13 is a diagram illustrating a process of generating high quality encoded data composed of independent tiles and high quality encoded data composed of non-independent tiles, and extracting and merging an image using the two encoded data.
  • the encoding apparatus 120 encodes one image source into encoded data 1 composed of independent tiles and encoded data 2 composed of non-independent tiles, respectively.
  • Encoded data 1 composed of independent tiles means encoded data set such that all tiles in the encoded data 1 do not refer to other tiles.
  • Encoded data 2 composed of non-independent tiles means encoded data in which all tiles in the encoded data 2 are allowed to be encoded with reference to other tiles.
  • the referenced tile refers to a tile in an image reconstructed from an encoded stream (that is, encoded data 1) encoded as an independent tile.
  • the image extracting and merging device 130 extracts the encoded data of the different regions from the encoded data 1 and the encoded data 2 according to the important region, and merges the encoded data of the extracted different regions to generate a mixed image stream. can do.
  • FIG. 14 is a diagram illustrating that a tile configuration of a merged mixed video stream is extracted from encoded data 2 composed of non-independent tiles, and all other tiles are extracted from encoded data 1 composed of independent tiles.
  • the fifth tile is a non-independent tile and refers to another tile (ie, an independent tile) during inter prediction. If a tile of another position referred to by tile 5 is a non-independent tile, as shown in FIG. 14, after the image extraction merge, there is no information about the non-independent tile to refer to, and thus a normal prediction process cannot be performed. Therefore, when a non-independent tile refers to a tile other than itself, the referenced tile must be a tile encoded and decoded as an independent tile.
  • the tile of the specific position according to the characteristics of the tile referred to when performing inter prediction on the encoded data extracted for the tile region of the specific position inside the mixed image stream Data corresponding to an area may be extracted from other encoded data.
  • the image extraction merger 130 may extract data of the position of the non-independent tile from the encoded data corresponding to the independent tile instead of the non-independent tile. That is, when the non-independent tile cannot be configured to refer to the independent tile, the image extraction merger 130 configures all the tiles in the mixed video stream as independent tiles.
  • FIG. 15A illustrates an image composed of independent tiles
  • FIG. 15B illustrates an image composed of non-independent tiles.
  • FIG. 16A is a diagram illustrating a view point region (or display region) on a 360 ° sphere
  • FIG. 16B is a diagram illustrating coordinates of a 360 ° sphere.
  • Equation 1 is one of 3D coordinates to 2D coordinates transformation methods.
  • Equation 1 is one of 3D coordinates to 2D coordinates transformation methods.
  • four parameters are used to represent the coordinate values of a point S1 on the 3D. Coordinate values may be converted into one point on the 2D image by using the four parameter values.
  • ⁇ 1 the standard parallels (north and south of the equator)
  • FIG. 17A illustrates a display area on a sphere
  • FIG. 17B illustrates an area in an equi-rectangular image corresponding to FIG. 17A.
  • a dark solid line region on the image of FIG. 17B may be obtained.
  • 17B shows an example of a specific area on the image that corresponds to a certain area on the sphere.
  • the shape of a specific area on the 2D converted image varies depending on which part of the 3D image is a specific area on the image corresponding to the 3D view area. For example, if the area on the image corresponding to the 3D viewpoint is the area corresponding to the top or bottom of the sphere, the shape of the corresponding area on the 2D image of FIG. 17B may vary.
  • the image extracting merging device 130 may reconstruct the mixed image stream by selecting a specific region on the image image using the viewpoint information and selecting a plurality of tiles including the specific region.
  • the viewpoint information input to the image extracting and merging device 130 may be 3D coordinate information or 2D coordinate information that is already mapped.
  • a mixed video stream may be configured by extracting encoded data of a tile corresponding to the corresponding critical region from the encoded data such as FIGS. 15A and 15B corresponding to the display region (3D viewpoint region, that is, the important region) as shown in FIG. 17A. For example, a mixed video stream as shown in FIG. 18 may be obtained.
  • FIG. 18 is a diagram illustrating an image of an important region on an equi-rectangular and tiles included in the entire image. Among the plurality of tiles in the entire image, nine tiles corresponding to the important region are shown in FIG. 18.
  • the image extraction merging device 130 may know the location and configuration information of the tile including the display area.
  • the image extracting and merging device 130 is an independent tile among nine tiles (corresponding regions on the image) corresponding to the display region, which is an independent tile, but is included in the display region but is boundary
  • the center tile, which is a tile that is not located at the) part, may be configured as a non-independent tile.
  • the image extracting merging device 130 may configure a mixed image stream including all tiles for a single image by mixing independent tiles and non-independent tiles as shown in FIG. 18 to decode the entire image, or for partial decoding.
  • a mixed video stream that does not include tiles other than nine tiles corresponding to the display area may be configured and transmitted to the stream delivery device 140.
  • the decoder 1350 decodes the reconstructed bitstream.
  • the image extracting merging device 130 may generate additional information SEI regarding the tile configuration and insert the additional information SEI into the bitstream.
  • the image extracting and merging device 130 obtains the syntax values of [Table 1] and [Table 2], generates additional information (SEI), and inserts them into the mixed image stream corresponding to the set important region.
  • SEI additional information
  • the decoder 1350 may decode the entire image by reading SEI information from the corresponding mixed video stream and acquiring the position and configuration information of the tile for the display area within the image, and when the mixed image stream including only the display region is transmitted. Only partial decoding may be performed on the display area.
  • the transmitter-side encoder may designate a default initial display position in case the receiver cannot obtain view information.
  • the encoder can add initial display position information to the header information including the SEI.
  • Initial display position information is a coordinate value on an image, as shown in [Table 6].
  • the initial display position information may have the same form as the syntax of [Table 1] and [Table 2] for the tile set included in the encoded data as shown in FIG. 3.
  • the image extracting merging device 130 may reconstruct the mixed image stream based on additional information (default initial display position) sent by the encoder when the viewpoint information of the user is not input. In addition, when the view point information is normally input, the image extraction merging device 130 reconstructs the mixed video stream based on the input view point information.
  • the image extracting merger 130 When the image extracting and merging device 130 configures a tile corresponding to a display region through input viewpoint information, the image extracting merger 130 generally sets a tile corresponding to the input viewpoint coordinates and tiles in contact with the tile as a display region.
  • the area can be composed of the minimum number of tiles.
  • the image extracting and merging device 130 may configure a tile corresponding to the input view coordinate and an extended region more than a tile region in contact with the tile in consideration of the movement of the viewpoint of the user.
  • the scaling degree may use a scaling factor. For example, when the scaling factor is 1.5, an area 1.5 times extended from the existing display area may be set as the display area.
  • the image extracting merging device 130 may configure an extended area by using an offset. For example, when the offset is set to 100, the display area may be set to an extended display area by expanding the display area by adding 100 to the horizontal and vertical axis lengths. The offset may be specified for the horizontal axis and the vertical axis, respectively.
  • 10A to 10D are conceptual views of a mixed video stream structure according to an embodiment of the present invention based on the encoded data of FIGS. 9A to 9D.
  • the coding rates of the entire image according to the tile structures shown in FIGS. 10A to 10D may be calculated as 10 Mbps, 11 Mbps, 11 Mbps, and 12 Mbps, respectively. It can be seen that the bitrate is reduced by about 50% compared to the case where all tiles are encoded at 25 Mbps.
  • the image generating unit 440 may include a second encoded data group (for example, a region adjacent to a boundary between an important region and a region other than the important region). From coded data belonging to a) and (b)), it may be extracted from coded data having a bitrate corresponding to the importance of the corresponding region. For example, tiles existing at the boundary between the high quality region and the low quality region may be composed of independent tiles.
  • a region not adjacent to the boundary between the important region and the region other than the critical region is a bit rate corresponding to the importance of the region among the encoded data belonging to the first encoded data group (for example, (c) and (d) of FIG. 9).
  • Can be extracted from encoded data having For example, tiles existing outside the boundary between the high quality region and the low quality region may be composed of non-independent tiles. This has the effect of increasing the compression performance.
  • 11A to 11D are conceptual views of a mixed video stream structure according to another embodiment of the present invention based on the encoded data of FIGS. 9A to 9D.
  • FIG. 11 show the structure of the mixed video stream generated based on the important region set in consideration of the characteristics of the 360 ° video described above.
  • the coding rates of the entire image according to the tile structures shown in FIGS. 11A to 11D may be calculated as 12 Mbps, 11 Mbps, 10 Mbps, and 8 Mbps, respectively. It can be seen that the bitrate is reduced by about 50% compared to the case where all tiles are encoded at 25 Mbps.
  • the image generating unit 440 configures and encodes the tiles corresponding to the high quality region and the tiles corresponding to the low quality region in advance according to a predetermined important position in the image to generate a mixed image stream.
  • the image generator 440 generates a mixed image stream by configuring tiles corresponding to the high quality region and tiles corresponding to the low quality region, respectively, according to the predetermined important positions of various positions, and generating a mixed channel stream.
  • 450 transmits various types of mixed video streams to the stream delivery device 140 based on predetermined critical locations of various locations.
  • the stream delivery device 140 obtains information on an actual important position from the user terminal device 150 and the like, and selects a mixed video stream corresponding to the selected video stream from among various types of mixed video streams and transmits the same to the user terminal device 150.
  • the encoded data receiver 410 encodes a plurality of encoded data for an input image source encoded at different bit rates for each region according to importance of a plurality of regions corresponding to the input image. 120).
  • the stream delivery device 140 receives important location information of an input video source from an external device (not shown) and generates a mixed video stream corresponding to the corresponding important location information among a plurality of mixed video streams.
  • the image extracting and merging device 130 generates a plurality of mixed video streams configured differently for each of the predetermined critical positions by preconfiguring a plurality of preset predetermined positions, and the stream delivery device 140
  • the mixed video stream corresponding to the actual important location is selected from the generated mixed video streams and transmitted to the user terminal device 150.
  • the important location information may include at least one of a user's viewpoint position with respect to the input image source and one or more object positions detected by the input image source.
  • the predetermined number of important positions may be set in consideration of at least one of the size of the tile or slice constituting the input image source, the number of tiles or slices, and the resolution of the input image source.
  • 12A to 12D are conceptual diagrams of a mixed video stream structure according to another embodiment of the present invention.
  • the important positions shown in FIGS. 12A to 12D are preset important positions.
  • the input image picture composed of 16 equally sized tiles is configured with four tiles on the horizontal axis, It shows four cases where a viewpoint can be located.
  • all of the tiles constituting the encoded data may be composed of non-independent tiles, to solve the problem of heterogeneity between the tiles.
  • Another method may separately generate encoded data for each of the important areas shown in FIGS. 12A to 12D by using an input source as one coding unit without using tiles. That is, a predetermined number of encoded data may be separately generated for each location of the important region. For example, if the number according to the position of the pre-set possible important area is 16, 16 encoded data are generated according to the preset important area.
  • the coding rates of the mixed video streams according to the tile structures shown in FIGS. 12A to 12D may be calculated as 12 Mbps, 12 Mbps, 12 Mbps, and 12 Mbps, respectively.
  • the bitrate can be expected to be reduced by about 50% compared to the case where all tiles are encoded at 25 Mbps.
  • 19 is a block diagram showing a stream delivery device 140 according to the present embodiment.
  • the stream delivery device 140 includes a multi-channel stream receiver 1910, a bitstream selector 1920, and a terminal request receiver 1930.
  • the multi-channel stream receiver 1910 receives mixed video streams of various channels generated in various profiles according to importance on a tile basis.
  • the bitstream selector 1920 receives important location information from the user terminal device 150, and selects a location corresponding to the important location information, network QoS, and radio wave strength of the user terminal device 150. According to the condition, the corresponding mixed video stream is selected and transmitted to the user terminal 150.
  • the terminal request receiving unit 1930 receives the conditions (important location, network QoS, radio wave strength of the user terminal 150, etc.) of the user terminal device 150.
  • the terminal request receiving unit 1930 receives important position information on an input video source from an external device (not shown), and the bitstream selector 1920 encodes a predetermined number of codes encoded based on a predetermined critical position.
  • the bitstream selector 1920 encodes a predetermined number of codes encoded based on a predetermined critical position.
  • encoded data corresponding to the received critical position information is selected.
  • the mixed video stream shown in FIG. 12A is selected.
  • the bitstream selector 1920 may receive various versions of the streams transmitted from the image extracting and merging device 130 and provide them in a pull method or a push method.
  • the image quality of each tile may be determined based on an area or a main object requested by the user terminal device 150, or the image quality of each tile may be determined and transmitted based on a fixed main area in advance. have.
  • the user terminal device 150 maps the location to the location to be viewed in the meta information and then mattes the result.
  • the url corresponding to the mixed video stream corresponding to the stream transmission device 140 may be requested.
  • the bitstream selector 1920 receives the image url from the user terminal device 150, the bitstream selector 1920 selects a corresponding mixed video stream from the plurality of mixed video streams and transmits the selected video stream to the user terminal device 150.
  • 20 is a block diagram showing the user terminal device 150 according to the present embodiment.
  • the user terminal device 150 includes a region setting requester 2010, an image stream receiver 2020, and an image playback unit 2030.
  • the area setting requester 2010 detects a viewing position from information capable of identifying a position such as a gyro sensor and transmits the corresponding position information to the stream delivery device 140 or transmits an ID of a pre-scheduled stream to the stream delivery device 140. Request to the corresponding mixed video stream, or determine which stream the gaze coordinate corresponds to through the preset MPD information, and transmit the url of the mixed video stream to request the corresponding mixed video stream directly.
  • the range of the important area can be determined by the information about the high definition area (the size of the area, the starting position (x, y) or the size of the tile, the number of tiles, etc.), and when the viewer's position moves.
  • the high definition area the size of the area, the starting position (x, y) or the size of the tile, the number of tiles, etc.
  • a mixed video stream of a url corresponding to the corresponding important region may be requested.
  • the video stream receiver 2020 receives a mixed video stream corresponding to the region setting request transmitted to the stream delivery device 140 from the stream delivery device 140.
  • the video player 2030 decodes and plays the received mixed video stream.
  • 21 is a flowchart of a video bitstream generation method according to an embodiment of the present invention.
  • a plurality of encoded data encoded at different bit rates with respect to one input video source are obtained (S2110).
  • encoded data encoded with a low quality i.e., low bit rate (for example, 5 Mbps) and encoded data encoded with a high quality, i.e., high bit rate (for example, 25 Mbps)
  • Process S2110 corresponds to an operation of the encoding apparatus 120, and thus description of the specific example will be omitted.
  • a critical area having the highest importance is set in the input image source, and the input image source is divided into a plurality of areas according to the importance.
  • the important region refers to a region to be extracted from encoded data encoded at the highest bit rate. The importance may be determined from the above-described critical location information, and the area closer to the viewpoint position (or object position in the input image source) of the user in one input image source may be regarded as higher importance.
  • a viewpoint position candidate of the user with respect to the input image source may be acquired, and at least one region included in a predetermined range from the viewpoint position candidate of the user is set as an important region and based on a distance away from the viewpoint position candidate of the user.
  • the plurality of areas can be divided.
  • the user acquires the viewpoint position of the user periodically and checks whether there is a movement of the previously obtained viewpoint position, and reflects it when there is a movement. You can set a new one.
  • step S2120 the position of one or more objects detected by the input image source is obtained, and one or more regions included in a predetermined range from the positions of the one or more objects are set as important regions and based on a distance from the positions of the one or more objects. It is also possible to distinguish a plurality of regions.
  • the position of the object may be an object position candidate obtained by an object detection algorithm.
  • a plurality of important areas may also be set because there may be a plurality of objects included in the input image source.
  • the important area there are additional considerations depending on the characteristics of the input image source in addition to the viewpoint position and the object position of the user. For example, when the input image source is a 360 ° video, it may be necessary to additionally set another area as the important area or reduce the preset important area according to which part of the video is located.
  • the 360 ° video has the feature that both ends of the image may appear to be in contact during playback. That is, both ends of the image may be in contact with each other, or both ends of the image may be in contact with each other. This is because the image is warped during the stitching process of combining images captured by a plurality of cameras into one.
  • the region set as the important region includes the upper one end region or the lower one end region of the input image source
  • the upper other end region or the lower other end region of the input image source may also be set as the important region.
  • image warping occurs more in the upper region and the lower region than in the center of the image
  • information redundancy occurs in the upper region and the lower region.
  • the upper region and the lower region of the 360 ° video are generally represented by the sky and the ground, respectively, the importance of the center region is often higher than that of the upper region and the lower region.
  • the region having the highest importance includes at least one of the upper region and the lower region of the input image source
  • the remaining region except for the upper region and the lower region among the highest importance regions may be set as the important region.
  • the number of tiles belonging to the plurality of areas divided in step S2120 may vary depending on the size of the tile and the location of the important area.
  • the extracted data is extracted from encoded data having a bit rate corresponding to the importance of each of the plurality of regions among the plurality of encoded data (S2130).
  • an important region of the plurality of regions may be extracted from encoded data having the highest bit rate among the plurality of encoded data, and an area having a lower importance among the plurality of regions may be extracted from encoded data having a lower bit rate.
  • the critical region may be moved in real time, and even adjacent regions of the critical region may be extracted from the encoded data having the highest bit rate among the plurality of encoded data.
  • the extracted regions are merged to generate a mixed image stream corresponding to the important region.
  • Processes S2120 to S2140 correspond to an operation of the image extracting and merging device 130 according to an exemplary embodiment of the present invention, and thus a detailed description thereof will be omitted.
  • 22 is a flowchart of a mixed video stream selection method according to another embodiment of the present invention.
  • encoded data encoded with different bit rates is obtained for each of a plurality of regions according to the importance of the plurality of regions constituting the input image source (S2210), and important position information is obtained from the terminal (S2220). ).
  • step S2230 the mixed video stream corresponding to the key position information among the plurality of encoded data is selected based on the key position information by using the encoded data and the key position information acquired in steps S2210 and S2220.
  • the mixed video stream corresponding to the location may be selected and transmitted to the user terminal 150.
  • the important location information may include at least one of a user's viewpoint position with respect to the input image source and one or more object positions detected by the input image source.
  • the predetermined number of important positions may be set in consideration of at least one of the size of the tile or slice constituting the input image source, the number of tiles or slices, and the resolution of the input image source.
  • Process S2210 corresponds to the operation of the encoded data receiver 410 according to an exemplary embodiment of the present invention
  • process S2220 and process S2230 correspond to the operation of the image generator 440, and thus a detailed description thereof will be omitted.
  • FIGS. 21 and 22 the processes S2110 to S2140 and the processes S2210 to S2230 are described as being sequentially executed, but embodiments are not limited thereto. In other words, since the processes described in FIGS. 21 and 22 may be applied by changing or executing one or more processes in parallel, FIGS. 21 and 22 are not limited to the time series order.
  • the image bitstream generating method according to the present embodiment described in FIGS. 21 and 22 may be implemented in a program and recorded on a computer-readable recording medium.
  • a computer-readable recording medium having recorded thereon a program for implementing an image bitstream generation method according to the present embodiment includes all kinds of recording devices that store data that can be read by a computer system.
  • the present embodiment is a useful invention for generating an effect of efficiently compressing an image by reducing the amount of data to be processed during streaming, which is applied to an image encoding field for streaming high resolution image content.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

고해상도 영상 스트리밍을 위한 영상 비트스트림 생성방법 및 장치를 개시한다. 본 발명에 따른 실시예에 의하면, 대용량의 고해상도 영상 컨텐츠를 효율적으로 전송하기 위하여, 하나의 영상을 영역별로 다른 화질로 부호화함으로써 영상 비트스트림을 생성하는 방법 및 장치를 제공하는 데 주된 목적이 있다.

Description

고해상도 영상 스트리밍을 위한 영상 비트스트림 생성방법 및 장치
본 발명에 따른 실시예는 대용량의 고해상도 영상 컨텐츠를 효율적으로 스트리밍하기 위하여 영상을 영역별로 차등적 비트레이트로 압축함으로써 영상 비트스트림을 생성하는 방법 및 장치에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 발명의 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
종래의 영상 컨텐츠 스트리밍 기술 중 적응적 비트레이트 스트리밍(ABS: Adaptive Bit rate Streaming)에서 부호화 장치는 서비스 별로 요청된 비트레이트(Bit rate)에 상응하도록 영상 컨텐츠를 부호화하여 컨텐츠 전송 네트워크(CDN: Contents Delivery Network)의 스트리밍 서버에게 전송한다. 스트리밍 서버는 사용자 단말장치 및 네트워크 환경에 적합하게 영상 컨텐츠를 전송하기 위하여 하나의 영상 컨텐츠에 대해 비트레이트가 다른 여러 품질로 부호화된 복수 개의 파일을 준비한다.
스트리밍 서버는 일정 시간 간격으로 가변적인 사용자 환경에 따라 다르게 요청되는 비트레이트의 파일을 사용자 단말장치로 스트리밍한다. 예를 들어, 사용자 단말장치는 HD(High Definition)급의 2 Mbps, SD(Standard Definition)급의 1 Mbps 및 LD(Low Definition)급의 0.5 Mbps로 부호화된 비트스트림들 중에서 사용자 환경에 적합한 비트스트림을 1초 단위로 수신하여 재생할 수 있다.
VR(Virtual Reality) 컨텐츠와 같이 고품질의 화질을 요구하는 컨텐츠의 경우, 방대한 데이터량으로 인해 많은 하드웨어 리소스를 필요로 한다. 이러한 대용량 컨텐츠를 스트리밍하기 위해 종래 기술을 이용하는 경우, 동일한 컨텐츠를 여러 가지 품질로 부호화하기 때문에 데이터량이 추가적으로 증가하게 된다. 이에 따라 스트리밍 서버에는 매우 큰 용량의 저장 공간이 요구된다. 따라서, 대용량의 영상 컨텐츠를 효율적으로 스트리밍하기 위해 데이터량을 줄이는 방법이 필요하다.
본 발명의 실시예들은 대용량의 고해상도 영상 컨텐츠를 효율적으로 전송하기 위하여, 하나의 영상을 영역별로 서로 다른 화질로 부호화함으로써 영상 비트스트림을 생성하는 방법 및 장치를 제공하는 데 주된 목적이 있다.
본 발명의 실시예에 의하면, 고해상도 영상 스트리밍을 위한 영상 추출 병합 장치에 있어서, 입력 영상에 대하여 서로 다른 비트레이트로 각각 부호화된 복수의 부호화 데이터를 수신하는 부호화 데이터 수신부; 및 상기 입력 영상에서 상기 입력 영상의 복수의 영역들을 그 중요도에 따라 구분하고, 상기 복수의 영역들 각각에 대하여 상기 복수의 부호화 데이터 중 상기 영역들 각각의 중요도에 상응하는 서로 다른 비트레이트를 갖는 부호화 데이터로부터 해당 영역의 데이터를 추출하고, 복수의 영역에 대응하여 각각 추출된 부호화 데이터를 서로 병합하여 혼합 영상 스트림을 생성하는 영상 생성부를 포함하는 것을 특징으로 하는 영상 추출 병합 장치를 제공한다.
본 발명의 일 실시예에 의하면, 고해상도 영상 스트리밍을 위한 영상 스트리밍 장치에 있어서, 입력 영상을 구성하는 복수의 영역들의 중요도에 따라서 상기 복수의 영역 별로 서로 다른 비트레이트로 각각 부호화된 데이터를 포함하는 복수개의 혼합 영상 스트림을 수신하는 다채널 스트림 수신부; 상기 입력 영상에 대한 중요위치 정보를 획득하여 상기 복수의 혼합 영상 스트림 중 상기 중요위치 정보에 부합하는 혼합 영상 스트림을 선택하고, 선택된 혼합 영상 스트림을 전송하는 비트스트림 선택부; 및 상기 중요위치 정보를 사용자 단말장치로부터 수신하는 단말 요청 수신부를 포함하는 것을 특징으로 하는 영상 스트리밍 장치를 제공한다.
본 발명의 일 실시 예에 의하면, 고해상도 영상 스트리밍을 위한 영상 비트스트림 생성방법에 있어서, 입력 영상에 대하여 서로 다른 비트레이트로 각각 부호화된 복수의 부호화 데이터를 수신하는 과정; 상기 입력 영상에서 상기 입력 영상의 복수의 영역들을 그 중요도에 따라 구분하는 과정; 상기 복수의 영역들 각각에 대하여 상기 복수의 부호화 데이터 중 상기 영역들 각각의 중요도에 상응하는 서로 다른 비트레이트를 갖는 부호화 데이터로부터 해당 영역의 데이터를 추출하는 과정; 및 복수의 영역에 대응하여 각각 추출된 부호화 데이터를 서로 병합하여 혼합 영상 스트림을 생성하는 과정을 포함하는 것을 특징으로 하는 영상 비트스트림 생성방법을 제공한다.
본 발명의 일 실시예에 의하면, 고해상도 영상 스트리밍을 위한 영상 비트스트림 생성방법에 있어서, 입력 영상을 구성하는 복수의 영역들의 중요도에 따라 상기 복수의 영역 별로 서로 다른 비트레이트로 각각 부호화된 데이터를 포함하는 복수개의 혼합 영상 스트림을 획득하는 과정; 상기 입력 영상에 대한 중요위치 정보를 획득하는 과정; 및 상기 복수의 혼합 영상 스트림 중 상기 중요위치 정보에 부합하는 혼합 영상 스트림을 선택하고, 선택된 혼합 영상 스트림을 전송하는 과정을 포함하는 것을 특징으로 하는 영상 비트스트림 생성방법을 제공한다.
이상에서 설명한 바와 같이 본 발명의 실시예에 의하면, 하나의 영상을 영역별로 다른 화질로 부호화함으로써 대용량의 고해상도 영상 컨텐츠를 효율적으로 전송할 수 있는 영상 비트스트림을 생성하는 방법 및 장치를 제공하는 효과가 있다.
본 발명의 실시예에 의하면, 4K UHD(4K Ultra High Definition) 및 8K UHD 등과 같은 초고화질 영상 컨텐츠를 전송함에 있어 사용자 단말장치(예: VR)의 사용자의 시점에 근거하여 사용자가 시청하는 영역(시야 내 영역)과 사용자가 시청하지 않는 영역(시야 외 영역)의 비트레이트에 차등을 둠으로써 백그라운드로 재생되는 영역의 데이터량을 절감하고 버퍼링을 최소화할 수 있는 효과가 있다.
본 발명의 실시예에 의하면, VR(Virtual Reality) 컨텐츠 등과 같은 해상도가 큰 개인형 영상 컨텐츠 전송에 있어서, 사용자의 시청 영역(또는 시점)이 변경됨에 따라 사용자의 시야에 해당하는 영역을 저품질 영상에서 고품질 영상으로 빠르게 전환하여 제공할 수 있는 효과가 있다.
본 발명의 실시예에 의하면, 영상 컨텐츠의 렌더링 시 하드웨어 리소스 사용량을 절감함으로써 VR 컨텐츠와 같은 초고화질 영상 컨텐츠 제공을 위한 하드웨어에 요구되는 성능(또는 사양)의 수준을 낮출 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따른 영상 비트스트림 생성 시스템의 개략적인 구성도이다.
도 2a는 하나의 타일을 인터 예측(inter prediction) 하는 경우 같은 픽처 내의 다른 타일을 참조하는 것이 가능한 경우를 도시한 도면이고, 도 2b는 하나의 타일을 inter prediction 하는 경우 같은 픽처 내에서 해당 타일이 속해 있는 특정 영역 내의 다른 타일만 참조가 가능한 경우를 도시한 도면이다.
도 3은 하나의 영상에 포함되는 타일 세트에서 타일 index 및 display 영역을 예시한 도면이다.
도 4는 본 발명의 실시예에 따른 영상 추출 병합 장치의 구성도이다.
도 5의 (a) 및 도 5의 (b)는 중요위치 정보를 기반으로 자유롭게 타일을 추출하고 병합하기 위하여 인접한 타일을 참조하지 않고 영상 내 모든 타일들을 독립적으로 부호화한 경우를 예시한 도면이다.
도 6의 (a) 내지 도 6의 (d)는 도 5의 (a) 및 도 5의 (b)의 부호화 데이터를 근거로 한 본 발명의 실시예에 따른 영상 비트스트림 구조의 개념도이다.
도 7의 (a) 내지 (d)는 도 5의 (a) 및 도 5의 (b)의 부호화 데이터를 근거로 한 본 발명의 다른 실시예에 따른 영상 비트스트림 구조의 개념도이다.
도 8의 (a) 및 (b)는 입력 영상소스에서 검출된 하나 이상의 객체 위치를 이용하여 중요영역을 설정한 경우를 나타낸다. 전술한 바와 같이 검출된 객체 수에 따라 중요영역은 복수 개로 설정될 수 있다.
도 9의 (a) 내지 (d)는 본 발명의 다른 실시예에 따른 입력 영상소스에 대한 부호화 데이터의 개념도이다.
도 10의 (a) 내지 (d)는 도 9의 (a) 내지 (d)의 부호화 데이터를 근거로 한 본 발명의 실시예에 따른 혼합 영상 스트림 구조의 개념도이다.
도 11의 (a) 내지 (d)는 도 9의 (a) 내지 (d)의 부호화 데이터를 근거로 한 본 발명의 다른 실시예에 따른 혼합 영상 스트림 구조의 개념도이다.
도 12의 (a) 내지 (d)는 본 발명의 또 다른 실시예에 따른 혼합 영상 스트림 구조의 개념도이다.
도 13은 독립 타일로 구성된 고화질 부호화 데이터와 비독립 타일로 구성된 고화질 부호화 데이터를 각각 생성하고, 이 두 부호화 데이터를 이용하여 영상을 추출 및 병합하는 과정을 예시한 도면이다.
도 14는 병합된 혼합 영상 스트림의 타일 구성이 5번 타일은 비독립 타일로 구성된 부호화 데이터2에서 추출하고, 그 이외 모든 타일은 독립 타일로 구성된 부호화 데이터1에서 추출한 것을 예시한 도면이다.
도 15a는 독립 타일로 구성된 영상이고 도 15b는 비독립 타일로 구성된 영상을 예시한 도면이다.
도 16a는 360° 구(sphere) 상의 시점(view point) 영역(혹은 display 영역)을 그림으로 표현한 도면이고, 도 16b는 360° 구 상의 좌표를 도시한 도면이다.
도 17a는 Sphere 상의 display 영역을 도시한 도면이고, 도 17b는 도 17a에 상응하는 equi-rectangular 이미지 내 영역을 예시한 도면이다.
도 18은 equi-rectangular 상의 display 되는 영상과 영상 내에 포함되는 타일을 표시한 도면이다.
도 19는 본 실시예에 따른 스트림 전달 장치(140)를 도시한 블록도이다.
도 20은 본 실시예에 따른 사용자 단말장치(150)를 도시한 블록도이다.
도 21은 본 발명의 실시예에 따른 혼합 영상 스트림 생성방법의 흐름도이다.
도 22는 본 발명의 다른 실시예에 따른 혼합 영상 스트림 생성방법의 흐름도이다.
이하, 본 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명을 설명함에 있어, '...부', '모듈' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도 1은 본 발명의 실시예에 따른 영상 비트스트림 생성 시스템의 개략적인 구성도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 영상 비트스트림 생성 시스템(100)은 영상 스티칭 장치(110), 부호화 장치(120), 영상 추출 병합 장치(130), 스트림 전달 장치(140) 및 사용자 단말장치(150)를 포함한다. 도 1에는 영상 스티칭 장치(110), 부호화 장치(120), 영상 추출 병합 장치(130) 및 스트림 전달 장치(140)가 별개의 장치로 존재하는 것으로 도시되어 있으나, 반드시 이에 한정되는 것은 아니며 각각의 기능을 모두 포함하는 하나의 통합된 장치 또는 복수의 일부 기능들이 하나로 통합된 형태로 구현될 수도 있다.
영상 스티칭 장치(110)는 여러 대의 카메라로부터 출력된 복수개의 영상을 전달받아 복수개의 영상을 서로 동기화하고 하나의 픽처로 스티칭하여 스티칭된 픽처를 부호화 장치(120)로 전송한다.
부호화 장치(120)는 영상 스티칭 장치(110)로부터 스티칭되어 입력된 하나의 영상소스(Video Source, 즉, 픽처)를 서로 다른 비트레이트로 각각 부호화하여 서로 다른 비트레이트를 갖는 복수의 영상 스트림을 생성한다. 즉, 상대적인 고화질(High Bit Rates)부터 상대적인 저화질(Low Bit Rates)까지 복수의 화질로 스티칭된 입력 픽처를 부호화할 수 있다. 여기서, 하나의 영상 스트림은 상대적인 고화질(High Bit Rates) 및 상대적인 저화질(Low Bit Rates)을 포함하는 복수의 화질 중에서 어느 하나의 화질로 입력 영상소스가 부호화된 것이다. 이하, 부호화 장치(120)에 의해 생성된 영상 스트림을 부호화 데이터라고도 칭한다.
영상 추출 병합 장치(130)는 하나의 영상이 서로 다른 화질로 각각 부호화된 여러 부호화 데이터를 부호화 장치(120)로부터 수신하여 한 영상 내 서로 다른 영역에 해당하는 서로 다른 부호화 데이터를 추출하고, 추출된 서로 다른 영역의 부호화 데이터를 병합하여 영상 내의 서로 다른 영역에 따라 서로 다른 화질을 갖는 혼합 영상 스트림을 출력한다. 또한, 영상 추출 병합 장치(130)는 복수의 중요영역에 대한 정보를 획득하여 중요영역의 위치에 따라 서로 다른 화질 프로파일을 각각 갖는 복수의 혼합 영상 스트림을 생성하여 출력한다.
부호화 장치(120)는 하나의 입력 영상소스(즉, 픽처)를 복수 개의 타일(tile)들 또는 슬라이스(slice)들로 분할하거나, 복수 개의 타일들 및 각 타일별로 복수개의 슬라이스들로 분할하거나, 복수 개의 슬라이스 및 각 슬라이스별로 복수개의 타일들로 분할하여 병렬 처리할 수 있다. 예를 들어, 부호화 장치(120)는 하나의 영상 소스(픽처)에 대하여 상대적 고화질(High Bit Rates), 하나 이상의 중간화질 및 상대적 저화질(Low Bit Rates)로 각각 부호화하여 복수의 부호화 데이터를 생성할 수 있다. 여기서, 하나의 영상 소스에 대하여 두가지 화질로 각각 부호화하는 경우 이외에도 실시예에 따라서는 서로 다른 세가지 화질로 각각 부호화할 수도 있다. 하나의 영상소스를 부호화하여 서로 다른 화질을 갖는 복수개의 부호화 데이터를 생성한 경우에, 생성된 복수개의 부호화 데이터들은 서로 동일한 타일 구조로 형성된다.
여기서, 타일은 최대 부호화 단위인 코딩 트리 블록(CTB: Coding Tree Block)들의 집합으로서 데이터 처리 단위를 의미하며 타일 내에는 가로 m개 및 세로 n개의 코딩트리 블록이 존재한다(단, m 및 n은 서로 같을 수도 있고 서로 다를 수도 있음). 슬라이스는 슬라이스 경계를 기준으로 분리된 적어도 하나 이상의 최대 부호화 단위를 포함하는 데이터 처리 단위를 의미한다. 타일 및 슬라이스는 영상 압축의 기본 단위인 복수의 코딩 트리 블록으로 구성된다.
도 2a는 하나의 타일을 inter prediction 하는 경우 참조 픽처 내의 자기 자신 이외의 다른 타일을 참조하는 것이 가능한 경우를 도시한 도면이고, 도 2b는 하나의 타일을 inter prediction 시 참조 픽처 내에서 해당 타일이 속해 있는 특정 영역 내의 다른 타일만 참조가 가능한 경우를 도시한 도면이다.
HEVC에서 타일은 인터 예측 시 참조 픽처 내의 자기 자신 이외의 다른 타일을 참조할 수도 있지만, 영상 내 특정 영역의 병합과 추출을 위해 inter prediction 시 참조 픽처 내의 다른 어떠한 타일도 참조하지 못하도록 부호화 장치(120)에서 설정할 수 있다.
도 2a의 HEVC로부 부호화된 픽처 내의 타일 구조에서 점선은 인접 타일 간의 참조가 가능하도록 설정된 것을 의미하며, 도 2b에서, 실선은 픽처 내에서 다른 영역의 타일을 서로 참조하지 못하도록 설정한 영역 간의 경계를 나타낸 것이다. 부호화 장치(120)는 부호화 데이터와 함께 해당하는 SEI(supplemental enhancement information)라는 부가정보를 영상 추출 병합 장치(130)에게 전달하며, SEI에는 부호화된 픽처 내의 타일 구조에 대한 정보가 포함된다.
또한, 영상 추출 병합 장치(130)는 영역별로 해당하는 화질로 각각 부호화된 혼합 영상 스트림 단위마다 SEI(supplemental enhancement information)에 부가정보를 수정하여 스트림 전달 장치(140)에게 전송할 수 있다. 이를 위해 영상 추출 병합 장치(130)에서 픽처 내 타일 구성에 대한 부가정보(SEI)를 생성 또는 수정하여 혼합 영상 스트림과 함께 비트스트림에 삽입할 수 있다. 영상 추출 병합 장치(130)에서 생성하는 부가 정보는 픽처 내에서 디스플레이 영역(즉, 중요 영역)에 포함된 타일 집합(tile set)의 개수, 위치 및 구성 정보 중 적어도 하나를 포함할 수 있으며, 구성정보에는 중요 영역의 형태를 포함할 수 있다.
이를 신택스로 표현하면 [표 1]과 같다. [표 1]에 나타낸 바와 같이, 픽처 내에서 중요영역의 타일 집합(tile set)에 포함된 타일 중 최좌측 상단 위치의 타일 인덱스 값(topleft_tile_idx) 및 최우측 하단 위치의 타일 인덱스 값(bottomright_tile_idx)을 포함하는 신택스로서 해당 중요 영역을 표시할 수 있다.
Figure PCTKR2017007028-appb-T000001
또한, 픽처 내에서 중요 영역이 여러 개인 경우 또는 하나의 중요영역이 다수개의 타일집합으로 구성된 경우, 해당하는 다수 개의 타일집합(tile set)을 표현하기 위해 Tile set의 개수(num_tile_set_minus1), 다수 개의 타일집합 내의 각 tile set의 id(tile_set_id[i]) 및 각 tile set의 id 별 위치 정보((topleft_tile_idx[i], bottomright_tile_idx[i])를 신택스 정보에 추가할 수 있으며, 다수 개의 tile set을 표현한 신택스는 [표 2]와 같다.
Figure PCTKR2017007028-appb-T000002
도 3은 하나의 픽처에 포함되는 복수의 타일에 대하여 각 타일의 index 및 display 영역을 예시한 도면이다.
예를 들어 [표 2]의 신택스를 사용하는 경우, 하나의 픽처 내에 중요 영역에 해당하는 하나의 tile set(타일 5, 6, 9, 10)이 설정되고 그 위치 및 구성이 도 3과 같다면, 타일 셋의 개수를 나타내는 신택스인 num_tile_set_minus1 신택스는 "0" 값을 갖게 되며, 해당 타일 셋의 식별자를 나타내는 신택스인 tile_set_id 신택스도 "0", topleft_tile_idx 신택스는 중요영역 최좌측 상단 타일의 인덱스를 나타내는 "5"에 해당하고, bottomright_tile_idx 신택스는 중요영역 최우측 하단 타일의 인덱스를 나타내는 "10"에 해당한다.
구체적으로, 타일 구조는 복수 개의 코딩 트리 블록을 포함하는 직사각형 형태의 구조이고, 슬라이스 구조는 코딩 트리 블록의 인코딩 순서에 의해 코딩 트리 블록을 일정 갯수 묶어 놓은 구조이다. 타일 및 슬라이스를 동시에 사용하여 입력 영상을 여러 가지 형태로 분할할 수 있으며, 이는 HEVC(High Efficiency Video Coding)의 인코딩(edcoding)과 디코딩(decoding)을 하기 위한 데이터 구조가 된다. 각 타일 구조는 CTB의 행렬(matrix) 형태이다. 예를 들어, 어느 한 타일 구조는 CTB의 3x3 행렬 또는 4x3 형태일 수 있으며, 이에 한정되지 않고 한 타일 구조는 다양한 크기의 CTB 행렬일 수 있음은 물론이다.
부호화 장치(120)는 하나의 입력 영상소스를 고화질부터 저화질까지 복수의 화질로 각각 부호화할 때, 복수의 화질 각각의 부호화 데이터에서 각 타일의 위치 및 해당 위치별로 타일의 크기를 서로 동일하게 설정한다. 그리고 타일의 크기 및 위치에 관한 정보, 즉, 타일의 구조와 관련된 정보들을 입력 영상소스의 헤더 정보에 기록한다. 타일의 구조와 관련된 정보들은 비디오 파라미터 셋(VPS: Video Parameter Set), 시퀀스 파라미터 셋(SPS: Sequence Parameter Set), 픽쳐 파라미터 셋(PPS: Picture Parameter Set) 또는 이들의 확장 데이터에 포함되거나, SEI(Supplemental Enhancement Information)에 포함될 수 있다. 실시예에 따라 비디오 파라미터 셋의 활용 정보(VPS Video Usability Information, VPS_VUI) 데이터에 포함될 수도 있다.
예를 들어, 픽처 내의 모든 타일이 가로축 및 세로축 각각에 대해 서로 동일한 크기로 분할되었다면, 부호화 장치(120)는 가로축 및 세로축을 기준으로 픽처 내에서 분할된 타일의 개수 정보를 입력 영상소스의 타일 관련 헤더 정보에 기록하면 된다. 타일이 가로축 및 세로축 각각에 대해 서로 동일한 크기로 분할되지 않은 경우에는 가로축 및 세로축을 기준으로 픽처 내에서 분할된 타일의 개수 정보 및 타일의 크기(폭 및 높이) 정보를 추가해야 한다.
이러한 실시예는 [표 3]의 신택스(syntax)를 이용하여 수행될 수 있다.
tiles_enabled_flag u(1)
...
if( tiles_enabled_flag ) {
num _tile_columns_ minus1 ue(v)
num _tile_rows_ minus1 ue(v)
uniform_spacing_flag u(1)
if( !uniform_spacing_flag ) {
for( i = 0; i < num_tile_columns_minus1; i++ )
column_width_ minus1[ i ] ue(v)
for( i = 0; i < num_tile_rows_minus1; i++ )
row_height_ minus1[ i ] ue(v)
}
...
[표 3]은 타일 구조와 관련된 정보들을 입력 영상소스의 헤더 정보에 포함하는 실시예를 나타내는 신택스 리스트의 일부분이다. 'tiles_enabled_flag'는 타일 사용 여부를 나타내는 플래그로서, 관련된 픽쳐가 복수의 타일을 포함하는지 여부를 나타낸다. 예를 들어, 'tiles_enabled_flag'가 PPS 레벨에 포함되는 경우, 이 플래그는 해당 PPS를 참조하는 각 픽쳐가 복수의 타일을 포함하는지 여부를 나타낼 수 있다. 만약 'tiles_enabled_flag' 값이 1일 경우, 해당 PPS를 참조하는 각 픽쳐는 복수의 타일을 포함할 수 있다. 그러나 'tiles_enabled_flag' 값이 0일 경우, 해당 PPS를 참조하는 각 픽쳐는 1 개의 타일만을 포함할 수 있다.
'num_tile_columns_minus1'은 한 픽처 내에 존재하는 타일의 열 개수 정보를 나타내는 플래그이고, 'num_tile_rows_minus1'은 한 픽처 내에 존재하는 타일의 행 개수 정보를 나타내는 플래그이다. 'num_tile_columns_minus1' 및 'num_tile_rows_minus1' 은 각각 픽쳐를 분할하는 타일의 열 및 행의 개수를 나타낸다. 예를 들어, 'tiles_structure_aligned_flag'가 1일 경우, 상기 'num_tile_columns_minus1' 및 'num_tile_rows_minus1'은 각각 직접 참조 레이어의 'num_tile_columns_minus1' 및 'num_tile_rows_minus1'을 참조하여 해당 값들과 동일한 값을 갖도록 유추될 수 있다.
'uniform_spacing_flag'는 타일 경계의 간격이 균일한지 여부를 나타내는 플래그로서, 픽쳐 전체에 걸쳐서 타일의 가로 크기 및 타일의 세로 크기가 균일한지 여부를 나타낸다. 이 플래그 값이 1일 경우 픽처 내의 각 타일의 가로 크기와 각 타일의 세로 크기가 균일하게 분포되어 있음을 나타낸다. 이 플래그 값이 0일 경우에는 타일의 가로 크기 및 타일의 세로 크기가 균일하지 않음을 나타내며, 각 타일의 열의 너비 및 각 행의 높이는 각각 '타일 열의 너비 정보' (column_width_minus1[i]) 및 '타일 행의 높이 정보' (row_heignt_minus1[i])를 통해 직접 시그널링 될 수 있다.
'column_width_minus1[i]'는 타일 열의 너비 정보로서, i 번째 타일 열의 너비를 나타내며, 'row_height_minus1[i]'는 타일 행의 높이 정보로서, i 번째 타일 행의 높이를 나타낸다. 이때, 'column_width_minus1[i]' 및 'row_heignt_minus1[i]'의 값은 CTU 단위로 표현될 수 있다.
예를 들어, 'tiles_structure_aligned_flag'가 1이고 'uniform_spacing_flag'가 0일 경우, 'column_width_minus1[i]' 및 'row_heignt_minus1[i]'는 각각 직접 참조 레이어의 정보로부터 유추될 수 있다. 즉, 현재의 'column_width_minus1[i]'는 직접 참조 레이어의 'column_width_minus1[i]' 값에, 현재 레이어와 직접 참조 레이어 간의 픽쳐 너비 비율을 스케일링하여 획득될 수 있다. 마찬가지로, 현재의 'row_heignt_minus1[i]'는 직접 참조 레이어의 'row_heignt_minus1[i]' 값에, 현재 레이어와 직접 참조 레이어 간의 픽쳐 높이 비율을 스케일링하여 획득될 수 있다.
부호화 장치(120)는 실시예에 따라서 타일 구조 또는 슬라이스 구조를 이용하거나 타일 및 슬라이스를 혼합한 구조를 이용하여 픽처를 부호화할 수 있다. 다만, 설명의 편의를 위하여 이하, 타일 구조를 이용하여 픽처를 부호화하는 것을 예로 들어 설명한다.
부호화 장치(120)는 하나의 입력 영상소스를 복수 개의 타일로 분할하여 부호화할 때, 복수 개의 타일 각각을 독립적으로 부호화할지 혹은 부호화시 타일 사이에 상관관계를 갖도록 허용할 지를 결정할 수 있다.
여기서 독립적으로 부호화한다는 것은 예측 부호화(prediction) 및 필터링(de-blocking filter) 시에 서로 다른 타일 간의 상관관계가 없이 부호화함을 의미한다. 즉, 픽처 내의 타일들이 독립적으로 부호화되는 경우, 인트라 예측 시에 같은 픽처 내의 인접한 다른 타일을 참조하지 않으며, 또한 인터 예측 시에 참조 픽처를 참조하는 경우에도 현재 타일의 위치와 동일한 위치의 타일만 참조하고 현재 타일의 위치와 다른 타일은 참조하지 않도록 설정되며, 또한, 타일을 부호화한 후 복원이 완료된 경우에는 타일 경계(boundary)에서 다른 타일 간의 필터링을 실시하지 않는다.
부호화 장치(120)는 각 타일을 독립적으로 부호화하기 위해 각 타일의 예측 부호화(inter prediction) 시에 참조 픽처 내의 인접한 주변 타일들을 참조하지 않을 수 있으며, 이 경우, 해당 타일 경계 영역에 대한 필터링 기능을 비활성화하여 부호화한다. 예를 들어 고화질 부호화 데이터 및 저화질 부호화 데이터에 대해서 모든 타일들 각각에 대해 inter prediction 시 참조 픽처 내의 자기 자신 이외의 다른 타일을 참조하지 않도록 설정(즉, 독립 타일로서 설정) 하여 인코딩을 할 수도 있다.
부호화 장치(120)는 입력 영상을 이용하여 독립 타일형 고화질 부호화 데이터 및 비독립 타일형 고화질 부호화 데이터를 각각 생성할 수도 있다.
독립 타일형 고화질 부호화 데이터는 부호화 데이터 내의 모든 타일(즉, 독립 타일)의 인터 예측 시에 주변 타일을 참조하지 않도록 설정되어 인코딩된 부호화 데이터이다. 여기서 주변 타일을 참조하지 않는다는 것은 자기 자신의 타일 이외에는 참조하지 않는다는 것을 의미한다.
비독립 타일형 고화질 부호화 데이터는, 부호화되어 생성되는 모든 타일(즉, 비독립 타일)들 각각에 포함되는 블록들의 inter prediction 시에 참조 픽처 내의 다른 타일의 화소 데이터와 다른 타일의 부호화 정보 중 적어도 하나의 참조가 허용되도록 인코딩된 것이다.
이하의 설명에서 타일 사이에서 참조가 가능하다는 의미는 참조 픽처 내에서 현재 픽처 내의 타일의 위치와 동일한 위치의 타일 이외의 타일의 정보들도 참조 가능하다는 의미를 포함한다. 또한, 타일 사이에서 참조가 가능하지 않다는 의미는 참조 픽처 내에서 현재 픽처 내의 타일의 위치와 동일한 위치의 타일 이외의 타일의 정보는 참조 가능하지 않다는 의미를 포함한다.
또는 동일 화질로 표현되는 특정 영역에 대응되는 타일 셋(Tile Set) 내에서 타일끼리 서로 참조가 가능하고 특정 영역 내의 타일들은 특정 영역 바깥 부분에 대응되는 타일 셋을 참조 못하도록 부호화할 수 있다. 또한, 타일 경계 영역에 대한 필터링 기능은 영상소스 헤더 정보(PPS) 및 슬라이스 헤더 정보에 의하여 활성화 또는 비활성화될 수 있다. 영상소스 헤더 내의 필터링 기능의 활성 또는 비활성 상태를 나타내는 정보는 타일 및 슬라이스 별로 각각 지정될 수 있다.
이를 위하여 영상소스 헤더 정보에는 예를 들어, 'loop_filter_across_tiles_enabled_flag' 및 'pps_loop_filter_across_slices_enabled_flag'가 이용될 수 있고, 슬라이스 헤더 정보에는 예를 들어, [표 4]와 같이 slice_loop_filter_across_slices_enabled_flag와 같은 신택스를 이용하여 슬라이스 사이의 필터링 기능의 활성화 상태를 나타내는 정보로서 이용될 수 있다.
if( pps_loop_filter_across_slices_enabled_flag && ( slice_sao_luma_flag || slice_sao_chroma_flag || !slice_deblocking_filter_disabled_flag ) )
slice_loop_filter_across_slices_enabled_flag u(1)
'loop_filter_across_tiles_enabled_flag'는 타일 간 루프 필터링 적용 여부를 나타내는 플래그로서, 해당 픽쳐에서 타일 경계를 가로지르는 인-루프(in-loop) 필터링이 수행될 수 있는지 여부를 나타낸다. 인-루프 필터는 복원된 픽쳐에 적용하는 필터로서, 영상 재생 장치로의 출력 또는 복호 픽쳐 버퍼에 삽입되는 픽쳐를 생성하기 위하여 사용된다. 디블록킹(deblocking) 필터 및 SAO(Sample Adaptive Offset) 필터가 인-루프 필터에 포함된다.
예를 들어, 'loop_filter_across_tiles_enabled_flag'가 PPS 레벨에 포함되는 경우, 'loop_filter_across_tiles_enabled_flag'는 해당 PPS를 참조하는 픽쳐들에서 타일 경계를 가로지르는 인-루프 필터링이 수행될 수 있는지 여부를 나타낼 수 있다. 이 플래그 값이 1일 경우, 해당 PPS를 참조하는 픽쳐들에서 타일 경계를 가로지르는 인-루프 필터링이 수행될 수 있다. 그러나 플래그 값이 0일 경우에는, 해당 PPS를 참조하는 픽쳐들에서 타일 경계를 가로지르는 인-루프 필터링이 수행되지 않는다.
'slice_loop_filter_across_slices_enabled_flag'는 현재 슬라이스의 좌측 경계 및 상단 경계를 가로지르는 인-루프 필터링이 수행될 수 있는지 여부를 나타내는 플래그이다. 이 플래그 값이 1일 경우, 현재 슬라이스의 좌측 경계 및 상단 경계를 가로지르는 인-루프 필터링이 각각 수행될 수 있다. 그러나 플래그 값이 0일 경우에는, 현재 슬라이스의 좌측 경계 및 상단 경계를 가로지르는 인-루프 필터링이 수행될 수 없다. 'slice_loop_filter_across_slices_enabled_flag'가 비트스트림에 존재하지 않은 경우에는 'pps_loop_filter_across_slices_enabled_flag'와 동일한 것으로 추정한다.
부호화 장치(120)는 미리 정해진 다수 개의 화질들(Bit Rates)로 입력 소스를 각각 부호화하여 미리 정해진 화질들 개수만큼의 스트림을 생성할 수 있다. 이 때, 화질은 양자화 과정에서 사용되는 파라미터인 Qp(Quantization Parameter) 값에 의해 결정된다. 고화질로 부호화하기 위해서는 낮은 Qp 값(예를 들어, Qp=12)으로, 저화질로 부호화하기 위해서는 높은 Qp 값(예를 들어, Qp=25)으로 설정된다.
Qp 값은 영상소스(picture), 슬라이스(slice), 또는 코딩 유닛(CU: Coding Unit) 등 다양한 크기의 영상단위 별로 설정될 수 있다. 즉, 영상소스 별로 다른 Qp값을 사용하여 부호화하거나, 슬라이스 별로 다른 Qp 값을 사용하여 부호화하거나 슬라이스 별로 다른 Qp 값을 사용하여 부호화하는 것이 가능하다.
예를 들어, 영상소스 헤더에 초기 Qp 값을 설정하고, 설정된 영상소스 헤더를 사용하는 슬라이스의 Qp 값을 변경하는 경우에는 초기 Qp 값에 대해 변경하고자 하는 Qp 값의 차이값(slice Qp delta 값)을 슬라이스 단위로 지정하면 된다. 또한, 코딩 유닛 별로 Qp 값을 변경하려면, 초기 Qp 값에 대한 변경하고자 하는 Qp 값의 차이값(cu Qp delta 값)을 코딩 유닛 별로 지정하면 된다. 예컨대, 영상소스 헤더에 초기 Qp 값을 26으로 설정하고, 설정된 영상소스 헤더를 사용하는 슬라이스의 slice Qp delta 값을 +2로 설정하면, 최종적으로 해당 슬라이스를 위한 Qp 값은 28이 된다.
부호화 장치(120)가 슬라이스 단위로 Qp 값을 설정하여 입력 영상소스를 복수의 화질로 각각 부호화하는 경우, 타일과 슬라이스가 서로 동일하도록 픽처 구조를 설정하고 픽처 내의 각 타일에 상응하는 슬라이스 헤더 정보의 slice Qp delta 값을 조절하여 여러 개의 화질로 각각 입력 영상소스를 부호화할 수 있다.
예를 들어, 영상소스 헤더에 초기 Qp 값을 26으로 설정한 경우, 영상소스를 고화질로 부호화할 때에는 슬라이스의 slice Qp delta 값을 -10으로 설정함으로써 최종 Qp 값 16으로서 타일을 고화질로 부호화할 수 있다. 영상소스를 저화질로 부호화할 때에는 슬라이스의 slice Qp delta 값을 +10으로 설정하여, 최종 Qp 값 36으로서 타일을 저화질로 부호화할 수 있다. 또한, 이와 같이 고화질 부호화 데이터의 생성 또는 저화질 부호화 데이터의 생성에 의한 부호화 데이터의 화질 조절은 코딩 유닛 단위로도 가능하다.
부호화 장치(120)는 영상소스에 대한 초기 Qp 값은 영상소스 헤더 정보에, 슬라이스에 대한 slice Qp delta 값은 슬라이스 헤더 정보에, 코딩 유닛에 대한 cu Qp delta 값은 코딩 유닛 헤더 정보에 기록할 수 있다.
예를 들어 영상소스 헤더 정보에 픽쳐 레벨의 초기 Qp 값을 나타내는 신택스(init_qp_minus26)를 포함시키고, 슬라이스 헤더 정보에 'init_qp_minus26'과 슬라이스 레벨의 초기 Qp 값 사이의 차이값을 나타내는 신택스(slice_qp_delta)를 포함시키며, 코딩 유닛 헤더 정보에 코딩 유닛 레벨에서 Qp 값과 Qp의 예측값 사이의 차이값을 나타내는 신택스(cu_qp_delta)의 크기 정보(cu_qp_delta_abs) 및 부호 정보(cu_qp_delta_sign)를 포함시킬 수 있다. 본 실시예에 따른 코딩 유닛 헤더 정보에 부가되는 Qp 관련 신택스들은 [표 5]와 같다.
if( cu_qp_delta_enabled_flag && !IsCuQpDeltaCoded ) {
cu_qp_delta_abs ae(v)
if( cu_qp_delta_abs )
cu_qp_delta_sign_flag ae(v)
}
부호화 데이터는 별도로 지정된 저장 장치(미도시)에 저장될 수도 있고 곧바로 영상 추출 병합 장치(130)로 전송될 수도 있다.
본 발명의 실시예에 따른 영상 추출 병합 장치(130)는 개인용 컴퓨터(PC: Personal Computer), 노트북 컴퓨터, 테블렛, 개인 휴대 단말기(PDA: Personal Digital Assistant), 게임 콘솔, 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 무선 통신 단말기(Wireless Communication Terminal), 스마트폰(Smart Phone), TV, 미디어 플레이어 등과 같은 사용자 단말장치일 수 있다. 본 발명의 실시예에 따른 영상 추출 병합 장치(130)는 응용 서버와 서비스 서버 등 서버 단말장치일 수 있다.
본 발명의 실시예에 따른 영상 추출 병합 장치(130)는 (i) 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, (ii) 영상을 부호화 또는 복호화하거나, 부호화 또는 복호화를 위해 인터 또는 인트라 예측하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, (iii) 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미할 수 있다. 적어도 일 실시예에 따르면, 메모리는 램(Random Access Memory: RAM), 롬(Read Only Memory: ROM), 플래시 메모리, 광 디스크, 자기 디스크, 솔리드 스테이트 디스크(Solid State Disk: SSD) 등의 컴퓨터로 판독 가능한 기록/저장매체일 수 있다. 적어도 일 실시예에 따르면, 마이크로프로세서는 명세서에 기재된 동작과 기능을 하나 이상 선택적으로 수행하도록 프로그램될 수 있다. 적어도 일 실시예에 따르면, 마이크로프로세서는 전체 또는 부분적으로 특정한 구성의 주문형반도체(application specific integrated circuit: ASIC) 등의 하드웨어로써 구현될 수 있다.
영상 추출 병합 장치(130)는 저장 장치(미도시) 또는 부호화 장치(120)로부터 수신한 복수의 부호화 데이터들(예컨대, 고화질 부호화 데이터 및 저화질 부호화 데이터)과, 외부 장치(예컨대, 사용자 단말장치)로부터 획득한 중요 위치 정보 또는 기 설정된 중요위치 정보를 이용하여 혼합 영상 스트림을 생성하여 출력한다. 구체적으로, 중요위치 정보에 근거하여 픽처 내에서 중요위치에 해당하는 영역은 고화질의 부호화 데이터로부터 추출하고, 중요위치 이외의 영역은 저화질의 부호화 데이터로부터 추출하고, 추출된 각각의 영역에 해당하는 화질의 부호화 데이터를 병합함으로써 하나의 중요위치 정보에 대응되는 혼합 영상 스트림을 생성한다. 생성된 혼합 영상 스트림은 스트림 전달 장치(140)에게 전송될 수 있으며 스트림 전달 장치(140)는 영상 스트리밍 서버로서 구현될 수 있다. 본 실시예에 따른 혼합 영상 스트림에 대한 구체적인 설명은 다른 도면을 참조하여 후술한다.
스트림 전달 장치(140)에서 하나의 혼합 영상 스트림을 스트리밍하는 방식은 푸쉬(Push) 방식 및 풀(Pull) 방식이 있을 수 있다.
예를 들어, 푸쉬 방식의 경우에는 스트림 전달 장치(140)는 사용자의 시점(view point) 위치에 따라 해당하는 혼합 영상 스트림을 선택하여 사용자 단말장치(150)로 전송할 수 있다.
풀 방식의 경우에는 대표적으로 DASH(Dynamic Adaptive Streaming over HTTP)를 들 수 있는데 스트림 전달 장치(140)가 혼합 영상 스트림을 전송할 때 멀티미디어 프리젠테이션 디스크립션(Multimedia Presentation Description: MPD)을 정의하여 사용자 단말장치(150)에게 전달하고, 사용자 단말장치(150)는 전달받은 멀티미디어 프리젠테이션 디스크립션(MPD)을 기반으로 네트워크 환경 및 단말장치 사양에 따라 적응적 스트리밍(Adaptive Streaming)을 할 수 있다.
멀티미디어 프리젠테이션 디스크립션 정보는 제공 가능한 컨텐츠, 컨텐츠의 비트레이트 정보 및 대체 가능한 비트레이트 정보, 해당 컨텐츠의 URL addresses 등의 정보를 담고 있는 매니페스트(Manifest) 파일로, 하나의 컨텐츠에 대해 단말, 네트워크 환경 등에 맞게 QoS를 제공할 수 있도록 해상도, 비트레이트에 따라 다른 정의를 내리는 프로파일 정보로 해당 프로파일별 영상의 url을 정의한다.
사용자 단말장치(150) 내의 영상 플레이어는 단말 스펙, 네트워크 환경에 맞춰 Representation으로 정의된 프로파일 중 하나를 골라 재생할 수 있다. 이와 같이 사용되는MPD의 예는 아래와 같다.
<?xml version="1.0" encoding="UTF-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:mpeg:DASH:schema:MPD:2011"
xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011"
profiles="urn:mpeg:dash:profile:isoff-main:2011"
type="static"
mediaPresentationDuration="PT0H9M56.46S"
minBufferTime="PT15.0S">
<BaseURL>http://www.test.com /bunny_15s/</BaseURL>
<Period start="PT0S">
<AdaptationSet bitstreamSwitching="true">
<Representation id="0" codecs="avc1" mimeType="video/mp4" width="320" height="240" startWithSAP="1" bandwidth="45351">
<SegmentBase>
<Initialization sourceURL="bunny_15s_50kbit/bunny_50kbit_dash.mp4"/>
</SegmentBase>
<SegmentList duration="15">
<SegmentURL media="bunny_15s_50kbit/bunny_15s1.m4s"/>
<SegmentURL media="bunny_15s_50kbit/bunny_15s2.m4s"/>
<!-- ... -->
<SegmentURL media="bunny_15s_50kbit/bunny_15s39.m4s"/>
<SegmentURL media="bunny_15s_50kbit/bunny_15s40.m4s"/>
</SegmentList>
</Representation>
<Representation id="1" codecs="avc1" mimeType="video/mp4" width="320" height="240" startWithSAP="1" bandwidth="88563">
<SegmentBase>
<Initialization sourceURL="bunny_15s_100kbit/bunny_100kbit_dash.mp4"/>
</SegmentBase>
<SegmentList duration="15">
<SegmentURL media="bunny_15s_100kbit/bunny_15s1.m4s"/>
<SegmentURL media="bunny_15s_100kbit/bunny_15s2.m4s"/>
<!-- ... -->
<SegmentURL media="bunny_15s_100kbit/bunny_15s39.m4s"/>
<SegmentURL media="bunny_15s_100kbit/bunny_15s40.m4s"/>
</SegmentList>
</Representation>
<!-- ... -->
</AdaptationSet>
</Period>
</MPD>
스트림 전달 장치(140)는 사용자의 시점 위치에 따라 중요영역을 결정하고, 고화질 영역 및 저화질 영역이 혼합된 영상 스트림을 풀 방식으로 사용자 단말장치(150)에게 전송하는 경우, DASH 규격에서 지원하는 AdaptationSet(전송할 수 있는 파일에 대해서 기술하는 정보)의 Viewpoint 엘리먼트(위치에 대한 정보)에 view value 및 Representation의 ID를 추가하여 시청자의 시청 위치가 변경될 경우 변경된 해당 위치에 고화질 데이터가 위치하도록 혼합 영상 스트림이 스위칭될 수 있도록 정의할 수 있다.
<AdaptationSet mimeType="video/mp4" codecs="avc1.640828">
<Viewpoint schemeIdUri="urn:mpeg:dash:mvv:2014" value="0"/>
<Role schemeIdUri="urn:mpeg:dash:v+d:2014" value="t"/>
<Representation bandwidth="128000" avgPSNR="34.1" avgSSIM="0.959">
<SegmentList duration="1">
<Initialization sourceURL="oblivion_128_t0_init.mp4"/>
<SegmentURL media="oblivion_128_t0_seg1.m4s"/>
</SegmentList>
</Representation>
</AdaptationSet>
풀 방식을 제공하기 위해 스트림 전달 장치(140)는 사용자의 시점 위치에 따라서 적응적으로 스트리밍하는 데에 필요한 복수의 혼합 영상 스트림을 미리 생성하여 사용자 단말장치(150)에게 전송하고, 사용자 단말장치(150)는 시점 정보를 기반으로 스트림 전달 장치(140)에게 시청하고자 하는 영역 요청 정보(즉, 중요 영역을 나타내는 정보)를 전달하여 요청한 영역이 고화질로 추출/병합된 혼합 영상 스트림을 전송받을 수 있다. 여기서, 시청하고자 하는 영역 요청 정보는 시청하고자 하는 위치가 고화질로 추출/병합된 스트림을 받기 위한 정보로서 픽처 내의 타일의 위치를 나타내기 위한 타일 id, 시청 중인 초첨 좌표 값 등이 포함된 정보를 의미할 수 있다.
본 실시예에 따른 영상 추출 병합 장치(130)는 별도의 서버(예를 들어 스트림 전달 장치(140))나 사용자 단말장치(150)에 구현될 수 있다.
영상 추출 병합 장치(130)가 별도의 서버에 구현되는 경우, 스트림 전달 장치(140) 전에 위치할 수 있고, 영상 추출 병합 장치(130)는 시청 위치(즉, 중요 위치) 별로 각각 추출 및 병합된 복수의 혼합 영상 스트림을 스트림 전달 장치(140)에게 전달하고, 스트림 전달 장치(140)는 사용자 단말장치(150)가 시청 위치를 스트림 전달 장치(140)에게 전송한 경우, 사용자가 요청한 시청 위치에 맞는 혼합 영상 스트림을 선택하여 전송한다.
영상 추출 병합 장치(130)가 사용자 단말장치(150)에 구현되는 경우에는 사용자 단말장치(150)가 부호화 장치(120)로부터 복수의 부호화 데이터들을 모두 수신하여 이들로부터 영상을 추출하여 병합할 수 있다.
중요위치 정보는 고해상도 영상을 효율적으로 부호화하기 위해 고려하는 정보로서 인간의 시각특성을 반영하기 위한 정보이다. 일반적으로 고해상도 영상을 시청하는 사용자는 영상 전체를 보기보다는 영상 내에서 제한된 범위의 특정 위치에 초점을 맞추고 영상을 시청한다. 따라서, 처리해야 할 데이터량이 방대한 고해상도 영상에 있어서 영상 전체를 고화질로 부호화하는 것이 아니라 사용자의 시점이 머무르는 영역만을 고화질로 부호화하고 나머지 영역은 저화질로 부호화함으로써 고해상도 영상 스트리밍을 위한 데이터 처리량을 줄일 수 있다.
중요위치 정보는, 예를 들어, 사용자의 시점 위치에 대한 정보를 의미할 수 있다. 또한, 사용자의 시점은 대부분 입력 영상 내에 존재하는 객체를 향하므로 객체의 위치에 대한 정보 역시 중요위치 정보가 될 수 있다.
이하, 도 4를 참조하여 본 발명의 실시예에 따른 영상 추출 병합 장치(130)에 대하여 구체적으로 설명한다.
도 4는 본 발명의 실시예에 따른 영상 추출 병합 장치의 구성도이다. 도 4를 참조하면, 본 발명의 실시예에 따른 영상 추출 병합 장치(130)는 부호화 데이터 수신부(410), 입력 스트림 동기화부(420), 문맥 파싱부(430), 영상 생성부(440) 및 다채널 스트림 전송부(450)를 포함한다. 도 4에서는 각각의 구성요소가 별개로 존재하는 것으로 도시되어 있으나 반드시 이에 한정되는 것은 아니며 각각의 기능을 모두 포함하는 프로세서에 의해 구현될 수도 있다.
부호화 데이터 수신부(410)는 입력 영상소스가 서로 다른 비트레이트로 각각 부호화된 복수의 부호화 데이터를 수신한다. 예를 들어, 부호화 데이터 수신부(410)는 하나의 영상 소스에 대하여 저화질, 즉, 낮은 비트레이트(예: 5 Mbps)로 부호화된 부호화 데이터 및 동일한 영상 소스에 대하여 고화질, 즉, 높은 비트레이트(예: 25 Mbps)로 부호화된 부호화 데이터를 각각 수신할 수 있다.
도 5의 (a) 및 도 5의 (b)는 본 발명의 실시예에 따른 하나의 입력 영상소스에 대한 부호화 데이터의 개념도이다.
본 발명의 실시예에 따른 부호화 데이터는 복수의 타일 또는 슬라이스로 구성될 수 있다. 도 5의 (a) 및 도 5의 (b)는 하나의 입력 영상소스를 각각 16개의 타일로 분할하여 각각 5 Mbps 및 25 Mbps로 각각 부호화한 부호화 데이터들을 예시한다. 각각의 부호화 데이터를 구성하는 복수개의 직사각형 형태는 각각 타일을 의미한다. 도 5의 (a) 및 도 5의 (b)에서는 복수의 타일들의 크기가 서로 동일한 것으로 도시되어 있으나, 이에 한정되지 않고 타일들 각각의 크기가 서로 다른 것이 포함되도록 구성될 수도 있으며, 이러한 사항은 도 6의 (a) 내지 도 12의 (d)에 대하여도 동일하게 적용된다.
도 5의 (a) 및 도 5의 (b)는 중요위치 정보를 기반으로 자유롭게 타일을 추출하고 병합하기 위하여 인접한 타일을 참조하지 않고 영상 내 모든 타일들을 독립적으로 부호화한 경우를 예시한 도면이며, 하나(도 5의 (a))는 저화질로 다른 하나(도 5의 (b))는 고화질로 부호화한 데이터를 예시한 것이다.
도 5의 (a) 및 도 5의 (b)와 달리 실시예에 따라 하나의 입력 영상소스가 3가지 이상의 비트레이트(예: 저화질, 하나 이상의 일반화질 및 고화질 등)로 각각 부호화되는 경우도 있다. 다만, 명확한 설명을 위하여, 이하에서는 입력 영상소스가 저화질 및 고화질의 2가지 비트레이트(5 Mbps 및 25 Mbps)로 각각 부호화된 경우를 예로 들어 설명한다.
입력 스트림 동기화부(420)는 부호화 데이터의 추출 및 병합을 영상 시퀀스 상의 동일한 시간 위치에서 시작할 수 있도록 각 부호화 데이터의 I 프레임을 찾아 개별 부호화 데이터의 프레임 입력 순서를 서로 동기화시켜 영상 시퀀스 상에서 부호화 데이터 간에 내용이 서로 어긋나지 않도록 한다.
문맥 파싱부(430)는 부호화된 스트림에서 픽처 내 타일 구조 및 개수, 타일의 크기, 독립 타일/비독립 타일인지 여부 등을 파싱(parsing)할 수 있다. 파싱된 정보를 통해 중요영역의 추출 형태, 크기 등을 결정하여 여러 화질의 스트림을 추출하여 다양한 형태로 병합할 수 있도록 정보를 제공한다. 예를 들어, 타일의 구조와 개수, 크기에 따라 영상 내 중요영역으로서 추출될 영역의 형태 및 크기를 결정할 수 있으며 중요영역으로서 추출될 영역의 형태는 사각형, 마름모 등 타일 세트로 구성할 수 있는 다양한 형태가 될 수 있다. 또한, 사용자 단말장치(150)가 네트워크로부터 사용 가능한 전송 비트레이트, 영상 내 중요도 위치에 따라 추출될 중요 영역의 개수와 각 중요 영역의 크기를 정할 수 있다. 또한 360° VR 영상의 경우, 위(천장)와 아래(바닥) 부분은 시청 중요도가 떨어지므로, 해당 영역은 독립 타일 보다는 비독립 타일로 정의할 수도 있다.
영상 생성부(440)는 입력 영상에서 입력 영상의 복수의 영역들을 그 중요도에 따라 구분하고, 복수의 영역들 각각에 대하여 복수의 부호화 데이터 중 해당 영역들 각각의 중요도에 상응하는 서로 다른 비트레이트를 갖는 부호화 데이터로부터 해당 영역의 데이터를 추출하고, 복수의 영역에 대응하여 각각 추출된 부호화 데이터를 서로 병합하여 혼합 영상 스트림을 생성한다.
영상 생성부(440)는, 중요도에 따라 결정되는 중요영역의 위치에 따라, 서로 다른 조합의 타일 데이터를 갖는 복수개의 혼합 영상 스트림을 생성한다.
영상 생성부 (440)는 입력 영상소스에서 중요도가 가장 높은 중요영역을 설정하고 중요도에 따라 입력 영상소스를 복수의 영역들로 구분한다. 여기서, 중요영역은 가장 높은 비트레이트로 부호화된 부호화 데이터로부터 추출될 영역을 의미한다. 중요도는 전술한 중요위치 정보로부터 결정될 수 있으며, 하나의 입력 영상소스에서 사용자의 시점 위치(또는, 입력 영상소스 내 객체 위치)에 가까운 영역일수록 중요도가 높은 것으로 설정될 수 있다.
또한, 영상 영역은 시청이 자주 이루어지는 위치(중요영역에 해당)와 자주 이루어지지 않는 위치로 구분될 수도 있다. 구체적으로, 영상 생성부(440)는 사용자 단말장치(150)로부터 입력 영상소스에 대한 사용자의 시점 위치를 획득하여 사용자의 시점 위치로부터 일정 범위 내에 포함되는 하나 이상의 영역을 중요영역으로 설정하고, 사용자의 시점 위치로부터 떨어진 거리에 근거하여 복수의 영역들로 구분할 수 있다.
사용자의 시점 위치를 기반으로 중요영역을 설정하는 경우, 영상 생성부 (440)는 주기적으로 사용자의 시점 위치를 사용자 단말장치(150)로부터 획득하여 기 획득된 시점 위치와 비교하여 새로 획득된 시점위치가 기 획득된 시점 위치로부터 이동이 있는지 여부를 확인하고, 시점 위치의 이동이 있는 경우에 이를 반영하여 중요영역을 새롭게 설정할 수 있다.
또한, 영상 생성부(440)는 주기적으로 사용자의 시점 위치를 획득하여 영상을 디코딩할 사용자 단말장치(150)의 디코더 성능에 따라 시점 위치에 해당되는 영역의 고화질 영역만 추출하여 다른 영역의 화질과의 병합 없이 전송할 수도 있다.
예를 들어 VR 영상의 경우, 2D 영상을 구체(sphere)의 3D로 변환하여 프로젝션한다. 원래의 해상도가 2160p로 생성된 VR 영상의 경우, 2160p VR 디코딩이 불가능한 단말이 있을 수 있으므로, 중요 영역으로 설정된 1080p 영역만 고화질로 부호화된 스트림에서 추출하여 전송할 수 있다.
이러한 경우, 사용자 단말장치(150)에서는 원래 영상의 해상도(2160p)에 맞게 VR 렌더링을 하되 전송된 일부 영역(1080p)만 프로젝션하여 재생할 수 있으며, 이를 위해 스트림 전달장치(140)에서는, 재생될 영상이 전체 영역인지 혹은 일부 영역인지에 대한 flag와, 단말 상의 플레이어의 전체 영역에 해당하는 해상도, 일부 영역에 해당하는 영상 데이터만 사용자 단말장치(150)에게 전달될 경우에 해당하는 일부 영역의 해상도 정보도 함께 제공할 수 있다.
또한, 영상 생성부 (440)는 영상에서 하나 이상의 객체 위치를 획득하여 하나 이상의 객체의 위치로부터 일정 범위 내에 포함되는 하나 이상의 영역을 중요영역으로 설정하고, 하나 이상의 객체의 위치로부터 떨어진 거리에 근거하여 픽처 내에서 복수의 영역들을 구분할 수도 있다. 여기서, 객체의 위치는 본 발명의 실시예에 따른 영상 추출 병합 장치(130) 혹은 사용자 단말장치(150)에 구현된 객체 검출(Object Detection) 및 추적(tracking), 시청자의 시야 방향 추적(eye tracking) 알고리즘에 의해 획득되거나, 객체를 검출한 외부 장치(미도시)로부터 획득될 수도 있다.
객체 위치를 기반으로 중요영역을 설정하는 경우에는 입력 영상소스에 포함된 객체가 복수일 수 있으므로 중요영역 역시 복수 개가 설정될 수 있다.
입력 영상소스에 중요영역을 설정함에 있어 사용자의 시점 위치 및 객체 위치 외에도 입력 영상소스의 특성에 따라 추가적으로 고려해야 할 사항이 있다. 예를 들어, 입력 영상소스가 360° 동영상인 경우, 중요영역이 영상 내의 어느 부분에 위치하느냐에 따라 다른 영역을 중요영역으로 추가 설정하거나 기 설정된 중요영역을 축소해야 할 수 있다.
구체적으로 설명하면, 360° 동영상은 재생 시 이미지의 양단이 접하는 것처럼 보일 수 있는 특징이 있다. 즉, 이미지의 상측 양단끼리 접하거나 하측 양단끼리 접해보일 수 있다. 이는 다수의 카메라에서 촬영된 영상을 하나로 합치는 스티칭(Stitching) 과정에서 이미지가 왜곡(Warping)되기 때문이다.
따라서, 영상 생성부 (440)는, 중요영역으로 설정된 영역이 입력 영상소스의 상측 일단 영역을 포함하는 경우 입력 영상소스의 상측 타단 영역도 중요영역으로 설정할 수 있으며, 중요영역으로 설정된 영역이 입력 영상소스의 하측 일단 영역을 포함하는 경우, 입력 영상소스의 하측 타단 영역도 중요영역으로 설정할 수 있다.
전술한 스티칭 과정에 의해 360° 동영상에 있어서 이미지 왜곡(Warping)은 이미지의 중심부보다는 이미지의 상단 영역과 하단 영역에 더 많이 발생하며, 이미지의 상단 영역과 하단 영역에 정보의 중복성(Redundancy)이 발생한다. 또한, 일반적으로 360° 동영상의 상단 영역 및 하단 영역은 일반적으로 각각 하늘과 지면으로 표시되기 때문에 이미지의 중심 영역의 중요도가 이미지의 상단 영역 및 하단 영역보다 높은 경우가 많다.
따라서, 영상 생성부 (440)는 중요도가 가장 높은 영역이 입력 영상소스의 상단 영역 또는 하단 영역(최상단 타일에 해당하는 영역 또는 최하단 타일에 해당하는 영역)을 포함하는 경우, 해당하는 최상단 영역 또는 최하단 영역을 중요영역에서 제외하고 중요도가 가장 높은 나머지 영역을 중요영역으로 설정할 수 있다.
영상 생성부 (440)에 의해 구분된 복수의 영역들에 각각 속하는 타일들의 개수는 타일의 크기 및 중요영역의 위치에 따라 달라질 수 있다. 즉, 중요영역으로 설정되어 고화질 영상으로부터 추출되는 영역에 포함되는 타일들의 개수는 가변적이다.
영상 생성부 (440)는 복수의 영역들 각각에 대하여 복수의 부호화 데이터 중 복수의 영역들 각각의 중요도에 상응하는 비트레이트를 갖는 서로 다른 부호화 데이터로부터 추출하고, 추출된 영역들을 병합하여 입력 영상소스에 대응하는 혼합 영상 스트림을 생성할 수 있으며, 이와 같이 생성된 혼합 영상 스트림은 하나의 중요도 프로파일에 해당한다.
영상 생성부 (440)는 부호화를 위한 복수의 데이터 처리 단위(즉, 타일 및 슬라이스)로 분할되는 입력 영상소스의 헤더 정보에 데이터 처리 단위의 크기 및 위치 정보, 초기 Qp 값, 및 복수의 데이터 처리 단위 간 필터링 적용 여부에 대한 정보를 포함시킬 수 있다. 또한, 입력 영상소스의 복수의 영역들 중 데이터 처리 단위가 포함되는 영역의 중요도에 상응하는 Qp 값을 데이터 처리 단위의 헤더 정보에 포함시킬 수 있다.
본 실시예에 따른 입력 영상소스에 대응하는 부호화 데이터의 구조는 입력 영상소스 헤더 정보, 타일의 헤더 정보, 부호화 데이터 정보 순서로 구성될 수 있으며, 래스터 스캔(Raster Scan) 순서로 영상소스 내 모든 타일의 헤더 정보 및 부호화된 영상소스 정보가 순차적으로 구성될 수 있다.
여기서, 입력 영상소스의 헤더는 타일의 크기 및 위치에 관한 정보, 초기 Qp 값 및 필터링의 활성/비활성 정보를 포함할 수 있다. 각 타일은 각각 해당하는 중요도에 따라 부호화되며, 각 타일의 헤더는 해당 중요도에 상응하는 정보(즉, Qp delta 값)을 포함하고, 부호화 데이터는 해당 중요도에 따라 부호화된 정보를 포함한다. 이미 전송된 헤더 정보를 참조하는 경우에는 입력영상 소스의 헤더 정보가 생략될 수도 있다.
구체적으로, 영상 생성부 (440)는 복수의 영역들 중 중요영역은, 복수의 부호화 데이터 중 비트레이트가 가장 높은 부호화 데이터로부터 추출하고, 복수의 영역들 중 중요도가 낮은 영역일수록 비트레이트가 낮은 부호화 데이터로부터 추출할 수 있다.
영상 생성부 (440)는 중요영역이 실시간으로 이동될 수 있음을 고려하여 중요영역의 인접 영역까지도 복수의 부호화 데이터 중 비트레이트가 가장 높은 부호화 데이터로부터 추출할 수 있다.
도 6의 (a) 내지 도 6의 (d)는 도 5의 (a) 및 도 5의 (b)의 부호화 데이터를 근거로 한 본 발명의 실시예에 따른 혼합 영상 비트스트림 구조의 개념도이다.
도 6의 (a) 내지 도 6의 (d)를 참조하면, 영상 생성부 (440)는 영상의 중요영역에 대한 정보에 따라 저화질(예: 5 Mbps) 영역 및 고화질(예: 25 Mbps) 영역이 병합되어 부호화된 구조로 입력 영상소스에 대응하는 혼합 영상 스트림을 생성할 수 있다.
도 6의 (a), 도 6의 (b), 도 6의 (c) 및 도 6의 (d)에 도시된 타일 구조에 따른 영상 전체의 평균 부호화율은 각각 10 Mbps, 12 Mbps, 12 Mbps, 및 16 Mbps로 계산될 수 있다. 영상 내의 모든 타일들을 25 Mbps의 비트레이트로 부호화하는 경우에 비하여 대략 50 % 정도의 비트레이트 감소를 예상할 수 있다.
도 6의 (a) 내지 도 6의 (d)에서 굵은 선으로 표시된 직사각형은 영상 내 중요위치를 나타낸다. 여기서, 중요위치는 사용자의 시점 위치 및 입력 영상소스에서 검출된 객체 위치와 같이 중요도가 높은 영역의 위치를 나타낸다. 이는 도 7의 (a) 내지 도 12의 (d)에 대하여도 동일하게 적용된다.
도 6의 (a)와 같이 중요위치의 경계가 타일의 경계와 일치하는 경우, 중요위치에 포함된 타일들이 중요영역으로 설정될 수 있고, 도 6의 (b), (c) 및 (d)와 같이 중요위치의 경계가 타일의 경계와 일치하지 않는 부분이 존재하는 경우, 중요위치에 일부라도 포함되는 타일들을 모두 중요영역으로 설정할 수도 있다.
중요영역을 구성하는 타일들은 도 5의 (b)와 같은 고화질로 부호화된 부호화 데이터로부터 추출되고, 중요영역 이외의 영역을 구성하는 타일들은 도 5의 (a)와 같은 저화질로 부호화된 부호화 데이터로부터 추출되어 최종적으로 하나의 혼합 영상 비트스트림으로 병합될 수 있다. 실시예에 따라서 혼합 영상 스트림의 구조는 3가지 이상의 다양한 비트레이트를 갖는 부호화 데이터의 타일들로 구성될 수도 있다.
도 7의 (a) 내지 (d)는 도 5의 (a) 및 도 5의 (b)의 부호화 데이터를 근거로 한 본 발명의 다른 실시예에 따른 혼합 영상 스트림 구조의 개념도이다.
구체적으로, 도 7의 (a) 내지 (d)는 전술한 360° 동영상의 특징을 고려하여 설정된 중요영역에 근거하여 생성된 혼합 영상 스트림의 구조를 나타낸다. 도 7의 (a) 내지 (d)에 도시된 타일 구조에 따른 영상 전체의 평균 부호화율은 각각 14 Mbps, 12 Mbps, 12 Mbps 및 9 Mbps로 계산될 수 있다. 도 7의 (a) 내지 (d)의 경우는, 도 6의 (a) 및 (b)에서와 마찬가지로 모든 타일들을 25 Mbps의 비트레이트로 부호화하는 경우에 비하여 대략 50 % 정도의 비트레이트 감소를 예상할 수 있다.
도 7의 (a)는 중요영역이 영상의 최하측 일단 영역을 포함하는 경우 영상의 최하측 타단 영역도 중요영역으로 설정된 경우를 나타낸다. 이는 360° 동영상이 스티칭 과정에서 왜곡(Warping)되는 것을 고려한 것이다.
도 7의 (b) 및 (c)는 360° 동영상의 상단 영역 및 하단 영역에 스티칭에 의한 정보의 중복성(Redundacy)이 발생할 수 있음을 고려하여, 중요위치임에도 불구하고 영상의 최상단 및 최하단에 존재하는 타일들을 중요영역에서 제외한 경우를 도시한다.
도 7의 (d)는 도 7의 (a) 내지 (c)에 각각 적용된 타일 구성 방식이 모두 적용된 경우로서, 도 7의 (a)와 같은 영상에서 영상의 최하단에 존재하는 타일들을 중요영역에서 제외한 경우를 도시한다.
도 8의 (a) 및 (b)는 도 5의 (a) 및 도 5의 (b)의 부호화 데이터를 근거로 한 본 발명의 또 다른 실시예에 따른 혼합 영상 스트림 구조의 개념도이다.
구체적으로, 도 8의 (a) 및 (b)는 입력 영상에서 검출된 하나 이상의 객체 위치를 이용하여 중요영역을 설정한 경우를 나타낸다. 전술한 바와 같이 검출된 객체 수에 따라 중요영역은 복수 개로 설정될 수 있다.
도 9의 (a) 내지 (d)는 본 발명의 다른 실시예에 따른 입력 영상소스에 대한 부호화 데이터의 개념도이다.
도 9에 도시한 바와 같이, 부호화 장치(120)가 생성 가능한 복수의 부호화 데이터로서, 서로 인접한 타일 또는 슬라이스의 정보를 참조하여 부호화된 데이터들로 구성된 제1 부호화 데이터 그룹(예: 도 9의 (c) 및 (d)), 및 서로 인접한 타일 또는 슬라이스의 정보를 참조하지 않고 독립적으로 부호화된 데이터들로 구성된 제2 부호화 데이터 그룹(예: 도 9의 (a) 및 (b))을 포함할 수 있다.
도 9에서, 타일들 사이의 실선은 인접한 두 타일 간의 인터 예측(Inter Prediction) 시 서로 참조하지 않도록 설정되어 서로 상관관계가 없음을 의미한다. 즉, 어느 하나의 타일에 대한 인터 예측 시 다른 타일을 참고하지 않으므로 각각의 타일이 독립적임을 나타낸다. 타일들 사이의 점선은 인접한 두 타일 간의 인터 예측 시 서로 상관관계가 있음을 의미한다. 즉, 어느 하나의 타일에 대한 인터 예측 시 다른 타일을 참고하여 부호화할 수 있도록 설정되므로 각각의 타일이 비독립적임을 나타낸다.
도 13은 독립 타일로 구성된 고화질 부호화 데이터와 비독립 타일로 구성된 고화질 부호화 데이터를 각각 생성하고, 이 두 부호화 데이터를 이용하여 영상을 추출 및 병합하는 과정을 예시한 도면이다.
도 13에 도시한 바와 같이, 부호화 장치(120)는 하나의 영상 소스에 대하여 독립 타일로 구성된 부호화 데이터1과 비독립 타일로 구성된 부호화 데이터2로 각각 부호화 한다.
독립 타일로 구성된 부호화 데이터1은 부호화 데이터1 내 모든 타일이 다른 타일을 참조하지 않도록 설정된 부호화 데이터를 의미한다. 비독립 타일로 구성된 부호화 데이터2는 해당 부호화 데이터2 내 모든 타일이 다른 타일을 참조하여 부호화하는 것이 허용된 부호화 데이터를 의미한다. 여기서, 비독립 타일이 자신이 아닌 다른 타일을 참조할 경우, 참조되는 타일은 독립 타일로서 부호화된 부호화 스트림(즉, 부호화 데이터1)으로부터 복원된 영상 내의 타일을 참조한다. 이 경우,영상 추출 병합 장치(130)는 중요영역에 따라 부호화 데이터1 및 부호화 데이터2에서 각기 다른 영역의 부호화 데이터를 추출하고 이와 같이 추출된 서로 다른 영역의 부호화 데이터를 병합하여 혼합 영상 스트림을 생성할 수 있다.
도 14는 병합된 혼합 영상 스트림의 타일 구성이 5번 타일은 비독립 타일로 구성된 부호화 데이터2에서 추출하고, 그 이외 모든 타일은 독립 타일로 구성된 부호화 데이터1에서 추출한 것을 예시한 도면이다.
도 14에 도시한 바와 같이, 해당 5번 타일은 비독립 타일로서 inter prediction 시에 다른 타일(즉, 독립 타일)을 참조하게 된다. 만약, 5번 타일이 참조하는 다른 위치의 타일이 비독립 타일이라면, 도 14에서처럼 영상 추출 병합 후에는 참조하는 비독립 타일에 대한 정보가 존재하지 않아 정상적인 예측 과정을 수행할 수 없다. 따라서, 비독립 타일이 자신이 아닌 다른 타일을 참조할 경우, 참조되는 타일은 반드시 독립 타일로 부호화 및 복호화된 타일이 되도록 하여야 한다.
영상 추출 병합 장치(130)가 혼합 영상 스트림을 생성하는 경우, 혼합 영상 스트림 내부의 특정 위치의 타일 영역을 위하여 추출한 부호화 데이터에서 인터 예측을 수행할 때 참조되는 타일의 특성에 따라 해당 특정 위치의 타일 영역에 해당하는 데이터를 다른 부호화 데이터로부터 추출할 수도 있다.
예컨대, 만일, 혼합 영상 스트림에 포함하고자 하는 특정 위치의 타일 영역에 비독립 타일에 해당하는 부호화 데이터로부터 추출하는 경우, 해당 비독립 타일이 자신이 아닌 다른 비독립 타일을 참조하는 것으로 확인된 경우, 영상 추출 병합 장치(130)는 해당 비독립 타일의 위치의 데이터를 비독립 타일 대신에 독립 타일에 해당하는 부호화 데이터로부터 추출할 수도 있다. 즉, 영상 추출 병합 장치(130)는 독립 타일을 참조하도록 비독립 타일을 구성할 수 없는 경우에는, 혼합 영상 스트림 내의 모든 타일을 독립타일로 구성한다.
도 15a는 독립 타일로 구성된 영상이고 도 15b는 비독립 타일로 구성된 영상을 예시한 도면이다.
도 16a는 360° 구(sphere) 상의 시점(view point) 영역(혹은 display 영역)을 그림으로 표현한 도면이고, 도 16b는 360° 구 상의 좌표를 도시한 도면이다.
360° 구 상의 시점 영역을 2D 이미지 내 영역에 매핑 시키기 위해, 360° 구 상의 한 점을 2D 이미지 내의 한 점 (x, y)으로 매핑시킬 수 있다. 그 매핑 관계는 수학식 1과 같고, 수학식 1에서 사용되는 파라미터를 360° 구에서 표현하면 도 16b와 같다(수학식 1은 3D coordinates to 2D coordinates 변환 방법 중 하나임). 도 16b를 살펴보면, 3D 상의 한 점(S1)의 좌표값을 표현하기 위해 4개의 파라미터가 사용된다. 해당 4개의 파라미터 값을 이용하여 해당 3D 한 점을 2D 이미지 상의 한 점으로 좌표값 변환할 수 있다.
[수학식 1]
x = (λ - λ0)cosφ1
y = (φ - φ1)
여기서,
λ : 프로젝트에서 위치의 경도(the longitude of the location to project)
φ : 프로젝트에서 위치의 위도 (the latitude of the location to project)
φ1 : 표준 평행선(the standard parallels (north and south of the equator))
λ0 : 이미지의 중심 자오선(the central meridian of the image)
x : 이미지에 프로젝션된 위치의 수평 좌표(the horizontal coordinate of the projected location on the image)
y : 이미지에 프로젝션된 위치의 수직 좌표(the vertical coordinate of the projected location on the image)
도 17a는 Sphere 상의 display 영역을 도시한 도면이고, 도 17b는 도 17a에 상응하는 equi-rectangular 이미지 내 영역을 예시한 도면이다.
3D 상의 시점 정보로부터 얻어진 display 영역 내 모든 좌표값을 2D로 변환하는 대표적인 방법인 equi-rectangular 방법으로 이미지 상의 좌표값으로 변환하면, 도 17b의 이미지 상의 짙은 실선 모양의 영역을 획득할 수 있다. 도 17b는 sphere 상의 일정 영역에 상응하는 이미지 상의 특정 영역에 대한 일례를 보여준다. 3D 시점 영역에 해당하는 이미지 상의 특정 영역이 3D 이미지 내의 어느 부분인지에 따라 2D로 변환된 이미지 상의 특정 영역의 모양이 달라진다. 예를 들어, 3D 시점에 해당하는 이미지 상의 영역이 sphere 상에서 최상단(top) 혹은 최하단(bottom)에 해당하는 영역이면 도 17b의 2D 이미지 상의 대응 영역의 모양이 많이 달라진다.
영상 추출 병합 장치(130)는 시점 정보를 이용하여 영상 이미지 상의 특정 영역을 선택하고 해당 특정 영역을 포함하는 다수의 타일을 선택하여 혼합 영상 스트림을 재구성할 수 있다. 영상 추출 병합 장치(130)에 입력되는 시점 정보는 3D 좌표 정보일 수도 있고, 이미 매핑된 2D 좌표 정보일 수도 있다.
도 17a와 같은 display 영역(3D 시점 영역, 즉 중요 영역)에 대응하여 도 15a 및 도 15b와 같은 부호화 데이터로부터 해당하는 중요 영역에 대응하는 타일의 부호화 데이터를 추출함으로써 혼합 영상 스트림을 구성할 수 있으며, 예를 들어 도 18과 같은 혼합 영상 스트림을 얻을 수 있다.
도 18은 equi-rectangular 상의 중요 영역의 영상과 전체 영상 내에 포함되는 타일을 표시한 도면이다. 전체 영상 내의 다수 개의 타일 중에서 중요 영역에 대응되는 타일은 도 18에 도시한 바와 같이 9개가 된다.
영상 추출 병합 장치(130)는 display 영역 정보와 타일의 구성 정보를 안다면, display 영역을 포함한 타일의 위치 및 구성 정보를 알 수 있다. 또한, 영상 추출 병합 장치(130)는 display 영역에 해당하는 9개의 타일(이미지 상의 대응 영역) 중 display 영역의 경계(boundary) 부분에 존재하는 타일은 독립 타일로, display 영역 내에 포함되지만 경계(boundary) 부분에 위치하지 않는 타일인 중심 타일은 비독립 타일로 구성할 수도 있다.
영상 추출 병합 장치(130)는 전체 영상의 디코딩을 위해 도 18과 같이 독립 타일 및 비독립 타일을 혼합하여 한 장의 이미지를 위한 모든 타일 을 포함한 혼합 영상 스트림을 구성할 수도 있고, 부분 디코딩을 목적으로 display 영역에 해당하는 9개의 타일 이외의 타일은 포함하지 않는 혼합 영상 스트림을 구성하여 스트림 전달장치(140)로 전송할 수도 있다.
도 13에서 디코더(1350)는 재구성된 비트스트림을 복호화한다.
영상 내의 타일들이 서로 독립적인 경우, 단순하게 타일들을 구성할 수 있는 장점이 있으나 압축 성능이 낮아지고 타일의 경계부분에서 이질감이 나타날 수 있는 문제점이 있다. 이러한 문제점은 하나의 영상을 구성하는 타일들의 일부를 비독립적으로 구성함으로써 보완될 수 있다. 이를 위해 영상 추출 병합 장치(130)가 타일 구성에 대한 부가 정보(SEI)를 생성하여 비트스트림에 삽입할 수 있다.
영상 추출 병합 장치(130)는 [표 1] 및 [표 2]의 신택스 값을 구하여 부가 정보 (SEI)를 생성한 후, 설정된 중요영역에 대응되는 혼합 영상 스트림에 삽입한다.
디코더(1350)는 해당 혼합 영상 스트림으로부터 SEI 정보를 읽어 영상 내에서 display 영역에 대한 타일의 위치 및 구성 정보를 획득하여 전체 영상을 디코딩할 수 있으며, display 영역만 포함하는 혼합 영상 스트림이 전송된 경우에는 display 영역에 대해서만 부분적인 디코딩(partial decoding)을 수행할 수도 있다.
본 건에 포함된 모든 시나리오에서 수신단 측에서 시점 정보를 획득할 수 없는 경우를 대비하여 송신단 측 인코더는 기설정된 초기 디스플레이 위치(default initial display position)을 지정할 수 있다. 인코더는 초기 display 위치 정보를 SEI를 포함한 header 정보에 추가할 수 있다. 초기 Display 위치 정보는 이미지 상의 좌표값으로서 [표 6]의 신택스와 같다. 또한 초기 display 위치 정보는 도 3과 같은 부호화 데이터에 포함되는 tile set을 위한 [표 1] 및 [표 2]의 신택스와 동일한 형태일 수 있다.
u_pos
v_pos
영상 추출 병합 장치(130)는 사용자의 시점(viewpoint) 정보가 입력되지 않는 경우, 인코더가 보낸 부가 정보 (default initial display position)를 토대로 혼합 영상 스트림을 재구성할 수 있다. 또한, 영상 추출 병합 장치(130)는 정상적으로 시점(viewpoint) 정보가 입력이 되면, 입력된 시점(viewpoint) 정보를 토대로 혼합 영상 스트림을 재구성하게 된다.
영상 추출 병합 장치(130)는 입력된 시점(viewpoint) 정보를 통해 display 영역에 해당하는 타일을 구성할 때, 일반적으로 입력된 시점좌표에 해당하는 타일과 그 타일에 접하는 타일들을 display 영역으로서 설정함으로써 최소 개수의 타일로 해당 영역을 구성할 수 있다. 또한, 영상 추출 병합 장치(130)는 사용자의 시점(viewpoint) 이동을 고려하여 입력된 시점좌표에 해당하는 타일과 그 타일에 접하는 타일 영역보다 더 확장된 영역에 해당하는 타일을 구성할 수 있다. 이때, 확장 정도는 scaling factor를 사용할 수 있다. 예를 들어, scaling factor가 1.5인 경우 기존의 display 영역보다 1.5배 확장된 영역을 display 영역으로 설정할 수 있다. 또한, 영상 추출 병합 장치(130)는 offset을 사용하여 확장 영역을 구성할 수 있다. 예를 들어, offset이 100으로 설정된 경우, 기존의 display 영역 가로축 및 세로축의 길이에 100을 더한 값만큼 확장하여 확장된 display 영역으로 설정할 수도 있다. 해당 offset은 가로축 및 세로축에 대하여 각각 지정할 수도 있다.
도 10의 (a) 내지 (d)는 도 9의 (a) 내지 (d)의 부호화 데이터를 근거로 한 본 발명의 실시예에 따른 혼합 영상 스트림 구조의 개념도이다.
도 10의 (a) 내지 (d)에 도시된 타일 구조에 따른 영상 전체의 부호화율은 각각 10 Mbps, 11 Mbps, 11 Mbps 및 12 Mbps로 계산될 수 있다. 모든 타일들을 25 Mbps로 부호화한 경우에 비하여 약 50 % 정도로 비트레이트가 감소한 것을 알 수 있다.
도 10의 (a) 내지 (d)에 도시된 바와 같이, 영상 생성부(440)는 중요영역과 중요영역 이외의 영역 사이의 경계에 인접한 영역은 제2 부호화 데이터 그룹(예: 도 9 의 (a), (b))에 속한 부호화 데이터 중 해당 영역의 중요도에 상응하는 비트레이트를 갖는 부호화 데이터로부터 추출할 수 있다. 예컨대, 고화질 영역과 저화질 영역 사이의 경계에 존재하는 타일들은 독립 타일들로 구성될 수 있다.
중요영역과 중요영역 이외의 영역 사이의 경계에 인접하지 않은 영역은 제1 부호화 데이터 그룹(예: 도 9의 (c), (d))에 속한 부호화 데이터 중 해당 영역의 중요도에 상응하는 비트레이트를 갖는 부호화 데이터로부터 추출할 수 있다. 예컨대, 고화질 영역과 저화질 영역 사이의 경계 외에 존재하는 타일들은 비독립적인 타일들로 구성될 수 있다. 이로써, 압축 성능을 높일 수 있는 효과가 있다.
도 11의 (a) 내지 (d)는 도 9의 (a) 내지 (d)의 부호화 데이터를 근거로 한 본 발명의 다른 실시예에 따른 혼합 영상 스트림 구조의 개념도이다.
구체적으로, 도 11의 (a) 내지 (d)는 전술한 360° 동영상의 특징을 고려하여 설정된 중요영역에 근거하여 생성된 혼합 영상 스트림의 구조를 나타낸다. 도 11의 (a) 내지 (d)에 도시된 타일 구조에 따른 영상 전체의 부호화율은 각각 12 Mbps, 11 Mbps, 10 Mbps 및 8 Mbps로 계산될 수 있다. 모든 타일들을 25 Mbps로 부호화한 경우에 비하여 약 50 % 정도로 비트레이트가 감소한 것을 알 수 있다.
도 10의 (a) 내지 (d), 및 도 11의 (a) 내지 (d)와 같이 타일들을 구성하는 경우, 압축 성능을 향상시킬 수 있으나, 서로 다른 화질을 갖는 타일들 간의 경계에서 발생하는 이질감 문제는 여전히 존재할 수 있다.
이에 따라, 본 발명의 또 다른 실시예에 따른 영상 생성부(440)는 영상 내의 기 설정된 중요위치에 따라 미리 고화질 영역에 해당하는 타일 및 저화질 영역에 해당하는 타일들을 구성하여 부호화하여 혼합 영상 스트림을 생성한다. 또한, 영상 생성부(440)는 다양한 위치의 기설정된 중요위치에 따라 각각 해당하는 고화질 영역에 해당하는 타일 및 저화질 영역에 해당하는 타일들을 구성하여 혼합 영상 스트림을 생성하며, 다채널 스트림 전송부(450)는 다양한 위치의 기설정된 중요위치를 기반으로 하는 다양한 형태의 혼합 영상 스트림을 스트림 전달 장치(140)에게 전송한다. 스트림 전달 장치(140)는 사용자 단말장치(150) 등으로부터 실제 중요위치에 대한 정보를 획득하여 이에 부합하는 혼합 영상 스트림을 다양한 형태의 혼합 영상 스트림 중에서 선택하여 사용자 단말장치(150)에게 전송한다.
구체적으로, 본 실시예에 따른 부호화 데이터 수신부(410)는 입력 영상에 해당하는 복수의 영역들의 중요도에 따라서 영역 별로 서로 다른 비트레이트로 각각 부호화된 입력 영상소스에 대한 복수의 부호화 데이터를 부호화 장치(120)로부터 수신한다.
본 실시예에 따른 스트림 전달 장치(140)는 외부 장치(미도시)로부터 입력 영상소스에 대한 중요위치 정보를 수신하여 복수의 혼합 영상 스트림 중 해당 중요위치 정보에 부합하는 혼합 영상 스트림을 생성한다.
본 실시예에서 영상 추출 병합 장치(130)는, 기 설정된 소정 개수의 중요위치를 복수개 미리 구성하여, 기 설정된 중요위치 별로 각각 다르게 구성된 복수의 혼합 영상 스트림을 생성하며, 스트림 전달 장치(140)는 생성된 복수의 혼합 영상 스트림 중에서 실제 중요위치(즉, 중요위치 정보)에 부합하는 혼합 영상 스트림을 선택하여 사용자 단말장치(150)로 전송한다.
중요위치 정보는 입력 영상소스에 대한 사용자의 시점 위치 및 입력 영상소스에서 검출된 하나 이상의 객체 위치 중 적어도 하나를 포함할 수 있다.
기 설정된 소정 개수의 중요위치는 입력 영상소스를 구성하는 타일 또는 슬라이스의 크기, 타일 또는 슬라이스의 개수 및 입력 영상소스의 해상도 중 적어도 하나를 고려하여 설정될 수 있다.
도 12의 (a) 내지 (d)는 본 발명의 또 다른 실시예에 따른 혼합 영상 스트림 구조의 개념도이다.
도 12의 (a) 내지 (d)에 표시된 중요위치는 기 설정된 중요위치로서, 16개의 동일한 크기의 타일들로 구성되는 입력 영상픽처를 가로축을 기준으로 4개의 타일들로 구성되는 경우, 사용자의 시점이 위치할 수 있는 4가지 경우를 나타낸다. 도 12의 (a) 내지 (d)를 참조하면, 부호화 데이터들을 구성하는 타일들은 모두 비독립적인 타일들로 구성될 수 있으며, 이는 타일들 간의 이질감 문제를 해결하기 위함이다.
또 다른 방법은 타일을 사용하지 않고, 입력 소스를 하나의 부호화 단위로 설정하여 도 12의 (a) 내지 (d)에 표시된 중요영역 별로 부호화 데이터를 별도로 생성할 수도 있다. 즉, 중요영역의 위치 별로 미리 지정된 개수만큼의 부호화 데이터를 각각 별도로 생성할 수도 있다. 예를 들어, 미리 설정된 가능한 중요영역의 위치에 따른 개수가 16개라면, 16개의 부호화 데이터를 미리 설정된 중요영역에 맞춰서 생성한다.
도 12의 (a) 내지 (d)에 도시된 타일 구조에 따른 혼합 영상 스트림의 부호화율은 각각 12 Mbps, 12 Mbps, 12 Mbps 및 12 Mbps로 계산될 수 있다. 모든 타일들을 25 Mbps로 부호화한 경우에 비하여 약 50 % 정도로 비트레이트가 감소되는 것을 예상할 수 있다.
도 19는 본 실시예에 따른 스트림 전달 장치(140)를 도시한 블록도이다.
본 실시예에 따른 스트림 전달 장치(140)는 다채널 스트림 수신부(1910), 비트스트림 선택부(1920), 및 단말 요청 수신부(1930)를 포함한다.
다채널 스트림 수신부(1910)는 타일 기반으로 중요도에 따라 다양한 프로파일로 생성된 여러 채널의 혼합 영상 스트림을 각각 수신한다.
비트스트림 선택부(1920)는 사용자 단말장치(150)으로부터 중요위치 정보를 수신하고, 중요위치 정보에 대응하는 위치, 네트워크 QoS, 사용자 단말장치(150)의 전파세기 등 사용자 단말장치(150)의 조건에 따라 해당하는 혼합 영상 스트림을 선택하고 사용자 단말장치(150)에게 전송한다.
단말 요청 수신부(1930)는 사용자 단말장치(150)의 조건(중요위치, 네트워크 QoS, 사용자 단말장치(150)의 전파세기 등)을 수신한다.
본 실시예의 단말 요청 수신부(1930)는 외부 장치(미도시)로부터 입력 영상소스에 대한 중요위치 정보를 수신하여, 비트스트림 선택부(1920)는 기 설정된 중요위치에 근거하여 부호화된 소정 개수의 부호화 데이터들(예: 도 12의 (a) 내지 (d)) 중에서 수신한 중요위치 정보와 부합하는 부호화 데이터를 선택한다.
예를 들어, 단말 요청 수신부(1930)가 외부 장치(미도시)로부터 수신한 입력 영상소스에 대한 중요위치 정보가 도 12의 (a)에 표시된 중요위치와 부합한다면 비트스트림 선택부(1920)는 중요 위치 정보에 대응하는 혼합 영상 스트림으로서 도 12의 (a)에 도시된 혼합 영상 스트림을 선택하게 된다.
비트스트림 선택부(1920)는 영상 추출 병합 장치(130)로부터 전달된 다양한 버전의 스트림을 받아 풀(pull) 방식 또는 푸시(push) 방식으로 제공할 수 있다.
푸시(push) 방식의 경우 사용자 단말장치(150)가 요청한 영역 또는 주요 오브젝트를 중심으로 타일별 화질을 결정하거나 혹은 주요 영역을 고정하여 고정된 주요 영역을 중심으로 타일별 화질을 미리 결정하여 전송할 수 있다.
풀(pull) 방식의 경우, 기 설정된 MPD(Media Presentation Description)과 같은 메타 정보를 사용자 단말장치(150)로 먼저 보내면 사용자 단말장치(150)가 메타 정보에서 시청하고자 하는 위치와 매핑하여 매팅된 결과에 해당하는 혼합 영상 스트림에 해당하는 url을 스트림 전달 장치(140)에게 요청할 수 있다. 비트스트림 선택부(1920)는 사용자 단말장치(150)로부터 영상 url을 수신하면 해당하는 혼합 영상 스트림을 복수의 혼합 영상 스트림 중에서 선택하여 사용자 단말장치(150)에게 전송한다.
도 20은 본 실시예에 따른 사용자 단말장치(150)를 도시한 블록도이다.
본 실시예에 따른 사용자 단말장치(150)는 영역 설정 요청부(2010), 영상 스트림 수신부(2020) 및 영상 재생부(2030)을 포함한다. 영역 설정 요청부(2010)는 자이로 센서 등 위치를 파악할 수 있는 정보로부터 시청 위치를 파악하고 해당 위치 정보를 스트림 전달 장치(140)에게 전송하거나 혹은 미리 약속된 스트림의 ID를 스트림 전달 장치(140)에게 전송하여 해당 혼합 영상 스트림을 요청하거나, 또한 기 설정된 MPD 정보를 통해 시선의 좌표가 어느 스트림에 해당되는 지를 파악하여 해당 혼합 영상 스트림의 url을 전송하여 직접적으로 해당 혼합 영상 스트림을 요청할 수 있다. 예를 들어 MPD 정보에서 고화질 영역에 대한 정보(영역의 크기, 시작 위치(x, y) 또는 타일의 크기, 타일의 개수 등)를 통해 중요영역의 범위를 알아낼 수 있으며, 시청자의 위치가 움직일 때 마다 해당 중요영역에 대응하는 url의 혼합 영상 스트림을 요청할 수 있다.
영상 스트림 수신부(2020)는 스트림 전달 장치(140)에게 전송한 영역 설정 요청에 상응하는 혼합 영상 스트림을 스트림 전달 장치(140)로부터 수신한다.
영상 재생부(2030)는 수신된 혼합 영상 스트림을 복호화하여 재생한다.
이하, 도 21 및 도 22를 참조하여 본 발명의 실시예에 따른 영상 비트스트림 생성방법에 대하여 설명한다.
도 21은 본 발명의 실시예에 따른 영상 비트스트림 생성방법의 흐름도이다.
고해상도 영상 스트리밍을 위한 혼합 영상 스트림을 생성하기 위하여, 하나의 입력 영상소스에 대하여 서로 다른 비트 레이트로 각각 부호화된 복수의 부호화 데이터를 획득한다(S2110). 예를 들어, 저화질 즉, 낮은 비트레이트(예: 5 Mbps)로 부호화된 부호화 데이터 및 고화질 즉, 높은 비트레이트(예: 25 Mbps)로 부호화된 부호화 데이터를 생성할 수 있다. 과정 S2110은 부호화 장치(120)의 동작에 대응되므로 구체적인 예시에 대한 설명은 생략한다.
과정 S2120에서는 입력 영상소스에서 중요도가 가장 높은 중요영역을 설정하고 중요도에 따라 입력 영상소스를 복수의 영역들로 구분한다. 여기서, 중요영역은 가장 높은 비트레이트로 부호화된 부호화 데이터로부터 추출될 영역을 의미한다. 중요도는 전술한 중요위치 정보로부터 결정될 수 있으며, 하나의 입력 영상소스에서 사용자의 시점 위치(또는, 입력 영상소스 내 객체 위치)에 가까운 영역일수록 중요도가 높은 것으로 볼 수 있다.
구체적으로, 과정 S2120에서는 입력 영상소스에 대한 사용자의 시점 위치 후보를 획득하여 사용자의 시점 위치 후보로부터 일정 범위 내에 포함되는 하나 이상의 영역을 중요영역으로 설정하고, 사용자의 시점 위치 후보로부터 떨어진 거리에 근거하여 복수의 영역들을 구분할 수 있다.
사용자의 시점 위치 후보를 기반으로 중요영역을 설정하는 경우에는, 주기적으로 사용자의 시점 위치를 획득하여 기 획득된 시점 위치의 이동이 있는지 여부를 확인하고, 이동이 있는 경우에 이를 반영하여 중요영역을 새롭게 설정할 수 있다.
또한, 과정 S2120에서는 입력 영상소스에서 검출된 하나 이상의 객체 위치를 획득하여 하나 이상의 객체의 위치로부터 일정 범위 내에 포함되는 하나 이상의 영역을 중요영역으로 설정하고, 하나 이상의 객체의 위치로부터 떨어진 거리에 근거하여 복수의 영역들을 구분할 수도 있다. 여기서, 객체의 위치는 객체 검출(Object Detection) 알고리즘에 의해 획득된 객체위치 후보일 수 있다.
객체 위치를 기반으로 중요영역을 설정하는 경우에는 입력 영상소스에 포함된 객체가 복수일 수 있으므로 중요영역 역시 복수 개가 설정될 수 있다.
중요영역을 설정함에 있어 사용자의 시점 위치 및 객체 위치 외에도 입력 영상소스의 특성에 따라 추가적으로 고려해야 할 사항이 있다. 예를 들어, 입력 영상소스가 360° 동영상인 경우, 중요영역이 영상 내의 어느 부분에 위치하느냐에 따라 다른 영역을 중요영역으로 추가 설정하거나 기 설정된 중요영역을 축소해야 할 수 있다.
구체적으로 설명하면, 360° 동영상은 재생 시 이미지의 양단이 접하는 것처럼 보일 수 있는 특징이 있다. 즉, 이미지의 상측 양단끼리 접하거나 하측 양단끼리 접해보일 수 있다. 이는 다수의 카메라에서 촬영된 영상을 하나로 합치는 스티칭(Stitching) 과정에서 이미지가 왜곡(Warping)되기 때문이다.
따라서, 과정 S2120에서는 중요영역으로 설정된 영역이 입력 영상소스의 상측 일단 영역 또는 하측 일단 영역을 포함하는 경우, 입력 영상소스의 상측 타단 영역 또는 하측 타단 영역도 중요영역으로 설정할 수 있다. 전술한 스티칭 과정에 의해 360° 동영상에 있어서 이미지 왜곡(Warping)은 이미지의 중심부보다는 상단 영역과 하단 영역에 더 많이 발생하며, 상단 영역과 하단 영역에 정보의 중복성(Redundancy)이 발생한다. 또한, 일반적으로 360° 동영상의 상단 영역은 및 하단 영역은 각각 하늘과 지면으로 표시되기 때문에 중심 영역의 중요도가 상단 영역 및 하단 영역보다 높은 경우가 많다.
따라서, 과정 S2120에서는 중요도가 가장 높은 영역이 입력 영상소스의 상단 영역 및 하단 영역 중 하나 이상을 포함하는 경우, 중요도가 가장 높은 영역 중 상단 영역 및 하단 영역을 제외한 나머지 영역을 중요영역으로 설정할 수 있다.
과정 S2120에서 구분된 복수의 영역들에 속하는 타일들의 개수는 타일의 크기 및 중요영역의 위치에 따라 달라질 수 있다.
본 실시예의 방법에 따르면, 과정 S2110 및 과정 S2120을 수행한 뒤, 복수의 부호화 데이터 중 복수의 영역들 각각의 중요도에 상응하는 비트레이트를 갖는 부호화 데이터로부터 추출한다(S2130).
구체적으로, 과정 S2130에서는 복수의 영역들 중 중요영역은 복수의 부호화 데이터 중 비트레이트가 가장 높은 부호화 데이터로부터 추출하고, 복수의 영역들 중 중요도가 낮은 영역일수록 비트레이트가 낮은 부호화 데이터로부터 추출할 수 있다.
과정 S2130에서는 중요영역이 실시간으로 이동할 수 있음을 고려하여 중요영역의 인접 영역까지도 복수의 부호화 데이터 중 비트레이트가 가장 높은 부호화 데이터로부터 추출할 수 있다.
과정 S2140에서는 추출된 영역들을 병합하여 중요영역에 대응하는 혼합 영상 스트림을 생성한다.
과정 S2120 내지 과정 S2140은 본 발명의 실시예에 따른 영상 추출 병합 장치(130)의 동작에 대응되므로 구체적인 예시에 대한 설명은 생략한다.
도 22는 본 발명의 다른 실시예에 따른 혼합 영상 스트림 선택방법의 흐름도이다.
본 실시예의 방법에 따르면, 입력 영상소스를 구성하는 복수의 영역들의 중요도에 따라 복수의 영역 별로 서로 다른 비트레이트로 부호화된 부호화 데이터를 획득하고(S2210), 단말로부터 중요위치 정보를 획득한다(S2220).
과정 S2210 및 과정 S2220에서 획득한 부호화 데이터들 및 중요위치 정보를 이용하여 과정 S2230에서는, 중요위치 정보에 근거하여 복수의 부호화 데이터 중 중요위치 정보에 부합하는 혼합 영상 스트림을 선택한다.
본 실시예에 따르면, 복수의 영역들이 기 설정된 소정 개수의 중요위치 별로 미리 구성되어 있으므로 중요영역을 별도로 설정할 필요 없이, 기 설정된 중요위치 별로 다르게 구성된 입력 영상소스 각각을 부호화한 부호화 데이터들로부터 실제 중요위치(즉, 중요위치 정보)에 부합하는 혼합 영상 스트림을 선택함으로써 사용자 단말장치(150)에게 전송할 수 있다.
중요위치 정보는 입력 영상소스에 대한 사용자의 시점 위치 및 입력 영상소스에서 검출된 하나 이상의 객체 위치 중 적어도 하나를 포함할 수 있다.
기 설정된 소정 개수의 중요위치는 입력 영상소스를 구성하는 타일 또는 슬라이스의 크기, 타일 또는 슬라이스의 개수 및 입력 영상소스의 해상도 중 적어도 하나를 고려하여 설정될 수 있다.
과정 S2210은 본 발명의 실시예에 따른 부호화 데이터 수신부(410) 동작에 대응되고, 과정 S2220 및 과정 S2230은 영상 생성부(440)의 동작에 대응되므로 구체적인 예시에 대한 설명은 생략한다.
도 21 및 도 22에서는 과정 S2110 내지 과정 S2140과, 과정 S2210 내지 과정 S2230을 순차적으로 실행하는 것으로 기재하고 있으나, 반드시 이에 한정되는 것은 아니다. 다시 말해, 도 21 및 도 22에 기재된 과정을 변경하여 실행하거나 하나 이상의 과정을 병렬적으로 실행하는 것으로 적용 가능할 것이므로, 도 21 및 도 22는 시계열적인 순서로 한정되는 것은 아니다. 전술한 바와 같이 도 21 및 도 22에 기재된 본 실시예에 따른 영상 비트스트림 생성방법은 프로그램으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 본 실시예에 따른 영상 비트스트림 생성방법을 구현하기 위한 프로그램이 기록되고 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
이상에서 설명한 바와 같이 본 실시예는 고해상도 영상 컨텐츠의 스트리밍을 위한 영상 부호화 분야에 적용되어, 스트리밍 시 처리할 데이터량을 줄임으로써 효율적으로 영상을 압축할 수 있는 효과를 발생하는 유용한 발명이다.
[부호의 설명]
100: 영상 비트스트림 생성 시스템
110: 영상 스티칭 장치
120: 부호화 장치
130: 영상 추출 병합 장치
140: 스트림 전달 장치
150: 사용자 단말장치
410: 부호화 데이터 수신부
420: 입력 스트림 동기화부
430: 문맥 파싱부
440: 영상 생성부
450: 다채널 스트림 전송부
1910: 다채널 스트림 수신부
1920: 비트스트림 선택부
1930: 단말요청 수신부
2010: 영역설정 요청부
2020: 영상스트림 수신부
2030: 영상 재생부
CROSS-REFERENCE TO RELATED APPLICATION
본 특허출원은 2016년 07월 01일 한국에 출원한 특허출원번호 제10-2016-0083471호 및 2017년 07월 03일 한국에 출원한 특허출원번호 제10-2017-0084093호에 대해 미국 특허법 119(a)조(35 U.S.C § 119(a))에 따라 우선권을 주장하며, 그 모든 내용은 참고문헌으로 본 특허출원에 병합된다. 아울러, 본 특허출원은 미국 이외에 국가에 대해서도 위와 동일한 이유로 우선권을 주장하며 그 모든 내용은 참고문헌으로 본 특허출원에 병합된다.

Claims (15)

  1. 고해상도 영상 스트리밍을 위한 영상 추출 병합 장치에 있어서,
    입력 영상에 대하여 서로 다른 비트레이트로 각각 부호화된 복수의 부호화 데이터를 수신하는 부호화 데이터 수신부; 및
    상기 입력 영상에서 상기 입력 영상의 복수의 영역들을 그 중요도에 따라 구분하고, 상기 복수의 영역들 각각에 대하여 상기 복수의 부호화 데이터 중 상기 영역들 각각의 중요도에 상응하는 서로 다른 비트레이트를 갖는 부호화 데이터로부터 해당 영역의 데이터를 추출하고, 복수의 영역에 대응하여 각각 추출된 부호화 데이터를 서로 병합하여 혼합 영상 스트림을 생성하는 영상 생성부
    를 포함하는 것을 특징으로 하는 영상 추출 병합 장치.
  2. 제1항에 있어서,
    상기 영상 생성부는,
    상기 입력 영상 내에서 상기 중요도에 대응되는 타일 영역의 위치를 나타내는 정보를 생성하는 것을 특징으로 하는 영상 추출 병합 장치.
  3. 제1항에 있어서,
    상기 영상 생성부는,
    상기 입력 영상이 3D 영상을 2D로 매핑한 영상인 경우에, 상기 중요도에 따라 중요영역으로 설정된 영역이 상기 입력 영상의 최상측 또는 최하측의 일단 영역을 포함하는 경우, 상기 입력 영상의 최상측 또는 최하측의 타단 영역도 각각 중요영역으로 추가 설정하는 것을 특징으로 하는 영상 추출 병합 장치.
  4. 제1항에 있어서,
    상기 영상 생성부는,
    상기 입력 영상이 3D 영상을 2D로 매핑한 영상인 경우에, 상기 입력 영상 내에서 중요도가 가장 높은 중요영역이 상기 입력 영상의 최상단 영역 및 최하단 영역 중 하나 이상의 영역을 포함하는 경우, 상기 하나 이상의 영역을 상기 중요영역에서 제외하는 것을 특징으로 하는 영상 추출 병합 장치.
  5. 제1항에 있어서,
    상기 영상 생성부는, 상기 입력 영상소스로부터 상기 서로 다른 비트레이트를 갖는 부호화 데이터를 생성함에 있어서, 하나의 비트레이트의 부호화 데이터에 대응하여 제1 부호화 데이터 및 제2 부호화 데이터를 각각 생성하며,
    상기 제1 부호화 데이터는 그 내부의 타일이 인터 예측을 수행할 때 주변의 다른 타일을 참조하지 않도록 설정된 부호화 데이터이고, 상기 제2 부호화 데이터는 그 내부의 타일이 인터 예측을 수행할 때 주변의 다른 타일을 참조하는 것이 허용된 부호화 데이터인 것을 특징으로 하는 영상 추출 병합 장치.
  6. 제5항에 있어서,
    상기 영상 생성부는,
    상기 중요도에 따라 결정되는 중요영역과 상기 중요영역 이외의 영역 사이의 경계에 인접한 영역의 타일의 데이터는 상기 제1 부호화 데이터로부터 추출하고,
    상기 경계에 인접하지 않은 영역의 타일의 데이터는 상기 제2 부호화 데이터로부터 추출하는 것을 특징으로 하는 영상 추출 병합 장치.
  7. 제1항에 있어서, 상기 영상 생성부는,
    상기 중요도에 따라 결정되는 중요영역의 위치에 따라, 서로 다른 조합의 타일 데이터를 갖는 복수개의 혼합 영상 스트림을 생성하는 것을 특징으로 하는 영상 추출 병합 장치.
  8. 제7항에 있어서, 상기 중요도에 대한 정보는,
    상기 입력 영상의 하나 이상의 객체 위치로부터 획득되는 것을 특징으로 하는 영상 추출 병합 장치.
  9. 제1항에 있어서, 상기 영상 생성부는,
    상기 혼합 영상 스트림을 생성하는 경우, 상기 혼합 영상 스트림 내부의 특정 위치의 타일 영역을 위하여 추출한 부호화 데이터에서 인터 예측을 수행할 때 참조되는 타일의 특성에 따라 해당 특정 위치의 타일 영역에 해당하는 데이터를 다른 부호화 데이터로부터 추출하는 것을 특징으로 하는 영상 추출 병합 장치.
  10. 제1항에 있어서,
    상기 비트스트림 생성부는,
    상기 입력 영상소스가 분할되는 복수의 데이터 처리 단위 간 필터링 적용 여부에 대한 정보를 상기 부호화 데이터에 포함시키는 것을 특징으로 하는 영상 추출 병합 장치.
  11. 제1항에 있어서,
    상기 비트스트림 생성부는,
    상기 복수의 영역들에 포함되는 영역의 중요도에 상응하는 양자화 파라미터 값을 상기 부호화 데이터에 포함시키는 것을 특징으로 하는 영상 추출 병합 장치.
  12. 고해상도 영상 스트리밍을 위한 영상 스트리밍 장치에 있어서,
    입력 영상을 구성하는 복수의 영역들의 중요도에 따라서 상기 복수의 영역 별로 서로 다른 비트레이트로 각각 부호화된 데이터를 포함하는 복수개의 혼합 영상 스트림을 수신하는 다채널 스트림 수신부;
    상기 입력 영상에 대한 중요위치 정보를 획득하여 상기 복수의 혼합 영상 스트림 중 상기 중요위치 정보에 부합하는 혼합 영상 스트림을 선택하고, 선택된 혼합 영상 스트림을 전송하는 비트스트림 선택부; 및
    상기 중요위치 정보를 사용자 단말장치로부터 수신하는 단말 요청 수신부
    를 포함하는 것을 특징으로 하는 영상 스트리밍 장치.
  13. 제12항에 있어서,
    상기 복수의 영역들은 상기 복수개의 혼합 영상 스트림마다 서로 다르게 구성되는 것을 특징으로 하는 영상 스트리밍 장치.
  14. 고해상도 영상 스트리밍을 위한 영상 비트스트림 생성방법에 있어서,
    입력 영상에 대하여 서로 다른 비트레이트로 각각 부호화된 복수의 부호화 데이터를 수신하는 과정;
    상기 입력 영상에서 상기 입력 영상의 복수의 영역들을 그 중요도에 따라 구분하는 과정;
    상기 복수의 영역들 각각에 대하여 상기 복수의 부호화 데이터 중 상기 영역들 각각의 중요도에 상응하는 서로 다른 비트레이트를 갖는 부호화 데이터로부터 해당 영역의 데이터를 추출하는 과정; 및
    복수의 영역에 대응하여 각각 추출된 부호화 데이터를 서로 병합하여 혼합 영상 스트림을 생성하는 과정
    을 포함하는 것을 특징으로 하는 영상 비트스트림 생성방법.
  15. 고해상도 영상 스트리밍을 위한 영상 비트스트림 생성방법에 있어서,
    입력 영상을 구성하는 복수의 영역들의 중요도에 따라 상기 복수의 영역 별로 서로 다른 비트레이트로 각각 부호화된 데이터를 포함하는 복수개의 혼합 영상 스트림을 획득하는 과정;
    상기 입력 영상에 대한 중요위치 정보를 획득하는 과정; 및
    상기 복수의 혼합 영상 스트림 중 상기 중요위치 정보에 부합하는 혼합 영상 스트림을 선택하고, 선택된 혼합 영상 스트림을 전송하는 과정
    을 포함하는 것을 특징으로 하는 영상 비트스트림 생성방법.
PCT/KR2017/007028 2016-07-01 2017-07-03 고해상도 영상 스트리밍을 위한 영상 비트스트림 생성방법 및 장치 WO2018004317A1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201780040839.XA CN109417642B (zh) 2016-07-01 2017-07-03 用于高分辨率影像流的影像比特流生成方法和设备
US16/313,623 US10743000B2 (en) 2016-07-01 2017-07-03 Video bitstream generation method and device for high-resolution video streaming
US16/506,217 US10893278B2 (en) 2016-07-01 2019-07-09 Video bitstream generation method and device for high-resolution video streaming

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20160083471 2016-07-01
KR10-2016-0083471 2016-07-01
KR1020170084093A KR101915037B1 (ko) 2016-07-01 2017-07-03 고해상도 영상 스트리밍을 위한 영상 비트스트림 생성방법 및 장치
KR10-2017-0084093 2017-07-03

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US16/313,623 A-371-Of-International US10743000B2 (en) 2016-07-01 2017-07-03 Video bitstream generation method and device for high-resolution video streaming
US16/506,217 Continuation US10893278B2 (en) 2016-07-01 2019-07-09 Video bitstream generation method and device for high-resolution video streaming

Publications (1)

Publication Number Publication Date
WO2018004317A1 true WO2018004317A1 (ko) 2018-01-04

Family

ID=60787446

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2017/007028 WO2018004317A1 (ko) 2016-07-01 2017-07-03 고해상도 영상 스트리밍을 위한 영상 비트스트림 생성방법 및 장치

Country Status (1)

Country Link
WO (1) WO2018004317A1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110072121A (zh) * 2018-01-23 2019-07-30 南京大学 一种适应人眼感知情况的沉浸式媒体数据传输方法
CN110536138A (zh) * 2018-05-25 2019-12-03 杭州海康威视数字技术股份有限公司 一种有损压缩编码方法、装置和系统级芯片
CN113347421A (zh) * 2021-06-02 2021-09-03 黑芝麻智能科技(上海)有限公司 视频编码和解码方法、装置和计算机设备
US11310560B2 (en) 2019-05-17 2022-04-19 Samsung Electronics Co., Ltd. Bitstream merger and extractor
CN117478857A (zh) * 2023-12-26 2024-01-30 江西工业贸易职业技术学院(江西省粮食干部学校、江西省粮食职工中等专业学校) 一种vr数据传输方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060007765A (ko) * 2004-07-21 2006-01-26 삼성전자주식회사 영상 압축/복원 방법 및 장치
KR20060015223A (ko) * 2004-08-13 2006-02-16 경희대학교 산학협력단 영상 코딩 방법, 코딩 장치, 영상 디코딩 방법 및 디코딩장치
JP4034092B2 (ja) * 2001-03-14 2008-01-16 トムソン ライセンシング 各ブロックに解像度が割り当てられたmpegタイプのブロック方式符号化方法
KR20120059214A (ko) * 2010-11-30 2012-06-08 고려대학교 산학협력단 적응적 관심 영역을 적용한 비디오 스트리밍을 제공하는 비디오 코덱 장치 및 그 방법
WO2015056941A1 (ko) * 2013-10-14 2015-04-23 한국전자통신연구원 다계층 기반의 영상 부호화/복호화 방법 및 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4034092B2 (ja) * 2001-03-14 2008-01-16 トムソン ライセンシング 各ブロックに解像度が割り当てられたmpegタイプのブロック方式符号化方法
KR20060007765A (ko) * 2004-07-21 2006-01-26 삼성전자주식회사 영상 압축/복원 방법 및 장치
KR20060015223A (ko) * 2004-08-13 2006-02-16 경희대학교 산학협력단 영상 코딩 방법, 코딩 장치, 영상 디코딩 방법 및 디코딩장치
KR20120059214A (ko) * 2010-11-30 2012-06-08 고려대학교 산학협력단 적응적 관심 영역을 적용한 비디오 스트리밍을 제공하는 비디오 코덱 장치 및 그 방법
WO2015056941A1 (ko) * 2013-10-14 2015-04-23 한국전자통신연구원 다계층 기반의 영상 부호화/복호화 방법 및 장치

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110072121A (zh) * 2018-01-23 2019-07-30 南京大学 一种适应人眼感知情况的沉浸式媒体数据传输方法
CN110536138A (zh) * 2018-05-25 2019-12-03 杭州海康威视数字技术股份有限公司 一种有损压缩编码方法、装置和系统级芯片
CN110536138B (zh) * 2018-05-25 2021-11-09 杭州海康威视数字技术股份有限公司 一种有损压缩编码方法、装置和系统级芯片
US11310560B2 (en) 2019-05-17 2022-04-19 Samsung Electronics Co., Ltd. Bitstream merger and extractor
CN113347421A (zh) * 2021-06-02 2021-09-03 黑芝麻智能科技(上海)有限公司 视频编码和解码方法、装置和计算机设备
CN117478857A (zh) * 2023-12-26 2024-01-30 江西工业贸易职业技术学院(江西省粮食干部学校、江西省粮食职工中等专业学校) 一种vr数据传输方法及系统
CN117478857B (zh) * 2023-12-26 2024-03-08 江西工业贸易职业技术学院(江西省粮食干部学校、江西省粮食职工中等专业学校) 一种vr数据传输方法及系统

Similar Documents

Publication Publication Date Title
WO2018004317A1 (ko) 고해상도 영상 스트리밍을 위한 영상 비트스트림 생성방법 및 장치
WO2020036390A1 (ko) 영상 신호를 처리하기 위한 방법 및 장치
WO2021194307A1 (ko) 랩-어라운드 움직임 보상에 기반하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2021177794A1 (ko) 혼성 nal 유닛 타입에 기반하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2020017785A1 (ko) 영상 코딩 시스템에서 인트라 예측 관련 정보를 사용하는 영상 디코딩 방법 및 그 장치
WO2021054807A1 (ko) 참조 샘플 필터링을 이용하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2021177791A1 (ko) 혼성 nal 유닛 타입에 기반하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2021194308A1 (ko) 랩-어라운드 움직임 보상에 기반하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2021132963A1 (ko) 슬라이스 또는 픽처에 대한 nal 유닛 타입 기반 영상 또는 비디오 코딩
WO2021066618A1 (ko) 변환 스킵 및 팔레트 코딩 관련 정보의 시그널링 기반 영상 또는 비디오 코딩
WO2022139260A1 (ko) 미디어 파일을 생성하고 처리하는 방법 및 장치
WO2022131870A1 (ko) Nal 유닛 어레이 정보를 포함하는 미디어 파일 생성/수신 방법, 장치 및 미디어 파일 전송 방법
WO2022039513A1 (ko) Cpi sei 메시지에 기반한 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2021241978A1 (ko) 멀티 레이어 기반 영상 코딩 장치 및 방법
WO2021241963A1 (ko) 비디오 또는 영상 코딩 시스템에서의 poc 정보 및 비-참조 픽처 플래그에 기반한 영상 코딩 방법
WO2021246840A1 (ko) 스케일러빌리티를 위한 서브-비트스트림 추출 기반 영상 코딩 장치 및 방법
WO2021235759A1 (ko) 비디오 또는 영상 코딩 시스템에서의 다중 레이어 기반 영상 코딩 방법
WO2021066609A1 (ko) 변환 스킵 및 팔레트 코딩 관련 고급 문법 요소 기반 영상 또는 비디오 코딩
WO2022071742A1 (ko) 미디어 파일을 생성하는 방법 및 장치
WO2022131845A1 (ko) Nal 유닛 정보를 포함하는 미디어 파일 생성/수신 방법, 장치 및 미디어 파일 전송 방법
WO2021201559A1 (ko) Gdr에 대한 리커버리 포인트 관련 정보의 시그널링 기반 영상 또는 비디오 코딩
WO2021194211A1 (ko) 혼성 nal 유닛 타입에 기반하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장하는 기록 매체
WO2022139331A1 (ko) 미디어 파일 처리 방법 및 그 장치
WO2024049269A1 (ko) Hrd 파라미터를 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 컴퓨터 판독 가능한 기록 매체
WO2024076141A1 (ko) 포스트 디코딩 필터에 기반한 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장하는 기록 매체

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17820593

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17820593

Country of ref document: EP

Kind code of ref document: A1